cronapp-framework-mobile-js 2.9.2-SP.9 → 2.9.3

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 (454) hide show
  1. package/components/crn-checkbox.components.json +2 -0
  2. package/components/crn-component.components.json +18 -3
  3. package/components/crn-item-select.components.json +4 -1
  4. package/components/crn-toggle.components.json +2 -0
  5. package/components/templates/list.thumbnail.template.html +2 -2
  6. package/css/themes/custom/slate/custom-slate.css +56 -11
  7. package/css/themes/custom/spacelab/custom-spacelab.css +77 -32
  8. package/css/themes/custom/superhero/custom-superhero.css +45 -0
  9. package/css/themes/custom/theme-general/theme-general.css +1 -1
  10. package/css/themes/custom/united/custom-united.css +52 -5
  11. package/css/themes/custom/yeti/custom-yeti.css +45 -0
  12. package/deprecated/components/crn-QRCode.components.json +54 -0
  13. package/deprecated/components/crn-anchor.components.json +89 -0
  14. package/deprecated/components/crn-button-bar.components.json +64 -0
  15. package/deprecated/components/crn-button.components.json +316 -0
  16. package/deprecated/components/crn-card.components.json +95 -0
  17. package/deprecated/components/crn-chart.components.json +57 -0
  18. package/deprecated/components/crn-chat.components.json +8 -0
  19. package/deprecated/components/crn-checkbox.components.json +184 -0
  20. package/deprecated/components/crn-complex-search.components.json +43 -0
  21. package/deprecated/components/crn-container.components.json +21 -0
  22. package/deprecated/components/crn-cron-crud.components.json +21 -0
  23. package/deprecated/components/crn-datasource.components.json +181 -0
  24. package/deprecated/components/crn-dynamic-file.components.json +85 -0
  25. package/deprecated/components/crn-dynamic-image.components.json +153 -0
  26. package/deprecated/components/crn-dynamic-select.components.json +111 -0
  27. package/deprecated/components/crn-evaluation.components.json +64 -0
  28. package/deprecated/components/crn-filter-button.components.json +305 -0
  29. package/deprecated/components/crn-form-template.components.json +11 -0
  30. package/deprecated/components/crn-header-button.components.json +63 -0
  31. package/deprecated/components/crn-heading.components.json +109 -0
  32. package/deprecated/components/crn-icon.components.json +258 -0
  33. package/deprecated/components/crn-image.components.json +121 -0
  34. package/deprecated/components/crn-infinite-scroll.components.json +32 -0
  35. package/deprecated/components/crn-input-button.components.json +205 -0
  36. package/deprecated/components/crn-input-floating.components.json +196 -0
  37. package/deprecated/components/crn-input-icon.components.json +187 -0
  38. package/deprecated/components/crn-input-inline.components.json +198 -0
  39. package/deprecated/components/crn-input.components.json +185 -0
  40. package/deprecated/components/crn-ion-content.components.json +24 -0
  41. package/deprecated/components/crn-ion-footer-bar.components.json +351 -0
  42. package/deprecated/components/crn-ion-header-bar.components.json +211 -0
  43. package/deprecated/components/crn-ion-list.components.json +152 -0
  44. package/deprecated/components/crn-ion-nav-buttons.components.json +63 -0
  45. package/deprecated/components/crn-ion-segment-item.components.json +65 -0
  46. package/deprecated/components/crn-ion-segment.components.json +974 -0
  47. package/deprecated/components/crn-ion-tab-item.components.json +50 -0
  48. package/deprecated/components/crn-ion-tab.components.json +138 -0
  49. package/deprecated/components/crn-item-options.components.json +26 -0
  50. package/deprecated/components/crn-item-select.components.json +69 -0
  51. package/deprecated/components/crn-item-swipe.components.json +62 -0
  52. package/deprecated/components/crn-kendo-chat.components.json +88 -0
  53. package/deprecated/components/crn-label.components.json +113 -0
  54. package/deprecated/components/crn-list-avatar.components.json +260 -0
  55. package/deprecated/components/crn-list-icon.components.json +249 -0
  56. package/deprecated/components/crn-list-item-avatar.components.json +236 -0
  57. package/deprecated/components/crn-list-item-icon.components.json +242 -0
  58. package/deprecated/components/crn-list-item-thumbnail.components.json +226 -0
  59. package/deprecated/components/crn-list-item.components.json +160 -0
  60. package/deprecated/components/crn-list-simple.components.json +180 -0
  61. package/deprecated/components/crn-list-swipe.components.json +105 -0
  62. package/deprecated/components/crn-list-thumbnail.components.json +248 -0
  63. package/deprecated/components/crn-list.components.json +75 -0
  64. package/deprecated/components/crn-map.components.json +55 -0
  65. package/deprecated/components/crn-mobile-menu.components.json +32 -0
  66. package/deprecated/components/crn-multiselect.components.json +110 -0
  67. package/deprecated/components/crn-navbar.components.json +106 -0
  68. package/deprecated/components/crn-option-button.components.json +72 -0
  69. package/deprecated/components/crn-paragraph.components.json +110 -0
  70. package/deprecated/components/crn-radio.components.json +90 -0
  71. package/deprecated/components/crn-radioOption.components.json +23 -0
  72. package/deprecated/components/crn-range.components.json +106 -0
  73. package/deprecated/components/crn-rating.components.json +189 -0
  74. package/deprecated/components/crn-search.components.json +210 -0
  75. package/deprecated/components/crn-select-options.components.json +17 -0
  76. package/deprecated/components/crn-select.components.json +93 -0
  77. package/deprecated/components/crn-slider-item.components.json +236 -0
  78. package/deprecated/components/crn-slider.components.json +105 -0
  79. package/deprecated/components/crn-spacer.components.json +21 -0
  80. package/deprecated/components/crn-start.components.json +10 -0
  81. package/deprecated/components/crn-tabs-icon-only-item.components.json +85 -0
  82. package/deprecated/components/crn-tabs-icon-only.components.json +382 -0
  83. package/deprecated/components/crn-tabs.components.json +36 -0
  84. package/deprecated/components/crn-textarea.components.json +109 -0
  85. package/deprecated/components/crn-toggle.components.json +161 -0
  86. package/deprecated/components/crn-video.components.json +67 -0
  87. package/deprecated/components/css/app.css +78 -0
  88. package/deprecated/components/css/background-color.css +121 -0
  89. package/deprecated/components/css/chatStyle.css +221 -0
  90. package/deprecated/components/css/color-default.css +83 -0
  91. package/deprecated/components/css/crn-ion-segment.css +786 -0
  92. package/deprecated/components/css/icon-size.css +15 -0
  93. package/deprecated/components/css/multiselect-editor.css +119 -0
  94. package/deprecated/components/css/tabs-color.css +248 -0
  95. package/deprecated/components/js/format.min.js +2 -0
  96. package/deprecated/components/js/jquery.inputmask.bundle.js +3883 -0
  97. package/deprecated/components/js/jquery.mask.min.js +19 -0
  98. package/deprecated/components/js/pouchdb.cordova-sqlite.js +5540 -0
  99. package/deprecated/components/js/qrcode.js +1319 -0
  100. package/deprecated/components/reports/BOOLEAN.parameter.html +10 -0
  101. package/deprecated/components/reports/DATE.parameter.html +4 -0
  102. package/deprecated/components/reports/DOUBLE.parameter.html +4 -0
  103. package/deprecated/components/reports/FLOAT.parameter.html +4 -0
  104. package/deprecated/components/reports/INTEGER.parameter.html +4 -0
  105. package/deprecated/components/reports/LONG.parameter.html +5 -0
  106. package/deprecated/components/reports/STRING.parameter.html +5 -0
  107. package/deprecated/components/reports/reports.parameters.html +20 -0
  108. package/deprecated/components/templates/advanced.list.designtime.html +33 -0
  109. package/deprecated/components/templates/advanced.list.template.html +1 -0
  110. package/deprecated/components/templates/anchor.template.html +1 -0
  111. package/deprecated/components/templates/button-bar.template.html +5 -0
  112. package/deprecated/components/templates/button-report.template.html +1 -0
  113. package/deprecated/components/templates/button.template.html +4 -0
  114. package/deprecated/components/templates/card.template.html +7 -0
  115. package/deprecated/components/templates/chat.template.html +39 -0
  116. package/deprecated/components/templates/checkbox.template.html +8 -0
  117. package/deprecated/components/templates/combobox.designtime.html +12 -0
  118. package/deprecated/components/templates/combobox.template.html +8 -0
  119. package/deprecated/components/templates/complexsearch.template.html +7 -0
  120. package/deprecated/components/templates/crn-ion-segment-item.template.html +6 -0
  121. package/deprecated/components/templates/crn-ion-segment.template.html +27 -0
  122. package/deprecated/components/templates/cron-crud.template.html +7 -0
  123. package/deprecated/components/templates/cron-mobile-menu.designtime.html +10 -0
  124. package/deprecated/components/templates/div.horizontal.template.html +27 -0
  125. package/deprecated/components/templates/div.vertical.template.html +11 -0
  126. package/deprecated/components/templates/dynamic-combobox.template.html +6 -0
  127. package/deprecated/components/templates/dynamicfile.template.html +8 -0
  128. package/deprecated/components/templates/dynamicimage.designtime.html +10 -0
  129. package/deprecated/components/templates/dynamicimage.template.html +9 -0
  130. package/deprecated/components/templates/evaluation.designtime.html +7 -0
  131. package/deprecated/components/templates/evaluation.template.html +1 -0
  132. package/deprecated/components/templates/filterbutton.template.html +3 -0
  133. package/deprecated/components/templates/floattextinput.designtime.html +4 -0
  134. package/deprecated/components/templates/floattextinput.template.html +4 -0
  135. package/deprecated/components/templates/form.template.html +5 -0
  136. package/deprecated/components/templates/header.template.html +3 -0
  137. package/deprecated/components/templates/icontextinput.template.html +4 -0
  138. package/deprecated/components/templates/image.template.html +18 -0
  139. package/deprecated/components/templates/inlinetextinput.template.html +4 -0
  140. package/deprecated/components/templates/ion-footer-bar.template.html +15 -0
  141. package/deprecated/components/templates/ion-header-bar.template.html +13 -0
  142. package/deprecated/components/templates/ion-tab-item.designtime.html +5 -0
  143. package/deprecated/components/templates/ion-tab.template.html +8 -0
  144. package/deprecated/components/templates/item.avatar.template.html +5 -0
  145. package/deprecated/components/templates/item.icon.template.html +4 -0
  146. package/deprecated/components/templates/item.options.template.html +14 -0
  147. package/deprecated/components/templates/item.slider.template.html +4 -0
  148. package/deprecated/components/templates/item.swipe.template.html +14 -0
  149. package/deprecated/components/templates/item.template.html +5 -0
  150. package/deprecated/components/templates/item.thumbnail.template.html +5 -0
  151. package/deprecated/components/templates/kendo-chat.designtime.html +20 -0
  152. package/deprecated/components/templates/kendo-chat.template.html +75 -0
  153. package/deprecated/components/templates/list.avatar.template.html +7 -0
  154. package/deprecated/components/templates/list.icon.template.html +6 -0
  155. package/deprecated/components/templates/list.swipe.template.html +16 -0
  156. package/deprecated/components/templates/list.template.html +5 -0
  157. package/deprecated/components/templates/list.thumbnail.template.html +7 -0
  158. package/deprecated/components/templates/maps.designtime.html +1 -0
  159. package/deprecated/components/templates/maps.template.html +1 -0
  160. package/deprecated/components/templates/menu.template.html +21 -0
  161. package/deprecated/components/templates/multiselect.template.html +5 -0
  162. package/deprecated/components/templates/nav.bar.template.html +5 -0
  163. package/deprecated/components/templates/publicMenu.template.html +14 -0
  164. package/deprecated/components/templates/radiogroup-dynamic.template.html +15 -0
  165. package/deprecated/components/templates/radiogroup.template.html +21 -0
  166. package/deprecated/components/templates/range.template.html +5 -0
  167. package/deprecated/components/templates/rating.template.html +9 -0
  168. package/deprecated/components/templates/search.template.html +6 -0
  169. package/deprecated/components/templates/slider.template.html +20 -0
  170. package/deprecated/components/templates/tabs-icon-only.template.html +16 -0
  171. package/deprecated/components/templates/tabs.template.html +5 -0
  172. package/deprecated/components/templates/textarea.template.html +1 -0
  173. package/deprecated/components/templates/textinput.template.html +3 -0
  174. package/deprecated/components/templates/textinputbutton.template.html +12 -0
  175. package/deprecated/components/templates/title.template.html +1 -0
  176. package/deprecated/components/templates/toggle-dynamic.template.html +11 -0
  177. package/deprecated/components/templates/toggle.template.html +9 -0
  178. package/deprecated/components/templates/video.designtime.html +2 -0
  179. package/deprecated/components/templates/video.template.html +1 -0
  180. package/deprecated/components/templates/views/public/home.view.html +16 -0
  181. package/deprecated/components/templates/views/public/menu.view.html +20 -0
  182. package/deprecated/components/upload/upload.html +41 -0
  183. package/{css/themes/deprecated/material.min.css → deprecated/css/app.css} +26 -38
  184. package/deprecated/css/themes/custom/material/custom-material.css +12 -0
  185. package/deprecated/css/themes/material.min.css +4 -0
  186. package/deprecated/dist/components/css/app.css +1 -0
  187. package/deprecated/dist/components/css/background-color.css +1 -0
  188. package/deprecated/dist/components/css/chatStyle.css +1 -0
  189. package/deprecated/dist/components/css/color-default.css +1 -0
  190. package/deprecated/dist/components/css/crn-ion-segment.css +1 -0
  191. package/deprecated/dist/components/css/icon-size.css +1 -0
  192. package/deprecated/dist/components/css/multiselect-editor.css +1 -0
  193. package/deprecated/dist/components/css/tabs-color.css +1 -0
  194. package/deprecated/dist/components/js/format.min.js +1 -0
  195. package/deprecated/dist/components/js/jquery.inputmask.bundle.js +3 -0
  196. package/deprecated/dist/components/js/jquery.mask.min.js +1 -0
  197. package/deprecated/dist/components/js/pouchdb.cordova-sqlite.js +2 -0
  198. package/deprecated/dist/components/js/qrcode.js +1 -0
  199. package/deprecated/dist/components/templates/advanced.list.designtime.html +1 -0
  200. package/deprecated/dist/components/templates/advanced.list.template.html +1 -0
  201. package/deprecated/dist/components/templates/anchor.template.html +1 -0
  202. package/deprecated/dist/components/templates/button-bar.template.html +1 -0
  203. package/deprecated/dist/components/templates/button-report.template.html +1 -0
  204. package/deprecated/dist/components/templates/button.template.html +1 -0
  205. package/deprecated/dist/components/templates/card.template.html +1 -0
  206. package/deprecated/dist/components/templates/chat.template.html +1 -0
  207. package/deprecated/dist/components/templates/checkbox.template.html +1 -0
  208. package/deprecated/dist/components/templates/combobox.designtime.html +1 -0
  209. package/deprecated/dist/components/templates/combobox.template.html +1 -0
  210. package/deprecated/dist/components/templates/complexsearch.template.html +1 -0
  211. package/deprecated/dist/components/templates/crn-ion-segment-item.template.html +1 -0
  212. package/deprecated/dist/components/templates/crn-ion-segment.template.html +1 -0
  213. package/deprecated/dist/components/templates/cron-crud.template.html +1 -0
  214. package/deprecated/dist/components/templates/cron-mobile-menu.designtime.html +1 -0
  215. package/deprecated/dist/components/templates/div.horizontal.template.html +1 -0
  216. package/deprecated/dist/components/templates/div.vertical.template.html +1 -0
  217. package/deprecated/dist/components/templates/dynamic-combobox.template.html +1 -0
  218. package/deprecated/dist/components/templates/dynamicfile.template.html +1 -0
  219. package/deprecated/dist/components/templates/dynamicimage.designtime.html +1 -0
  220. package/deprecated/dist/components/templates/dynamicimage.template.html +1 -0
  221. package/deprecated/dist/components/templates/evaluation.designtime.html +1 -0
  222. package/deprecated/dist/components/templates/evaluation.template.html +1 -0
  223. package/deprecated/dist/components/templates/filterbutton.template.html +1 -0
  224. package/deprecated/dist/components/templates/floattextinput.designtime.html +1 -0
  225. package/deprecated/dist/components/templates/floattextinput.template.html +1 -0
  226. package/deprecated/dist/components/templates/form.template.html +1 -0
  227. package/deprecated/dist/components/templates/header.template.html +1 -0
  228. package/deprecated/dist/components/templates/iconinput.template.html +1 -0
  229. package/deprecated/dist/components/templates/icontextinput.template.html +1 -0
  230. package/deprecated/dist/components/templates/image.template.html +1 -0
  231. package/deprecated/dist/components/templates/inlinetextinput.template.html +1 -0
  232. package/deprecated/dist/components/templates/ion-footer-bar.template.html +1 -0
  233. package/deprecated/dist/components/templates/ion-header-bar.template.html +1 -0
  234. package/deprecated/dist/components/templates/ion-tab-item.designtime.html +1 -0
  235. package/deprecated/dist/components/templates/ion-tab.designtime.html +1 -0
  236. package/deprecated/dist/components/templates/ion-tab.template.html +1 -0
  237. package/deprecated/dist/components/templates/item.avatar.template.html +1 -0
  238. package/deprecated/dist/components/templates/item.icon.template.html +1 -0
  239. package/deprecated/dist/components/templates/item.options.template.html +1 -0
  240. package/deprecated/dist/components/templates/item.slider.template.html +1 -0
  241. package/deprecated/dist/components/templates/item.swipe.template.html +1 -0
  242. package/deprecated/dist/components/templates/item.template.html +1 -0
  243. package/deprecated/dist/components/templates/item.thumbnail.template.html +1 -0
  244. package/deprecated/dist/components/templates/kendo-chat.designtime.html +1 -0
  245. package/deprecated/dist/components/templates/kendo-chat.template.html +1 -0
  246. package/deprecated/dist/components/templates/list.avatar.template.html +1 -0
  247. package/deprecated/dist/components/templates/list.icon.template.html +1 -0
  248. package/deprecated/dist/components/templates/list.swipe.template.html +1 -0
  249. package/deprecated/dist/components/templates/list.template.html +1 -0
  250. package/deprecated/dist/components/templates/list.thumbnail.template.html +1 -0
  251. package/deprecated/dist/components/templates/maps.designtime.html +1 -0
  252. package/deprecated/dist/components/templates/maps.template.html +1 -0
  253. package/deprecated/dist/components/templates/menu.template.html +1 -0
  254. package/deprecated/dist/components/templates/multiselect.template.html +1 -0
  255. package/deprecated/dist/components/templates/nav.bar.template.html +1 -0
  256. package/deprecated/dist/components/templates/publicMenu.template.html +1 -0
  257. package/deprecated/dist/components/templates/radiogroup-dynamic.template.html +1 -0
  258. package/deprecated/dist/components/templates/radiogroup.template.html +1 -0
  259. package/deprecated/dist/components/templates/range.template.html +1 -0
  260. package/deprecated/dist/components/templates/rating.template.html +1 -0
  261. package/deprecated/dist/components/templates/search.template.html +1 -0
  262. package/deprecated/dist/components/templates/slider.template.html +1 -0
  263. package/deprecated/dist/components/templates/tabs-icon-only.template.html +1 -0
  264. package/deprecated/dist/components/templates/tabs.template.html +1 -0
  265. package/deprecated/dist/components/templates/textarea.template.html +1 -0
  266. package/deprecated/dist/components/templates/textinput.template.html +1 -0
  267. package/deprecated/dist/components/templates/textinputbutton.template.html +1 -0
  268. package/deprecated/dist/components/templates/title.template.html +1 -0
  269. package/deprecated/dist/components/templates/toggle-dynamic.template.html +1 -0
  270. package/deprecated/dist/components/templates/toggle.template.html +1 -0
  271. package/deprecated/dist/components/templates/video.designtime.html +1 -0
  272. package/deprecated/dist/components/templates/video.template.html +1 -0
  273. package/deprecated/dist/components/templates/views/public/home.view.html +1 -0
  274. package/deprecated/dist/components/templates/views/public/menu.view.html +1 -0
  275. package/deprecated/dist/css/app.css +1 -0
  276. package/deprecated/dist/i18n/locale_en_us.json +126 -0
  277. package/deprecated/dist/i18n/locale_pt_br.json +126 -0
  278. package/deprecated/dist/img/cron-icon/crn-QRCode.svg +1 -0
  279. package/deprecated/dist/img/cron-icon/crn-anchor.svg +1 -0
  280. package/deprecated/dist/img/cron-icon/crn-button-bar.svg +1 -0
  281. package/deprecated/dist/img/cron-icon/crn-button.svg +1 -0
  282. package/deprecated/dist/img/cron-icon/crn-card.svg +1 -0
  283. package/deprecated/dist/img/cron-icon/crn-carousel.svg +1 -0
  284. package/deprecated/dist/img/cron-icon/crn-chart.svg +1 -0
  285. package/deprecated/dist/img/cron-icon/crn-checkbox.svg +1 -0
  286. package/deprecated/dist/img/cron-icon/crn-container.svg +1 -0
  287. package/deprecated/dist/img/cron-icon/crn-cron-crud.svg +1 -0
  288. package/deprecated/dist/img/cron-icon/crn-datasource.svg +1 -0
  289. package/deprecated/dist/img/cron-icon/crn-dynamic-file.svg +1 -0
  290. package/deprecated/dist/img/cron-icon/crn-dynamic-image.svg +1 -0
  291. package/deprecated/dist/img/cron-icon/crn-enterprise-dynamic-combobox.svg +1 -0
  292. package/deprecated/dist/img/cron-icon/crn-evaluation.svg +1 -0
  293. package/deprecated/dist/img/cron-icon/crn-form.svg +1 -0
  294. package/deprecated/dist/img/cron-icon/crn-header.svg +1 -0
  295. package/deprecated/dist/img/cron-icon/crn-icon.svg +1 -0
  296. package/deprecated/dist/img/cron-icon/crn-image.svg +1 -0
  297. package/deprecated/dist/img/cron-icon/crn-infinite-scroll.svg +1 -0
  298. package/deprecated/dist/img/cron-icon/crn-input-floating.svg +1 -0
  299. package/deprecated/dist/img/cron-icon/crn-input-inline.svg +1 -0
  300. package/deprecated/dist/img/cron-icon/crn-ion-footer-bar.svg +1 -0
  301. package/deprecated/dist/img/cron-icon/crn-ion-list.svg +1 -0
  302. package/deprecated/dist/img/cron-icon/crn-item-swipe.svg +1 -0
  303. package/deprecated/dist/img/cron-icon/crn-kendo-chat.svg +1 -0
  304. package/deprecated/dist/img/cron-icon/crn-label.svg +1 -0
  305. package/deprecated/dist/img/cron-icon/crn-list-avatar.svg +1 -0
  306. package/deprecated/dist/img/cron-icon/crn-list-icon.svg +1 -0
  307. package/deprecated/dist/img/cron-icon/crn-list-item-avatar.svg +1 -0
  308. package/deprecated/dist/img/cron-icon/crn-list-item-icon.svg +1 -0
  309. package/deprecated/dist/img/cron-icon/crn-list-item-thumbnail.svg +1 -0
  310. package/deprecated/dist/img/cron-icon/crn-list-item.svg +1 -0
  311. package/deprecated/dist/img/cron-icon/crn-list-swipe.svg +1 -0
  312. package/deprecated/dist/img/cron-icon/crn-list-thumbnail.svg +1 -0
  313. package/deprecated/dist/img/cron-icon/crn-list.svg +1 -0
  314. package/deprecated/dist/img/cron-icon/crn-map.svg +1 -0
  315. package/deprecated/dist/img/cron-icon/crn-multiselect.svg +1 -0
  316. package/deprecated/dist/img/cron-icon/crn-paragraph.svg +1 -0
  317. package/deprecated/dist/img/cron-icon/crn-plugin.svg +1 -0
  318. package/deprecated/dist/img/cron-icon/crn-radio.svg +1 -0
  319. package/deprecated/dist/img/cron-icon/crn-radiogroup.svg +1 -0
  320. package/deprecated/dist/img/cron-icon/crn-range.svg +1 -0
  321. package/deprecated/dist/img/cron-icon/crn-rating.svg +1 -0
  322. package/deprecated/dist/img/cron-icon/crn-select.svg +1 -0
  323. package/deprecated/dist/img/cron-icon/crn-spacer.svg +1 -0
  324. package/deprecated/dist/img/cron-icon/crn-tabs-icon-only.svg +1 -0
  325. package/deprecated/dist/img/cron-icon/crn-tabs.svg +1 -0
  326. package/deprecated/dist/img/cron-icon/crn-text-component.svg +1 -0
  327. package/deprecated/dist/img/cron-icon/crn-textarea.svg +1 -0
  328. package/deprecated/dist/img/cron-icon/crn-textinput.svg +1 -0
  329. package/deprecated/dist/img/cron-icon/crn-textinputbutton.svg +1 -0
  330. package/deprecated/dist/img/cron-icon/crn-textinputicon.svg +1 -0
  331. package/deprecated/dist/img/cron-icon/crn-toggle.svg +1 -0
  332. package/deprecated/dist/img/cron-icon/crn-video.svg +1 -0
  333. package/deprecated/dist/img/placehold-100x100.png +0 -0
  334. package/deprecated/dist/img/placehold-300x200.png +0 -0
  335. package/deprecated/dist/img/placehold-900x500.png +0 -0
  336. package/deprecated/dist/img/qr-code.png +0 -0
  337. package/deprecated/dist/img/svg-charts.svg +1 -0
  338. package/deprecated/dist/img/user.svg +1 -0
  339. package/deprecated/dist/js/LanguageSelectDirective.js +1 -0
  340. package/deprecated/dist/js/LocaleService.js +1 -0
  341. package/deprecated/dist/js/app.authentication.js +1 -0
  342. package/deprecated/dist/js/app.js +1 -0
  343. package/deprecated/dist/js/controllers.authentication.js +1 -0
  344. package/deprecated/dist/js/controllers.js +1 -0
  345. package/deprecated/dist/js/custom.controllers.js +1 -0
  346. package/deprecated/dist/js/customModules.js +1 -0
  347. package/deprecated/dist/js/customStateProvider.js +0 -0
  348. package/deprecated/dist/js/directives.js +17 -0
  349. package/deprecated/dist/js/filters.js +1 -0
  350. package/deprecated/dist/js/local-dateformat.directive.js +1 -0
  351. package/deprecated/dist/js/reports/parameters.controller.js +1 -0
  352. package/deprecated/dist/js/reports/reports.service.js +1 -0
  353. package/deprecated/dist/js/services.js +1 -0
  354. package/deprecated/dist/js/upload.service.js +1 -0
  355. package/deprecated/img/cron-icon/crn-QRCode.svg +38 -0
  356. package/deprecated/img/cron-icon/crn-anchor.svg +29 -0
  357. package/deprecated/img/cron-icon/crn-button-bar.svg +1 -0
  358. package/deprecated/img/cron-icon/crn-button.svg +24 -0
  359. package/deprecated/img/cron-icon/crn-card.svg +1 -0
  360. package/deprecated/img/cron-icon/crn-carousel.svg +26 -0
  361. package/deprecated/img/cron-icon/crn-chart.svg +19 -0
  362. package/deprecated/img/cron-icon/crn-checkbox.svg +15 -0
  363. package/deprecated/img/cron-icon/crn-container.svg +1 -0
  364. package/deprecated/img/cron-icon/crn-cron-crud.svg +28 -0
  365. package/deprecated/img/cron-icon/crn-datasource.svg +27 -0
  366. package/deprecated/img/cron-icon/crn-dynamic-file.svg +1 -0
  367. package/deprecated/img/cron-icon/crn-dynamic-image.svg +25 -0
  368. package/deprecated/img/cron-icon/crn-enterprise-dynamic-combobox.svg +27 -0
  369. package/deprecated/img/cron-icon/crn-evaluation.svg +1 -0
  370. package/deprecated/img/cron-icon/crn-form.svg +24 -0
  371. package/deprecated/img/cron-icon/crn-header.svg +18 -0
  372. package/deprecated/img/cron-icon/crn-icon.svg +23 -0
  373. package/deprecated/img/cron-icon/crn-image.svg +20 -0
  374. package/deprecated/img/cron-icon/crn-infinite-scroll.svg +1 -0
  375. package/deprecated/img/cron-icon/crn-input-floating.svg +1 -0
  376. package/deprecated/img/cron-icon/crn-input-inline.svg +1 -0
  377. package/deprecated/img/cron-icon/crn-ion-footer-bar.svg +1 -0
  378. package/deprecated/img/cron-icon/crn-ion-list.svg +1 -0
  379. package/deprecated/img/cron-icon/crn-item-swipe.svg +15 -0
  380. package/deprecated/img/cron-icon/crn-kendo-chat.svg +1 -0
  381. package/deprecated/img/cron-icon/crn-label.svg +1 -0
  382. package/deprecated/img/cron-icon/crn-list-avatar.svg +1 -0
  383. package/deprecated/img/cron-icon/crn-list-icon.svg +1 -0
  384. package/deprecated/img/cron-icon/crn-list-item-avatar.svg +1 -0
  385. package/deprecated/img/cron-icon/crn-list-item-icon.svg +1 -0
  386. package/deprecated/img/cron-icon/crn-list-item-thumbnail.svg +1 -0
  387. package/deprecated/img/cron-icon/crn-list-item.svg +1 -0
  388. package/deprecated/img/cron-icon/crn-list-swipe.svg +17 -0
  389. package/deprecated/img/cron-icon/crn-list-thumbnail.svg +17 -0
  390. package/deprecated/img/cron-icon/crn-list.svg +16 -0
  391. package/deprecated/img/cron-icon/crn-map.svg +1 -0
  392. package/deprecated/img/cron-icon/crn-multiselect.svg +1 -0
  393. package/deprecated/img/cron-icon/crn-paragraph.svg +1 -0
  394. package/deprecated/img/cron-icon/crn-plugin.svg +44 -0
  395. package/deprecated/img/cron-icon/crn-radio.svg +21 -0
  396. package/deprecated/img/cron-icon/crn-radiogroup.svg +25 -0
  397. package/deprecated/img/cron-icon/crn-range.svg +1 -0
  398. package/deprecated/img/cron-icon/crn-rating.svg +20 -0
  399. package/deprecated/img/cron-icon/crn-select.svg +1 -0
  400. package/deprecated/img/cron-icon/crn-spacer.svg +1 -0
  401. package/deprecated/img/cron-icon/crn-tabs-icon-only.svg +24 -0
  402. package/deprecated/img/cron-icon/crn-tabs.svg +17 -0
  403. package/deprecated/img/cron-icon/crn-text-component.svg +22 -0
  404. package/deprecated/img/cron-icon/crn-textarea.svg +22 -0
  405. package/deprecated/img/cron-icon/crn-textinput.svg +23 -0
  406. package/deprecated/img/cron-icon/crn-textinputbutton.svg +33 -0
  407. package/deprecated/img/cron-icon/crn-textinputicon.svg +29 -0
  408. package/deprecated/img/cron-icon/crn-toggle.svg +1 -0
  409. package/deprecated/img/cron-icon/crn-video.svg +1 -0
  410. package/deprecated/img/placehold-100x100.png +0 -0
  411. package/deprecated/img/placehold-300x200.png +0 -0
  412. package/deprecated/img/placehold-900x500.png +0 -0
  413. package/deprecated/img/qr-code.png +0 -0
  414. package/deprecated/img/svg-charts.svg +1 -0
  415. package/deprecated/img/user.svg +18 -0
  416. package/dist/components/templates/list.thumbnail.template.html +1 -1
  417. package/dist/css/themes/custom/slate/custom-slate.css +1 -1
  418. package/dist/css/themes/custom/spacelab/custom-spacelab.css +1 -1
  419. package/dist/css/themes/custom/superhero/custom-superhero.css +1 -1
  420. package/dist/css/themes/custom/theme-general/theme-general.css +1 -1
  421. package/dist/css/themes/custom/united/custom-united.css +1 -1
  422. package/dist/css/themes/custom/yeti/custom-yeti.css +1 -1
  423. package/dist/js/app.authentication.js +1 -1
  424. package/dist/js/app.js +1 -1
  425. package/dist/js/controllers.authentication.js +1 -1
  426. package/dist/js/directives.js +1 -1
  427. package/js/app.authentication.js +0 -2
  428. package/js/app.js +0 -2
  429. package/js/controllers.authentication.js +36 -7
  430. package/js/customStateProvider.js +0 -2
  431. package/js/directives.js +61 -23
  432. package/package.json +1 -1
  433. package/postupdate.json +10 -0
  434. package/css/themes/deprecated/cronos.css +0 -55
  435. package/dist/css/themes/deprecated/material.min.css +0 -1
  436. /package/{css/themes/deprecated → deprecated/css}/custom-ionic.css +0 -0
  437. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/checkbox.css +0 -0
  438. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/col.css +0 -0
  439. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/dynamicImage.css +0 -0
  440. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/import_groupingOfCss.css +0 -0
  441. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/login.css +0 -0
  442. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/qrCodeCronapp.css +0 -0
  443. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/upload-image.css +0 -0
  444. /package/{css/themes/deprecated → deprecated/css}/old/modal.css +0 -0
  445. /package/{dist/css/themes/deprecated → deprecated/dist/css}/cronos.css +0 -0
  446. /package/{dist/css/themes/deprecated → deprecated/dist/css}/custom-ionic.css +0 -0
  447. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/checkbox.css +0 -0
  448. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/col.css +0 -0
  449. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/dynamicImage.css +0 -0
  450. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/import_groupingOfCss.css +0 -0
  451. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/login.css +0 -0
  452. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/qrCodeCronapp.css +0 -0
  453. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/upload-image.css +0 -0
  454. /package/{dist/css/themes/deprecated → deprecated/dist/css}/old/modal.css +0 -0
