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

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 (468) 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/lumen/custom-lumen.css +84 -25
  7. package/css/themes/custom/paper/custom-paper.css +59 -0
  8. package/css/themes/custom/readable/custom-readable.css +61 -2
  9. package/css/themes/custom/sandstone/custom-sandstone.css +60 -1
  10. package/css/themes/custom/simplex/custom-simplex.css +78 -20
  11. package/css/themes/custom/slate/crn-ion-segment-slate.css +4 -4
  12. package/css/themes/custom/slate/custom-slate.css +56 -11
  13. package/css/themes/custom/spacelab/bar-spacelab.css +20 -10
  14. package/css/themes/custom/spacelab/custom-spacelab.css +77 -32
  15. package/css/themes/custom/superhero/custom-superhero.css +52 -1
  16. package/css/themes/custom/theme-general/theme-general.css +1 -1
  17. package/css/themes/custom/united/custom-united.css +53 -6
  18. package/css/themes/custom/yeti/custom-yeti.css +45 -0
  19. package/deprecated/components/crn-QRCode.components.json +54 -0
  20. package/deprecated/components/crn-anchor.components.json +89 -0
  21. package/deprecated/components/crn-button-bar.components.json +64 -0
  22. package/deprecated/components/crn-button.components.json +316 -0
  23. package/deprecated/components/crn-card.components.json +95 -0
  24. package/deprecated/components/crn-chart.components.json +57 -0
  25. package/deprecated/components/crn-chat.components.json +8 -0
  26. package/deprecated/components/crn-checkbox.components.json +184 -0
  27. package/deprecated/components/crn-complex-search.components.json +43 -0
  28. package/deprecated/components/crn-container.components.json +21 -0
  29. package/deprecated/components/crn-cron-crud.components.json +21 -0
  30. package/deprecated/components/crn-datasource.components.json +181 -0
  31. package/deprecated/components/crn-dynamic-file.components.json +85 -0
  32. package/deprecated/components/crn-dynamic-image.components.json +153 -0
  33. package/deprecated/components/crn-dynamic-select.components.json +111 -0
  34. package/deprecated/components/crn-evaluation.components.json +64 -0
  35. package/deprecated/components/crn-filter-button.components.json +305 -0
  36. package/deprecated/components/crn-form-template.components.json +11 -0
  37. package/deprecated/components/crn-header-button.components.json +63 -0
  38. package/deprecated/components/crn-heading.components.json +109 -0
  39. package/deprecated/components/crn-icon.components.json +258 -0
  40. package/deprecated/components/crn-image.components.json +121 -0
  41. package/deprecated/components/crn-infinite-scroll.components.json +32 -0
  42. package/deprecated/components/crn-input-button.components.json +205 -0
  43. package/deprecated/components/crn-input-floating.components.json +196 -0
  44. package/deprecated/components/crn-input-icon.components.json +187 -0
  45. package/deprecated/components/crn-input-inline.components.json +198 -0
  46. package/deprecated/components/crn-input.components.json +185 -0
  47. package/deprecated/components/crn-ion-content.components.json +24 -0
  48. package/deprecated/components/crn-ion-footer-bar.components.json +351 -0
  49. package/deprecated/components/crn-ion-header-bar.components.json +211 -0
  50. package/deprecated/components/crn-ion-list.components.json +152 -0
  51. package/deprecated/components/crn-ion-nav-buttons.components.json +63 -0
  52. package/deprecated/components/crn-ion-segment-item.components.json +65 -0
  53. package/deprecated/components/crn-ion-segment.components.json +974 -0
  54. package/deprecated/components/crn-ion-tab-item.components.json +50 -0
  55. package/deprecated/components/crn-ion-tab.components.json +138 -0
  56. package/deprecated/components/crn-item-options.components.json +26 -0
  57. package/deprecated/components/crn-item-select.components.json +69 -0
  58. package/deprecated/components/crn-item-swipe.components.json +62 -0
  59. package/deprecated/components/crn-kendo-chat.components.json +88 -0
  60. package/deprecated/components/crn-label.components.json +113 -0
  61. package/deprecated/components/crn-list-avatar.components.json +260 -0
  62. package/deprecated/components/crn-list-icon.components.json +249 -0
  63. package/deprecated/components/crn-list-item-avatar.components.json +236 -0
  64. package/deprecated/components/crn-list-item-icon.components.json +242 -0
  65. package/deprecated/components/crn-list-item-thumbnail.components.json +226 -0
  66. package/deprecated/components/crn-list-item.components.json +160 -0
  67. package/deprecated/components/crn-list-simple.components.json +180 -0
  68. package/deprecated/components/crn-list-swipe.components.json +105 -0
  69. package/deprecated/components/crn-list-thumbnail.components.json +248 -0
  70. package/deprecated/components/crn-list.components.json +75 -0
  71. package/deprecated/components/crn-map.components.json +55 -0
  72. package/deprecated/components/crn-mobile-menu.components.json +32 -0
  73. package/deprecated/components/crn-multiselect.components.json +110 -0
  74. package/deprecated/components/crn-navbar.components.json +106 -0
  75. package/deprecated/components/crn-option-button.components.json +72 -0
  76. package/deprecated/components/crn-paragraph.components.json +110 -0
  77. package/deprecated/components/crn-radio.components.json +90 -0
  78. package/deprecated/components/crn-radioOption.components.json +23 -0
  79. package/deprecated/components/crn-range.components.json +106 -0
  80. package/deprecated/components/crn-rating.components.json +189 -0
  81. package/deprecated/components/crn-search.components.json +210 -0
  82. package/deprecated/components/crn-select-options.components.json +17 -0
  83. package/deprecated/components/crn-select.components.json +93 -0
  84. package/deprecated/components/crn-slider-item.components.json +236 -0
  85. package/deprecated/components/crn-slider.components.json +105 -0
  86. package/deprecated/components/crn-spacer.components.json +21 -0
  87. package/deprecated/components/crn-start.components.json +10 -0
  88. package/deprecated/components/crn-tabs-icon-only-item.components.json +85 -0
  89. package/deprecated/components/crn-tabs-icon-only.components.json +382 -0
  90. package/deprecated/components/crn-tabs.components.json +36 -0
  91. package/deprecated/components/crn-textarea.components.json +109 -0
  92. package/deprecated/components/crn-toggle.components.json +161 -0
  93. package/deprecated/components/crn-video.components.json +67 -0
  94. package/deprecated/components/css/app.css +78 -0
  95. package/deprecated/components/css/background-color.css +121 -0
  96. package/deprecated/components/css/chatStyle.css +221 -0
  97. package/deprecated/components/css/color-default.css +83 -0
  98. package/deprecated/components/css/crn-ion-segment.css +786 -0
  99. package/deprecated/components/css/icon-size.css +15 -0
  100. package/deprecated/components/css/multiselect-editor.css +119 -0
  101. package/deprecated/components/css/tabs-color.css +248 -0
  102. package/deprecated/components/js/format.min.js +2 -0
  103. package/deprecated/components/js/jquery.inputmask.bundle.js +3883 -0
  104. package/deprecated/components/js/jquery.mask.min.js +19 -0
  105. package/deprecated/components/js/pouchdb.cordova-sqlite.js +5540 -0
  106. package/deprecated/components/js/qrcode.js +1319 -0
  107. package/deprecated/components/reports/BOOLEAN.parameter.html +10 -0
  108. package/deprecated/components/reports/DATE.parameter.html +4 -0
  109. package/deprecated/components/reports/DOUBLE.parameter.html +4 -0
  110. package/deprecated/components/reports/FLOAT.parameter.html +4 -0
  111. package/deprecated/components/reports/INTEGER.parameter.html +4 -0
  112. package/deprecated/components/reports/LONG.parameter.html +5 -0
  113. package/deprecated/components/reports/STRING.parameter.html +5 -0
  114. package/deprecated/components/reports/reports.parameters.html +20 -0
  115. package/deprecated/components/templates/advanced.list.designtime.html +33 -0
  116. package/deprecated/components/templates/advanced.list.template.html +1 -0
  117. package/deprecated/components/templates/anchor.template.html +1 -0
  118. package/deprecated/components/templates/button-bar.template.html +5 -0
  119. package/deprecated/components/templates/button-report.template.html +1 -0
  120. package/deprecated/components/templates/button.template.html +4 -0
  121. package/deprecated/components/templates/card.template.html +7 -0
  122. package/deprecated/components/templates/chat.template.html +39 -0
  123. package/deprecated/components/templates/checkbox.template.html +8 -0
  124. package/deprecated/components/templates/combobox.designtime.html +12 -0
  125. package/deprecated/components/templates/combobox.template.html +8 -0
  126. package/deprecated/components/templates/complexsearch.template.html +7 -0
  127. package/deprecated/components/templates/crn-ion-segment-item.template.html +6 -0
  128. package/deprecated/components/templates/crn-ion-segment.template.html +27 -0
  129. package/deprecated/components/templates/cron-crud.template.html +7 -0
  130. package/deprecated/components/templates/cron-mobile-menu.designtime.html +10 -0
  131. package/deprecated/components/templates/div.horizontal.template.html +27 -0
  132. package/deprecated/components/templates/div.vertical.template.html +11 -0
  133. package/deprecated/components/templates/dynamic-combobox.template.html +6 -0
  134. package/deprecated/components/templates/dynamicfile.template.html +8 -0
  135. package/deprecated/components/templates/dynamicimage.designtime.html +10 -0
  136. package/deprecated/components/templates/dynamicimage.template.html +9 -0
  137. package/deprecated/components/templates/evaluation.designtime.html +7 -0
  138. package/deprecated/components/templates/evaluation.template.html +1 -0
  139. package/deprecated/components/templates/filterbutton.template.html +3 -0
  140. package/deprecated/components/templates/floattextinput.designtime.html +4 -0
  141. package/deprecated/components/templates/floattextinput.template.html +4 -0
  142. package/deprecated/components/templates/form.template.html +5 -0
  143. package/deprecated/components/templates/header.template.html +3 -0
  144. package/deprecated/components/templates/icontextinput.template.html +4 -0
  145. package/deprecated/components/templates/image.template.html +18 -0
  146. package/deprecated/components/templates/inlinetextinput.template.html +4 -0
  147. package/deprecated/components/templates/ion-footer-bar.template.html +15 -0
  148. package/deprecated/components/templates/ion-header-bar.template.html +13 -0
  149. package/deprecated/components/templates/ion-tab-item.designtime.html +5 -0
  150. package/deprecated/components/templates/ion-tab.template.html +8 -0
  151. package/deprecated/components/templates/item.avatar.template.html +5 -0
  152. package/deprecated/components/templates/item.icon.template.html +4 -0
  153. package/deprecated/components/templates/item.options.template.html +14 -0
  154. package/deprecated/components/templates/item.slider.template.html +4 -0
  155. package/deprecated/components/templates/item.swipe.template.html +14 -0
  156. package/deprecated/components/templates/item.template.html +5 -0
  157. package/deprecated/components/templates/item.thumbnail.template.html +5 -0
  158. package/deprecated/components/templates/kendo-chat.designtime.html +20 -0
  159. package/deprecated/components/templates/kendo-chat.template.html +75 -0
  160. package/deprecated/components/templates/list.avatar.template.html +7 -0
  161. package/deprecated/components/templates/list.icon.template.html +6 -0
  162. package/deprecated/components/templates/list.swipe.template.html +16 -0
  163. package/deprecated/components/templates/list.template.html +5 -0
  164. package/deprecated/components/templates/list.thumbnail.template.html +7 -0
  165. package/deprecated/components/templates/maps.designtime.html +1 -0
  166. package/deprecated/components/templates/maps.template.html +1 -0
  167. package/deprecated/components/templates/menu.template.html +21 -0
  168. package/deprecated/components/templates/multiselect.template.html +5 -0
  169. package/deprecated/components/templates/nav.bar.template.html +5 -0
  170. package/deprecated/components/templates/publicMenu.template.html +14 -0
  171. package/deprecated/components/templates/radiogroup-dynamic.template.html +15 -0
  172. package/deprecated/components/templates/radiogroup.template.html +21 -0
  173. package/deprecated/components/templates/range.template.html +5 -0
  174. package/deprecated/components/templates/rating.template.html +9 -0
  175. package/deprecated/components/templates/search.template.html +6 -0
  176. package/deprecated/components/templates/slider.template.html +20 -0
  177. package/deprecated/components/templates/tabs-icon-only.template.html +16 -0
  178. package/deprecated/components/templates/tabs.template.html +5 -0
  179. package/deprecated/components/templates/textarea.template.html +1 -0
  180. package/deprecated/components/templates/textinput.template.html +3 -0
  181. package/deprecated/components/templates/textinputbutton.template.html +12 -0
  182. package/deprecated/components/templates/title.template.html +1 -0
  183. package/deprecated/components/templates/toggle-dynamic.template.html +11 -0
  184. package/deprecated/components/templates/toggle.template.html +9 -0
  185. package/deprecated/components/templates/video.designtime.html +2 -0
  186. package/deprecated/components/templates/video.template.html +1 -0
  187. package/deprecated/components/templates/views/public/home.view.html +16 -0
  188. package/deprecated/components/templates/views/public/menu.view.html +20 -0
  189. package/deprecated/components/upload/upload.html +41 -0
  190. package/{css/themes/deprecated/material.min.css → deprecated/css/app.css} +26 -38
  191. package/deprecated/css/themes/custom/material/custom-material.css +12 -0
  192. package/deprecated/css/themes/material.min.css +4 -0
  193. package/deprecated/dist/components/css/app.css +1 -0
  194. package/deprecated/dist/components/css/background-color.css +1 -0
  195. package/deprecated/dist/components/css/chatStyle.css +1 -0
  196. package/deprecated/dist/components/css/color-default.css +1 -0
  197. package/deprecated/dist/components/css/crn-ion-segment.css +1 -0
  198. package/deprecated/dist/components/css/icon-size.css +1 -0
  199. package/deprecated/dist/components/css/multiselect-editor.css +1 -0
  200. package/deprecated/dist/components/css/tabs-color.css +1 -0
  201. package/deprecated/dist/components/js/format.min.js +1 -0
  202. package/deprecated/dist/components/js/jquery.inputmask.bundle.js +3 -0
  203. package/deprecated/dist/components/js/jquery.mask.min.js +1 -0
  204. package/deprecated/dist/components/js/pouchdb.cordova-sqlite.js +2 -0
  205. package/deprecated/dist/components/js/qrcode.js +1 -0
  206. package/deprecated/dist/components/templates/advanced.list.designtime.html +1 -0
  207. package/deprecated/dist/components/templates/advanced.list.template.html +1 -0
  208. package/deprecated/dist/components/templates/anchor.template.html +1 -0
  209. package/deprecated/dist/components/templates/button-bar.template.html +1 -0
  210. package/deprecated/dist/components/templates/button-report.template.html +1 -0
  211. package/deprecated/dist/components/templates/button.template.html +1 -0
  212. package/deprecated/dist/components/templates/card.template.html +1 -0
  213. package/deprecated/dist/components/templates/chat.template.html +1 -0
  214. package/deprecated/dist/components/templates/checkbox.template.html +1 -0
  215. package/deprecated/dist/components/templates/combobox.designtime.html +1 -0
  216. package/deprecated/dist/components/templates/combobox.template.html +1 -0
  217. package/deprecated/dist/components/templates/complexsearch.template.html +1 -0
  218. package/deprecated/dist/components/templates/crn-ion-segment-item.template.html +1 -0
  219. package/deprecated/dist/components/templates/crn-ion-segment.template.html +1 -0
  220. package/deprecated/dist/components/templates/cron-crud.template.html +1 -0
  221. package/deprecated/dist/components/templates/cron-mobile-menu.designtime.html +1 -0
  222. package/deprecated/dist/components/templates/div.horizontal.template.html +1 -0
  223. package/deprecated/dist/components/templates/div.vertical.template.html +1 -0
  224. package/deprecated/dist/components/templates/dynamic-combobox.template.html +1 -0
  225. package/deprecated/dist/components/templates/dynamicfile.template.html +1 -0
  226. package/deprecated/dist/components/templates/dynamicimage.designtime.html +1 -0
  227. package/deprecated/dist/components/templates/dynamicimage.template.html +1 -0
  228. package/deprecated/dist/components/templates/evaluation.designtime.html +1 -0
  229. package/deprecated/dist/components/templates/evaluation.template.html +1 -0
  230. package/deprecated/dist/components/templates/filterbutton.template.html +1 -0
  231. package/deprecated/dist/components/templates/floattextinput.designtime.html +1 -0
  232. package/deprecated/dist/components/templates/floattextinput.template.html +1 -0
  233. package/deprecated/dist/components/templates/form.template.html +1 -0
  234. package/deprecated/dist/components/templates/header.template.html +1 -0
  235. package/deprecated/dist/components/templates/iconinput.template.html +1 -0
  236. package/deprecated/dist/components/templates/icontextinput.template.html +1 -0
  237. package/deprecated/dist/components/templates/image.template.html +1 -0
  238. package/deprecated/dist/components/templates/inlinetextinput.template.html +1 -0
  239. package/deprecated/dist/components/templates/ion-footer-bar.template.html +1 -0
  240. package/deprecated/dist/components/templates/ion-header-bar.template.html +1 -0
  241. package/deprecated/dist/components/templates/ion-tab-item.designtime.html +1 -0
  242. package/deprecated/dist/components/templates/ion-tab.designtime.html +1 -0
  243. package/deprecated/dist/components/templates/ion-tab.template.html +1 -0
  244. package/deprecated/dist/components/templates/item.avatar.template.html +1 -0
  245. package/deprecated/dist/components/templates/item.icon.template.html +1 -0
  246. package/deprecated/dist/components/templates/item.options.template.html +1 -0
  247. package/deprecated/dist/components/templates/item.slider.template.html +1 -0
  248. package/deprecated/dist/components/templates/item.swipe.template.html +1 -0
  249. package/deprecated/dist/components/templates/item.template.html +1 -0
  250. package/deprecated/dist/components/templates/item.thumbnail.template.html +1 -0
  251. package/deprecated/dist/components/templates/kendo-chat.designtime.html +1 -0
  252. package/deprecated/dist/components/templates/kendo-chat.template.html +1 -0
  253. package/deprecated/dist/components/templates/list.avatar.template.html +1 -0
  254. package/deprecated/dist/components/templates/list.icon.template.html +1 -0
  255. package/deprecated/dist/components/templates/list.swipe.template.html +1 -0
  256. package/deprecated/dist/components/templates/list.template.html +1 -0
  257. package/deprecated/dist/components/templates/list.thumbnail.template.html +1 -0
  258. package/deprecated/dist/components/templates/maps.designtime.html +1 -0
  259. package/deprecated/dist/components/templates/maps.template.html +1 -0
  260. package/deprecated/dist/components/templates/menu.template.html +1 -0
  261. package/deprecated/dist/components/templates/multiselect.template.html +1 -0
  262. package/deprecated/dist/components/templates/nav.bar.template.html +1 -0
  263. package/deprecated/dist/components/templates/publicMenu.template.html +1 -0
  264. package/deprecated/dist/components/templates/radiogroup-dynamic.template.html +1 -0
  265. package/deprecated/dist/components/templates/radiogroup.template.html +1 -0
  266. package/deprecated/dist/components/templates/range.template.html +1 -0
  267. package/deprecated/dist/components/templates/rating.template.html +1 -0
  268. package/deprecated/dist/components/templates/search.template.html +1 -0
  269. package/deprecated/dist/components/templates/slider.template.html +1 -0
  270. package/deprecated/dist/components/templates/tabs-icon-only.template.html +1 -0
  271. package/deprecated/dist/components/templates/tabs.template.html +1 -0
  272. package/deprecated/dist/components/templates/textarea.template.html +1 -0
  273. package/deprecated/dist/components/templates/textinput.template.html +1 -0
  274. package/deprecated/dist/components/templates/textinputbutton.template.html +1 -0
  275. package/deprecated/dist/components/templates/title.template.html +1 -0
  276. package/deprecated/dist/components/templates/toggle-dynamic.template.html +1 -0
  277. package/deprecated/dist/components/templates/toggle.template.html +1 -0
  278. package/deprecated/dist/components/templates/video.designtime.html +1 -0
  279. package/deprecated/dist/components/templates/video.template.html +1 -0
  280. package/deprecated/dist/components/templates/views/public/home.view.html +1 -0
  281. package/deprecated/dist/components/templates/views/public/menu.view.html +1 -0
  282. package/deprecated/dist/css/app.css +1 -0
  283. package/deprecated/dist/i18n/locale_en_us.json +126 -0
  284. package/deprecated/dist/i18n/locale_pt_br.json +126 -0
  285. package/deprecated/dist/img/cron-icon/crn-QRCode.svg +1 -0
  286. package/deprecated/dist/img/cron-icon/crn-anchor.svg +1 -0
  287. package/deprecated/dist/img/cron-icon/crn-button-bar.svg +1 -0
  288. package/deprecated/dist/img/cron-icon/crn-button.svg +1 -0
  289. package/deprecated/dist/img/cron-icon/crn-card.svg +1 -0
  290. package/deprecated/dist/img/cron-icon/crn-carousel.svg +1 -0
  291. package/deprecated/dist/img/cron-icon/crn-chart.svg +1 -0
  292. package/deprecated/dist/img/cron-icon/crn-checkbox.svg +1 -0
  293. package/deprecated/dist/img/cron-icon/crn-container.svg +1 -0
  294. package/deprecated/dist/img/cron-icon/crn-cron-crud.svg +1 -0
  295. package/deprecated/dist/img/cron-icon/crn-datasource.svg +1 -0
  296. package/deprecated/dist/img/cron-icon/crn-dynamic-file.svg +1 -0
  297. package/deprecated/dist/img/cron-icon/crn-dynamic-image.svg +1 -0
  298. package/deprecated/dist/img/cron-icon/crn-enterprise-dynamic-combobox.svg +1 -0
  299. package/deprecated/dist/img/cron-icon/crn-evaluation.svg +1 -0
  300. package/deprecated/dist/img/cron-icon/crn-form.svg +1 -0
  301. package/deprecated/dist/img/cron-icon/crn-header.svg +1 -0
  302. package/deprecated/dist/img/cron-icon/crn-icon.svg +1 -0
  303. package/deprecated/dist/img/cron-icon/crn-image.svg +1 -0
  304. package/deprecated/dist/img/cron-icon/crn-infinite-scroll.svg +1 -0
  305. package/deprecated/dist/img/cron-icon/crn-input-floating.svg +1 -0
  306. package/deprecated/dist/img/cron-icon/crn-input-inline.svg +1 -0
  307. package/deprecated/dist/img/cron-icon/crn-ion-footer-bar.svg +1 -0
  308. package/deprecated/dist/img/cron-icon/crn-ion-list.svg +1 -0
  309. package/deprecated/dist/img/cron-icon/crn-item-swipe.svg +1 -0
  310. package/deprecated/dist/img/cron-icon/crn-kendo-chat.svg +1 -0
  311. package/deprecated/dist/img/cron-icon/crn-label.svg +1 -0
  312. package/deprecated/dist/img/cron-icon/crn-list-avatar.svg +1 -0
  313. package/deprecated/dist/img/cron-icon/crn-list-icon.svg +1 -0
  314. package/deprecated/dist/img/cron-icon/crn-list-item-avatar.svg +1 -0
  315. package/deprecated/dist/img/cron-icon/crn-list-item-icon.svg +1 -0
  316. package/deprecated/dist/img/cron-icon/crn-list-item-thumbnail.svg +1 -0
  317. package/deprecated/dist/img/cron-icon/crn-list-item.svg +1 -0
  318. package/deprecated/dist/img/cron-icon/crn-list-swipe.svg +1 -0
  319. package/deprecated/dist/img/cron-icon/crn-list-thumbnail.svg +1 -0
  320. package/deprecated/dist/img/cron-icon/crn-list.svg +1 -0
  321. package/deprecated/dist/img/cron-icon/crn-map.svg +1 -0
  322. package/deprecated/dist/img/cron-icon/crn-multiselect.svg +1 -0
  323. package/deprecated/dist/img/cron-icon/crn-paragraph.svg +1 -0
  324. package/deprecated/dist/img/cron-icon/crn-plugin.svg +1 -0
  325. package/deprecated/dist/img/cron-icon/crn-radio.svg +1 -0
  326. package/deprecated/dist/img/cron-icon/crn-radiogroup.svg +1 -0
  327. package/deprecated/dist/img/cron-icon/crn-range.svg +1 -0
  328. package/deprecated/dist/img/cron-icon/crn-rating.svg +1 -0
  329. package/deprecated/dist/img/cron-icon/crn-select.svg +1 -0
  330. package/deprecated/dist/img/cron-icon/crn-spacer.svg +1 -0
  331. package/deprecated/dist/img/cron-icon/crn-tabs-icon-only.svg +1 -0
  332. package/deprecated/dist/img/cron-icon/crn-tabs.svg +1 -0
  333. package/deprecated/dist/img/cron-icon/crn-text-component.svg +1 -0
  334. package/deprecated/dist/img/cron-icon/crn-textarea.svg +1 -0
  335. package/deprecated/dist/img/cron-icon/crn-textinput.svg +1 -0
  336. package/deprecated/dist/img/cron-icon/crn-textinputbutton.svg +1 -0
  337. package/deprecated/dist/img/cron-icon/crn-textinputicon.svg +1 -0
  338. package/deprecated/dist/img/cron-icon/crn-toggle.svg +1 -0
  339. package/deprecated/dist/img/cron-icon/crn-video.svg +1 -0
  340. package/deprecated/dist/img/placehold-100x100.png +0 -0
  341. package/deprecated/dist/img/placehold-300x200.png +0 -0
  342. package/deprecated/dist/img/placehold-900x500.png +0 -0
  343. package/deprecated/dist/img/qr-code.png +0 -0
  344. package/deprecated/dist/img/svg-charts.svg +1 -0
  345. package/deprecated/dist/img/user.svg +1 -0
  346. package/deprecated/dist/js/LanguageSelectDirective.js +1 -0
  347. package/deprecated/dist/js/LocaleService.js +1 -0
  348. package/deprecated/dist/js/app.authentication.js +1 -0
  349. package/deprecated/dist/js/app.js +1 -0
  350. package/deprecated/dist/js/controllers.authentication.js +1 -0
  351. package/deprecated/dist/js/controllers.js +1 -0
  352. package/deprecated/dist/js/custom.controllers.js +1 -0
  353. package/deprecated/dist/js/customModules.js +1 -0
  354. package/deprecated/dist/js/customStateProvider.js +0 -0
  355. package/deprecated/dist/js/directives.js +17 -0
  356. package/deprecated/dist/js/filters.js +1 -0
  357. package/deprecated/dist/js/local-dateformat.directive.js +1 -0
  358. package/deprecated/dist/js/reports/parameters.controller.js +1 -0
  359. package/deprecated/dist/js/reports/reports.service.js +1 -0
  360. package/deprecated/dist/js/services.js +1 -0
  361. package/deprecated/dist/js/upload.service.js +1 -0
  362. package/deprecated/img/cron-icon/crn-QRCode.svg +38 -0
  363. package/deprecated/img/cron-icon/crn-anchor.svg +29 -0
  364. package/deprecated/img/cron-icon/crn-button-bar.svg +1 -0
  365. package/deprecated/img/cron-icon/crn-button.svg +24 -0
  366. package/deprecated/img/cron-icon/crn-card.svg +1 -0
  367. package/deprecated/img/cron-icon/crn-carousel.svg +26 -0
  368. package/deprecated/img/cron-icon/crn-chart.svg +19 -0
  369. package/deprecated/img/cron-icon/crn-checkbox.svg +15 -0
  370. package/deprecated/img/cron-icon/crn-container.svg +1 -0
  371. package/deprecated/img/cron-icon/crn-cron-crud.svg +28 -0
  372. package/deprecated/img/cron-icon/crn-datasource.svg +27 -0
  373. package/deprecated/img/cron-icon/crn-dynamic-file.svg +1 -0
  374. package/deprecated/img/cron-icon/crn-dynamic-image.svg +25 -0
  375. package/deprecated/img/cron-icon/crn-enterprise-dynamic-combobox.svg +27 -0
  376. package/deprecated/img/cron-icon/crn-evaluation.svg +1 -0
  377. package/deprecated/img/cron-icon/crn-form.svg +24 -0
  378. package/deprecated/img/cron-icon/crn-header.svg +18 -0
  379. package/deprecated/img/cron-icon/crn-icon.svg +23 -0
  380. package/deprecated/img/cron-icon/crn-image.svg +20 -0
  381. package/deprecated/img/cron-icon/crn-infinite-scroll.svg +1 -0
  382. package/deprecated/img/cron-icon/crn-input-floating.svg +1 -0
  383. package/deprecated/img/cron-icon/crn-input-inline.svg +1 -0
  384. package/deprecated/img/cron-icon/crn-ion-footer-bar.svg +1 -0
  385. package/deprecated/img/cron-icon/crn-ion-list.svg +1 -0
  386. package/deprecated/img/cron-icon/crn-item-swipe.svg +15 -0
  387. package/deprecated/img/cron-icon/crn-kendo-chat.svg +1 -0
  388. package/deprecated/img/cron-icon/crn-label.svg +1 -0
  389. package/deprecated/img/cron-icon/crn-list-avatar.svg +1 -0
  390. package/deprecated/img/cron-icon/crn-list-icon.svg +1 -0
  391. package/deprecated/img/cron-icon/crn-list-item-avatar.svg +1 -0
  392. package/deprecated/img/cron-icon/crn-list-item-icon.svg +1 -0
  393. package/deprecated/img/cron-icon/crn-list-item-thumbnail.svg +1 -0
  394. package/deprecated/img/cron-icon/crn-list-item.svg +1 -0
  395. package/deprecated/img/cron-icon/crn-list-swipe.svg +17 -0
  396. package/deprecated/img/cron-icon/crn-list-thumbnail.svg +17 -0
  397. package/deprecated/img/cron-icon/crn-list.svg +16 -0
  398. package/deprecated/img/cron-icon/crn-map.svg +1 -0
  399. package/deprecated/img/cron-icon/crn-multiselect.svg +1 -0
  400. package/deprecated/img/cron-icon/crn-paragraph.svg +1 -0
  401. package/deprecated/img/cron-icon/crn-plugin.svg +44 -0
  402. package/deprecated/img/cron-icon/crn-radio.svg +21 -0
  403. package/deprecated/img/cron-icon/crn-radiogroup.svg +25 -0
  404. package/deprecated/img/cron-icon/crn-range.svg +1 -0
  405. package/deprecated/img/cron-icon/crn-rating.svg +20 -0
  406. package/deprecated/img/cron-icon/crn-select.svg +1 -0
  407. package/deprecated/img/cron-icon/crn-spacer.svg +1 -0
  408. package/deprecated/img/cron-icon/crn-tabs-icon-only.svg +24 -0
  409. package/deprecated/img/cron-icon/crn-tabs.svg +17 -0
  410. package/deprecated/img/cron-icon/crn-text-component.svg +22 -0
  411. package/deprecated/img/cron-icon/crn-textarea.svg +22 -0
  412. package/deprecated/img/cron-icon/crn-textinput.svg +23 -0
  413. package/deprecated/img/cron-icon/crn-textinputbutton.svg +33 -0
  414. package/deprecated/img/cron-icon/crn-textinputicon.svg +29 -0
  415. package/deprecated/img/cron-icon/crn-toggle.svg +1 -0
  416. package/deprecated/img/cron-icon/crn-video.svg +1 -0
  417. package/deprecated/img/placehold-100x100.png +0 -0
  418. package/deprecated/img/placehold-300x200.png +0 -0
  419. package/deprecated/img/placehold-900x500.png +0 -0
  420. package/deprecated/img/qr-code.png +0 -0
  421. package/deprecated/img/svg-charts.svg +1 -0
  422. package/deprecated/img/user.svg +18 -0
  423. package/dist/components/templates/list.thumbnail.template.html +1 -1
  424. package/dist/css/themes/custom/lumen/custom-lumen.css +1 -1
  425. package/dist/css/themes/custom/paper/custom-paper.css +1 -1
  426. package/dist/css/themes/custom/readable/custom-readable.css +1 -1
  427. package/dist/css/themes/custom/sandstone/custom-sandstone.css +1 -1
  428. package/dist/css/themes/custom/simplex/custom-simplex.css +1 -1
  429. package/dist/css/themes/custom/slate/crn-ion-segment-slate.css +1 -1
  430. package/dist/css/themes/custom/slate/custom-slate.css +1 -1
  431. package/dist/css/themes/custom/spacelab/bar-spacelab.css +1 -1
  432. package/dist/css/themes/custom/spacelab/custom-spacelab.css +1 -1
  433. package/dist/css/themes/custom/superhero/custom-superhero.css +1 -1
  434. package/dist/css/themes/custom/theme-general/theme-general.css +1 -1
  435. package/dist/css/themes/custom/united/custom-united.css +1 -1
  436. package/dist/css/themes/custom/yeti/custom-yeti.css +1 -1
  437. package/dist/js/app.authentication.js +1 -1
  438. package/dist/js/app.js +1 -1
  439. package/dist/js/controllers.authentication.js +1 -1
  440. package/dist/js/directives.js +1 -1
  441. package/js/app.authentication.js +0 -2
  442. package/js/app.js +0 -2
  443. package/js/controllers.authentication.js +36 -7
  444. package/js/customStateProvider.js +0 -2
  445. package/js/directives.js +61 -23
  446. package/package.json +1 -1
  447. package/postupdate.json +10 -0
  448. package/css/themes/deprecated/cronos.css +0 -55
  449. package/dist/css/themes/deprecated/material.min.css +0 -1
  450. /package/{css/themes/deprecated → deprecated/css}/custom-ionic.css +0 -0
  451. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/checkbox.css +0 -0
  452. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/col.css +0 -0
  453. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/dynamicImage.css +0 -0
  454. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/import_groupingOfCss.css +0 -0
  455. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/login.css +0 -0
  456. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/qrCodeCronapp.css +0 -0
  457. /package/{css/themes/deprecated → deprecated/css}/groupingOfCss/upload-image.css +0 -0
  458. /package/{css/themes/deprecated → deprecated/css}/old/modal.css +0 -0
  459. /package/{dist/css/themes/deprecated → deprecated/dist/css}/cronos.css +0 -0
  460. /package/{dist/css/themes/deprecated → deprecated/dist/css}/custom-ionic.css +0 -0
  461. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/checkbox.css +0 -0
  462. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/col.css +0 -0
  463. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/dynamicImage.css +0 -0
  464. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/import_groupingOfCss.css +0 -0
  465. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/login.css +0 -0
  466. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/qrCodeCronapp.css +0 -0
  467. /package/{dist/css/themes/deprecated → deprecated/dist/css}/groupingOfCss/upload-image.css +0 -0
  468. /package/{dist/css/themes/deprecated → deprecated/dist/css}/old/modal.css +0 -0
@@ -0,0 +1,1319 @@
1
+ //---------------------------------------------------------------------
2
+ // QRCode for JavaScript
3
+ //
4
+ // Copyright (c) 2009 Kazuhiko Arase, URL: http://www.d-project.com/
5
+ // Copyright (c) 2013 Jan Antala, URL: http://www.janantala.com/
6
+ //
7
+ // Licensed under the MIT license:
8
+ // http://www.opensource.org/licenses/mit-license.php
9
+ //
10
+ // The word "QR Code" is registered trademark of
11
+ // DENSO WAVE INCORPORATED
12
+ // http://www.denso-wave.com/qrcode/faqpatent-e.html
13
+ //
14
+ //---------------------------------------------------------------------
15
+
16
+ //---------------------------------------------------------------------
17
+ // QR8bitByte
18
+ //---------------------------------------------------------------------
19
+
20
+ function QR8bitByte(data) {
21
+ this.mode = QRMode.MODE_8BIT_BYTE;
22
+ this.data = data;
23
+ }
24
+
25
+ QR8bitByte.prototype = {
26
+
27
+ getLength : function(buffer) {
28
+ return this.data.length;
29
+ },
30
+
31
+ write : function(buffer) {
32
+ for (var i = 0; i < this.data.length; i++) {
33
+ // not JIS ...
34
+ buffer.put(this.data.charCodeAt(i), 8);
35
+ }
36
+ }
37
+ };
38
+
39
+ //---------------------------------------------------------------------
40
+ // ALPHA_NUM
41
+ //---------------------------------------------------------------------
42
+
43
+ function ALPHA_NUM(data) {
44
+ this.mode = QRMode.MODE_ALPHA_NUM;
45
+ this.data = data;
46
+ }
47
+
48
+ ALPHA_NUM.prototype = {
49
+
50
+ getCode: function(code) {
51
+ var codes = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:';
52
+ return codes.indexOf(code);
53
+ },
54
+
55
+ getLength : function(buffer) {
56
+ return this.data.length;
57
+ },
58
+
59
+ write : function(buffer) {
60
+ for (var i = 0; i < this.data.length; i++) {
61
+ if (this.data[i+1]) {
62
+ buffer.put((45 * this.getCode(this.data[i])) + this.getCode(this.data[i+1]), 11);
63
+ }
64
+ else {
65
+ buffer.put(this.getCode(this.data[i]), 6);
66
+ }
67
+ i++;
68
+ }
69
+ }
70
+ };
71
+
72
+ //---------------------------------------------------------------------
73
+ // NUMBER
74
+ //---------------------------------------------------------------------
75
+
76
+ function NUMBER(data) {
77
+ this.mode = QRMode.MODE_NUMBER;
78
+ this.data = data;
79
+ }
80
+
81
+ NUMBER.prototype = {
82
+
83
+ getBitLen: function(length) {
84
+ var NUMBER_LENGTH = {3: 10, 2: 7, 1: 4};
85
+ return NUMBER_LENGTH[length];
86
+ },
87
+
88
+ getLength : function(buffer) {
89
+ return this.data.length;
90
+ },
91
+
92
+ write : function(buffer) {
93
+ for (var i = 0; i < this.data.length; i++) {
94
+
95
+ var chars = this.data[i];
96
+ if (this.data[i+1]) {
97
+ chars += this.data[i+1];
98
+ }
99
+ if (this.data[i+2]) {
100
+ chars += this.data[i+2];
101
+ }
102
+
103
+ var bitLength = this.getBitLen(chars.length);
104
+ buffer.put(parseInt(chars, 10), bitLength);
105
+
106
+ i++;
107
+ i++;
108
+ }
109
+ }
110
+ };
111
+
112
+ //---------------------------------------------------------------------
113
+ // QRCode
114
+ //---------------------------------------------------------------------
115
+
116
+ function QRCode(typeNumber, errorCorrectLevel, inputMode) {
117
+ this.typeNumber = typeNumber;
118
+ this.errorCorrectLevel = errorCorrectLevel;
119
+ this.inputMode = inputMode;
120
+ this.modules = null;
121
+ this.moduleCount = 0;
122
+ this.dataCache = null;
123
+ this.dataList = new Array();
124
+ }
125
+
126
+ QRCode.prototype = {
127
+
128
+ addData : function(data) {
129
+ var newData;
130
+ if (this.inputMode === 'NUMBER') {
131
+ newData = new NUMBER(data);
132
+ }
133
+ else if (this.inputMode === 'ALPHA_NUM') {
134
+ newData = new ALPHA_NUM(data);
135
+ }
136
+ else {
137
+ newData = new QR8bitByte(data);
138
+ }
139
+
140
+ this.dataList.push(newData);
141
+ this.dataCache = null;
142
+ },
143
+
144
+ isDark : function(row, col) {
145
+ if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {
146
+ throw new Error(row + "," + col);
147
+ }
148
+ return this.modules[row][col];
149
+ },
150
+
151
+ getModuleCount : function() {
152
+ return this.moduleCount;
153
+ },
154
+
155
+ make : function() {
156
+ // Calculate automatically typeNumber if provided is < 1
157
+ if (this.typeNumber < 1 ){
158
+ var typeNumber = 1;
159
+ for (typeNumber = 1; typeNumber < 40; typeNumber++) {
160
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);
161
+ var buffer = new QRBitBuffer();
162
+ var totalDataCount = 0;
163
+ for (var i = 0; i < rsBlocks.length; i++) {
164
+ totalDataCount += rsBlocks[i].dataCount;
165
+ }
166
+
167
+ for (var i = 0; i < this.dataList.length; i++) {
168
+ var data = this.dataList[i];
169
+ buffer.put(data.mode, 4);
170
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );
171
+ data.write(buffer);
172
+ }
173
+ if (buffer.getLengthInBits() <= totalDataCount * 8)
174
+ break;
175
+ }
176
+ this.typeNumber = typeNumber;
177
+ }
178
+ this.makeImpl(false, this.getBestMaskPattern() );
179
+ },
180
+
181
+ makeImpl : function(test, maskPattern) {
182
+
183
+ this.moduleCount = this.typeNumber * 4 + 17;
184
+ this.modules = new Array(this.moduleCount);
185
+
186
+ for (var row = 0; row < this.moduleCount; row++) {
187
+
188
+ this.modules[row] = new Array(this.moduleCount);
189
+
190
+ for (var col = 0; col < this.moduleCount; col++) {
191
+ this.modules[row][col] = null;//(col + row) % 3;
192
+ }
193
+ }
194
+
195
+ this.setupPositionProbePattern(0, 0);
196
+ this.setupPositionProbePattern(this.moduleCount - 7, 0);
197
+ this.setupPositionProbePattern(0, this.moduleCount - 7);
198
+ this.setupPositionAdjustPattern();
199
+ this.setupTimingPattern();
200
+ this.setupTypeInfo(test, maskPattern);
201
+
202
+ if (this.typeNumber >= 7) {
203
+ this.setupTypeNumber(test);
204
+ }
205
+
206
+ if (this.dataCache == null) {
207
+ this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);
208
+ }
209
+
210
+ this.mapData(this.dataCache, maskPattern);
211
+ },
212
+
213
+ setupPositionProbePattern : function(row, col) {
214
+
215
+ for (var r = -1; r <= 7; r++) {
216
+
217
+ if (row + r <= -1 || this.moduleCount <= row + r) continue;
218
+
219
+ for (var c = -1; c <= 7; c++) {
220
+
221
+ if (col + c <= -1 || this.moduleCount <= col + c) continue;
222
+
223
+ if ( (0 <= r && r <= 6 && (c == 0 || c == 6) )
224
+ || (0 <= c && c <= 6 && (r == 0 || r == 6) )
225
+ || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {
226
+ this.modules[row + r][col + c] = true;
227
+ } else {
228
+ this.modules[row + r][col + c] = false;
229
+ }
230
+ }
231
+ }
232
+ },
233
+
234
+ getBestMaskPattern : function() {
235
+
236
+ var minLostPoint = 0;
237
+ var pattern = 0;
238
+
239
+ for (var i = 0; i < 8; i++) {
240
+
241
+ this.makeImpl(true, i);
242
+
243
+ var lostPoint = QRUtil.getLostPoint(this);
244
+
245
+ if (i == 0 || minLostPoint > lostPoint) {
246
+ minLostPoint = lostPoint;
247
+ pattern = i;
248
+ }
249
+ }
250
+
251
+ return pattern;
252
+ },
253
+
254
+ createMovieClip : function(target_mc, instance_name, depth) {
255
+
256
+ var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);
257
+ var cs = 1;
258
+
259
+ this.make();
260
+
261
+ for (var row = 0; row < this.modules.length; row++) {
262
+
263
+ var y = row * cs;
264
+
265
+ for (var col = 0; col < this.modules[row].length; col++) {
266
+
267
+ var x = col * cs;
268
+ var dark = this.modules[row][col];
269
+
270
+ if (dark) {
271
+ qr_mc.beginFill(0, 100);
272
+ qr_mc.moveTo(x, y);
273
+ qr_mc.lineTo(x + cs, y);
274
+ qr_mc.lineTo(x + cs, y + cs);
275
+ qr_mc.lineTo(x, y + cs);
276
+ qr_mc.endFill();
277
+ }
278
+ }
279
+ }
280
+
281
+ return qr_mc;
282
+ },
283
+
284
+ setupTimingPattern : function() {
285
+
286
+ for (var r = 8; r < this.moduleCount - 8; r++) {
287
+ if (this.modules[r][6] != null) {
288
+ continue;
289
+ }
290
+ this.modules[r][6] = (r % 2 == 0);
291
+ }
292
+
293
+ for (var c = 8; c < this.moduleCount - 8; c++) {
294
+ if (this.modules[6][c] != null) {
295
+ continue;
296
+ }
297
+ this.modules[6][c] = (c % 2 == 0);
298
+ }
299
+ },
300
+
301
+ setupPositionAdjustPattern : function() {
302
+
303
+ var pos = QRUtil.getPatternPosition(this.typeNumber);
304
+
305
+ for (var i = 0; i < pos.length; i++) {
306
+
307
+ for (var j = 0; j < pos.length; j++) {
308
+
309
+ var row = pos[i];
310
+ var col = pos[j];
311
+
312
+ if (this.modules[row][col] != null) {
313
+ continue;
314
+ }
315
+
316
+ for (var r = -2; r <= 2; r++) {
317
+
318
+ for (var c = -2; c <= 2; c++) {
319
+
320
+ if (r == -2 || r == 2 || c == -2 || c == 2
321
+ || (r == 0 && c == 0) ) {
322
+ this.modules[row + r][col + c] = true;
323
+ } else {
324
+ this.modules[row + r][col + c] = false;
325
+ }
326
+ }
327
+ }
328
+ }
329
+ }
330
+ },
331
+
332
+ setupTypeNumber : function(test) {
333
+
334
+ var bits = QRUtil.getBCHTypeNumber(this.typeNumber);
335
+
336
+ for (var i = 0; i < 18; i++) {
337
+ var mod = (!test && ( (bits >> i) & 1) == 1);
338
+ this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;
339
+ }
340
+
341
+ for (var i = 0; i < 18; i++) {
342
+ var mod = (!test && ( (bits >> i) & 1) == 1);
343
+ this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;
344
+ }
345
+ },
346
+
347
+ setupTypeInfo : function(test, maskPattern) {
348
+
349
+ var data = (this.errorCorrectLevel << 3) | maskPattern;
350
+ var bits = QRUtil.getBCHTypeInfo(data);
351
+
352
+ // vertical
353
+ for (var i = 0; i < 15; i++) {
354
+
355
+ var mod = (!test && ( (bits >> i) & 1) == 1);
356
+
357
+ if (i < 6) {
358
+ this.modules[i][8] = mod;
359
+ } else if (i < 8) {
360
+ this.modules[i + 1][8] = mod;
361
+ } else {
362
+ this.modules[this.moduleCount - 15 + i][8] = mod;
363
+ }
364
+ }
365
+
366
+ // horizontal
367
+ for (var i = 0; i < 15; i++) {
368
+
369
+ var mod = (!test && ( (bits >> i) & 1) == 1);
370
+
371
+ if (i < 8) {
372
+ this.modules[8][this.moduleCount - i - 1] = mod;
373
+ } else if (i < 9) {
374
+ this.modules[8][15 - i - 1 + 1] = mod;
375
+ } else {
376
+ this.modules[8][15 - i - 1] = mod;
377
+ }
378
+ }
379
+
380
+ // fixed module
381
+ this.modules[this.moduleCount - 8][8] = (!test);
382
+
383
+ },
384
+
385
+ mapData : function(data, maskPattern) {
386
+
387
+ var inc = -1;
388
+ var row = this.moduleCount - 1;
389
+ var bitIndex = 7;
390
+ var byteIndex = 0;
391
+
392
+ for (var col = this.moduleCount - 1; col > 0; col -= 2) {
393
+
394
+ if (col == 6) col--;
395
+
396
+ while (true) {
397
+
398
+ for (var c = 0; c < 2; c++) {
399
+
400
+ if (this.modules[row][col - c] == null) {
401
+
402
+ var dark = false;
403
+
404
+ if (byteIndex < data.length) {
405
+ dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);
406
+ }
407
+
408
+ var mask = QRUtil.getMask(maskPattern, row, col - c);
409
+
410
+ if (mask) {
411
+ dark = !dark;
412
+ }
413
+
414
+ this.modules[row][col - c] = dark;
415
+ bitIndex--;
416
+
417
+ if (bitIndex == -1) {
418
+ byteIndex++;
419
+ bitIndex = 7;
420
+ }
421
+ }
422
+ }
423
+
424
+ row += inc;
425
+
426
+ if (row < 0 || this.moduleCount <= row) {
427
+ row -= inc;
428
+ inc = -inc;
429
+ break;
430
+ }
431
+ }
432
+ }
433
+
434
+ }
435
+
436
+ };
437
+
438
+ QRCode.PAD0 = 0xEC;
439
+ QRCode.PAD1 = 0x11;
440
+
441
+ QRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {
442
+
443
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);
444
+
445
+ var buffer = new QRBitBuffer();
446
+
447
+ for (var i = 0; i < dataList.length; i++) {
448
+ var data = dataList[i];
449
+ buffer.put(data.mode, 4);
450
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) );
451
+ data.write(buffer);
452
+ }
453
+
454
+ // calc num max data.
455
+ var totalDataCount = 0;
456
+ for (var i = 0; i < rsBlocks.length; i++) {
457
+ totalDataCount += rsBlocks[i].dataCount;
458
+ }
459
+
460
+ if (buffer.getLengthInBits() > totalDataCount * 8) {
461
+ throw new Error("code length overflow. ("
462
+ + buffer.getLengthInBits()
463
+ + ">"
464
+ + totalDataCount * 8
465
+ + ")");
466
+ }
467
+
468
+ // end code
469
+ if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {
470
+ buffer.put(0, 4);
471
+ }
472
+
473
+ // padding
474
+ while (buffer.getLengthInBits() % 8 != 0) {
475
+ buffer.putBit(false);
476
+ }
477
+
478
+ // padding
479
+ while (true) {
480
+
481
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
482
+ break;
483
+ }
484
+ buffer.put(QRCode.PAD0, 8);
485
+
486
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
487
+ break;
488
+ }
489
+ buffer.put(QRCode.PAD1, 8);
490
+ }
491
+
492
+ return QRCode.createBytes(buffer, rsBlocks);
493
+ }
494
+
495
+ QRCode.createBytes = function(buffer, rsBlocks) {
496
+
497
+ var offset = 0;
498
+
499
+ var maxDcCount = 0;
500
+ var maxEcCount = 0;
501
+
502
+ var dcdata = new Array(rsBlocks.length);
503
+ var ecdata = new Array(rsBlocks.length);
504
+
505
+ for (var r = 0; r < rsBlocks.length; r++) {
506
+
507
+ var dcCount = rsBlocks[r].dataCount;
508
+ var ecCount = rsBlocks[r].totalCount - dcCount;
509
+
510
+ maxDcCount = Math.max(maxDcCount, dcCount);
511
+ maxEcCount = Math.max(maxEcCount, ecCount);
512
+
513
+ dcdata[r] = new Array(dcCount);
514
+
515
+ for (var i = 0; i < dcdata[r].length; i++) {
516
+ dcdata[r][i] = 0xff & buffer.buffer[i + offset];
517
+ }
518
+ offset += dcCount;
519
+
520
+ var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
521
+ var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);
522
+
523
+ var modPoly = rawPoly.mod(rsPoly);
524
+ ecdata[r] = new Array(rsPoly.getLength() - 1);
525
+ for (var i = 0; i < ecdata[r].length; i++) {
526
+ var modIndex = i + modPoly.getLength() - ecdata[r].length;
527
+ ecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;
528
+ }
529
+
530
+ }
531
+
532
+ var totalCodeCount = 0;
533
+ for (var i = 0; i < rsBlocks.length; i++) {
534
+ totalCodeCount += rsBlocks[i].totalCount;
535
+ }
536
+
537
+ var data = new Array(totalCodeCount);
538
+ var index = 0;
539
+
540
+ for (var i = 0; i < maxDcCount; i++) {
541
+ for (var r = 0; r < rsBlocks.length; r++) {
542
+ if (i < dcdata[r].length) {
543
+ data[index++] = dcdata[r][i];
544
+ }
545
+ }
546
+ }
547
+
548
+ for (var i = 0; i < maxEcCount; i++) {
549
+ for (var r = 0; r < rsBlocks.length; r++) {
550
+ if (i < ecdata[r].length) {
551
+ data[index++] = ecdata[r][i];
552
+ }
553
+ }
554
+ }
555
+
556
+ return data;
557
+
558
+ }
559
+
560
+ //---------------------------------------------------------------------
561
+ // QRMode
562
+ //---------------------------------------------------------------------
563
+
564
+ var QRMode = {
565
+ MODE_NUMBER : 1 << 0,
566
+ MODE_ALPHA_NUM : 1 << 1,
567
+ MODE_8BIT_BYTE : 1 << 2,
568
+ MODE_KANJI : 1 << 3
569
+ };
570
+
571
+ //---------------------------------------------------------------------
572
+ // QRErrorCorrectLevel
573
+ //---------------------------------------------------------------------
574
+
575
+ var QRErrorCorrectLevel = {
576
+ L : 1,
577
+ M : 0,
578
+ Q : 3,
579
+ H : 2
580
+ };
581
+
582
+ //---------------------------------------------------------------------
583
+ // QRMaskPattern
584
+ //---------------------------------------------------------------------
585
+
586
+ var QRMaskPattern = {
587
+ PATTERN000 : 0,
588
+ PATTERN001 : 1,
589
+ PATTERN010 : 2,
590
+ PATTERN011 : 3,
591
+ PATTERN100 : 4,
592
+ PATTERN101 : 5,
593
+ PATTERN110 : 6,
594
+ PATTERN111 : 7
595
+ };
596
+
597
+ //---------------------------------------------------------------------
598
+ // QRUtil
599
+ //---------------------------------------------------------------------
600
+
601
+ var QRUtil = {
602
+
603
+ PATTERN_POSITION_TABLE : [
604
+ [],
605
+ [6, 18],
606
+ [6, 22],
607
+ [6, 26],
608
+ [6, 30],
609
+ [6, 34],
610
+ [6, 22, 38],
611
+ [6, 24, 42],
612
+ [6, 26, 46],
613
+ [6, 28, 50],
614
+ [6, 30, 54],
615
+ [6, 32, 58],
616
+ [6, 34, 62],
617
+ [6, 26, 46, 66],
618
+ [6, 26, 48, 70],
619
+ [6, 26, 50, 74],
620
+ [6, 30, 54, 78],
621
+ [6, 30, 56, 82],
622
+ [6, 30, 58, 86],
623
+ [6, 34, 62, 90],
624
+ [6, 28, 50, 72, 94],
625
+ [6, 26, 50, 74, 98],
626
+ [6, 30, 54, 78, 102],
627
+ [6, 28, 54, 80, 106],
628
+ [6, 32, 58, 84, 110],
629
+ [6, 30, 58, 86, 114],
630
+ [6, 34, 62, 90, 118],
631
+ [6, 26, 50, 74, 98, 122],
632
+ [6, 30, 54, 78, 102, 126],
633
+ [6, 26, 52, 78, 104, 130],
634
+ [6, 30, 56, 82, 108, 134],
635
+ [6, 34, 60, 86, 112, 138],
636
+ [6, 30, 58, 86, 114, 142],
637
+ [6, 34, 62, 90, 118, 146],
638
+ [6, 30, 54, 78, 102, 126, 150],
639
+ [6, 24, 50, 76, 102, 128, 154],
640
+ [6, 28, 54, 80, 106, 132, 158],
641
+ [6, 32, 58, 84, 110, 136, 162],
642
+ [6, 26, 54, 82, 110, 138, 166],
643
+ [6, 30, 58, 86, 114, 142, 170]
644
+ ],
645
+
646
+ G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),
647
+ G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),
648
+ G15_MASK : (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),
649
+
650
+ getBCHTypeInfo : function(data) {
651
+ var d = data << 10;
652
+ while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {
653
+ d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) );
654
+ }
655
+ return ( (data << 10) | d) ^ QRUtil.G15_MASK;
656
+ },
657
+
658
+ getBCHTypeNumber : function(data) {
659
+ var d = data << 12;
660
+ while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {
661
+ d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) );
662
+ }
663
+ return (data << 12) | d;
664
+ },
665
+
666
+ getBCHDigit : function(data) {
667
+
668
+ var digit = 0;
669
+
670
+ while (data != 0) {
671
+ digit++;
672
+ data >>>= 1;
673
+ }
674
+
675
+ return digit;
676
+ },
677
+
678
+ getPatternPosition : function(typeNumber) {
679
+ return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];
680
+ },
681
+
682
+ getMask : function(maskPattern, i, j) {
683
+
684
+ switch (maskPattern) {
685
+
686
+ case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;
687
+ case QRMaskPattern.PATTERN001 : return i % 2 == 0;
688
+ case QRMaskPattern.PATTERN010 : return j % 3 == 0;
689
+ case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;
690
+ case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;
691
+ case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;
692
+ case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;
693
+ case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;
694
+
695
+ default :
696
+ throw new Error("bad maskPattern:" + maskPattern);
697
+ }
698
+ },
699
+
700
+ getErrorCorrectPolynomial : function(errorCorrectLength) {
701
+
702
+ var a = new QRPolynomial([1], 0);
703
+
704
+ for (var i = 0; i < errorCorrectLength; i++) {
705
+ a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0) );
706
+ }
707
+
708
+ return a;
709
+ },
710
+
711
+ getLengthInBits : function(mode, type) {
712
+
713
+ if (1 <= type && type < 10) {
714
+
715
+ // 1 - 9
716
+
717
+ switch(mode) {
718
+ case QRMode.MODE_NUMBER : return 10;
719
+ case QRMode.MODE_ALPHA_NUM : return 9;
720
+ case QRMode.MODE_8BIT_BYTE : return 8;
721
+ case QRMode.MODE_KANJI : return 8;
722
+ default :
723
+ throw new Error("mode:" + mode);
724
+ }
725
+
726
+ } else if (type < 27) {
727
+
728
+ // 10 - 26
729
+
730
+ switch(mode) {
731
+ case QRMode.MODE_NUMBER : return 12;
732
+ case QRMode.MODE_ALPHA_NUM : return 11;
733
+ case QRMode.MODE_8BIT_BYTE : return 16;
734
+ case QRMode.MODE_KANJI : return 10;
735
+ default :
736
+ throw new Error("mode:" + mode);
737
+ }
738
+
739
+ } else if (type < 41) {
740
+
741
+ // 27 - 40
742
+
743
+ switch(mode) {
744
+ case QRMode.MODE_NUMBER : return 14;
745
+ case QRMode.MODE_ALPHA_NUM : return 13;
746
+ case QRMode.MODE_8BIT_BYTE : return 16;
747
+ case QRMode.MODE_KANJI : return 12;
748
+ default :
749
+ throw new Error("mode:" + mode);
750
+ }
751
+
752
+ } else {
753
+ throw new Error("type:" + type);
754
+ }
755
+ },
756
+
757
+ getLostPoint : function(qrCode) {
758
+
759
+ var moduleCount = qrCode.getModuleCount();
760
+
761
+ var lostPoint = 0;
762
+
763
+ // LEVEL1
764
+
765
+ for (var row = 0; row < moduleCount; row++) {
766
+
767
+ for (var col = 0; col < moduleCount; col++) {
768
+
769
+ var sameCount = 0;
770
+ var dark = qrCode.isDark(row, col);
771
+
772
+ for (var r = -1; r <= 1; r++) {
773
+
774
+ if (row + r < 0 || moduleCount <= row + r) {
775
+ continue;
776
+ }
777
+
778
+ for (var c = -1; c <= 1; c++) {
779
+
780
+ if (col + c < 0 || moduleCount <= col + c) {
781
+ continue;
782
+ }
783
+
784
+ if (r == 0 && c == 0) {
785
+ continue;
786
+ }
787
+
788
+ if (dark == qrCode.isDark(row + r, col + c) ) {
789
+ sameCount++;
790
+ }
791
+ }
792
+ }
793
+
794
+ if (sameCount > 5) {
795
+ lostPoint += (3 + sameCount - 5);
796
+ }
797
+ }
798
+ }
799
+
800
+ // LEVEL2
801
+
802
+ for (var row = 0; row < moduleCount - 1; row++) {
803
+ for (var col = 0; col < moduleCount - 1; col++) {
804
+ var count = 0;
805
+ if (qrCode.isDark(row, col ) ) count++;
806
+ if (qrCode.isDark(row + 1, col ) ) count++;
807
+ if (qrCode.isDark(row, col + 1) ) count++;
808
+ if (qrCode.isDark(row + 1, col + 1) ) count++;
809
+ if (count == 0 || count == 4) {
810
+ lostPoint += 3;
811
+ }
812
+ }
813
+ }
814
+
815
+ // LEVEL3
816
+
817
+ for (var row = 0; row < moduleCount; row++) {
818
+ for (var col = 0; col < moduleCount - 6; col++) {
819
+ if (qrCode.isDark(row, col)
820
+ && !qrCode.isDark(row, col + 1)
821
+ && qrCode.isDark(row, col + 2)
822
+ && qrCode.isDark(row, col + 3)
823
+ && qrCode.isDark(row, col + 4)
824
+ && !qrCode.isDark(row, col + 5)
825
+ && qrCode.isDark(row, col + 6) ) {
826
+ lostPoint += 40;
827
+ }
828
+ }
829
+ }
830
+
831
+ for (var col = 0; col < moduleCount; col++) {
832
+ for (var row = 0; row < moduleCount - 6; row++) {
833
+ if (qrCode.isDark(row, col)
834
+ && !qrCode.isDark(row + 1, col)
835
+ && qrCode.isDark(row + 2, col)
836
+ && qrCode.isDark(row + 3, col)
837
+ && qrCode.isDark(row + 4, col)
838
+ && !qrCode.isDark(row + 5, col)
839
+ && qrCode.isDark(row + 6, col) ) {
840
+ lostPoint += 40;
841
+ }
842
+ }
843
+ }
844
+
845
+ // LEVEL4
846
+
847
+ var darkCount = 0;
848
+
849
+ for (var col = 0; col < moduleCount; col++) {
850
+ for (var row = 0; row < moduleCount; row++) {
851
+ if (qrCode.isDark(row, col) ) {
852
+ darkCount++;
853
+ }
854
+ }
855
+ }
856
+
857
+ var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;
858
+ lostPoint += ratio * 10;
859
+
860
+ return lostPoint;
861
+ }
862
+
863
+ };
864
+
865
+
866
+ //---------------------------------------------------------------------
867
+ // QRMath
868
+ //---------------------------------------------------------------------
869
+
870
+ var QRMath = {
871
+
872
+ glog : function(n) {
873
+
874
+ if (n < 1) {
875
+ throw new Error("glog(" + n + ")");
876
+ }
877
+
878
+ return QRMath.LOG_TABLE[n];
879
+ },
880
+
881
+ gexp : function(n) {
882
+
883
+ while (n < 0) {
884
+ n += 255;
885
+ }
886
+
887
+ while (n >= 256) {
888
+ n -= 255;
889
+ }
890
+
891
+ return QRMath.EXP_TABLE[n];
892
+ },
893
+
894
+ EXP_TABLE : new Array(256),
895
+
896
+ LOG_TABLE : new Array(256)
897
+
898
+ };
899
+
900
+ for (var i = 0; i < 8; i++) {
901
+ QRMath.EXP_TABLE[i] = 1 << i;
902
+ }
903
+ for (var i = 8; i < 256; i++) {
904
+ QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]
905
+ ^ QRMath.EXP_TABLE[i - 5]
906
+ ^ QRMath.EXP_TABLE[i - 6]
907
+ ^ QRMath.EXP_TABLE[i - 8];
908
+ }
909
+ for (var i = 0; i < 255; i++) {
910
+ QRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;
911
+ }
912
+
913
+ //---------------------------------------------------------------------
914
+ // QRPolynomial
915
+ //---------------------------------------------------------------------
916
+
917
+ function QRPolynomial(num, shift) {
918
+
919
+ if (num.length == undefined) {
920
+ throw new Error(num.length + "/" + shift);
921
+ }
922
+
923
+ var offset = 0;
924
+
925
+ while (offset < num.length && num[offset] == 0) {
926
+ offset++;
927
+ }
928
+
929
+ this.num = new Array(num.length - offset + shift);
930
+ for (var i = 0; i < num.length - offset; i++) {
931
+ this.num[i] = num[i + offset];
932
+ }
933
+ }
934
+
935
+ QRPolynomial.prototype = {
936
+
937
+ get : function(index) {
938
+ return this.num[index];
939
+ },
940
+
941
+ getLength : function() {
942
+ return this.num.length;
943
+ },
944
+
945
+ multiply : function(e) {
946
+
947
+ var num = new Array(this.getLength() + e.getLength() - 1);
948
+
949
+ for (var i = 0; i < this.getLength(); i++) {
950
+ for (var j = 0; j < e.getLength(); j++) {
951
+ num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i) ) + QRMath.glog(e.get(j) ) );
952
+ }
953
+ }
954
+
955
+ return new QRPolynomial(num, 0);
956
+ },
957
+
958
+ mod : function(e) {
959
+
960
+ if (this.getLength() - e.getLength() < 0) {
961
+ return this;
962
+ }
963
+
964
+ var ratio = QRMath.glog(this.get(0) ) - QRMath.glog(e.get(0) );
965
+
966
+ var num = new Array(this.getLength() );
967
+
968
+ for (var i = 0; i < this.getLength(); i++) {
969
+ num[i] = this.get(i);
970
+ }
971
+
972
+ for (var i = 0; i < e.getLength(); i++) {
973
+ num[i] ^= QRMath.gexp(QRMath.glog(e.get(i) ) + ratio);
974
+ }
975
+
976
+ // recursive call
977
+ return new QRPolynomial(num, 0).mod(e);
978
+ }
979
+ };
980
+
981
+ //---------------------------------------------------------------------
982
+ // QRRSBlock
983
+ //---------------------------------------------------------------------
984
+
985
+ function QRRSBlock(totalCount, dataCount) {
986
+ this.totalCount = totalCount;
987
+ this.dataCount = dataCount;
988
+ }
989
+
990
+ QRRSBlock.RS_BLOCK_TABLE = [
991
+
992
+ // L
993
+ // M
994
+ // Q
995
+ // H
996
+
997
+ // 1
998
+ [1, 26, 19],
999
+ [1, 26, 16],
1000
+ [1, 26, 13],
1001
+ [1, 26, 9],
1002
+
1003
+ // 2
1004
+ [1, 44, 34],
1005
+ [1, 44, 28],
1006
+ [1, 44, 22],
1007
+ [1, 44, 16],
1008
+
1009
+ // 3
1010
+ [1, 70, 55],
1011
+ [1, 70, 44],
1012
+ [2, 35, 17],
1013
+ [2, 35, 13],
1014
+
1015
+ // 4
1016
+ [1, 100, 80],
1017
+ [2, 50, 32],
1018
+ [2, 50, 24],
1019
+ [4, 25, 9],
1020
+
1021
+ // 5
1022
+ [1, 134, 108],
1023
+ [2, 67, 43],
1024
+ [2, 33, 15, 2, 34, 16],
1025
+ [2, 33, 11, 2, 34, 12],
1026
+
1027
+ // 6
1028
+ [2, 86, 68],
1029
+ [4, 43, 27],
1030
+ [4, 43, 19],
1031
+ [4, 43, 15],
1032
+
1033
+ // 7
1034
+ [2, 98, 78],
1035
+ [4, 49, 31],
1036
+ [2, 32, 14, 4, 33, 15],
1037
+ [4, 39, 13, 1, 40, 14],
1038
+
1039
+ // 8
1040
+ [2, 121, 97],
1041
+ [2, 60, 38, 2, 61, 39],
1042
+ [4, 40, 18, 2, 41, 19],
1043
+ [4, 40, 14, 2, 41, 15],
1044
+
1045
+ // 9
1046
+ [2, 146, 116],
1047
+ [3, 58, 36, 2, 59, 37],
1048
+ [4, 36, 16, 4, 37, 17],
1049
+ [4, 36, 12, 4, 37, 13],
1050
+
1051
+ // 10
1052
+ [2, 86, 68, 2, 87, 69],
1053
+ [4, 69, 43, 1, 70, 44],
1054
+ [6, 43, 19, 2, 44, 20],
1055
+ [6, 43, 15, 2, 44, 16],
1056
+
1057
+ // 11
1058
+ [4, 101, 81],
1059
+ [1, 80, 50, 4, 81, 51],
1060
+ [4, 50, 22, 4, 51, 23],
1061
+ [3, 36, 12, 8, 37, 13],
1062
+
1063
+ // 12
1064
+ [2, 116, 92, 2, 117, 93],
1065
+ [6, 58, 36, 2, 59, 37],
1066
+ [4, 46, 20, 6, 47, 21],
1067
+ [7, 42, 14, 4, 43, 15],
1068
+
1069
+ // 13
1070
+ [4, 133, 107],
1071
+ [8, 59, 37, 1, 60, 38],
1072
+ [8, 44, 20, 4, 45, 21],
1073
+ [12, 33, 11, 4, 34, 12],
1074
+
1075
+ // 14
1076
+ [3, 145, 115, 1, 146, 116],
1077
+ [4, 64, 40, 5, 65, 41],
1078
+ [11, 36, 16, 5, 37, 17],
1079
+ [11, 36, 12, 5, 37, 13],
1080
+
1081
+ // 15
1082
+ [5, 109, 87, 1, 110, 88],
1083
+ [5, 65, 41, 5, 66, 42],
1084
+ [5, 54, 24, 7, 55, 25],
1085
+ [11, 36, 12],
1086
+
1087
+ // 16
1088
+ [5, 122, 98, 1, 123, 99],
1089
+ [7, 73, 45, 3, 74, 46],
1090
+ [15, 43, 19, 2, 44, 20],
1091
+ [3, 45, 15, 13, 46, 16],
1092
+
1093
+ // 17
1094
+ [1, 135, 107, 5, 136, 108],
1095
+ [10, 74, 46, 1, 75, 47],
1096
+ [1, 50, 22, 15, 51, 23],
1097
+ [2, 42, 14, 17, 43, 15],
1098
+
1099
+ // 18
1100
+ [5, 150, 120, 1, 151, 121],
1101
+ [9, 69, 43, 4, 70, 44],
1102
+ [17, 50, 22, 1, 51, 23],
1103
+ [2, 42, 14, 19, 43, 15],
1104
+
1105
+ // 19
1106
+ [3, 141, 113, 4, 142, 114],
1107
+ [3, 70, 44, 11, 71, 45],
1108
+ [17, 47, 21, 4, 48, 22],
1109
+ [9, 39, 13, 16, 40, 14],
1110
+
1111
+ // 20
1112
+ [3, 135, 107, 5, 136, 108],
1113
+ [3, 67, 41, 13, 68, 42],
1114
+ [15, 54, 24, 5, 55, 25],
1115
+ [15, 43, 15, 10, 44, 16],
1116
+
1117
+ // 21
1118
+ [4, 144, 116, 4, 145, 117],
1119
+ [17, 68, 42],
1120
+ [17, 50, 22, 6, 51, 23],
1121
+ [19, 46, 16, 6, 47, 17],
1122
+
1123
+ // 22
1124
+ [2, 139, 111, 7, 140, 112],
1125
+ [17, 74, 46],
1126
+ [7, 54, 24, 16, 55, 25],
1127
+ [34, 37, 13],
1128
+
1129
+ // 23
1130
+ [4, 151, 121, 5, 152, 122],
1131
+ [4, 75, 47, 14, 76, 48],
1132
+ [11, 54, 24, 14, 55, 25],
1133
+ [16, 45, 15, 14, 46, 16],
1134
+
1135
+ // 24
1136
+ [6, 147, 117, 4, 148, 118],
1137
+ [6, 73, 45, 14, 74, 46],
1138
+ [11, 54, 24, 16, 55, 25],
1139
+ [30, 46, 16, 2, 47, 17],
1140
+
1141
+ // 25
1142
+ [8, 132, 106, 4, 133, 107],
1143
+ [8, 75, 47, 13, 76, 48],
1144
+ [7, 54, 24, 22, 55, 25],
1145
+ [22, 45, 15, 13, 46, 16],
1146
+
1147
+ // 26
1148
+ [10, 142, 114, 2, 143, 115],
1149
+ [19, 74, 46, 4, 75, 47],
1150
+ [28, 50, 22, 6, 51, 23],
1151
+ [33, 46, 16, 4, 47, 17],
1152
+
1153
+ // 27
1154
+ [8, 152, 122, 4, 153, 123],
1155
+ [22, 73, 45, 3, 74, 46],
1156
+ [8, 53, 23, 26, 54, 24],
1157
+ [12, 45, 15, 28, 46, 16],
1158
+
1159
+ // 28
1160
+ [3, 147, 117, 10, 148, 118],
1161
+ [3, 73, 45, 23, 74, 46],
1162
+ [4, 54, 24, 31, 55, 25],
1163
+ [11, 45, 15, 31, 46, 16],
1164
+
1165
+ // 29
1166
+ [7, 146, 116, 7, 147, 117],
1167
+ [21, 73, 45, 7, 74, 46],
1168
+ [1, 53, 23, 37, 54, 24],
1169
+ [19, 45, 15, 26, 46, 16],
1170
+
1171
+ // 30
1172
+ [5, 145, 115, 10, 146, 116],
1173
+ [19, 75, 47, 10, 76, 48],
1174
+ [15, 54, 24, 25, 55, 25],
1175
+ [23, 45, 15, 25, 46, 16],
1176
+
1177
+ // 31
1178
+ [13, 145, 115, 3, 146, 116],
1179
+ [2, 74, 46, 29, 75, 47],
1180
+ [42, 54, 24, 1, 55, 25],
1181
+ [23, 45, 15, 28, 46, 16],
1182
+
1183
+ // 32
1184
+ [17, 145, 115],
1185
+ [10, 74, 46, 23, 75, 47],
1186
+ [10, 54, 24, 35, 55, 25],
1187
+ [19, 45, 15, 35, 46, 16],
1188
+
1189
+ // 33
1190
+ [17, 145, 115, 1, 146, 116],
1191
+ [14, 74, 46, 21, 75, 47],
1192
+ [29, 54, 24, 19, 55, 25],
1193
+ [11, 45, 15, 46, 46, 16],
1194
+
1195
+ // 34
1196
+ [13, 145, 115, 6, 146, 116],
1197
+ [14, 74, 46, 23, 75, 47],
1198
+ [44, 54, 24, 7, 55, 25],
1199
+ [59, 46, 16, 1, 47, 17],
1200
+
1201
+ // 35
1202
+ [12, 151, 121, 7, 152, 122],
1203
+ [12, 75, 47, 26, 76, 48],
1204
+ [39, 54, 24, 14, 55, 25],
1205
+ [22, 45, 15, 41, 46, 16],
1206
+
1207
+ // 36
1208
+ [6, 151, 121, 14, 152, 122],
1209
+ [6, 75, 47, 34, 76, 48],
1210
+ [46, 54, 24, 10, 55, 25],
1211
+ [2, 45, 15, 64, 46, 16],
1212
+
1213
+ // 37
1214
+ [17, 152, 122, 4, 153, 123],
1215
+ [29, 74, 46, 14, 75, 47],
1216
+ [49, 54, 24, 10, 55, 25],
1217
+ [24, 45, 15, 46, 46, 16],
1218
+
1219
+ // 38
1220
+ [4, 152, 122, 18, 153, 123],
1221
+ [13, 74, 46, 32, 75, 47],
1222
+ [48, 54, 24, 14, 55, 25],
1223
+ [42, 45, 15, 32, 46, 16],
1224
+
1225
+ // 39
1226
+ [20, 147, 117, 4, 148, 118],
1227
+ [40, 75, 47, 7, 76, 48],
1228
+ [43, 54, 24, 22, 55, 25],
1229
+ [10, 45, 15, 67, 46, 16],
1230
+
1231
+ // 40
1232
+ [19, 148, 118, 6, 149, 119],
1233
+ [18, 75, 47, 31, 76, 48],
1234
+ [34, 54, 24, 34, 55, 25],
1235
+ [20, 45, 15, 61, 46, 16]
1236
+ ];
1237
+
1238
+ QRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {
1239
+
1240
+ var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);
1241
+
1242
+ if (rsBlock == undefined) {
1243
+ throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + errorCorrectLevel);
1244
+ }
1245
+
1246
+ var length = rsBlock.length / 3;
1247
+
1248
+ var list = new Array();
1249
+
1250
+ for (var i = 0; i < length; i++) {
1251
+
1252
+ var count = rsBlock[i * 3 + 0];
1253
+ var totalCount = rsBlock[i * 3 + 1];
1254
+ var dataCount = rsBlock[i * 3 + 2];
1255
+
1256
+ for (var j = 0; j < count; j++) {
1257
+ list.push(new QRRSBlock(totalCount, dataCount) );
1258
+ }
1259
+ }
1260
+
1261
+ return list;
1262
+ }
1263
+
1264
+ QRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {
1265
+
1266
+ switch(errorCorrectLevel) {
1267
+ case QRErrorCorrectLevel.L :
1268
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];
1269
+ case QRErrorCorrectLevel.M :
1270
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];
1271
+ case QRErrorCorrectLevel.Q :
1272
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];
1273
+ case QRErrorCorrectLevel.H :
1274
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];
1275
+ default :
1276
+ return undefined;
1277
+ }
1278
+ }
1279
+
1280
+ //---------------------------------------------------------------------
1281
+ // QRBitBuffer
1282
+ //---------------------------------------------------------------------
1283
+
1284
+ function QRBitBuffer() {
1285
+ this.buffer = new Array();
1286
+ this.length = 0;
1287
+ }
1288
+
1289
+ QRBitBuffer.prototype = {
1290
+
1291
+ get : function(index) {
1292
+ var bufIndex = Math.floor(index / 8);
1293
+ return ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;
1294
+ },
1295
+
1296
+ put : function(num, length) {
1297
+ for (var i = 0; i < length; i++) {
1298
+ this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);
1299
+ }
1300
+ },
1301
+
1302
+ getLengthInBits : function() {
1303
+ return this.length;
1304
+ },
1305
+
1306
+ putBit : function(bit) {
1307
+
1308
+ var bufIndex = Math.floor(this.length / 8);
1309
+ if (this.buffer.length <= bufIndex) {
1310
+ this.buffer.push(0);
1311
+ }
1312
+
1313
+ if (bit) {
1314
+ this.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );
1315
+ }
1316
+
1317
+ this.length++;
1318
+ }
1319
+ };