@@ -14,4 +14,4 @@ maskDirectiveAsDate.$inject=["$compile","$translate","$parse"],maskDirectiveMask
14
14
  </div>
15
15
  </ion-item>
16
16
  </ion-list>
17
- <ion-infinite-scroll></ion-infinite-scroll>`,defaultSearchTemplate="<div class=\"item item-input-inset\">\n <div class=\"item-input-wrapper\">\n <i class=\"icon ion-search placeholder-icon\"></i>\n <input aria-label=\"{{'template.crud.search' | translate}}\" type=\"text\" ng-model=\"vars.searchableList[options.randomModel]\" cronapp-filter=\"{{options.filterFields}}\" cronapp-filter-operator=\"\" cronapp-filter-caseinsensitive=\"false\"\n cronapp-filter-autopost=\"true\" crn-datasource=\"{{options.dataSourceScreen.name}}\" placeholder=\"{{'template.crud.search' | translate}}\">\n </div>\n <button ng-if=\"showButton()\" ng-click=\"limparSelecao()\"\n class=\"button-small cron-list-button-clean button button-inline button-positive component-holder\">\n <span cron-list-button-text>Limpar Sele\xE7\xE3o</span></button>\n</div>";var getExpression=function(e){return"rowData in ".concat(e).concat(".data")},buildFormat=function(e){var t="";return t=" | mask: \""+e.type+"\"",e.format&&(t=" | mask: \""+e.format+"\":\""+e.type+"\""),t},getEditCommand=function(e){return e+".startEditing(rowData)"},getCronappSecurity=function(e){return e.security?`cronapp-security="${e.security}"`:""},addDefaultButton=function(e,t){const a="<ion-option-button "+getCronappSecurity(t)+" class=\"button-positive ion-edit button-edit\" ng-click=\""+getEditCommand(e)+"\"><span>&nbsp;{{\"Permission.view.Edit\" | translate}}</span></ion-option-button>",n="<ion-option-button "+getCronappSecurity(t)+" class=\"button-assertive ion-trash-a button-delete\" ng-click=\""+e+".remove(rowData)\"><span>&nbsp;{{\"Permission.view.Remove\" | translate}}</span></ion-option-button>";if("edit|destroy"==t.command)return a.concat(n);return"edit"==t.command?a:"destroy"==t.command?n:void 0},encodeHTML=function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")},generateBlocklyCall=function(e){var t;if("client"==e.type){var a=e.blocklyClass.split("/"),n=a[a.length-1];t="blockly.js.blockly."+n,t+="."+e.blocklyMethod;var o="()";0<e.blocklyParams.length&&(o="(",e.blocklyParams.forEach(function(e){o+=(e.value?encodeHTML(e.value):"''")+","}.bind(this)),o=o.substr(0,o.length-1),o+=")"),t+=o}else if("server"==e.type){var n=e.blocklyClass+":"+e.blocklyMethod;t="cronapi.util.makeCallServerBlocklyAsync('"+n+"',null,null,",0<e.blocklyParams.length&&e.blocklyParams.forEach(function(e){t+=(e.value?encodeHTML(e.value):"''")+","}.bind(this)),t=t.substr(0,t.length-1),t+=")"}return t},addBlockly=function(e){return"<ion-option-button class=\"button-dark "+getCronappSecurity(e)+" ion-navigate\" ng-click=\""+generateBlocklyCall(e.blocklyInfo)+"\"></ion-option-button>"},isImage=function(e,t){for(var a,n=0;n<t.length;n++)if(a=t[n],e==a.name)return"Binary"==a.type;return!1},addCustomButton=function(e){return`<ion-option-button ${getCronappSecurity(e)} class="button-dark ${e.iconClass}" ng-click="listButtonClick($index, rowData, '${window.stringToJs(e.execute)}', $event)">${e.label}</ion-option-button> `};return{restrict:"E",require:"?ngModel",scope:!0,priority:9999998,terminal:!0,link:function(scope,element,attrs,ngModelCtrl){scope.hasValue=e=>null!==e&&e!==void 0;var optionsList={},dataSourceName="",buttons="";try{optionsList=JSON.parse(attrs.options),dataSourceName=optionsList.dataSourceScreen.name;var dataSource=eval(optionsList.dataSourceScreen.name),imageDirection=optionsList.imagePosition?optionsList.imagePosition:"left",iconDirection=optionsList.iconPosition?optionsList.iconPosition:"right",bothDirection="left"===imageDirection&&"left"===iconDirection?"left":"right"===imageDirection&&"right"===iconDirection?"right":"",checkboxTemplate="",modelArrayToInsert=[],isKey=!1;if(scope.options=optionsList,attrs.ngModel){var modelGetter=$parse(attrs.ngModel),modelSetter=modelGetter.assign;optionsList.allowMultiselect?(scope.verifyIsKey=function(e){return isKey=!1,optionsList.fieldType&&"key"===optionsList.fieldType&&(e=this.changeRowDataField(e),isKey=!0),e},scope.limparSelecao=function(){modelSetter(scope,[])},scope.isChecked=function(e){let t=!1;return modelArrayToInsert=modelGetter(scope),e=scope.verifyIsKey(e),t=scope.hasObjectChecked(isKey,e,null,event),scope.isSelected=t,t},scope.hasObjectChecked=function(e,t,a,n){let o=!1;return Array.isArray(modelArrayToInsert)&&(e&&"object"!=typeof t?modelArrayToInsert.forEach((e,a)=>{t===e&&(o=!0)}):modelArrayToInsert.forEach((e,a)=>{dataSource.objectIsEquals(t,e)&&(o=!0)})),o},scope.checkboxButtonClick=function(e,t,a,n){let o=!1,l=$(n.currentTarget),r=l.find("input[type=checkbox]:checked").length;modelArrayToInsert=modelGetter(scope),Array.isArray(modelArrayToInsert)||(modelArrayToInsert=[]),$(n.target).is("input[type=checkbox]")||a||(0<r?l.find("input[type=checkbox]").prop("checked",!1):l.find("input[type=checkbox]").prop("checked",!0));let s=$(n.currentTarget).find("input[type=checkbox]");t=scope.verifyIsKey(t),$(s).is(":checked")?(o=scope.hasObjectChecked(isKey,t,a,n),!o&&modelArrayToInsert.push(t)):isKey&&"object"!=typeof t?modelArrayToInsert.forEach((e,a)=>{t===e&&modelArrayToInsert.splice(a,1)}):modelArrayToInsert.forEach((e,a)=>{dataSource.objectIsEquals(t,e)&&modelArrayToInsert.splice(a,1)}),modelSetter(scope,modelArrayToInsert),n.stopPropagation()}):scope.setRowDataModel=function(e,t,a,n){optionsList.fieldType&&"key"===optionsList.fieldType&&(t=this.changeRowDataField(t)),modelSetter(scope,t)},scope.changeRowDataField=function(e){e=dataSource.getKeyValues(e);var t=Object.keys(e);return 1===t.length&&(e=e[t]),e}}scope.listButtonClick=function(e,t,a,n){if("INPUT"!=n.target.tagName){dataSource.goTo(t);var o={item:t,index:e},l={currentData:dataSource.data,datasource:dataSource,selectedIndex:e,index:e,selectedRow:t,consolidated:o,item:t,selectedKeys:dataSource.getKeyValues(dataSource.active,!0)};scope.$eval(a,l),n.preventDefault(),n.stopPropagation()}};var searchableField=null,isNativeEdit=!1,addedImage=!1;scope.options=optionsList,scope.options.fields={},scope.options.isImageFromDropbox=!1,scope.options.editableButtonClass="",scope.options.itemContentClass="",scope.options.itemSimple="",scope.options.filterFields="",scope.options.randomModel=_Mathfloor(9e3*Math.random())+1e3,optionsList.imagePosition||(scope.options.imagePosition="left"),optionsList.iconPosition||(scope.options.iconPosition="right"),optionsList.imageType||(scope.options.imageType="avatar");for(var column,imageDirection=optionsList.imagePosition?optionsList.imagePosition:"left",iconDirection=optionsList.iconPosition?optionsList.iconPosition:"right",bothDirection="left"===imageDirection&&"left"===iconDirection?"left":"right"===imageDirection&&"right"===iconDirection?"right":"",visibleColumns=[],i=0;i<optionsList.columns.length;i++)column=optionsList.columns[i],column.visible&&visibleColumns.push(optionsList.columns[i]);for(var column,i=0;i<visibleColumns.length;i++)column=visibleColumns[i],column.field&&"Database"==column.dataType?(scope.options.fields["security"+i]=column.security,scope.options.fields["field"+i]=column.field,scope.options.fields["type"+i]=column.type,scope.options.fields["mask"+i]=column.format,!addedImage&&isImage(column.field,optionsList.dataSourceScreen.entityDataSource.schemaFields)&&"do-not-show"!==optionsList.imageType?(scope.options.fields.image=column.field,delete scope.options.fields["field"+i],addedImage=!0,scope.options.isImageFromDropbox=!1):addedImage||"image"!=column.type?column.filterable&&(searchableField=null==searchableField?column.field:searchableField+";"+column.field):(scope.options.fields.image=column.field,delete scope.options.fields["field"+i],addedImage=!0,scope.options.isImageFromDropbox=!0)):("Command"==column.dataType||"Blockly"==column.dataType||"Customized"==column.dataType)&&(scope.options.editableButtonClass="item-complex item-right-editable","Command"==column.dataType?(scope.options.fields["field"+i]=column.field,buttons=buttons.concat(addDefaultButton(dataSourceName,column)),("edit"==column.command||"edit|destroy"==column.command)&&(isNativeEdit=!0)):"Blockly"==column.dataType?buttons=buttons.concat(addBlockly(column)):"Customized"==column.dataType&&(buttons=buttons.concat(addCustomButton(column))))}catch(e){console.log("CronList invalid configuration! "+e)}scope.options.editableButtonClass||addedImage?!scope.options.editableButtonClass&&addedImage&&(scope.options.itemContentClass="item-content",scope.options.editableButtonClass="item-complex",scope.options.itemSimple=""):(scope.options.itemContentClass="item-content",scope.options.itemSimple="item-simple"),scope.options.fields.image&&"do-not-show"!=scope.options.imageType&&(scope.options.imageClassPosition="item-"+scope.options.imageType+"-"+scope.options.imagePosition),addedImage||(scope.options.imageType="do-not-show"),scope.options.icon&&scope.options.iconPosition&&scope.options.imageType&&(scope.options.iconClassPosition="item-icon-"+scope.options.iconPosition),bothDirection&&scope.options.icon&&scope.options.imagePosition&&scope.options.imageType&&(scope.options.imageToClassPosition="image-to-"+scope.options.imagePosition+"-"+scope.options.imageType,scope.options.textToClassPosition="text-to-"+scope.options.iconPosition+"-"+scope.options.imageType),scope.options.advancedTemplate||(scope.options.advancedTemplate=defaultAdvancedTemplate),scope.options.searchTemplate||(scope.options.searchTemplate=defaultSearchTemplate);var templateDyn=null;searchableField?(scope.options.filterFields=searchableField,templateDyn=scope.options.searchTemplate+scope.options.advancedTemplate):templateDyn=scope.options.advancedTemplate;for(let e,t=0;t<visibleColumns.length;t++)if(e=visibleColumns[t],e.field&&"Database"===e.dataType&&scope.options.fields[`security${t}`]){let e=`ng-if="rowData[options.fields.field${t}]"`,a=`${e} cronapp-security="${scope.options.fields["security"+t]}"`;templateDyn=templateDyn.replace(e,a)}templateDyn=$(templateDyn),scope.options.xattrTextPosition=attrs.xattrTextPosition,templateDyn.attr("type",optionsList.listType),$(element).replaceWith(templateDyn);var $element=templateDyn,ionItem=$element.find("ion-item");"rowData in datasource"===$(ionItem).attr("ng-repeat")&&ionItem.attr("ng-repeat",getExpression(dataSourceName)),isNativeEdit&&ionItem.attr("ng-click",getEditCommand(dataSourceName));var ngClickAttrTemplate="",ngClickAttrTemplateCheckbox="";optionsList.allowMultiselect?(attrs.ngModel&&(ngClickAttrTemplateCheckbox="checkboxButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),checkboxTemplate=$element.find("ul"),attrs.ngClick&&(checkboxTemplate=$(checkboxTemplate).attr("ng-click",ngClickAttrTemplateCheckbox).get(0).outerHTML,ngClickAttrTemplate=ngClickAttrTemplate+"listButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),ionItem.attr("ng-click",ngClickAttrTemplateCheckbox+ngClickAttrTemplate)):(attrs.ngModel&&(ngClickAttrTemplate="setRowDataModel($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),attrs.ngClick&&(ngClickAttrTemplate=ngClickAttrTemplate+"listButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),ionItem.attr("ng-click",ngClickAttrTemplate)),attrs.onDoubleTap&&ionItem.attr("on-double-tap",attrs.onDoubleTap),attrs.onHold&&ionItem.attr("on-hold",attrs.onHold),attrs.onTap&&ionItem.attr("on-tap",attrs.onTap),attrs.onSwipe&&ionItem.attr("on-swipe",attrs.onSwipe);const attrsExcludeds=["options","ng-repeat","ng-click"],filteredItems=Object.values(attrs.$attr).filter(function(e){return!attrsExcludeds.includes(e)});for(let e in filteredItems)ionItem.attr(filteredItems[e],attrs[e]);ionItem.append(buttons);var firstScroll=!0;scope.nextPageInfinite=function(){return $element.find("ion-item").length<dataSource.data.length||0==dataSource.data.length?void scope.$broadcast("scroll.infiniteScrollComplete"):void($element.find("ion-item").length==dataSource.data.length&&(firstScroll?(scope.$broadcast("scroll.infiniteScrollComplete"),firstScroll=!1):dataSource.nextPage(function(){scope.$broadcast("scroll.infiniteScrollComplete")})))};var infiniteScroll=$element.filter(function(e){return $(this).is("ion-infinite-scroll")});infiniteScroll.attr("on-infinite","nextPageInfinite()"),infiniteScroll.attr("distance","1%"),scope.showButton=function(){if(optionsList.allowMultiselect){var e=modelGetter(scope);if(null!==e&&e!==void 0)return 0<e.length}return!1},$compile(templateDyn,null,9999998)(scope)}}}]).directive("cronInfiniteScroll",["$compile",function($compile){"use strict";return{restrict:"EA",link:function(scope,element,attrs){var dataSource=attrs.cronInfiniteScroll?eval(attrs.cronInfiniteScroll):attrs.crnDatasource?eval(attrs.crnDatasource):void 0;if(dataSource){scope.nextPageInfinite=function(){dataSource.nextPage(),scope.$broadcast("scroll.infiniteScrollComplete")};var templateDyn=$("<ion-infinite-scroll></ion-infinite-scroll>");$(element).html(templateDyn);var infiniteScroll=$(element).find("ion-infinite-scroll");infiniteScroll.attr("on-infinite","nextPageInfinite()"),infiniteScroll.attr("distance","1%"),$compile(templateDyn)(element.scope())}}}}]).filter("raw",["$translate",function(e){return function(e){if(null!=e&&e!==void 0){if("number"==typeof e)return e+"";if("boolean"==typeof e)return e+"";if(e instanceof Date)var t="datetimeoffset'"+e.toISOString()+"'";else return 10<=e.length&&e.match(ISO_PATTERN)?"datetimeoffset'"+e+"'":"'"+e.replaceAll("'","''")+"'"}else return""}}]).directive("xkeyField",["$compile",function(e){"use strict";return{restrict:"A",link:function(t,a,n){if(n.xkeyField&&n.xdisplayField){var o="";n.crnDatasource&&(o=n.crnDatasource),a.removeAttr("xkey-field"),a.removeAttr("xdisplay-field"),a.append("<option ng-repeat=\"opt in "+o+".data\" value=\"{{opt."+n.xkeyField+"}}\">{{opt."+n.xdisplayField+"}}</option>"),e($(a))(t)}}}}]).directive("cronMobileMenu",["$compile","$translate",function(e,t){"use strict";var a=function(e){var a="";return e&&null!=e&&e.subMenuOptions&&null!=e.subMenuOptions&&Array.isArray(e.subMenuOptions)&&e.subMenuOptions.forEach(function(e){var n=e.security&&null!=e.security?" cronapp-security=\""+e.security+"\" ":"",o=e.action&&null!=e.action?" ng-click=\""+e.action+"\" ":"",l=e.hide&&null!=e.hide?" ng-hide=\""+e.hide+"\" ":"",r=e.iconClass&&null!=e.iconClass?e.iconClass:"",s=e.imagePosition&&null!=e.imagePosition?"item-icon-"+e.imagePosition:"",d=e.textPosition&&null!=e.textPosition?"text-"+e.textPosition:"",c=e.contentTheme&&null!=e.contentTheme?e.contentTheme:"",p=e.iconTheme&&null!=e.iconTheme?e.iconTheme:"",u=t.instant(e.title);a=a+" <a menu-close=\"\" class=\"item "+s+"\" "+o+n+l+"> <i class=\""+r+" "+p+"\" style=\"font-size: 150%\"></i> <div class=\"item-content "+d+"\"> <h2 class=\""+c+"\">"+u+"</h2> </div> </a> "}),a};return{restrict:"EA",link:function(t,n,o){o.$observe("options",function(o){var l="<ul class=\"nav navbar-nav\" style=\"float:none\"></ul>",r={};try{r=JSON.parse(o)}catch(t){console.log("CronMobileMenu: Invalid configuration!")}var s=$("<ul class=\"nav navbar-nav\" style=\"float:none\"></ul>"),d=a(r);s.append(d);var c=angular.element(s);n.html(""),n.append(s),n.attr("id",null),e(c)(t)})}}}]).directive("srcLazy",["$compile",function(e){"use strict";return{restrict:"A",link:function(e,t,a){var n=$(t);setTimeout(function(){return n.is(":appeared")?void t.attr("src",a.srcLazy):void(a.srcLazyPreview?n.attr("src",a.srcLazyPreview):n.css("visibility","hidden"),n.appear(),n.on("appear",function(e,t){n.attr("src-lazy")&&(!a.srcLazyPreview&&n.css("visibility","visible"),console.log(a.srcLazy),n.attr("src",a.srcLazy),n.attr("src-lazy",""))}))},100),e.$on("$destroy",function(){n.appearStop()})}}}]).directive("crnSkin",["$compile","$http",function(e,t){return{restrict:"A",link:function(e,a,n,o){n.crnSkin&&t.get(n.crnSkin,{cache:!0}).then(e=>{if(e.data){let t=e.data;t.startsWith(":root{")&&(t=t.substring(6)),t.endsWith("}")&&(t=t.substring(0,t.length-2)),$element=$(a);let n=$element.attr("style")||"";n&&(n+=", "),n+=t,$element.attr("style",n)}})}}}]).directive("cronMap",["$compile",function(e){return{restrict:"AE",replace:!0,link:function(t,a,n){var o=a.find(".cronMap")[0];e(o)(a.scope());var l=a.find(".cronMapIframe")[0];e(l)(a.scope());var r="",s=n.src,d=n.width,c=n.height;r=`<iframe class="cronMapIframe" src="${s}" width="${d}" height="${c}" style="border:0;" allowfullscreen="" loading="lazy"></iframe>`,a.html(r),e(r)(a.scope())}}}]).directive("signaturePad",["$compile","$window",function(e,t){"use strict";var a,n,o=null;return{restrict:"E",require:"ngModel",scope:!0,replace:!0,transclude:!0,template:"<div style=\"height: 200px; width: 100%;\"> <canvas style=\"width:100%; height: 100%;\" ng-click=\"mouseup()\" ng-mouseup=\"mouseup()\"></canvas> <div class=\"component-holder ng-scope col-md-2\" style=\"bottom: 0; position: absolute; padding-left: 5px;\" data-component=\"crn-button\"> <button class=\"button button-block button-medium filled button-energized col-xs-3\" ng-click=\"clear()\"> <i class=\"glyphicon glyphicon-erase\" icon-theme=\"\"></i> <span class=\"\" text-theme=\"\">{{'clear'|translate}}</span> </button> </div> </div>",scope:{dataurl:"=",ngClick:"@",ngModel:"="},controller:["$scope",function(t){let a=()=>{let e=t.signaturePad.toDataURL();return e&&(e=e.split(",")[1]),e};t.mouseup=function(n){t.signaturePad.isEmpty()||(t.ngModel=a())},t.$watch("ngModel",function(e,n){e!==n&&(a()!==e&&t.signaturePad.fromDataURL("data:image/png;base64,"+e,{ratio:1}),t.ngModel=e)},!0),t.clear=function(){t.signaturePad.clear(),t.ngModel=null}}],link:function(n,o,l,r,s){a=o.find("canvas")[0],n.onResize=function(){var e=Math.max(t.devicePixelRatio||1,1),a=o.find("canvas")[0],n=document.createElement("canvas");n.width=a.width,n.height=a.height;var l=n.getContext("2d");l.drawImage(a,0,0),a.width=a.offsetWidth*e,a.height=a.offsetHeight*e,a.getContext("2d").drawImage(n,0,0),a.getContext("2d").scale(e,e)},n.onResize(),n.signaturePad=new SignaturePad(a),angular.element(t).on("resize",function(){n.onResize()}),e(o)(o.scope());let d=!1;$(a).on("pointerdown",t=>{1===t.which&&(d=!0),t.preventDefault()}),$(a).on("pointerup",t=>{1===t.which&&d&&(d=!1,s(()=>angular.element(a).triggerHandler("mouseup")))})}}}]).directive("cronFrame",cronFrame).directive("crnComponent",cronFrame).directive("cronVideo",["$compile",function(e){return{restrict:"AE",replace:!0,link:function(t,a,n){var o=a.find(".cronVideo")[0];e(o)(a.scope());var l=a.find(".cronVideoIframe")[0];e(l)(a.scope());var r="",s=n.src,d=n.width,c=n.height,p=n.title;r=`<iframe class="cronVideoIframe" src="${s}" width="${d}" height="${c}" title="${p}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> </iframe>`,a.html(r),e(r)(a.scope())}}}]).directive("cronSelect",["$compile",function(e){return{restrict:"E",replace:!0,require:"ngModel",link:async function(e,t,a,n){let o={};try{o=JSON.parse(a.options)}catch(e){console.error("ComboBox invalid configuration! "+e)}let l=a.id?" id=\""+a.id+"\"":"",r=a.name?" name=\""+a.name+"\"":"",s=t.parent();$(s).append("<input style=\"width: 100%;\" "+l+r+" class=\"cronSelect\"/>");let d=$(s).find("input.cronSelect"),c=a.cronDisabled,p=await app.kendoHelper.getConfigCombobox(o,e);p.close=a.ngClose?function(){e.$eval(a.ngClose)}:void 0,p.dataBound=a.ngDataBound?function(){e.$eval(a.ngDataBound)}:void 0,p.filtering=a.ngFiltering?function(){e.$eval(a.ngFiltering)}:void 0,p.select=a.ngSelect?function(){e.$eval(a.ngSelect)}:void 0,p.change=function(){f.$apply(function(){h.$setViewValue(this.value())}.bind(u))};let u;u=!0===o.dontAllowOutsideList?d.kendoDropDownList(p).data("kendoDropDownList"):d.kendoComboBox(p).data("kendoComboBox"),$(t).remove();let m,g=()=>{if(m=$(s).find(".k-input.cronSelect"),m.length){m.attr("ng-required",a.ngRequired),"true"===a.ngRequired&&m.attr("required","required"),m.attr("ng-model",a.ngModel),m.attr("id",a.id),m.attr("validationmessage",a.validationmessage);let e=m.parent();m.on("change",()=>{"true"===a.ngRequired&&(0==m.val().length?(e.addClass("ng-invalid-required"),m.addClass("ng-invalid-required")):(e.removeClass("ng-invalid-required"),m.removeClass("ng-invalid-required")))})}else setTimeout(()=>g())};g(),c?u.enable(!1):u.enable(!0);let f=e,h=n,v=!0;n&&(n.$formatters.push(function(t){let n="";return("boolean"==typeof t||t)&&(n=t),u.value(n),!v&&a.ngChange&&e.$eval(a.ngChange),v=!1,u.value(n),n}),n.$parsers.push(function(e){return m&&m.trigger("change"),"boolean"==typeof e||e?e:null}))}}}]),app.directive("kendoChat",["$compile","$timeout",function(e,t){return{restrict:"E",link:function(e,a,n){function o(){let e=$(".k-chat");e.height($(window).height()-e.offset().top)}let l=n.ngOnPostMessage,r=n.ngOnSendMessage,s=n.ngOnTypingEnd,d=n.ngOnTypingStart,c=n.ngOnActionClick,p=n.chatUserId,u=n.chatUsername,m=n.chatUserImage,g=n.chatPlaceholder,f=localStorage.getItem("_u")===void 0?null:JSON.parse(localStorage.getItem("_u")),h=window.navigator.userAgent,v="";f&&f.user&&(v=f.user.name);let y=$("<div></div>");y.kendoChat({messages:{placeholder:g},user:{id:p||h,name:u||v,iconUrl:m}}),chat=y.data("kendoChat"),chat.bind("post",t=>{if(l)try{let a={chatMessage:t};e.$eval(l,a)}catch(t){console.error(t)}}),chat.bind("sendMessage",t=>{if(r)try{let a={chatMessage:t};e.$eval(r,a)}catch(t){console.error(t)}}),chat.bind("typingStart",t=>{if(d)try{let a={chatMessage:t};e.$eval(d,a)}catch(t){console.error(t)}}),chat.bind("typingEnd",t=>{if(s)try{let a={chatMessage:t};e.$eval(s,a)}catch(t){console.error(t)}}),chat.bind("actionClick",t=>{if(c)try{let a={chatMessage:t};e.$eval(c,a)}catch(t){console.error(t)}}),a.empty().append(y),$(window).resize(()=>{o()}),t(()=>{o()})}}}])}(app),function(e){function t(){return e(this).is(":appeared")}function a(){return!e(this).data("_appear_triggered")}function n(){r=!1;for(var n,o=0,s=l.length;o<s;o++){if(n=e(l[o]).filter(t),n.filter(a).data("_appear_triggered",!0).trigger("appear",[n]),c[o]){var d=c[o].not(n);d.data("_appear_triggered",!1).trigger("disappear",[d])}c[o]=n}}function o(e){l.push(e),c.push()}var l=[],r=!1,s={interval:250,force_process:!1},d=e(window),c=[];e.expr.pseudos.appeared=e.expr.createPseudo(function(t){return function(t){var a=e(t),n=d.scrollLeft(),o=d.scrollTop(),l=a.offset(),r=l.left,s=l.top;return!!(s+a.height()>=o&&s-(a.data("appear-top-offset")||0)<=o+d.height()&&r+a.width()>=n&&r-(a.data("appear-left-offset")||0)<=n+d.width())}}),e.fn.extend({appear:function(t,a){return e.appear(this,a),this}}),e.fn.extend({appearStop:function(t,a){return e.appearStop(this,a),this}}),e.extend({appearStop:function(e,t){var a=-1;for(i=0;i<l.length;i++)if(l[i].get(0)==e.get(0)){a=i;break}-1!=a&&l.splice(a)},appear:function(t,a){var l=e.extend({},s,a||{}),d=e("ion-content");if(d.length){if(!d.get(0).checkBinded){var c=function(){r||(r=!0,setTimeout(n,l.interval))};d.scroll(c).resize(c),d.get(0).checkBinded=!0}l.force_process&&setTimeout(n,l.interval),o(t)}}})}(function(){return"undefined"==typeof module?jQuery:require("jquery")}());function maskDirectiveAsDate(e,t,a){return maskDirective(e,t,"as-date",a)}function maskDirectiveMask(e,t,a){return maskDirective(e,t,"mask",a)}function maskDirective(e,t,a,n){return{restrict:"A",require:"?ngModel",link:function(e,o,l,r){var s=n(l.ngModel),d=s.assign;if("as-date"!=a||void 0===l.mask){var c=$(o),p=c.attr("type");if("checkbox"!=p&&"password"!=p){c.data("type",p),c.attr("type","text"),r&&(r.$formatters=[],r.$parsers=[]),void 0!==l.asDate&&"text"==p&&(p="date");var u=!0,m=!1,g=l.mask||l.format;g=g?parseMaskType(g,t):parseMaskType(p,t),g.endsWith(";0")&&(m=!0);var f=g.replace(";1","").replace(";0","").replace(";local","").trim(),h=l.keyboard,v=t.instant("keyboardDecimalChar")&&1==t.instant("keyboardDecimalChar").length?t.instant("keyboardDecimalChar"):",";if(h&&parseKeyboardType(h,v,c),null!=f&&0!=f.length){if("date"==p||"datetime"==p||"datetime-local"==p||"month"==p||"time"==p||"time-local"==p||"week"==p){var y="date"==p||"datetime"==p||"time"==p;window.fixedTimeZone||(y=!1),"date"==p?(f=moment.HTML5_FMT.DATE,c.attr("type","date")):"month"==p?(f=moment.HTML5_FMT.MONTH,c.attr("type","month")):"week"==p?(f=moment.HTML5_FMT.WEEK,c.attr("type","week")):"datetime"==p||"datetime-local"==p?(f=moment.HTML5_FMT.DATETIME_LOCAL,c.attr("type","datetime-local")):("time"==p||"time-local"==p)&&(f=moment.HTML5_FMT.TIME,c.attr("type","time")),r&&(r.$formatters.push(function(e){return e?y?moment(e).utcOffset(window.timeZoneOffset).format(f):moment(e).format(f):null}),r.$parsers.push(function(e){return e?y?moment(e,f).utcOffset(window.timeZoneOffset,!0).toDate():moment(e,f).toDate():new Date(e)}))}else if("number"==p||"money"==p||"integer"==p||"money-decimal"==p){m=!0,u=!1;var b=f.trim().replace(/\./g,"").replace(/\,/g,"").replace(/#/g,"").replace(/0/g,"").replace(/9/g,"");h||("integer"==p||"money-decimal"==p?h="integer":h="number");var k="",x="",T="",M=",",w=0;f.startsWith(b)?k=b:f.endsWith(b)&&(x=b);var C=f.trim().replace(k,"").replace(x,"").trim();C.startsWith("#.")?T=".":C.startsWith("#,")&&(T=",");var S=null;if(-1==C.indexOf(",0")?-1!=C.indexOf(".0")&&(M=".",S=".0"):(M=",",S=",0"),null!=S){var D=C.substring(C.indexOf(S)+1);w=D.length}var F="numeric";0==w&&(F="integer");var P={rightAlign:"money"==p||"money-decimal"==p,unmaskAsNumber:!0,allowMinus:"money"!=p&&"money-decimal"!=p,prefix:k,suffix:x,radixPoint:M,digits:w,numericInput:"money-decimal"==p};T&&(P.autoGroup=!0,P.groupSeparator=T),"money-decimal"==p&&(F="currency"),$(o).inputmask(F,P),useInputMaskPlugin(o,r,e,d,f)}else"text"==p||"tel"==p?(h||"tel"!=p||(h="tel"),l.maskPlaceholder?(options={},options.placeholder=l.maskPlaceholder,$(o).inputmask(f,options),$(o).off("keypress"),m&&useInputMaskPlugin(o,r,e,d,f)):(c.mask(f),useMaskPlugin(o,r,e,d,m))):("email"==p||"password"==p||"search"==p)&&(h||(h=p));h&&parseKeyboardType(h,v,c)}}}}}}function useInputMaskPlugin(e,t,a,n,o){var l=$(e),r=function(t){var o=$(this).inputmask("unmaskedvalue");$(this).data("rawvalue",o),e._ignoreFormatter=!0,a.safeApply(function(){n(a,o)})};$(e).off("keypress"),$(e).on("keyup",r),t&&(t.$formatters.push(function(t){return e._ignoreFormatter?(e._ignoreFormatter=!1,$(e).val()):(e._ignoreFormatter=!1,null!=t&&null!=t&&""!==t?format(o,t):null)}),t.$parsers.push(function(e){if(e!=null&&null!=e&&""!==e){var t=l.inputmask("unmaskedvalue");if(""!==t)return t}return null}))}function useMaskPlugin(e,t,a,n,o){var l=$(e),r=function(){o&&$(this).data("rawvalue",$(this).cleanVal())};$(e).on("keydown",r).on("keyup",r),o&&t&&(t.$formatters.push(function(e){return e?l.masked(e):null}),t.$parsers.push(function(e){return e?l.cleanVal():null}))}function parseKeyboardType(e,t,a){("integer"==e||"number"==e||"tel"==e)&&(a.attr("pattern","\\d*"),a.attr("inputmode","decimal")),("tel"==e||"email"==e||"search"==e||"password"==e)&&a.attr("type",e),"ios"===cordova.platformId&&"number"==e&&(a.attr("decimal","true"),a.attr("allow-multiple-decimals","true"),a.attr("decimal-char",t))}function parseMaskType(e,t){return"datetime"==e||"datetime-local"==e?(e=t.instant("Format.DateTime"),"Format.DateTime"==e&&(e="DD/MM/YYYY HH:mm:ss")):"date"==e?(e=t.instant("Format.Date"),"Format.Date"==e&&(e="DD/MM/YYYY")):"time"==e||"time-local"==e?(e=t.instant("Format.Hour"),"Format.Hour"==e&&(e="HH:mm:ss")):"month"==e?e="MMMM":"number"==e?(e=t.instant("Format.Decimal"),"Format.Decimal"==e&&(e="0,00")):"money"==e||"money-decimal"==e?(e=t.instant("Format.Money"),"Format.Money"==e&&(e="#.#00,00")):"integer"==e?e="0":"week"==e?e="dddd":"tel"==e?e="(99) 99999-9999;0":"text"==e?e="":"string"==e&&(e=""),e}function transformText(){return{restrict:"E",require:"?ngModel",link:function(e,t,a,n){let o=function(e,t){if(e&&t&&("string"==typeof t||t instanceof String)){if("uppercase"===e.css("text-transform"))return t.toUpperCase();if("lowercase"===e.css("text-transform"))return t.toLowerCase()}return t};n&&(n.$formatters.push(function(e){return o(t,e)}),n.$parsers.push(function(e){return o(t,e)}))}}}function cronFrame(e,t,a){"use strict";return{restrict:"AE",link:function(a,n,o,l){a.$watch(function(){return o.origin},function(l){let r="",s=o.style||"",d=o.class||"";if(o.origin)if(o.type||(o.type="include"),"include"==o.type)r=$(`<div style="${s}" class="${d}" ng-include="'${o.origin}'"></div>`);else if("frame"==o.type){var c=t.trustAsResourceUrl(o.origin);r=$(`<iframe style="${s}" class="${d}" ng-src="${c}" width="100%" height="100%" loading="lazy"></iframe>`)}let p=angular.element(r);p=e(p)(a),n.html(""),n.append(p)})}}}app.kendoHelper={parseOptionsCronToConfigKendo:function(e,t,a){let n=!1;e.dynamic&&"false"!=e.dynamic?e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&(e.dataSourceScreen.entityDataSource.append=!0,t=app.kendoHelper.getDataSource(e.dataSourceScreen.entityDataSource,a,!0,e.dataSourceScreen.rowsPerPage),t.transport.read=app.kendoHelper.getEventReadCombo,n=!0):(n=!0,e.dataValueField=e.dataValueField||"value",e.dataTextField=e.dataTextField||"key"),e.dataValueField&&""!=e.dataValueField.trim()||(e.dataValueField=null==e.dataTextField?void 0:e.dataTextField);var o=function(t){var a=e.dataSourceScreen.entityDataSource.schemaFields;for(count=0;count<a.length;count++)if(t==a[count].name){return a[count].type.toLowerCase();break}return null},l=function(e){var t=["date","time","datetime"];return-1<t.indexOf(e)?e:null};!e.customTemplate&&e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&e.dataSourceScreen.entityDataSource.schemaFields&&(e.format||l(o(e.dataTextField)))&&(e.template="#= useMask("+e.dataTextField+",'"+e.format+"','"+o(e.dataTextField)+"') #",e.valueTemplate="#= useMask("+e.dataTextField+",'"+e.format+"','"+o(e.dataTextField)+"') #");var r={dataTextField:null==e.dataTextField?void 0:e.dataTextField,dataValueField:null==e.dataValueField?void 0:e.dataValueField,dataSource:t,headerTemplate:null==e.headerTemplate?void 0:e.headerTemplate,template:null==e.template?void 0:e.template,placeholder:null==e.placeholder?void 0:e.placeholder,footerTemplate:null==e.footerTemplate?void 0:e.footerTemplate,filter:null==e.filter?void 0:e.filter,valuePrimitive:n,valueTemplate:null==e.valueTemplate?void 0:e.valueTemplate,suggest:!0};return e.optionLabel&&(e.optionLabelText=e.optionLabel,e.optionLabelValue=""),r.optionLabel={},r.optionLabel[r.dataTextField]=void 0===e.optionLabelText?"":e.optionLabelText,r.optionLabel[r.dataValueField]=void 0===e.optionLabelValue?null:e.optionLabelValue,r},getConfigCombobox:async function(e,t){let a={};if(e){if(!e.dynamic||"false"==e.dynamic){a.data=null==e.staticDataSource?void 0:e.staticDataSource;for(let n=0;n<a.data.length;n++)try{a.data[n].key&&a.data[n].key.startsWith("cronapi.server(")&&(a.data[n].key=a.data[n].key.replace(".run(",".toPromise().run("));let e=await t.$eval(a.data[n].key);a.data[n].key=void 0!==e&&null!==e?e:a.data[n].key}catch(t){a.data[n].key=a.data[n].key}}return config=this.parseOptionsCronToConfigKendo(e,a,t),config}return{}}};
17
+ <ion-infinite-scroll></ion-infinite-scroll>`,defaultSearchTemplate="<div class=\"item item-input-inset\">\n <div class=\"item-input-wrapper\">\n <i class=\"icon ion-search placeholder-icon\"></i>\n <input aria-label=\"{{'template.crud.search' | translate}}\" type=\"text\" ng-model=\"vars.searchableList[options.randomModel]\" cronapp-filter=\"{{options.filterFields}}\" cronapp-filter-operator=\"\" cronapp-filter-caseinsensitive=\"false\"\n cronapp-filter-autopost=\"true\" crn-datasource=\"{{options.dataSourceScreen.name}}\" placeholder=\"{{'template.crud.search' | translate}}\">\n </div>\n <button ng-if=\"showButton()\" ng-click=\"limparSelecao()\"\n class=\"button-small cron-list-button-clean button button-inline button-positive component-holder\">\n <span cron-list-button-text>Limpar Sele\xE7\xE3o</span></button>\n</div>";var getExpression=function(e){return"rowData in ".concat(e).concat(".data")},buildFormat=function(e){var t="";return t=" | mask: \""+e.type+"\"",e.format&&(t=" | mask: \""+e.format+"\":\""+e.type+"\""),t},getEditCommand=function(e){return e+".startEditing(rowData)"},getCronappSecurity=function(e){return e.security?`cronapp-security="${e.security}"`:""},addDefaultButton=function(e,t){const a="<ion-option-button "+getCronappSecurity(t)+" class=\"button-positive ion-edit button-edit\" ng-click=\""+getEditCommand(e)+"\"><span>&nbsp;{{\"Permission.view.Edit\" | translate}}</span></ion-option-button>",n="<ion-option-button "+getCronappSecurity(t)+" class=\"button-assertive ion-trash-a button-delete\" ng-click=\""+e+".remove(rowData)\"><span>&nbsp;{{\"Permission.view.Remove\" | translate}}</span></ion-option-button>";if("edit|destroy"==t.command)return a.concat(n);return"edit"==t.command?a:"destroy"==t.command?n:void 0},encodeHTML=function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")},generateBlocklyCall=function(e){var t;if("client"==e.type){var a=e.blocklyClass.split("/"),n=a[a.length-1];t="blockly.js.blockly."+n,t+="."+e.blocklyMethod;var o="()";0<e.blocklyParams.length&&(o="(",e.blocklyParams.forEach(function(e){o+=(e.value?encodeHTML(e.value):"''")+","}.bind(this)),o=o.substr(0,o.length-1),o+=")"),t+=o}else if("server"==e.type){var n=e.blocklyClass+":"+e.blocklyMethod;t="cronapi.util.makeCallServerBlocklyAsync('"+n+"',null,null,",0<e.blocklyParams.length&&e.blocklyParams.forEach(function(e){t+=(e.value?encodeHTML(e.value):"''")+","}.bind(this)),t=t.substr(0,t.length-1),t+=")"}return t},addBlockly=function(e){return"<ion-option-button class=\"button-dark "+getCronappSecurity(e)+" ion-navigate\" ng-click=\""+generateBlocklyCall(e.blocklyInfo)+"\"></ion-option-button>"},isImage=function(e,t){for(var a,n=0;n<t.length;n++)if(a=t[n],e==a.name)return"Binary"==a.type;return!1},addCustomButton=function(e){return`<ion-option-button ${getCronappSecurity(e)} class="button-dark ${e.iconClass}" ng-click="listButtonClick($index, rowData, '${window.stringToJs(e.execute)}', $event)">${e.label}</ion-option-button> `};return{restrict:"E",require:"?ngModel",scope:!0,priority:9999998,terminal:!0,link:function(scope,element,attrs,ngModelCtrl){scope.hasValue=e=>null!==e&&e!==void 0;var optionsList={},dataSourceName="",buttons="";try{optionsList=JSON.parse(attrs.options),dataSourceName=optionsList.dataSourceScreen.name;var dataSource=eval(optionsList.dataSourceScreen.name),imageDirection=optionsList.imagePosition?optionsList.imagePosition:"left",iconDirection=optionsList.iconPosition?optionsList.iconPosition:"right",bothDirection="left"===imageDirection&&"left"===iconDirection?"left":"right"===imageDirection&&"right"===iconDirection?"right":"",checkboxTemplate="",modelArrayToInsert=[],isKey=!1;if(scope.options=optionsList,attrs.ngModel){var modelGetter=$parse(attrs.ngModel),modelSetter=modelGetter.assign;optionsList.allowMultiselect?(scope.verifyIsKey=function(e){return isKey=!1,optionsList.fieldType&&"key"===optionsList.fieldType&&(e=this.changeRowDataField(e),isKey=!0),e},scope.limparSelecao=function(){modelSetter(scope,[])},scope.isChecked=function(e){let t=!1;return modelArrayToInsert=modelGetter(scope),e=scope.verifyIsKey(e),t=scope.hasObjectChecked(isKey,e,null,event),scope.isSelected=t,t},scope.hasObjectChecked=function(e,t,a,n){let o=!1;return Array.isArray(modelArrayToInsert)&&(e&&"object"!=typeof t?modelArrayToInsert.forEach((e,a)=>{t===e&&(o=!0)}):modelArrayToInsert.forEach((e,a)=>{dataSource.objectIsEquals(t,e)&&(o=!0)})),o},scope.checkboxButtonClick=function(e,t,a,n){let o=!1,l=$(n.currentTarget),r=l.find("input[type=checkbox]:checked").length;modelArrayToInsert=modelGetter(scope),Array.isArray(modelArrayToInsert)||(modelArrayToInsert=[]),$(n.target).is("input[type=checkbox]")||a||(0<r?l.find("input[type=checkbox]").prop("checked",!1):l.find("input[type=checkbox]").prop("checked",!0));let s=$(n.currentTarget).find("input[type=checkbox]");t=scope.verifyIsKey(t),$(s).is(":checked")?(o=scope.hasObjectChecked(isKey,t,a,n),!o&&modelArrayToInsert.push(t)):isKey&&"object"!=typeof t?modelArrayToInsert.forEach((e,a)=>{t===e&&modelArrayToInsert.splice(a,1)}):modelArrayToInsert.forEach((e,a)=>{dataSource.objectIsEquals(t,e)&&modelArrayToInsert.splice(a,1)}),modelSetter(scope,modelArrayToInsert),n.stopPropagation()}):scope.setRowDataModel=function(e,t,a,n){optionsList.fieldType&&"key"===optionsList.fieldType&&(t=this.changeRowDataField(t)),modelSetter(scope,t)},scope.changeRowDataField=function(e){e=dataSource.getKeyValues(e);var t=Object.keys(e);return 1===t.length&&(e=e[t]),e}}scope.listButtonClick=function(e,t,a,n){if("INPUT"!=n.target.tagName){dataSource.goTo(t);var o={item:t,index:e},l={currentData:dataSource.data,datasource:dataSource,selectedIndex:e,index:e,selectedRow:t,consolidated:o,item:t,selectedKeys:dataSource.getKeyValues(dataSource.active,!0)};scope.$eval(a,l),n.preventDefault(),n.stopPropagation()}};var searchableField=null,isNativeEdit=!1,addedImage=!1;scope.options=optionsList,scope.options.fields={},scope.options.isImageFromDropbox=!1,scope.options.editableButtonClass="",scope.options.itemContentClass="",scope.options.itemSimple="",scope.options.filterFields="",scope.options.randomModel=_Mathfloor(9e3*Math.random())+1e3,optionsList.imagePosition||(scope.options.imagePosition="left"),optionsList.iconPosition||(scope.options.iconPosition="right"),optionsList.imageType||(scope.options.imageType="avatar");for(var column,imageDirection=optionsList.imagePosition?optionsList.imagePosition:"left",iconDirection=optionsList.iconPosition?optionsList.iconPosition:"right",bothDirection="left"===imageDirection&&"left"===iconDirection?"left":"right"===imageDirection&&"right"===iconDirection?"right":"",visibleColumns=[],i=0;i<optionsList.columns.length;i++)column=optionsList.columns[i],column.visible&&visibleColumns.push(optionsList.columns[i]);for(var column,i=0;i<visibleColumns.length;i++)column=visibleColumns[i],column.field&&"Database"==column.dataType?(scope.options.fields["security"+i]=column.security,scope.options.fields["field"+i]=column.field,scope.options.fields["type"+i]=column.type,scope.options.fields["mask"+i]=column.format,!addedImage&&isImage(column.field,optionsList.dataSourceScreen.entityDataSource.schemaFields)&&"do-not-show"!==optionsList.imageType?(scope.options.fields.image=column.field,delete scope.options.fields["field"+i],addedImage=!0,scope.options.isImageFromDropbox=!1):addedImage||"image"!=column.type?column.filterable&&(searchableField=null==searchableField?column.field:searchableField+";"+column.field):(scope.options.fields.image=column.field,delete scope.options.fields["field"+i],addedImage=!0,scope.options.isImageFromDropbox=!0)):("Command"==column.dataType||"Blockly"==column.dataType||"Customized"==column.dataType)&&(scope.options.editableButtonClass="item-complex item-right-editable","Command"==column.dataType?(scope.options.fields["field"+i]=column.field,buttons=buttons.concat(addDefaultButton(dataSourceName,column)),("edit"==column.command||"edit|destroy"==column.command)&&(isNativeEdit=!0)):"Blockly"==column.dataType?buttons=buttons.concat(addBlockly(column)):"Customized"==column.dataType&&(buttons=buttons.concat(addCustomButton(column))))}catch(e){console.log("CronList invalid configuration! "+e)}scope.options.editableButtonClass||addedImage?!scope.options.editableButtonClass&&addedImage&&(scope.options.itemContentClass="item-content",scope.options.editableButtonClass="item-complex",scope.options.itemSimple=""):(scope.options.itemContentClass="item-content",scope.options.itemSimple="item-simple"),scope.options.fields.image&&"do-not-show"!=scope.options.imageType&&(scope.options.imageClassPosition="item-"+scope.options.imageType+"-"+scope.options.imagePosition),addedImage||(scope.options.imageType="do-not-show"),scope.options.icon&&scope.options.iconPosition&&scope.options.imageType&&(scope.options.iconClassPosition="item-icon-"+scope.options.iconPosition),bothDirection&&scope.options.icon&&scope.options.imagePosition&&scope.options.imageType&&(scope.options.imageToClassPosition="image-to-"+scope.options.imagePosition+"-"+scope.options.imageType,scope.options.textToClassPosition="text-to-"+scope.options.iconPosition+"-"+scope.options.imageType),scope.options.advancedTemplate||(scope.options.advancedTemplate=defaultAdvancedTemplate),scope.options.searchTemplate||(scope.options.searchTemplate=defaultSearchTemplate);var templateDyn=null;searchableField?(scope.options.filterFields=searchableField,templateDyn=scope.options.searchTemplate+scope.options.advancedTemplate):templateDyn=scope.options.advancedTemplate;for(let e,t=0;t<visibleColumns.length;t++)if(e=visibleColumns[t],e.field&&"Database"===e.dataType&&scope.options.fields[`security${t}`]){let e=`ng-if="rowData[options.fields.field${t}]"`,a=`${e} cronapp-security="${scope.options.fields["security"+t]}"`;templateDyn=templateDyn.replace(e,a)}templateDyn=$(templateDyn),scope.options.xattrTextPosition=attrs.xattrTextPosition,templateDyn.attr("type",optionsList.listType),$(element).replaceWith(templateDyn);var $element=templateDyn,ionItem=$element.find("ion-item");"rowData in datasource"===$(ionItem).attr("ng-repeat")&&ionItem.attr("ng-repeat",getExpression(dataSourceName)),isNativeEdit&&ionItem.attr("ng-click",getEditCommand(dataSourceName));var ngClickAttrTemplate="",ngClickAttrTemplateCheckbox="";optionsList.allowMultiselect?(attrs.ngModel&&(ngClickAttrTemplateCheckbox="checkboxButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),checkboxTemplate=$element.find("ul"),attrs.ngClick&&(checkboxTemplate=$(checkboxTemplate).attr("ng-click",ngClickAttrTemplateCheckbox).get(0).outerHTML,ngClickAttrTemplate=ngClickAttrTemplate+"listButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),ionItem.attr("ng-click",ngClickAttrTemplateCheckbox+ngClickAttrTemplate)):(attrs.ngModel&&(ngClickAttrTemplate="setRowDataModel($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),attrs.ngClick&&(ngClickAttrTemplate=ngClickAttrTemplate+"listButtonClick($index, rowData, '"+window.stringToJs(attrs.ngClick)+"', $event);"),ionItem.attr("ng-click",ngClickAttrTemplate)),attrs.onDoubleTap&&ionItem.attr("on-double-tap",attrs.onDoubleTap),attrs.onHold&&ionItem.attr("on-hold",attrs.onHold),attrs.onTap&&ionItem.attr("on-tap",attrs.onTap),attrs.onSwipe&&ionItem.attr("on-swipe",attrs.onSwipe);const attrsExcludeds=["options","ng-repeat","ng-click"],filteredItems=Object.values(attrs.$attr).filter(function(e){return!attrsExcludeds.includes(e)});for(let e in filteredItems)ionItem.attr(filteredItems[e],attrs[e]);ionItem.append(buttons);var firstScroll=!0;scope.nextPageInfinite=function(){return $element.find("ion-item").length<dataSource.data.length||0==dataSource.data.length?void scope.$broadcast("scroll.infiniteScrollComplete"):void($element.find("ion-item").length==dataSource.data.length&&(firstScroll?(scope.$broadcast("scroll.infiniteScrollComplete"),firstScroll=!1):dataSource.nextPage(function(){scope.$broadcast("scroll.infiniteScrollComplete")})))};var infiniteScroll=$element.filter(function(e){return $(this).is("ion-infinite-scroll")});infiniteScroll.attr("on-infinite","nextPageInfinite()"),infiniteScroll.attr("distance","1%"),scope.showButton=function(){if(optionsList.allowMultiselect){var e=modelGetter(scope);if(null!==e&&e!==void 0)return 0<e.length}return!1},$compile(templateDyn,null,9999998)(scope)}}}]).directive("cronInfiniteScroll",["$compile",function($compile){"use strict";return{restrict:"EA",link:function(scope,element,attrs){var dataSource=attrs.cronInfiniteScroll?eval(attrs.cronInfiniteScroll):attrs.crnDatasource?eval(attrs.crnDatasource):void 0;if(dataSource){scope.nextPageInfinite=function(){dataSource.nextPage(),scope.$broadcast("scroll.infiniteScrollComplete")};var templateDyn=$("<ion-infinite-scroll></ion-infinite-scroll>");$(element).html(templateDyn);var infiniteScroll=$(element).find("ion-infinite-scroll");infiniteScroll.attr("on-infinite","nextPageInfinite()"),infiniteScroll.attr("distance","1%"),$compile(templateDyn)(element.scope())}}}}]).filter("raw",["$translate",function(e){return function(e){if(null!=e&&e!==void 0){if("number"==typeof e)return e+"";if("boolean"==typeof e)return e+"";if(e instanceof Date)var t="datetimeoffset'"+e.toISOString()+"'";else return 10<=e.length&&e.match(ISO_PATTERN)?"datetimeoffset'"+e+"'":"'"+e.replaceAll("'","''")+"'"}else return""}}]).directive("xkeyField",["$compile",function(e){"use strict";return{restrict:"A",link:function(t,a,n){if(n.xkeyField&&n.xdisplayField){var o="";n.crnDatasource&&(o=n.crnDatasource),a.removeAttr("xkey-field"),a.removeAttr("xdisplay-field"),a.append("<option ng-repeat=\"opt in "+o+".data\" value=\"{{opt."+n.xkeyField+"}}\">{{opt."+n.xdisplayField+"}}</option>"),e($(a))(t)}}}}]).directive("cronMobileMenu",["$compile","$translate",function(e,t){"use strict";var a=function(e){var a="";return e&&null!=e&&e.subMenuOptions&&null!=e.subMenuOptions&&Array.isArray(e.subMenuOptions)&&e.subMenuOptions.forEach(function(e){var n=e.security&&null!=e.security?" cronapp-security=\""+e.security+"\" ":"",o=e.action&&null!=e.action?" ng-click=\""+e.action+"\" ":"",l=e.hide&&null!=e.hide?" ng-hide=\""+e.hide+"\" ":"",r=e.iconClass&&null!=e.iconClass?e.iconClass:"",s=e.imagePosition&&null!=e.imagePosition?"item-icon-"+e.imagePosition:"",d=e.textPosition&&null!=e.textPosition?"text-"+e.textPosition:"",c=e.contentTheme&&null!=e.contentTheme?e.contentTheme:"",p=e.iconTheme&&null!=e.iconTheme?e.iconTheme:"",u=t.instant(e.title);a=a+" <a menu-close=\"\" class=\"item "+s+"\" "+o+n+l+"> <i class=\""+r+" "+p+"\" style=\"font-size: 150%\"></i> <div class=\"item-content "+d+"\"> <h2 class=\""+c+"\">"+u+"</h2> </div> </a> "}),a};return{restrict:"EA",link:function(t,n,o){o.$observe("options",function(o){var l="<ul class=\"nav navbar-nav\" style=\"float:none\"></ul>",r={};try{r=JSON.parse(o)}catch(t){console.log("CronMobileMenu: Invalid configuration!")}var s=$("<ul class=\"nav navbar-nav\" style=\"float:none\"></ul>"),d=a(r);s.append(d);var c=angular.element(s);n.html(""),n.append(s),n.attr("id",null),e(c)(t)})}}}]).directive("srcLazy",["$compile",function(e){"use strict";return{restrict:"A",link:function(e,t,a){var n=$(t);setTimeout(function(){return n.is(":appeared")?void t.attr("src",a.srcLazy):void(a.srcLazyPreview?n.attr("src",a.srcLazyPreview):n.css("visibility","hidden"),n.appear(),n.on("appear",function(e,t){n.attr("src-lazy")&&(!a.srcLazyPreview&&n.css("visibility","visible"),console.log(a.srcLazy),n.attr("src",a.srcLazy),n.attr("src-lazy",""))}))},100),e.$on("$destroy",function(){n.appearStop()})}}}]).directive("crnSkin",["$compile","$http",function(e,t){return{restrict:"A",link:function(e,a,n,o){n.crnSkin&&t.get(n.crnSkin,{cache:!0}).then(e=>{if(e.data){let t=e.data;t.startsWith(":root{")&&(t=t.substring(6)),t.endsWith("}")&&(t=t.substring(0,t.length-2)),$element=$(a);let n=$element.attr("style")||"";n&&(n+=", "),n+=t,$element.attr("style",n)}})}}}]).directive("cronMap",["$compile",function(e){return{restrict:"AE",replace:!0,link:function(t,a,n){var o=a.find(".cronMap")[0];e(o)(a.scope());var l=a.find(".cronMapIframe")[0];e(l)(a.scope());var r="",s=n.src,d=n.width,c=n.height;r=`<iframe class="cronMapIframe" src="${s}" width="${d}" height="${c}" style="border:0;" allowfullscreen="" loading="lazy"></iframe>`,a.html(r),e(r)(a.scope())}}}]).directive("signaturePad",["$compile","$window",function(e,t){"use strict";var a,n,o=null;return{restrict:"E",require:"ngModel",scope:!0,replace:!0,transclude:!0,template:"<div style=\"height: 200px; width: 100%;\"> <canvas style=\"width:100%; height: 100%;\" ng-click=\"mouseup()\" ng-mouseup=\"mouseup()\"></canvas> <div class=\"component-holder ng-scope col-md-2\" style=\"bottom: 0; position: absolute; padding-left: 5px;\" data-component=\"crn-button\"> <button class=\"button button-block button-medium filled button-energized col-xs-3\" ng-click=\"clear()\"> <i class=\"glyphicon glyphicon-erase\" icon-theme=\"\"></i> <span class=\"\" text-theme=\"\">{{'clear'|translate}}</span> </button> </div> </div>",scope:{dataurl:"=",ngClick:"@",ngModel:"="},controller:["$scope",function(t){let a=()=>{let e=t.signaturePad.toDataURL();return e&&(e=e.split(",")[1]),e};t.mouseup=function(n){t.signaturePad.isEmpty()||(t.ngModel=a())},t.$watch("ngModel",function(e,n){e!==n&&(a()!==e&&t.signaturePad.fromDataURL("data:image/png;base64,"+e,{ratio:1}),t.ngModel=e)},!0),t.clear=function(){t.signaturePad.clear(),t.ngModel=null}}],link:function(n,o,l,r,s){a=o.find("canvas")[0],n.onResize=function(){var e=Math.max(t.devicePixelRatio||1,1),a=o.find("canvas")[0],n=document.createElement("canvas");n.width=a.width,n.height=a.height;var l=n.getContext("2d");l.drawImage(a,0,0),a.width=a.offsetWidth*e,a.height=a.offsetHeight*e,a.getContext("2d").drawImage(n,0,0),a.getContext("2d").scale(e,e)},n.onResize(),n.signaturePad=new SignaturePad(a),angular.element(t).on("resize",function(){n.onResize()}),e(o)(o.scope());let d=!1;$(a).on("pointerdown",t=>{1===t.which&&(d=!0),t.preventDefault()}),$(a).on("pointerup",t=>{1===t.which&&d&&(d=!1,s(()=>angular.element(a).triggerHandler("mouseup")))})}}}]).directive("cronFrame",cronFrame).directive("crnFrame",cronFrame).directive("crnComponent",cronFrame).directive("cronVideo",["$compile",function(e){return{restrict:"AE",replace:!0,link:function(t,a,n){var o=a.find(".cronVideo")[0];e(o)(a.scope());var l=a.find(".cronVideoIframe")[0];e(l)(a.scope());var r="",s=n.src,d=n.width,c=n.height,p=n.title;r=`<iframe class="cronVideoIframe" src="${s}" width="${d}" height="${c}" title="${p}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> </iframe>`,a.html(r),e(r)(a.scope())}}}]).directive("cronSelect",["$compile",function(e){return{restrict:"E",replace:!0,require:"ngModel",link:async function(e,t,a,n){let o={};try{o=JSON.parse(a.options)}catch(e){console.error("ComboBox invalid configuration! "+e)}let l=a.id?" id=\""+a.id+"\"":"",r=a.name?" name=\""+a.name+"\"":"",s=t.parent();$(s).append("<input style=\"width: 100%;\" "+l+r+" class=\"cronSelect\"/>");let d=$(s).find("input.cronSelect"),c=a.cronDisabled,p=await app.kendoHelper.getConfigCombobox(o,e);p.close=a.ngClose?function(){e.$eval(a.ngClose)}:void 0,p.dataBound=a.ngDataBound?function(){e.$eval(a.ngDataBound)}:void 0,p.filtering=a.ngFiltering?function(){e.$eval(a.ngFiltering)}:void 0,p.select=a.ngSelect?function(){e.$eval(a.ngSelect)}:void 0,p.change=function(){f.$apply(function(){h.$setViewValue(this.value())}.bind(u))};let u;u=!0===o.dontAllowOutsideList?d.kendoDropDownList(p).data("kendoDropDownList"):d.kendoComboBox(p).data("kendoComboBox"),$(t).remove();let m,g=()=>{if(m=$(s).find(".k-input.cronSelect"),m.length){m.attr("ng-required",a.ngRequired),"true"===a.ngRequired&&m.attr("required","required"),m.attr("ng-model",a.ngModel),m.attr("id",a.id),m.attr("validationmessage",a.validationmessage);let e=m.parent();m.on("change",()=>{"true"===a.ngRequired&&(0==m.val().length?(e.addClass("ng-invalid-required"),m.addClass("ng-invalid-required")):(e.removeClass("ng-invalid-required"),m.removeClass("ng-invalid-required")))})}else setTimeout(()=>g())};g(),c?u.enable(!1):u.enable(!0);let f=e,h=n,v=!0;n&&(n.$formatters.push(function(t){let n="";return("boolean"==typeof t||t)&&(n=t),u.value(n),!v&&a.ngChange&&e.$eval(a.ngChange),v=!1,u.value(n),n}),n.$parsers.push(function(e){return m&&m.trigger("change"),"boolean"==typeof e||e?e:null}))}}}]),app.directive("kendoChat",["$compile","$timeout",function(e,t){return{restrict:"E",link:function(e,a,n){function o(){let e=$(".k-chat");e.height($(window).height()-e.offset().top)}let l=n.ngOnPostMessage,r=n.ngOnSendMessage,s=n.ngOnTypingEnd,d=n.ngOnTypingStart,c=n.ngOnActionClick,p=n.chatUserId,u=n.chatUsername,m=n.chatUserImage,g=n.chatPlaceholder,f=localStorage.getItem("_u")===void 0?null:JSON.parse(localStorage.getItem("_u")),h=window.navigator.userAgent,v="";f&&f.user&&(v=f.user.name);let y=$("<div></div>");y.kendoChat({messages:{placeholder:g},user:{id:p||h,name:u||v,iconUrl:m}}),chat=y.data("kendoChat"),chat.bind("post",t=>{if(l)try{let a={chatMessage:t};e.$eval(l,a)}catch(t){console.error(t)}}),chat.bind("sendMessage",t=>{if(r)try{let a={chatMessage:t};e.$eval(r,a)}catch(t){console.error(t)}}),chat.bind("typingStart",t=>{if(d)try{let a={chatMessage:t};e.$eval(d,a)}catch(t){console.error(t)}}),chat.bind("typingEnd",t=>{if(s)try{let a={chatMessage:t};e.$eval(s,a)}catch(t){console.error(t)}}),chat.bind("actionClick",t=>{if(c)try{let a={chatMessage:t};e.$eval(c,a)}catch(t){console.error(t)}}),a.empty().append(y),$(window).resize(()=>{o()}),t(()=>{o()})}}}])}(app),function(e){function t(){return e(this).is(":appeared")}function a(){return!e(this).data("_appear_triggered")}function n(){r=!1;for(var n,o=0,s=l.length;o<s;o++){if(n=e(l[o]).filter(t),n.filter(a).data("_appear_triggered",!0).trigger("appear",[n]),c[o]){var d=c[o].not(n);d.data("_appear_triggered",!1).trigger("disappear",[d])}c[o]=n}}function o(e){l.push(e),c.push()}var l=[],r=!1,s={interval:250,force_process:!1},d=e(window),c=[];e.expr.pseudos.appeared=e.expr.createPseudo(function(t){return function(t){var a=e(t),n=d.scrollLeft(),o=d.scrollTop(),l=a.offset(),r=l.left,s=l.top;return!!(s+a.height()>=o&&s-(a.data("appear-top-offset")||0)<=o+d.height()&&r+a.width()>=n&&r-(a.data("appear-left-offset")||0)<=n+d.width())}}),e.fn.extend({appear:function(t,a){return e.appear(this,a),this}}),e.fn.extend({appearStop:function(t,a){return e.appearStop(this,a),this}}),e.extend({appearStop:function(e,t){var a=-1;for(i=0;i<l.length;i++)if(l[i].get(0)==e.get(0)){a=i;break}-1!=a&&l.splice(a)},appear:function(t,a){var l=e.extend({},s,a||{}),d=e("ion-content");if(d.length){if(!d.get(0).checkBinded){var c=function(){r||(r=!0,setTimeout(n,l.interval))};d.scroll(c).resize(c),d.get(0).checkBinded=!0}l.force_process&&setTimeout(n,l.interval),o(t)}}})}(function(){return"undefined"==typeof module?jQuery:require("jquery")}());function maskDirectiveAsDate(e,t,a){return maskDirective(e,t,"as-date",a)}function maskDirectiveMask(e,t,a){return maskDirective(e,t,"mask",a)}function maskDirective(e,t,a,n){return{restrict:"A",require:"?ngModel",link:function(e,o,l,r){var s=n(l.ngModel),d=s.assign;if("as-date"!=a||void 0===l.mask){var c=$(o),p=c.attr("type");if("checkbox"!=p&&"password"!=p){c.data("type",p),c.attr("type","text"),r&&(r.$formatters=[],r.$parsers=[]),void 0!==l.asDate&&"text"==p&&(p="date");var u=!0,m=!1,g=l.mask||l.format;g=g?parseMaskType(g,t):parseMaskType(p,t),g.endsWith(";0")&&(m=!0);var f=g.replace(";1","").replace(";0","").replace(";local","").trim(),h=l.keyboard,v=t.instant("keyboardDecimalChar")&&1==t.instant("keyboardDecimalChar").length?t.instant("keyboardDecimalChar"):",";if(h&&parseKeyboardType(h,v,c),null!=f&&0!=f.length){if("date"==p||"datetime"==p||"datetime-local"==p||"month"==p||"time"==p||"time-local"==p||"week"==p){var y="date"==p||"datetime"==p||"time"==p;window.fixedTimeZone||(y=!1),"date"==p?(f=moment.HTML5_FMT.DATE,c.attr("type","date")):"month"==p?(f=moment.HTML5_FMT.MONTH,c.attr("type","month")):"week"==p?(f=moment.HTML5_FMT.WEEK,c.attr("type","week")):"datetime"==p||"datetime-local"==p?(f=moment.HTML5_FMT.DATETIME_LOCAL,c.attr("type","datetime-local")):("time"==p||"time-local"==p)&&(f=moment.HTML5_FMT.TIME,c.attr("type","time")),r&&(r.$formatters.push(function(e){return e?y?moment(e).utcOffset(window.timeZoneOffset).format(f):moment(e).format(f):null}),r.$parsers.push(function(e){return e?y?moment(e,f).utcOffset(window.timeZoneOffset,!0).toDate():moment(e,f).toDate():new Date(e)}))}else if("number"==p||"money"==p||"integer"==p||"money-decimal"==p){m=!0,u=!1;var b=f.trim().replace(/\./g,"").replace(/\,/g,"").replace(/#/g,"").replace(/0/g,"").replace(/9/g,"");h||("integer"==p||"money-decimal"==p?h="integer":h="number");var k="",x="",T="",M=",",w=0;f.startsWith(b)?k=b:f.endsWith(b)&&(x=b);var C=f.trim().replace(k,"").replace(x,"").trim();C.startsWith("#.")?T=".":C.startsWith("#,")&&(T=",");var S=null;if(-1==C.indexOf(",0")?-1!=C.indexOf(".0")&&(M=".",S=".0"):(M=",",S=",0"),null!=S){var D=C.substring(C.indexOf(S)+1);w=D.length}var F="numeric";0==w&&(F="integer");var P={rightAlign:"money"==p||"money-decimal"==p,unmaskAsNumber:!0,allowMinus:"money"!=p&&"money-decimal"!=p,prefix:k,suffix:x,radixPoint:M,digits:w,numericInput:"money-decimal"==p};T&&(P.autoGroup=!0,P.groupSeparator=T),"money-decimal"==p&&(F="currency"),$(o).inputmask(F,P),useInputMaskPlugin(o,r,e,d,f)}else"text"==p||"tel"==p?(h||"tel"!=p||(h="tel"),l.maskPlaceholder?(options={},options.placeholder=l.maskPlaceholder,$(o).inputmask(f,options),$(o).off("keypress"),m&&useInputMaskPlugin(o,r,e,d,f)):(c.mask(f),useMaskPlugin(o,r,e,d,m))):("email"==p||"password"==p||"search"==p)&&(h||(h=p));h&&parseKeyboardType(h,v,c)}}}}}}function useInputMaskPlugin(e,t,a,n,o){var l=$(e),r=function(t){var o=$(this).inputmask("unmaskedvalue");$(this).data("rawvalue",o),e._ignoreFormatter=!0,a.safeApply(function(){n(a,o)})};$(e).off("keypress"),$(e).on("keyup",r),t&&(t.$formatters.push(function(t){return e._ignoreFormatter?(e._ignoreFormatter=!1,$(e).val()):(e._ignoreFormatter=!1,null!=t&&null!=t&&""!==t?format(o,t):null)}),t.$parsers.push(function(e){if(e!=null&&null!=e&&""!==e){var t=l.inputmask("unmaskedvalue");if(""!==t)return t}return null}))}function useMaskPlugin(e,t,a,n,o){var l=$(e),r=function(){o&&$(this).data("rawvalue",$(this).cleanVal())};$(e).on("keydown",r).on("keyup",r),o&&t&&(t.$formatters.push(function(e){return e?l.masked(e):null}),t.$parsers.push(function(e){return e?l.cleanVal():null}))}function parseKeyboardType(e,t,a){("integer"==e||"number"==e||"tel"==e)&&(a.attr("pattern","\\d*"),a.attr("inputmode","decimal")),("tel"==e||"email"==e||"search"==e||"password"==e)&&a.attr("type",e),"ios"===cordova.platformId&&"number"==e&&(a.attr("decimal","true"),a.attr("allow-multiple-decimals","true"),a.attr("decimal-char",t))}function parseMaskType(e,t){return"datetime"==e||"datetime-local"==e?(e=t.instant("Format.DateTime"),"Format.DateTime"==e&&(e="DD/MM/YYYY HH:mm:ss")):"date"==e?(e=t.instant("Format.Date"),"Format.Date"==e&&(e="DD/MM/YYYY")):"time"==e||"time-local"==e?(e=t.instant("Format.Hour"),"Format.Hour"==e&&(e="HH:mm:ss")):"month"==e?e="MMMM":"number"==e?(e=t.instant("Format.Decimal"),"Format.Decimal"==e&&(e="0,00")):"money"==e||"money-decimal"==e?(e=t.instant("Format.Money"),"Format.Money"==e&&(e="#.#00,00")):"integer"==e?e="0":"week"==e?e="dddd":"tel"==e?e="(99) 99999-9999;0":"text"==e?e="":"string"==e&&(e=""),e}function transformText(){return{restrict:"E",require:"?ngModel",link:function(e,t,a,n){let o=function(e,t){if(e&&t&&("string"==typeof t||t instanceof String)){if("uppercase"===e.css("text-transform"))return t.toUpperCase();if("lowercase"===e.css("text-transform"))return t.toLowerCase()}return t};n&&(n.$formatters.push(function(e){return o(t,e)}),n.$parsers.push(function(e){return o(t,e)}))}}}function cronFrame($compile,$sce,$parse){"use strict";return{restrict:"AE",link:function(scope,element,attrs,ngModelCtrl){scope.fragment=scope.fragment||{};var framentMap=scope.fragment[element.parent.id]||{};scope.$watch(function(){return attrs.origin},function(newVal){let template="",style=attrs.style||"",clazz=attrs.class||"";if(attrs.origin)if(attrs.type||(attrs.type="include"),"include"==attrs.type){let str=`<div style="${style}" class="${clazz}" ng-include="'${attrs.origin}'" ng-if="true"></div>`;if(template=$(str),attrs.params)try{let params=eval(attrs.params);for(let e in params){let t=params[e];"expression"==t.type?scope.$watch(t.value,function(e){framentMap[t.key]=e;var a=$(str);a.attr("onload",`params = ${JSON.stringify(framentMap)}`);var n=$compile(a)(scope);element.html(n)}):framentMap[t.key]=t.value}template.attr("onload",`params = ${JSON.stringify(framentMap)}`)}catch(e){console.error(e)}}else if("frame"==attrs.type){var url=$sce.trustAsResourceUrl(attrs.origin);template=$(`<iframe style="${style}" class="${clazz}" ng-src="${url}" width="100%" height="100%" loading="lazy"></iframe>`)}let html=angular.element(template);html=$compile(html)(scope),element.html(""),element.append(html)})}}}app.kendoHelper={parseOptionsCronToConfigKendo:function(e,t,a){let n=!1;e.dynamic&&"false"!=e.dynamic?e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&(e.dataSourceScreen.entityDataSource.append=!0,t=app.kendoHelper.getDataSource(e.dataSourceScreen.entityDataSource,a,!0,e.dataSourceScreen.rowsPerPage),t.transport.read=app.kendoHelper.getEventReadCombo,n=!0):(n=!0,e.dataValueField=e.dataValueField||"value",e.dataTextField=e.dataTextField||"key"),e.dataValueField&&""!=e.dataValueField.trim()||(e.dataValueField=null==e.dataTextField?void 0:e.dataTextField);var o=function(t){var a=e.dataSourceScreen.entityDataSource.schemaFields;for(count=0;count<a.length;count++)if(t==a[count].name){return a[count].type.toLowerCase();break}return null},l=function(e){var t=["date","time","datetime"];return-1<t.indexOf(e)?e:null};!e.customTemplate&&e.dataSourceScreen&&e.dataSourceScreen.entityDataSource&&e.dataSourceScreen.entityDataSource.schemaFields&&(e.format||l(o(e.dataTextField)))&&(e.template="#= useMask("+e.dataTextField+",'"+e.format+"','"+o(e.dataTextField)+"') #",e.valueTemplate="#= useMask("+e.dataTextField+",'"+e.format+"','"+o(e.dataTextField)+"') #");var r={dataTextField:null==e.dataTextField?void 0:e.dataTextField,dataValueField:null==e.dataValueField?void 0:e.dataValueField,dataSource:t,headerTemplate:null==e.headerTemplate?void 0:e.headerTemplate,template:null==e.template?void 0:e.template,placeholder:null==e.placeholder?void 0:e.placeholder,footerTemplate:null==e.footerTemplate?void 0:e.footerTemplate,filter:null==e.filter?void 0:e.filter,valuePrimitive:n,valueTemplate:null==e.valueTemplate?void 0:e.valueTemplate,suggest:!0};return e.optionLabel&&(e.optionLabelText=e.optionLabel,e.optionLabelValue=""),r.optionLabel={},r.optionLabel[r.dataTextField]=void 0===e.optionLabelText?"":e.optionLabelText,r.optionLabel[r.dataValueField]=void 0===e.optionLabelValue?null:e.optionLabelValue,r},getConfigCombobox:async function(e,t){let a={};if(e){if(!e.dynamic||"false"==e.dynamic){a.data=null==e.staticDataSource?void 0:e.staticDataSource;for(let n=0;n<a.data.length;n++)try{a.data[n].key&&a.data[n].key.startsWith("cronapi.server(")&&(a.data[n].key=a.data[n].key.replace(".run(",".toPromise().run("));let e=await t.$eval(a.data[n].key);a.data[n].key=void 0!==e&&null!==e?e:a.data[n].key}catch(t){a.data[n].key=a.data[n].key}}return config=this.parseOptionsCronToConfigKendo(e,a,t),config}return{}}};
@@ -240,7 +240,6 @@ var app = (function() {
240
240
  })
241
241
 
242
242
  .state('404', {
243
- url: "/error/404",
244
243
  cache: false,
245
244
  controller: 'PageController',
246
245
  templateUrl: function (urlattr) {
@@ -249,7 +248,6 @@ var app = (function() {
249
248
  })
250
249
 
251
250
  .state('403', {
252
- url: "/error/403",
253
251
  cache: false,
254
252
  controller: 'PageController',
255
253
  templateUrl: function (urlattr) {
package/js/app.js CHANGED
@@ -124,7 +124,6 @@ var app = (function() {
124
124
  })
125
125
 
126
126
  .state('404', {
127
- url: "/error/404",
128
127
  controller: 'PageController',
129
128
  templateUrl: function(urlattr) {
130
129
  return 'views/error/404.view.html';
@@ -132,7 +131,6 @@ var app = (function() {
132
131
  })
133
132
 
134
133
  .state('403', {
135
- url: "/error/403",
136
134
  controller: 'PageController',
137
135
  templateUrl: function(urlattr) {
138
136
  return 'views/error/403.view.html';
@@ -50,16 +50,44 @@
50
50
  $window.location.href = '/login';
51
51
  };
52
52
 
53
- $scope.autoLogin = function(){
54
- if(localStorage.getItem('_u') && JSON.parse(localStorage.getItem('_u')).token){
55
- window.refreshToken(Notification, $http, function(){
56
- $state.go("app.home");
57
- }, function(){
58
- localStorage.removeItem('_u');
59
- })
53
+ $scope.biometricAuthentication = () => {
54
+ return String((document.querySelector('meta[name="biometric-authentication"]') || {}).content) == 'true';
55
+ };
56
+
57
+ $scope.autoLogin = function () {
58
+ // Verify if Biometric Authentication is enabled
59
+ const userInfo = localStorage.getItem('_u');
60
+ if (userInfo && JSON.parse(userInfo).token) {
61
+ if (!$scope.biometricAuthentication()) {
62
+ window.refreshToken(Notification, $http, function () {
63
+ $state.go("app.home");
64
+ }, function () {
65
+ localStorage.removeItem('_u');
66
+ });
67
+ } else {
68
+ document.addEventListener("deviceready", () => {
69
+ if (window.Fingerprint) {
70
+ window.Fingerprint.isAvailable(result => {
71
+ window.Fingerprint.show(() => {
72
+ window.refreshToken(Notification, $http, () => $state.go("app.home"), () => localStorage.removeItem('_u'));
73
+ }, error => {
74
+ if (error === 'biometric_success') {
75
+ window.refreshToken(Notification, $http, () => $state.go("app.home"), () => localStorage.removeItem('_u'));
76
+ } else {
77
+ handleError({message: error.message});
78
+ }
79
+ });
80
+ }, error => {
81
+ console.error("Biometric Authentication is not available in this device");
82
+ });
83
+ }
84
+ }, false);
85
+ }
60
86
  }
61
87
  };
88
+
62
89
  $scope.autoLogin();
90
+
63
91
  if ($cookies.get('_u')) {
64
92
  if (!localStorage.getItem('_u')) {
65
93
  var decodedUser = decodeURIComponent($cookies.get('_u'));
@@ -68,6 +96,7 @@
68
96
  // Redirect to home page
69
97
  $state.go("app.home");
70
98
  }
99
+
71
100
  $scope.user = { username : "" , password : "" };
72
101
  $scope.message = {};
73
102
 
@@ -89,7 +89,6 @@ To add your route in the angular, uncomment the code and use this structure
89
89
  // })
90
90
  //
91
91
  // .state('404', {
92
- // url: "/error/404",
93
92
  // cache: false,
94
93
  // controller: 'PageController',
95
94
  // templateUrl: function (urlattr) {
@@ -98,7 +97,6 @@ To add your route in the angular, uncomment the code and use this structure
98
97
  // })
99
98
  //
100
99
  // .state('403', {
101
- // url: "/error/403",
102
100
  // cache: false,
103
101
  // controller: 'PageController',
104
102
  // templateUrl: function (urlattr) {
package/js/directives.js CHANGED
@@ -1944,7 +1944,7 @@ window.addEventListener('message', function(event) {
1944
1944
  };
1945
1945
  })
1946
1946
  .directive('cronFrame', cronFrame)
1947
-
1947
+ .directive('crnFrame', cronFrame)
1948
1948
  .directive('crnComponent', cronFrame)
1949
1949
 
1950
1950
  .directive('cronVideo', function ($compile) {
@@ -2745,28 +2745,66 @@ function cronFrame($compile, $sce, $parse) {
2745
2745
  return {
2746
2746
  restrict: 'AE',
2747
2747
  link: function (scope, element, attrs, ngModelCtrl) {
2748
- scope.$watch(function() {
2749
- return attrs.origin;
2750
- }, function(newVal) {
2751
- let template = "";
2752
- let style = attrs.style||"";
2753
- let clazz = attrs.class||"";
2754
- if (attrs.origin) {
2755
- if (!attrs.type) {
2756
- attrs.type = 'include';
2757
- }
2758
- if (attrs.type == 'include') {
2759
- template = $(`<div style="${style}" class="${clazz}" ng-include="'${attrs.origin}'"></div>`);
2760
- } else if (attrs.type == 'frame') {
2761
- var url = $sce.trustAsResourceUrl(attrs.origin);
2762
- template = $(`<iframe style="${style}" class="${clazz}" ng-src="${url}" width="100%" height="100%" loading="lazy"></iframe>`);
2763
- }
2764
- }
2765
- let html = angular.element(template);
2766
- html = $compile(html)(scope);
2767
- element.html('');
2768
- element.append(html);
2769
- })
2748
+
2749
+ scope.fragment = scope.fragment || {};
2750
+ var framentMap = scope.fragment[element.parent.id] || {};
2751
+
2752
+ scope.$watch(
2753
+ function () {
2754
+ return attrs.origin;
2755
+ },
2756
+ function (newVal) {
2757
+ let template = "";
2758
+ let style = attrs.style || "";
2759
+ let clazz = attrs.class || "";
2760
+ if (attrs.origin) {
2761
+ if (!attrs.type) {
2762
+ attrs.type = "include";
2763
+ }
2764
+ if (attrs.type == "include") {
2765
+ let str = `<div style="${style}" class="${clazz}" ng-include="'${attrs.origin}'" ng-if="true"></div>`;
2766
+ template = $(str);
2767
+ if (attrs.params) {
2768
+ try {
2769
+ let params = eval(attrs.params);
2770
+ for (let index in params) {
2771
+ let item = params[index];
2772
+ if ("expression" == item.type) {
2773
+ scope.$watch(item.value, function (newVal) {
2774
+ framentMap[item.key] = newVal;
2775
+ var elem = $(str);
2776
+ elem.attr(
2777
+ "onload",
2778
+ `params = ${JSON.stringify(framentMap)}`
2779
+ );
2780
+ var html = $compile(elem)(scope);
2781
+ element.html(html);
2782
+ });
2783
+ } else {
2784
+ framentMap[item.key] = item.value;
2785
+ }
2786
+ }
2787
+ template.attr(
2788
+ "onload",
2789
+ `params = ${JSON.stringify(framentMap)}`
2790
+ );
2791
+ } catch (err) {
2792
+ console.error(err);
2793
+ }
2794
+ }
2795
+ } else if (attrs.type == "frame") {
2796
+ var url = $sce.trustAsResourceUrl(attrs.origin);
2797
+ template = $(
2798
+ `<iframe style="${style}" class="${clazz}" ng-src="${url}" width="100%" height="100%" loading="lazy"></iframe>`
2799
+ );
2800
+ }
2801
+ }
2802
+ let html = angular.element(template);
2803
+ html = $compile(html)(scope);
2804
+ element.html("");
2805
+ element.append(html);
2806
+ }
2807
+ );
2770
2808
  }
2771
2809
  }
2772
2810
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cronapp-framework-mobile-js",
3
- "version": "2.9.2-SP.9",
3
+ "version": "2.9.3",
4
4
  "description": "Javascript library for CronApp's projects",
5
5
  "main": "cronapp.framework.mobile.js",
6
6
  "scripts": {
package/postupdate.json CHANGED
@@ -439,5 +439,15 @@
439
439
  "old" : "plugins/cronapp-framework-mobile-js/dist/js/upload.service.js",
440
440
  "new": "node_modules/cronapp-framework-mobile-js/dist/js/upload.service.js"
441
441
  }
442
+ ],
443
+ "permissions": [
444
+ {
445
+ "permitAll": [
446
+ {
447
+ "content": "http.authorizeRequests().antMatchers(\"/mobileapp\").permitAll();",
448
+ "pattern": "/mobileapp"
449
+ }
450
+ ]
451
+ }
442
452
  ]
443
453
  }
@@ -1,55 +0,0 @@
1
-
2
- .modal-dialog-full{
3
- position: fixed !important;
4
- margin: 0 !important;
5
- width: 100% !important;
6
- height: 100% !important;
7
- padding: 0 !important;
8
- }
9
-
10
- .modal-content-full{
11
- position: absolute !important;
12
- top: 0 !important;
13
- right: 0 !important;
14
- bottom: 0 !important;
15
- left: 0 !important;
16
- border-radius: 0 !important;
17
- box-shadow: none !important;
18
- }
19
-
20
- .modal-upload {
21
- min-height: 70px;
22
- width: 100%;
23
- line-height: 70px;
24
- text-align: center;
25
- cursor: pointer;
26
- }
27
- .full-width {
28
- width: 100% !important;
29
- }
30
-
31
- .button-cancel-capture {
32
- margin-left: 55px !important;
33
- }
34
-
35
- .progress{
36
- width: 96%;
37
- text-align: center;
38
- background-color: #f4f4f4;
39
- color: #fff;
40
- border-radius: 20px;
41
- }
42
-
43
- .progress-bar {
44
- min-width: 15%;
45
- white-space: nowrap;
46
- overflow: hidden;
47
- padding: 5px;
48
- border-radius: 20px;
49
- background-color: #33cd5f;
50
- }
51
-
52
- .col.item.item-input.component-holder {
53
- white-space: pre-wrap;
54
- line-height: 1.5;
55
- }
@@ -1 +0,0 @@
1
- @import 'custom-ionic.css';@import 'signup.css';@import "groupingOfCss/import_groupingOfCss.css";@import '../../../components/css/app.css';:root{--safe-area-inset-top:env(safe-area-inset-top);--safe-area-inset-right:env(safe-area-inset-right);--safe-area-inset-bottom:env(safe-area-inset-bottom);--safe-area-inset-left:env(safe-area-inset-left)}.platform-ios.platform-cordova:not(.fullscreen) .has-header,.platform-ios.platform-cordova:not(.fullscreen) .bar-subheader{padding-left:calc(0px + var(--safe-area-inset-left));padding-right:calc(0px + var(--safe-area-inset-right));padding-bottom:calc(0px + var(--safe-area-inset-bottom))}.bar-footer{height:calc(44px + var(--safe-area-inset-bottom, 19px));padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}.bar-header:not(.bar-subheader){height:calc(45px + var(--safe-area-inset-top, 19px)) !important;padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right)}.bar-header:not(.bar-subheader)>*{margin-top:var(--safe-area-inset-top,20px) !important}.bar-footer button{margin-bottom:var(--safe-area-inset-bottom)}.tabs{height:calc(53px + var(--safe-area-inset-bottom, 19px)) !important;min-height:53px}.bar .title,.button:last-child,.bar>.button+.button:last-child,.bar>.button.pull-right,.bar .buttons.pull-right,.bar .title+.buttons{margin-right:calc(5px + var(--safe-area-inset-left))}.has-header{top:calc(44px + var(--safe-area-inset-top)) !important}body{background-color:#fff}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.list .item.item-accordion{line-height:38px;padding-top:0;padding-bottom:0;transition:.09s all linear}.item{margin-top:0}.list .item.item-accordion.ng-hide{line-height:0}.list .item.item-accordion.ng-hide-add,.list .item.item-accordion.ng-hide-remove{display:block !important}.drop-box{background:#f8f8f8;border:2px dashed #DDD}.dragover{border:2px dashed blue}.input-validation-error{border-bottom:2px solid red !important}.menu-view .user-button,.login-bg .user-button{border:1px solid #aaa;color:#aaa;border-radius:100%;padding:10px;width:120px;height:120px;transition:400ms}.menu-view .user-button p,.login-bg .user-button p{color:#aaa}.user-button a{color:#aaa;text-decoration:none}.center-content-vertically{display:flex;flex-direction:column;justify-content:center}.menu-view{background-color:#1d4f9e;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.safe-top{padding-top:env(safe-area-inset-top)}#menu-blue .item{border-color:transparent;background-color:transparent;position:relative;display:block;margin:-1px;padding:16px;border-width:1px;border-style:solid;font-size:10px}.center-block{display:block;margin-right:auto;margin-left:auto}.right-block{display:block;margin-left:auto}.left-block{display:block;margin-right:auto}.item-list-detail{display:flex;flex-direction:column;padding-left:10px}.custom-item-avatar-imagem{width:40px;height:40px;border-radius:50%;background-size:cover;background-position:center;background-repeat:no-repeat;float:left}.sr-only{display:none !important}kendo-chat .k-chat{max-width:100%}kendo-chat .k-bubble{-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}.icon-designtime-ion-list{display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px;right:18px}.selected-designtime-list .checkbox input:checked:before,.selected-designtime-list input:checked+.selected-designtime-list .checkbox-icon:before{background:#2b71e8;border-color:#2b71e8}.bar .title{text-align:inherit}ion-header-bar.bar h1.title{text-align:center}.bar-positive .button.button-icon{align-content:center;display:grid}.bar-positive .button.button-clear i{font-size:28px}.button-bar>.button{gap:6px;display:flex;align-items:center;justify-content:center}.button-bar>.button:last-child{border-right-width:inherit}.item-floating-label .input-label{display:table}.tabs-striped .tabs .tab-item .icon{display:contents}.tabs-striped .tabs .tab-item{display:flex;justify-content:center;align-items:center;flex-direction:column}.tabs-striped .tabs .tab-item span{margin:0;padding:0;font-size:10px;height:33px;margin-top:-16px}.tabs-striped .tabs{height:calc(57px + var(--safe-area-inset-bottom, 19px)) !important;min-height:57px}.has-footer-tabs{bottom:57px}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.crn-ion-header-bar h1.title{left:40px;right:40px}.bar-footer{display:flex;justify-content:space-between;align-items:center;width:100%}.bar-footer .button{border-color:#1659ca;margin:0}.bar-footer .buttons:last-child{margin-right:0}.bar.bar-footer{padding:5px}.bar-footer.bar .title{position:initial;width:45%}.bar-footer.bar .title+.buttons{position:initial}.crn-slider-item{height:200px;position:relative;object-fit:cover}.crn-slider-item h2{text-align:center;color:#fff;font-weight:bold;left:50%;margin:0;transform:translate(-50%,-50%);position:absolute;width:100%}.crn-slider-item h2.text-center{text-align:center !important}.crn-slider-item h2.text-left{text-align:left !important}.crn-slider-item h2.text-right{text-align:right !important}.slider-pager{bottom:5px}.slider{width:100%}.item input.ng-invalid,.item-input input.ng-invalid{border-bottom:1px solid #f15858}textarea.ng-invalid,textarea.ng-invalid-minlength{border-bottom:1px solid #f15858;margin-bottom:0}