wj-elements 0.1.131 → 0.1.132

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 (419) hide show
  1. package/dist/infinite-scroll.element-XVJukzjy.js +0 -1
  2. package/dist/list.element-Ce1vIm1O.js +0 -1
  3. package/dist/localize.js +0 -1
  4. package/dist/packages/index.d.ts +99 -0
  5. package/dist/packages/localize/localize.d.ts +17 -0
  6. package/dist/packages/translations/en-GB.d.ts +13 -0
  7. package/dist/packages/translations/sk-SK.d.ts +13 -0
  8. package/dist/packages/utils/animations.d.ts +2 -0
  9. package/dist/packages/utils/date.d.ts +1 -0
  10. package/dist/packages/utils/element-utils.d.ts +46 -0
  11. package/dist/packages/utils/event.d.ts +67 -0
  12. package/dist/packages/utils/localize.d.ts +4 -0
  13. package/dist/packages/utils/permissions-api.d.ts +34 -0
  14. package/dist/packages/utils/utils.d.ts +1 -0
  15. package/dist/packages/utils/wje-import-firefox.d.ts +0 -0
  16. package/dist/packages/utils/wje-import.d.ts +0 -0
  17. package/dist/packages/wje-accordion/accordion.d.ts +2 -0
  18. package/dist/packages/wje-accordion/accordion.element.d.ts +72 -0
  19. package/dist/packages/wje-accordion-item/accordion-item.d.ts +2 -0
  20. package/dist/packages/wje-accordion-item/accordion-item.element.d.ts +40 -0
  21. package/dist/packages/wje-animation/animation.d.ts +2 -0
  22. package/dist/packages/wje-animation/animation.element.d.ts +153 -0
  23. package/dist/packages/wje-animation/animation.test.d.ts +1 -0
  24. package/dist/packages/wje-aside/aside.d.ts +2 -0
  25. package/dist/packages/wje-aside/aside.element.d.ts +31 -0
  26. package/dist/packages/wje-avatar/avatar.d.ts +2 -0
  27. package/dist/packages/wje-avatar/avatar.element.d.ts +37 -0
  28. package/dist/packages/wje-avatar/service/service.d.ts +40 -0
  29. package/dist/packages/wje-badge/badge.d.ts +2 -0
  30. package/dist/packages/wje-badge/badge.element.d.ts +35 -0
  31. package/dist/packages/wje-badge/badge.test.d.ts +1 -0
  32. package/dist/packages/wje-breadcrumb/breadcrumb.d.ts +2 -0
  33. package/dist/packages/wje-breadcrumb/breadcrumb.element.d.ts +80 -0
  34. package/dist/packages/wje-breadcrumbs/breadcrumbs.d.ts +2 -0
  35. package/dist/packages/wje-breadcrumbs/breadcrumbs.element.d.ts +97 -0
  36. package/dist/packages/wje-breadcrumbs/breadcrumbs.test.d.ts +1 -0
  37. package/dist/packages/wje-button/button.d.ts +2 -0
  38. package/dist/packages/wje-button/button.element.d.ts +173 -0
  39. package/dist/packages/wje-button/button.test.d.ts +1 -0
  40. package/dist/packages/wje-button-group/button-group.d.ts +2 -0
  41. package/dist/packages/wje-button-group/button-group.element.d.ts +39 -0
  42. package/dist/packages/wje-card/card.d.ts +2 -0
  43. package/dist/packages/wje-card/card.element.d.ts +29 -0
  44. package/dist/packages/wje-card-content/card-content.d.ts +2 -0
  45. package/dist/packages/wje-card-content/card-content.element.d.ts +22 -0
  46. package/dist/packages/wje-card-controls/card-controls.d.ts +2 -0
  47. package/dist/packages/wje-card-controls/card-controls.element.d.ts +23 -0
  48. package/dist/packages/wje-card-header/card-header.d.ts +2 -0
  49. package/dist/packages/wje-card-header/card-header.element.d.ts +22 -0
  50. package/dist/packages/wje-card-subtitle/card-subtitle.d.ts +2 -0
  51. package/dist/packages/wje-card-subtitle/card-subtitle.element.d.ts +30 -0
  52. package/dist/packages/wje-card-title/card-title.d.ts +2 -0
  53. package/dist/packages/wje-card-title/card-title.element.d.ts +32 -0
  54. package/dist/packages/wje-carousel/carousel.d.ts +2 -0
  55. package/dist/packages/wje-carousel/carousel.element.d.ts +146 -0
  56. package/dist/packages/wje-carousel-item/carousel-item.d.ts +2 -0
  57. package/dist/packages/wje-carousel-item/carousel-item.element.d.ts +38 -0
  58. package/dist/packages/wje-checkbox/checkbox.d.ts +2 -0
  59. package/dist/packages/wje-checkbox/checkbox.element.d.ts +171 -0
  60. package/dist/packages/wje-chip/chip.d.ts +2 -0
  61. package/dist/packages/wje-chip/chip.element.d.ts +29 -0
  62. package/dist/packages/wje-col/col.d.ts +2 -0
  63. package/dist/packages/wje-col/col.element.d.ts +16 -0
  64. package/dist/packages/wje-color-picker/color-picker.d.ts +2 -0
  65. package/dist/packages/wje-color-picker/color-picker.element.d.ts +187 -0
  66. package/dist/packages/wje-container/container.d.ts +2 -0
  67. package/dist/packages/wje-container/container.element.d.ts +31 -0
  68. package/dist/packages/wje-copy-button/copy-button.d.ts +2 -0
  69. package/dist/packages/wje-copy-button/copy-button.element.d.ts +89 -0
  70. package/dist/packages/wje-copy-button/service/service.d.ts +12 -0
  71. package/dist/packages/wje-dialog/dialog.d.ts +2 -0
  72. package/dist/packages/wje-dialog/dialog.element.d.ts +116 -0
  73. package/dist/packages/wje-divider/divider.d.ts +2 -0
  74. package/dist/packages/wje-divider/divider.element.d.ts +32 -0
  75. package/dist/packages/wje-dropdown/dropdown.d.ts +2 -0
  76. package/dist/packages/wje-dropdown/dropdown.element.d.ts +85 -0
  77. package/dist/packages/wje-element/element.d.ts +312 -0
  78. package/dist/packages/wje-element/service/universal-service.d.ts +18 -0
  79. package/dist/packages/wje-file-upload/file-upload.d.ts +2 -0
  80. package/dist/packages/wje-file-upload/file-upload.element.d.ts +191 -0
  81. package/dist/packages/wje-file-upload/service/service.d.ts +70 -0
  82. package/dist/packages/wje-file-upload-item/file-upload-item.d.ts +2 -0
  83. package/dist/packages/wje-file-upload-item/file-upload-item.element.d.ts +62 -0
  84. package/dist/packages/wje-footer/footer.d.ts +2 -0
  85. package/dist/packages/wje-footer/footer.element.d.ts +28 -0
  86. package/dist/packages/wje-form/form.d.ts +2 -0
  87. package/dist/packages/wje-form/form.element.d.ts +28 -0
  88. package/dist/packages/wje-format-digital/format-digital.d.ts +2 -0
  89. package/dist/packages/wje-format-digital/format-digital.element.d.ts +87 -0
  90. package/dist/packages/wje-format-digital/format-digital.test.d.ts +1 -0
  91. package/dist/packages/wje-grid/grid.d.ts +2 -0
  92. package/dist/packages/wje-grid/grid.element.d.ts +26 -0
  93. package/dist/packages/wje-header/header.d.ts +2 -0
  94. package/dist/packages/wje-header/header.element.d.ts +35 -0
  95. package/dist/packages/wje-icon/icon.d.ts +2 -0
  96. package/dist/packages/wje-icon/icon.element.d.ts +40 -0
  97. package/dist/packages/wje-icon/service/service.d.ts +11 -0
  98. package/dist/packages/wje-icon-picker/icon-picker.d.ts +2 -0
  99. package/dist/packages/wje-icon-picker/icon-picker.element.d.ts +197 -0
  100. package/dist/packages/wje-img/img.d.ts +2 -0
  101. package/dist/packages/wje-img/img.element.d.ts +30 -0
  102. package/dist/packages/wje-img-comparer/img-comparer.d.ts +2 -0
  103. package/dist/packages/wje-img-comparer/img-comparer.element.d.ts +60 -0
  104. package/dist/packages/wje-img-comparer/service/service.d.ts +1 -0
  105. package/dist/packages/wje-infinite-scroll/infinite-scroll.d.ts +2 -0
  106. package/dist/packages/wje-infinite-scroll/infinite-scroll.element.d.ts +134 -0
  107. package/dist/packages/wje-input/input.d.ts +2 -0
  108. package/dist/packages/wje-input/input.element.d.ts +204 -0
  109. package/dist/packages/wje-input-file/input-file.d.ts +2 -0
  110. package/dist/packages/wje-input-file/input-file.element.d.ts +50 -0
  111. package/dist/packages/wje-item/item.d.ts +2 -0
  112. package/dist/packages/wje-item/item.element.d.ts +68 -0
  113. package/dist/packages/wje-kanban/kanban.d.ts +2 -0
  114. package/dist/packages/wje-kanban/kanban.element.d.ts +183 -0
  115. package/dist/packages/wje-label/label.d.ts +2 -0
  116. package/dist/packages/wje-label/label.element.d.ts +34 -0
  117. package/dist/packages/wje-list/list.d.ts +2 -0
  118. package/dist/packages/wje-list/list.element.d.ts +31 -0
  119. package/dist/packages/wje-main/main.d.ts +2 -0
  120. package/dist/packages/wje-main/main.element.d.ts +30 -0
  121. package/dist/packages/wje-masonry/masonry.d.ts +2 -0
  122. package/dist/packages/wje-masonry/masonry.element.d.ts +114 -0
  123. package/dist/packages/wje-masonry/service/service.d.ts +32 -0
  124. package/dist/packages/wje-menu/menu.d.ts +2 -0
  125. package/dist/packages/wje-menu/menu.element.d.ts +47 -0
  126. package/dist/packages/wje-menu-button/menu-button.d.ts +2 -0
  127. package/dist/packages/wje-menu-button/menu-button.element.d.ts +34 -0
  128. package/dist/packages/wje-menu-item/menu-item.d.ts +2 -0
  129. package/dist/packages/wje-menu-item/menu-item.element.d.ts +139 -0
  130. package/dist/packages/wje-menu-label/menu-label.d.ts +2 -0
  131. package/dist/packages/wje-menu-label/menu-label.element.d.ts +39 -0
  132. package/dist/packages/wje-option/option.d.ts +2 -0
  133. package/dist/packages/wje-option/option.element.d.ts +59 -0
  134. package/dist/packages/wje-options/options.d.ts +2 -0
  135. package/dist/packages/wje-options/options.element.d.ts +180 -0
  136. package/dist/packages/wje-orgchart/orgchart.d.ts +2 -0
  137. package/dist/packages/wje-orgchart/orgchart.element.d.ts +24 -0
  138. package/dist/packages/wje-orgchart-group/orgchart-group.d.ts +2 -0
  139. package/dist/packages/wje-orgchart-group/orgchart-group.element.d.ts +28 -0
  140. package/dist/packages/wje-orgchart-item/orgchart-item.d.ts +2 -0
  141. package/dist/packages/wje-orgchart-item/orgchart-item.element.d.ts +49 -0
  142. package/dist/packages/wje-panel/panel.d.ts +2 -0
  143. package/dist/packages/wje-panel/panel.element.d.ts +34 -0
  144. package/dist/packages/wje-popup/popup.d.ts +2 -0
  145. package/dist/packages/wje-popup/popup.element.d.ts +93 -0
  146. package/dist/packages/wje-progress-bar/progress-bar.d.ts +2 -0
  147. package/dist/packages/wje-progress-bar/progress-bar.element.d.ts +96 -0
  148. package/dist/packages/wje-qr-code/qr-code.d.ts +2 -0
  149. package/dist/packages/wje-qr-code/qr-code.element.d.ts +33 -0
  150. package/dist/packages/wje-radio/radio.d.ts +2 -0
  151. package/dist/packages/wje-radio/radio.element.d.ts +53 -0
  152. package/dist/packages/wje-radio-group/radio-group.d.ts +2 -0
  153. package/dist/packages/wje-radio-group/radio-group.element.d.ts +137 -0
  154. package/dist/packages/wje-rate/rate.d.ts +2 -0
  155. package/dist/packages/wje-rate/rate.element.d.ts +156 -0
  156. package/dist/packages/wje-relative-time/relative-time.d.ts +2 -0
  157. package/dist/packages/wje-relative-time/relative-time.element.d.ts +55 -0
  158. package/dist/packages/wje-relative-time/relative-time.test.d.ts +1 -0
  159. package/dist/packages/wje-reorder/reorder.d.ts +2 -0
  160. package/dist/packages/wje-reorder/reorder.element.d.ts +119 -0
  161. package/dist/packages/wje-reorder-dropzone/reorder-dropzone.d.ts +2 -0
  162. package/dist/packages/wje-reorder-dropzone/reorder-dropzone.element.d.ts +23 -0
  163. package/dist/packages/wje-reorder-handle/reorder-handle.d.ts +2 -0
  164. package/dist/packages/wje-reorder-handle/reorder-handle.element.d.ts +75 -0
  165. package/dist/packages/wje-reorder-item/reorder-item.d.ts +2 -0
  166. package/dist/packages/wje-reorder-item/reorder-item.element.d.ts +24 -0
  167. package/dist/packages/wje-route/route.d.ts +2 -0
  168. package/dist/packages/wje-route/route.element.d.ts +22 -0
  169. package/dist/packages/wje-router/router.d.ts +2 -0
  170. package/dist/packages/wje-router/router.element.d.ts +39 -0
  171. package/dist/packages/wje-router-link/router-link.d.ts +2 -0
  172. package/dist/packages/wje-router-link/router-link.element.d.ts +31 -0
  173. package/dist/packages/wje-router-outlet/router-outlet.d.ts +2 -0
  174. package/dist/packages/wje-router-outlet/router-outlet.element.d.ts +15 -0
  175. package/dist/packages/wje-row/row.d.ts +2 -0
  176. package/dist/packages/wje-row/row.element.d.ts +23 -0
  177. package/dist/packages/wje-select/select.d.ts +2 -0
  178. package/dist/packages/wje-select/select.element.d.ts +315 -0
  179. package/dist/packages/wje-slider/slider.d.ts +2 -0
  180. package/dist/packages/wje-slider/slider.element.d.ts +103 -0
  181. package/dist/packages/wje-split-view/service/service.d.ts +1 -0
  182. package/dist/packages/wje-split-view/split-view.d.ts +2 -0
  183. package/dist/packages/wje-split-view/split-view.element.d.ts +66 -0
  184. package/dist/packages/wje-status/status.d.ts +2 -0
  185. package/dist/packages/wje-status/status.element.d.ts +26 -0
  186. package/dist/packages/wje-step/step.d.ts +2 -0
  187. package/dist/packages/wje-step/step.element.d.ts +23 -0
  188. package/dist/packages/wje-stepper/stepper.d.ts +2 -0
  189. package/dist/packages/wje-stepper/stepper.element.d.ts +78 -0
  190. package/dist/packages/wje-store/default-store-actions.d.ts +20 -0
  191. package/dist/packages/wje-store/pubsub.d.ts +21 -0
  192. package/dist/packages/wje-store/store.d.ts +153 -0
  193. package/dist/packages/wje-tab/tab.d.ts +2 -0
  194. package/dist/packages/wje-tab/tab.element.d.ts +41 -0
  195. package/dist/packages/wje-tab-group/tab-group.d.ts +2 -0
  196. package/dist/packages/wje-tab-group/tab-group.element.d.ts +67 -0
  197. package/dist/packages/wje-tab-panel/tab-panel.d.ts +2 -0
  198. package/dist/packages/wje-tab-panel/tab-panel.element.d.ts +23 -0
  199. package/dist/packages/wje-textarea/textarea.d.ts +2 -0
  200. package/dist/packages/wje-textarea/textarea.element.d.ts +176 -0
  201. package/dist/packages/wje-thumbnail/thumbnail.d.ts +2 -0
  202. package/dist/packages/wje-thumbnail/thumbnail.element.d.ts +31 -0
  203. package/dist/packages/wje-timeline/timeline.d.ts +2 -0
  204. package/dist/packages/wje-timeline/timeline.element.d.ts +25 -0
  205. package/dist/packages/wje-timeline-item/timeline-item.d.ts +2 -0
  206. package/dist/packages/wje-timeline-item/timeline-item.element.d.ts +27 -0
  207. package/dist/packages/wje-toast/toast.d.ts +2 -0
  208. package/dist/packages/wje-toast/toast.element.d.ts +173 -0
  209. package/dist/packages/wje-toast/toast.test.d.ts +1 -0
  210. package/dist/packages/wje-toggle/toggle.d.ts +2 -0
  211. package/dist/packages/wje-toggle/toggle.element.d.ts +65 -0
  212. package/dist/packages/wje-toolbar/toolbar.d.ts +2 -0
  213. package/dist/packages/wje-toolbar/toolbar.element.d.ts +39 -0
  214. package/dist/packages/wje-toolbar-action/toolbar-action.d.ts +2 -0
  215. package/dist/packages/wje-toolbar-action/toolbar-action.element.d.ts +35 -0
  216. package/dist/packages/wje-tooltip/tooltip.d.ts +2 -0
  217. package/dist/packages/wje-tooltip/tooltip.element.d.ts +71 -0
  218. package/dist/packages/wje-visually-hidden/visually-hidden.d.ts +2 -0
  219. package/dist/packages/wje-visually-hidden/visually-hidden.element.d.ts +29 -0
  220. package/dist/{popup.element-4DNn6DjX.js → popup.element-tyYxow0p.js} +199 -80
  221. package/dist/router-links-CJnOdbas.js +0 -1
  222. package/dist/wje-accordion-item.js +0 -1
  223. package/dist/wje-accordion.js +0 -1
  224. package/dist/wje-animation.js +2 -5
  225. package/dist/wje-aside.js +0 -1
  226. package/dist/wje-avatar.js +0 -1
  227. package/dist/wje-badge.js +0 -1
  228. package/dist/wje-breadcrumb.js +0 -1
  229. package/dist/wje-breadcrumbs.js +0 -1
  230. package/dist/wje-button-group.js +0 -1
  231. package/dist/wje-button.js +0 -1
  232. package/dist/wje-card-content.js +0 -1
  233. package/dist/wje-card-controls.js +0 -1
  234. package/dist/wje-card-header.js +0 -1
  235. package/dist/wje-card-subtitle.js +0 -1
  236. package/dist/wje-card-title.js +0 -1
  237. package/dist/wje-card.js +0 -1
  238. package/dist/wje-carousel-item.js +0 -1
  239. package/dist/wje-carousel.js +0 -1
  240. package/dist/wje-checkbox.js +0 -1
  241. package/dist/wje-chip.js +0 -1
  242. package/dist/wje-col.js +0 -1
  243. package/dist/wje-color-picker.js +0 -1
  244. package/dist/wje-container.js +0 -1
  245. package/dist/wje-copy-button.js +0 -1
  246. package/dist/wje-dialog.js +29 -3
  247. package/dist/wje-divider.js +0 -1
  248. package/dist/wje-dropdown.js +1 -2
  249. package/dist/wje-element.js +0 -1
  250. package/dist/wje-fetchAndParseCSS.js +0 -1
  251. package/dist/wje-file-upload-item.js +0 -1
  252. package/dist/wje-file-upload.js +29 -14
  253. package/dist/wje-footer.js +0 -1
  254. package/dist/wje-form.js +0 -1
  255. package/dist/wje-format-digital.js +0 -1
  256. package/dist/wje-grid.js +0 -1
  257. package/dist/wje-header.js +0 -1
  258. package/dist/wje-icon-picker.js +1 -2
  259. package/dist/wje-icon.js +0 -1
  260. package/dist/wje-img-comparer.js +0 -1
  261. package/dist/wje-img.js +0 -1
  262. package/dist/wje-infinite-scroll.js +0 -1
  263. package/dist/wje-input-file.js +0 -1
  264. package/dist/wje-input.js +0 -1
  265. package/dist/wje-item.js +0 -1
  266. package/dist/wje-kanban.js +0 -1
  267. package/dist/wje-label.js +0 -1
  268. package/dist/wje-list.js +0 -1
  269. package/dist/wje-main.js +0 -1
  270. package/dist/wje-masonry.js +1 -3
  271. package/dist/wje-master.js +4 -9
  272. package/dist/wje-menu-button.js +0 -1
  273. package/dist/wje-menu-item.js +0 -1
  274. package/dist/wje-menu-label.js +0 -1
  275. package/dist/wje-menu.js +0 -1
  276. package/dist/wje-option.js +0 -1
  277. package/dist/wje-options.js +0 -1
  278. package/dist/wje-orgchart-group.js +0 -1
  279. package/dist/wje-orgchart-item.js +0 -1
  280. package/dist/wje-orgchart.js +0 -1
  281. package/dist/wje-popup.js +1 -2
  282. package/dist/wje-progress-bar.js +0 -1
  283. package/dist/wje-qr-code.js +2684 -2679
  284. package/dist/wje-radio-group.js +0 -1
  285. package/dist/wje-radio.js +0 -1
  286. package/dist/wje-rate.js +0 -1
  287. package/dist/wje-relative-time.js +0 -1
  288. package/dist/wje-reorder-dropzone.js +0 -1
  289. package/dist/wje-reorder-handle.js +0 -1
  290. package/dist/wje-reorder-item.js +0 -1
  291. package/dist/wje-reorder.js +0 -1
  292. package/dist/wje-route.js +0 -1
  293. package/dist/wje-router-link.js +0 -1
  294. package/dist/wje-router-outlet.js +0 -1
  295. package/dist/wje-routerx.js +0 -1
  296. package/dist/wje-row.js +0 -1
  297. package/dist/wje-select.js +1 -2
  298. package/dist/wje-slider.js +0 -1
  299. package/dist/wje-sliding-container.js +0 -1
  300. package/dist/wje-split-view.js +0 -1
  301. package/dist/wje-status.js +0 -1
  302. package/dist/wje-step.js +0 -1
  303. package/dist/wje-stepper.js +0 -1
  304. package/dist/wje-store.js +7 -7
  305. package/dist/wje-tab-group.js +0 -1
  306. package/dist/wje-tab-panel.js +0 -1
  307. package/dist/wje-tab.js +0 -1
  308. package/dist/wje-textarea.js +0 -1
  309. package/dist/wje-thumbnail.js +0 -1
  310. package/dist/wje-toast.js +0 -1
  311. package/dist/wje-toggle.js +0 -1
  312. package/dist/wje-toolbar-action.js +0 -1
  313. package/dist/wje-toolbar.js +0 -1
  314. package/dist/wje-tooltip.js +0 -1
  315. package/dist/wje-visually-hidden.js +0 -1
  316. package/package.json +20 -8
  317. package/dist/infinite-scroll.element-XVJukzjy.js.map +0 -1
  318. package/dist/list.element-Ce1vIm1O.js.map +0 -1
  319. package/dist/localize.js.map +0 -1
  320. package/dist/popup.element-4DNn6DjX.js.map +0 -1
  321. package/dist/router-links-CJnOdbas.js.map +0 -1
  322. package/dist/wje-accordion-item.js.map +0 -1
  323. package/dist/wje-accordion.js.map +0 -1
  324. package/dist/wje-animation.js.map +0 -1
  325. package/dist/wje-aside.js.map +0 -1
  326. package/dist/wje-avatar.js.map +0 -1
  327. package/dist/wje-badge.js.map +0 -1
  328. package/dist/wje-breadcrumb.js.map +0 -1
  329. package/dist/wje-breadcrumbs.js.map +0 -1
  330. package/dist/wje-button-group.js.map +0 -1
  331. package/dist/wje-button.js.map +0 -1
  332. package/dist/wje-card-content.js.map +0 -1
  333. package/dist/wje-card-controls.js.map +0 -1
  334. package/dist/wje-card-header.js.map +0 -1
  335. package/dist/wje-card-subtitle.js.map +0 -1
  336. package/dist/wje-card-title.js.map +0 -1
  337. package/dist/wje-card.js.map +0 -1
  338. package/dist/wje-carousel-item.js.map +0 -1
  339. package/dist/wje-carousel.js.map +0 -1
  340. package/dist/wje-checkbox.js.map +0 -1
  341. package/dist/wje-chip.js.map +0 -1
  342. package/dist/wje-col.js.map +0 -1
  343. package/dist/wje-color-picker.js.map +0 -1
  344. package/dist/wje-container.js.map +0 -1
  345. package/dist/wje-copy-button.js.map +0 -1
  346. package/dist/wje-dialog.js.map +0 -1
  347. package/dist/wje-divider.js.map +0 -1
  348. package/dist/wje-dropdown.js.map +0 -1
  349. package/dist/wje-element.js.map +0 -1
  350. package/dist/wje-fetchAndParseCSS.js.map +0 -1
  351. package/dist/wje-file-upload-item.js.map +0 -1
  352. package/dist/wje-file-upload.js.map +0 -1
  353. package/dist/wje-footer.js.map +0 -1
  354. package/dist/wje-form.js.map +0 -1
  355. package/dist/wje-format-digital.js.map +0 -1
  356. package/dist/wje-grid.js.map +0 -1
  357. package/dist/wje-header.js.map +0 -1
  358. package/dist/wje-icon-picker.js.map +0 -1
  359. package/dist/wje-icon.js.map +0 -1
  360. package/dist/wje-img-comparer.js.map +0 -1
  361. package/dist/wje-img.js.map +0 -1
  362. package/dist/wje-infinite-scroll.js.map +0 -1
  363. package/dist/wje-input-file.js.map +0 -1
  364. package/dist/wje-input.js.map +0 -1
  365. package/dist/wje-item.js.map +0 -1
  366. package/dist/wje-kanban.js.map +0 -1
  367. package/dist/wje-label.js.map +0 -1
  368. package/dist/wje-list.js.map +0 -1
  369. package/dist/wje-main.js.map +0 -1
  370. package/dist/wje-masonry.js.map +0 -1
  371. package/dist/wje-master.js.map +0 -1
  372. package/dist/wje-menu-button.js.map +0 -1
  373. package/dist/wje-menu-item.js.map +0 -1
  374. package/dist/wje-menu-label.js.map +0 -1
  375. package/dist/wje-menu.js.map +0 -1
  376. package/dist/wje-option.js.map +0 -1
  377. package/dist/wje-options.js.map +0 -1
  378. package/dist/wje-orgchart-group.js.map +0 -1
  379. package/dist/wje-orgchart-item.js.map +0 -1
  380. package/dist/wje-orgchart.js.map +0 -1
  381. package/dist/wje-popup.js.map +0 -1
  382. package/dist/wje-progress-bar.js.map +0 -1
  383. package/dist/wje-qr-code.js.map +0 -1
  384. package/dist/wje-radio-group.js.map +0 -1
  385. package/dist/wje-radio.js.map +0 -1
  386. package/dist/wje-rate.js.map +0 -1
  387. package/dist/wje-relative-time.js.map +0 -1
  388. package/dist/wje-reorder-dropzone.js.map +0 -1
  389. package/dist/wje-reorder-handle.js.map +0 -1
  390. package/dist/wje-reorder-item.js.map +0 -1
  391. package/dist/wje-reorder.js.map +0 -1
  392. package/dist/wje-route.js.map +0 -1
  393. package/dist/wje-router-link.js.map +0 -1
  394. package/dist/wje-router-outlet.js.map +0 -1
  395. package/dist/wje-routerx.js.map +0 -1
  396. package/dist/wje-row.js.map +0 -1
  397. package/dist/wje-select.js.map +0 -1
  398. package/dist/wje-slider.js.map +0 -1
  399. package/dist/wje-sliding-container.js.map +0 -1
  400. package/dist/wje-split-view.js.map +0 -1
  401. package/dist/wje-status.js.map +0 -1
  402. package/dist/wje-step.js.map +0 -1
  403. package/dist/wje-stepper.js.map +0 -1
  404. package/dist/wje-store.js.map +0 -1
  405. package/dist/wje-tab-group.js.map +0 -1
  406. package/dist/wje-tab-panel.js.map +0 -1
  407. package/dist/wje-tab.js.map +0 -1
  408. package/dist/wje-textarea.js.map +0 -1
  409. package/dist/wje-thumbnail.js.map +0 -1
  410. package/dist/wje-toast.js.map +0 -1
  411. package/dist/wje-toggle.js.map +0 -1
  412. package/dist/wje-toolbar-action.js.map +0 -1
  413. package/dist/wje-toolbar.js.map +0 -1
  414. package/dist/wje-tooltip.js.map +0 -1
  415. package/dist/wje-tree-item.js +0 -121
  416. package/dist/wje-tree-item.js.map +0 -1
  417. package/dist/wje-tree.js +0 -68
  418. package/dist/wje-tree.js.map +0 -1
  419. package/dist/wje-visually-hidden.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-master.js","sources":["../packages/utils/date.js","../packages/wje-timeline/timeline.element.js","../packages/wje-timeline/timeline.js","../packages/wje-timeline-item/timeline-item.element.js","../packages/wje-timeline-item/timeline-item.js"],"sourcesContent":["export function formatDate(input, format) {\n let date;\n\n // Rozpoznanie typu vstupu a jeho konverzia na objekt Date\n if (typeof input === 'string') {\n date = new Date(input); // Predpokladáme, že je to ISO reťazec\n } else if (typeof input === 'number') {\n date = new Date(input); // Predpokladáme, že je to timestamp\n } else if (input instanceof Date) {\n date = input; // Je to objekt Date\n } else {\n throw new Error('Invalid date input');\n }\n\n const map = {\n yyyy: date.getFullYear(),\n MM: String(date.getMonth() + 1).padStart(2, '0'), // Mesiace sú indexované od 0\n dd: String(date.getDate()).padStart(2, '0'),\n HH: String(date.getHours()).padStart(2, '0'),\n mm: String(date.getMinutes()).padStart(2, '0'),\n ss: String(date.getSeconds()).padStart(2, '0'),\n MMMM: date.toLocaleString('en-US', { month: 'long' }), // Full month name\n MMM: date.toLocaleString('en-US', { month: 'short' }), // Short month name\n };\n\n return format.replace(/yyyy|MM|dd|HH|mm|ss|MMMM|MMM/g, (matched) => map[matched]);\n}\n","import { default as WJElement } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * `Timeline` is a custom web component that represents a timeline.\n * @summary This element represents a timeline.\n * @documentation https://elements.webjet.sk/components/timeline\n * @status stable\n * @augments WJElement\n * @slot - Slot for the timeline items.\n * @csspart native - The native part of the rating component.\n * @csspart vertical-line - The vertical line part of the rating component.\n * @tag wje-timeline\n */\nexport default class Timeline extends WJElement {\n /**\n * Creates an instance of Timeline.\n */\n constructor() {\n super();\n }\n\n /**\n * The class name for the component.\n */\n className = 'Timeline';\n\n /**\n * Returns the CSS stylesheet for the component.\n * @static\n * @returns {CSSStyleSheet} The CSS stylesheet\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draws the component for the timeline.\n * @returns {DocumentFragment}\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n const native = document.createElement('div');\n native.setAttribute('part', 'native');\n native.classList.add('native-timeline');\n\n const verticalLine = document.createElement('div');\n verticalLine.setAttribute('part', 'vertical-line');\n verticalLine.classList.add('vertical-line');\n\n const slot = document.createElement('slot');\n\n native.appendChild(verticalLine);\n native.appendChild(slot);\n\n fragment.appendChild(native);\n\n return fragment;\n }\n}\n","import Timeline from './timeline.element.js';\n\nexport default Timeline;\n\nTimeline.define('wje-timeline', Timeline);\n","import { formatDate } from '../utils/date.js';\nimport { default as WJElement } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * The TimelineItem component.\n * @summary This element represents a timeline item.\n * @documentation https://elements.webjet.sk/components/timeline-item\n * @status stable\n * @augments {WJElement}\n * @csspart native - The native part of the timeline item.\n * @csspart content-container - The content container part of the timeline item.\n * @csspart default-icon - The default icon part of the timeline item.\n * @slot - Slot for the content of the timeline item.\n * @slot status - Slot for the status of the timeline item.\n * @tag wje-timeline-item\n */\nexport default class TimelineItem extends WJElement {\n constructor() {\n super();\n }\n\n /**\n * Returns the class name of the tab.\n * @returns {string} The class name of the tab.\n */\n className = 'TimelineItem';\n\n /**\n * Returns the CSS styles for the component.\n * @static\n * @returns {CSSStyleSheet}\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n this.setAttribute('relative-time', '');\n }\n\n /**\n * Draws the component for the timeline item.\n * @returns {DocumentFragment}\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n let native = document.createElement('div');\n native.setAttribute('part', 'native');\n native.classList.add('native-timeline-item');\n\n let contentContainer = document.createElement('div');\n contentContainer.setAttribute('part', 'content-container');\n contentContainer.classList.add('content-container');\n\n let tooltip = document.createElement('wje-tooltip');\n tooltip.setAttribute('text', this.getAttribute('tooltip') || '');\n tooltip.setAttribute('position', 'top');\n tooltip.setAttribute('content', formatDate(this.datetime, 'dd.MM.yyyy HH:mm'));\n\n let relativeTime = document.createElement('wje-relative-time');\n relativeTime.setAttribute('date', this.datetime || '');\n relativeTime.setAttribute('format', this.getAttribute('format') || '');\n\n tooltip.appendChild(relativeTime);\n\n let event = document.createElement('h3');\n event.classList.add('event');\n event.textContent = this.getAttribute('event') || '';\n\n // additional text content\n let slot = document.createElement('slot');\n\n // status slot\n let slotStatus = document.createElement('wje-icon');\n slotStatus.setAttribute('name', 'circle-dot');\n slotStatus.setAttribute('filled', '');\n slotStatus.setAttribute('part', 'default-icon');\n\n // if status slot is present\n if (this.querySelector('[slot=\"status\"]')) {\n slotStatus = document.createElement('slot');\n slotStatus.setAttribute('name', 'status');\n }\n\n contentContainer.appendChild(tooltip);\n contentContainer.appendChild(event);\n contentContainer.appendChild(slot);\n\n native.appendChild(slotStatus);\n native.appendChild(contentContainer);\n\n fragment.appendChild(native);\n\n return fragment;\n }\n}\n","import TimelineItem from './timeline-item.element.js';\n\nexport default TimelineItem;\n\nTimelineItem.define('wje-timeline-item', TimelineItem);\n"],"names":["styles","event"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-menu-button.js","sources":["../packages/wje-menu-button/menu-button.element.js","../packages/wje-menu-button/menu-button.js"],"sourcesContent":["import { default as WJElement, event } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * `MenuButton` is a custom web component that represents a menu button.\n * @summary This element represents a menu button.\n * @documentation https://elements.webjet.sk/components/menu-button\n * @status stable\n * @augments {WJElement}\n * @slot - The default slot for the menu button.\n * // @fires click - Event fired when the menu button is clicked.\n * @tag wje-menu-button\n */\n\nexport default class MenuButton extends WJElement {\n /**\n * Creates an instance of MenuButton.\n * @class\n */\n constructor() {\n super();\n }\n\n className = 'MenuButton';\n\n /**\n * Returns the CSS styles for the component.\n * @static\n * @returns {CSSStyleSheet}\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Returns the list of attributes to observe for changes.\n * @static\n * @returns {Array<string>}\n */\n static get observedAttributes() {\n return [];\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draws the component for the menu button.\n * @returns {DocumentFragment}\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n let slot = document.createElement('slot');\n\n fragment.appendChild(slot);\n\n return fragment;\n }\n\n /**\n * Refreshes the component after drawing. Adds a click event listener that toggles the \"open\" class on the content element.\n */\n afterDraw() {\n event.addListener(this, 'click', null, (e) => {\n document.querySelector(`#${this.contentId}`).classList.toggle('open');\n });\n }\n}\n","import MenuButton from './menu-button.element.js';\n\nexport default MenuButton;\n\nMenuButton.define('wje-menu-button', MenuButton);\n"],"names":[],"mappings":";;;;;AAce,MAAM,mBAAmB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK9C,cAAc;AACV;AAGJ,qCAAY;AAAA,EAFX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,WAAW,gBAAgB;AACvB,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,WAAW,qBAAqB;AAC5B,WAAO;EACV;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB;AACd,SAAK,eAAe;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO;AACH,QAAI,WAAW,SAAS;AAExB,QAAI,OAAO,SAAS,cAAc,MAAM;AAExC,aAAS,YAAY,IAAI;AAEzB,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY;AACR,UAAM,YAAY,MAAM,SAAS,MAAM,CAAC,MAAM;AAC1C,eAAS,cAAc,IAAI,KAAK,SAAS,EAAE,EAAE,UAAU,OAAO,MAAM;AAAA,IAChF,CAAS;AAAA,EACJ;AACL;ACpEA,WAAW,OAAO,mBAAmB,UAAU;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-menu-item.js","sources":["../packages/wje-menu-item/menu-item.element.js","../packages/wje-menu-item/menu-item.js"],"sourcesContent":["import { bindRouterLinks } from 'slick-router/middlewares/router-links.js';\n\nimport { default as WJElement, event, WjElementUtils } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * `MenuItem` is a custom web component that represents a menu item.\n * @summary This element represents a menu item.\n * @documentation https://elements.webjet.sk/components/menu-item\n * @status stable\n * @augments {WJElement}\n * @csspart native - The native part of the menu item.\n * @csspart submenu - The submenu part of the menu item.\n * @slot - The default slot for the menu item.\n * @slot start - The slot for the start of the menu item.\n * @slot end - The slot for the end of the menu item.\n * @slot submenu - The slot for the submenu of the menu item.\n * @cssproperty [--wje-menu-item-color=var(--wje-color)] - Sets the text color of a menu item. Accepts any valid CSS color value.\n * @cssproperty [--wje-menu-item-background=transparent] - Defines the background color of a menu item. Default is `transparent`. Accepts any valid CSS color value.\n * @cssproperty [--wje-menu-item-color-hover=var(--wje-color-contrast-8)] - Specifies the text color of a menu item when hovered. Accepts any valid CSS color value.\n * @cssproperty [--wje-menu-item-background-hover=var(--wje-border-color)] - Sets the background color of a menu item when hovered. Accepts any valid CSS color value.\n * @cssproperty [--wje-menu-item-color-focus=var(--wje-color-contrast-8)] - Defines the text color of a menu item when focused. Accepts any valid CSS color value.\n * @cssproperty [--wje-menu-item-background-focus=var(--wje-border-color)] - Specifies the background color of a menu item when focused. Accepts any valid CSS color value.\n * @cssproperty [--wje-menu-item-color-active=var(--wje-color-contrast-8)] - Sets the text color of a menu item when active. Accepts any valid CSS color value.\n * @cssproperty [--wje-menu-item-background-active=var(--wje-border-color)] - Specifies the background color of a menu item when active. Accepts any valid CSS color value.\n * @cssproperty [--wje-menu-item-padding-top=.5rem] - Specifies the top padding inside a menu item. Accepts any valid CSS length value (e.g., `px`, `rem`).\n * @cssproperty [--wje-menu-item-padding-bottom=.5rem] - Specifies the bottom padding inside a menu item. Accepts any valid CSS length value (e.g., `px`, `rem`).\n * @cssproperty [--wje-menu-item-line-height=1.8rem] - Sets the line height for the text within a menu item. Accepts any valid CSS length value.\n * @cssproperty [--wje-menu-submenu-offset=0] - Determines the horizontal offset of a submenu relative to its parent. Accepts any valid CSS length value.\n * @cssproperty [--wje-menu-item-icon-visibility=hidden] - Controls the visibility of the icon in a menu item. Accepts `visible`, `hidden`, or `collapse`.\n * @cssproperty [--wje-menu-item-safe-triangle-cursor-x] - Specifies the x-coordinate of the cursor for the safe triangle area. Used for managing hover or focus transitions between menu items and submenus.\n * @cssproperty [--wje-menu-item-safe-triangle-cursor-y] - Specifies the y-coordinate of the cursor for the safe triangle area.\n * @cssproperty [--wje-menu-item-safe-triangle-submenu-start-x] - Defines the x-coordinate where the submenu's safe triangle starts. Helps prevent accidental submenu closing when navigating.\n * @cssproperty [--wje-menu-item-safe-triangle-submenu-start-y] - Defines the y-coordinate where the submenu's safe triangle starts.\n * @cssproperty [--wje-menu-item-safe-triangle-submenu-end-x] - Specifies the x-coordinate where the submenu's safe triangle ends.\n * @cssproperty [--wje-menu-item-safe-triangle-submenu-end-y] - Specifies the y-coordinate where the submenu's safe triangle ends.\n * @tag wje-menu-item\n */\nexport default class MenuItem extends WJElement {\n /**\n * Constructor for MenuItem class.\n * @class\n */\n constructor() {\n super();\n\n this._collapsible = false;\n }\n\n /**\n * Getter for placement attribute.\n * @returns {string} The placement attribute of the menu or \"right-start\" if it doesn't exist.\n */\n get placement() {\n let menu = this.querySelector('wje-menu');\n\n if (menu?.hasAttribute('placement')) {\n return menu.getAttribute('placement');\n }\n return 'right-start';\n }\n\n /**\n * Getter for offset attribute.\n * @returns {string} The offset attribute of the menu or \"0\" if it doesn't exist.\n */\n get offset() {\n let menu = this.querySelector('wje-menu');\n\n if (menu?.hasAttribute('offset')) {\n return menu.getAttribute('offset');\n }\n return '0';\n }\n\n /**\n * Getter for variant attribute.\n * @returns {string} The variant attribute of the menu or \"CONTEXT\" if it doesn't exist.\n */\n get variant() {\n let menu = this.querySelector('wje-menu');\n\n if (menu?.hasAttribute('variant') && !this.collapse) {\n return menu.getAttribute('variant').toUpperCase();\n }\n\n return 'CONTEXT';\n }\n\n /**\n * Getter for collapse attribute.\n * @returns {boolean} True if the closest parent has the collapse attribute, false otherwise.\n */\n get collapse() {\n if (this.closest('[collapse]')) return true;\n\n return false;\n }\n\n className = 'MenuItem';\n\n /**\n * Getter for cssStyleSheet.\n * @returns {string} The styles imported from styles.css.\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Getter for observedAttributes.\n * @returns {Array} An empty array as no attributes are being observed.\n */\n static get observedAttributes() {\n return [];\n }\n\n /**\n * Sets up the attributes for the MenuItem element.\n */\n setupAttributes() {\n super.setupAttributes();\n this.isShadowRoot = 'open';\n this.setAttribute('active-class', 'open');\n }\n\n /**\n * Removes the active attribute from the menu before drawing the MenuItem.\n */\n beforeDraw() {\n this.querySelector('wje-menu')?.removeAttribute('active');\n }\n\n /**\n * Draws the MenuItem element and sets the variant and collapse attributes.\n * @returns {DocumentFragment} The fragment to be appended to the MenuItem.\n */\n draw() {\n this.hasSubmenu = WjElementUtils.hasSlot(this, 'submenu');\n\n let fragment = document.createDocumentFragment();\n\n this.setAttribute('tabindex', '0');\n\n this.classList.forEach((className) => {\n // Ak trieda začína na \"wje-menu-variant-\", odstráňte ju\n if (className.startsWith('wje-menu-variant-')) {\n this.classList.remove(className);\n }\n });\n\n this.classList.remove('collapse');\n this.classList.add('wje-menu-variant-' + this.variant.toLowerCase());\n\n if (!this.collapse) {\n this.querySelector('wje-menu')?.setAttribute('variant', this.variant.toLowerCase());\n } else if (this.parentElement?.hasAttribute('collapse')) {\n this.classList.add('collapse');\n }\n\n let native = document.createElement('div');\n native.setAttribute('part', 'native');\n native.setAttribute('id', 'anchor');\n native.classList.add('native-menu-item');\n\n // CHECKED - Icon\n let checkedIcon = document.createElement('span');\n checkedIcon.setAttribute('part', 'check');\n checkedIcon.classList.add('check-icon');\n checkedIcon.innerHTML = `<wje-icon name=\"check\"></wje-icon>`;\n\n if (this.hasAttribute('checked')) checkedIcon.classList.add('checked');\n else checkedIcon.classList.remove('checked');\n\n // SLOT - Start\n let start = document.createElement('slot');\n start.name = 'start';\n\n // SLOT\n let slot = document.createElement('slot');\n slot.classList.add('label');\n\n // SLOT - End\n let end = document.createElement('slot');\n end.setAttribute('part', 'end');\n end.name = 'end';\n\n // SLOT - Submenu\n let submenu = document.createElement('slot');\n submenu.setAttribute('part', 'submenu');\n submenu.name = 'submenu';\n\n // SUBMENU - Icon\n let submenuIconClass = this.collapse ? 'collapse' : 'expand';\n let submenuIcon = document.createElement('span');\n submenuIcon.setAttribute('part', 'submenu-icon');\n submenuIcon.classList.add('submenu-icon', submenuIconClass);\n submenuIcon.innerHTML = this.collapse\n ? `<wje-icon name=\"chevron-down\"></wje-icon>`\n : `<wje-icon name=\"chevron-right\"></wje-icon>`;\n\n if (this.hasSubmenu) native.classList.add('has-submenu');\n else native.classList.remove('has-submenu');\n\n native.appendChild(checkedIcon);\n native.appendChild(start);\n native.appendChild(slot);\n native.appendChild(end);\n native.appendChild(submenuIcon);\n\n let isAppend = false;\n // ak je variant typu CONTEXT zobrazime submenu ako popup\n if (\n /*(this.collapse && this.variant === \"NAV\" && this.hasSubmenu) || */ this.variant === 'CONTEXT' &&\n this.hasSubmenu\n ) {\n native.setAttribute('slot', 'anchor'); // pridame slot anchor pre popup\n\n let popup = document.createElement('wje-popup');\n popup.setAttribute('anchor', 'anchor');\n popup.setAttribute('placement', this.placement);\n popup.setAttribute('offset', this.offset);\n\n popup.appendChild(native);\n popup.appendChild(submenu);\n\n this.popup = popup;\n fragment.appendChild(popup);\n isAppend = true;\n }\n\n if (this.parentElement?.hasAttribute('collapse') && !this.hasSubmenu) {\n fragment.appendChild(this.collapseItem(native));\n } else if (!isAppend) {\n fragment.appendChild(native);\n }\n\n if ((!this.collapse && this.variant === 'NAV') || (this.variant === 'MEGAMENU' && this.hasSubmenu)) {\n fragment.appendChild(submenu);\n }\n\n this.native = native;\n this.submenu = submenu;\n\n return fragment;\n }\n\n /**\n * Adds event listeners after drawing the MenuItem.\n */\n afterDraw() {\n this.unbindRouterLinks = bindRouterLinks(this.parentElement, { selector: false });\n\n this.addEventListener('mousemove', this.dispatchMove);\n this.addEventListener('wje-popup:reposition', this.dispatchReposition);\n\n // Event na zobrazenie submenu\n event.addListener(this, 'mouseenter', null, this.mouseenterHandler);\n // Event na zrusenie zobrazenia submenu ked sa klikne mimo\n event.addListener(this, 'mouseleave', null, this.shouldHideSubmenu);\n // Event na zrusenie zobrazenia submenu ked sa klikne mimo\n event.addListener(this, 'focusout', null, this.shouldHideSubmenu);\n event.addListener(this, 'click', null, this.clickHandler);\n }\n\n mouseenterHandler = (e) => {\n if (this.collapse || (this.variant === 'CONTEXT' && this.hasSubmenu)) {\n if (this.hasAttribute('manual') || (this.variant === 'NAV' && this.collapse)) return;\n\n this.activateSubmenu(e);\n\n e.stopPropagation();\n\n this.showSubmenu();\n // this.focus();\n }\n };\n\n /**\n * Handles the click event on the MenuItem.\n * @param {object} e\n */\n clickHandler = (e) => {\n switch (this.variant) {\n case 'NAV':\n if (!this.collapse && this.hasSubmenu) {\n this.submenuToggle(e);\n this.hideSubmenu();\n e.stopPropagation();\n } else {\n event.dispatchCustomEvent(this, 'wje-menu-item:click');\n event.dispatchCustomEvent(this, this.dialog);\n }\n break;\n case 'CONTEXT':\n if (!this.collapse && this.hasSubmenu) {\n let submenuElements = this.submenu.assignedElements({ flatten: true })[0];\n if (submenuElements?.hasAttribute('active')) {\n this.shouldHideSubmenu(e);\n } else {\n this.activateSubmenu(e);\n this.showSubmenu(e);\n }\n } else {\n event.dispatchCustomEvent(this, 'wje-menu-item:click');\n event.dispatchCustomEvent(this, this.dialog);\n }\n\n break;\n }\n };\n\n /**\n * Checks if the submenu should be hidden based on the event.\n * @param {Event} e The event object.\n */\n shouldHideSubmenu = (e) => {\n if (this.collapse || (this.variant === 'CONTEXT' && this.hasSubmenu)) {\n if ((e.relatedTarget && this.contains(e.relatedTarget)) || (this.variant === 'NAV' && !this.collapse)) {\n return;\n }\n\n this.deactivateSubmenu();\n this.hideSubmenu();\n }\n };\n\n /**\n * Creates a tooltip for the MenuItem when it is collapsed.\n * @param {HTMLElement} native The native MenuItem element.\n * @returns {HTMLElement} The tooltip element.\n */\n collapseItem(native) {\n let tooltipStart = document.createElement('slot');\n tooltipStart.setAttribute('slot', 'start');\n tooltipStart.setAttribute('name', 'tooltip-start');\n\n let tooltipEnd = document.createElement('slot');\n tooltipEnd.setAttribute('slot', 'end');\n tooltipEnd.setAttribute('name', 'tooltip-end');\n\n let tooltip = document.createElement('wje-tooltip');\n tooltip.setAttribute('content', this.getTextFromElement(this));\n tooltip.setAttribute('placement', 'right');\n tooltip.setAttribute('offset', this.offset || '0');\n\n tooltip.appendChild(tooltipStart);\n tooltip.appendChild(tooltipEnd);\n tooltip.appendChild(native);\n\n return tooltip;\n }\n\n /**\n * Dispatches a mousemove event.\n */\n dispatchMove = (e) => {\n this.style.setProperty('--wje-menu-item-safe-triangle-cursor-x', `${e.clientX}px`);\n this.style.setProperty('--wje-menu-item-safe-triangle-cursor-y', `${e.clientY}px`);\n };\n\n /**\n * Dispatches a reposition event.\n */\n dispatchReposition = (e) => {\n // ak nemame submenu tak to ukoncime\n if (this.submenu.assignedNodes().length === 0) return;\n\n let submenu = this.submenu.assignedNodes()[0];\n const { left, top, width, height } = submenu.getBoundingClientRect();\n\n this.style.setProperty('--wje-menu-item-safe-triangle-submenu-start-x', `${left}px`);\n this.style.setProperty('--wje-menu-item-safe-triangle-submenu-start-y', `${top}px`);\n this.style.setProperty('--wje-menu-item-safe-triangle-submenu-end-x', `${left}px`);\n this.style.setProperty('--wje-menu-item-safe-triangle-submenu-end-y', `${top + height}px`);\n };\n\n /**\n * Shows the submenu of the MenuItem.\n */\n showSubmenu() {\n this.tabIndex = -1;\n if (this.hasSubmenu) {\n this.popup?.setAttribute('active', '');\n this.classList.add('expanded-submenu');\n this.native.classList.add('expanded-submenu');\n }\n }\n\n /**\n * Hides the submenu of the MenuItem.\n */\n hideSubmenu() {\n this.tabIndex = 0;\n if (this.hasSubmenu) {\n this.popup?.removeAttribute('active');\n this.classList.remove('expanded-submenu');\n this.native.classList.remove('expanded-submenu');\n }\n }\n\n /**\n * Toggles the active state of the submenu element.\n * If the submenu is not active, it sets the \"active\" attribute.\n * If the submenu is already active, it removes the \"active\" attribute.\n * @param {Event} e The event object.\n */\n submenuToggle(e) {\n if (this.hasSubmenu) {\n let submenuElements = this.submenu.assignedElements({ flatten: true })[0];\n if (!submenuElements.hasAttribute('active')) {\n submenuElements.setAttribute('active', '');\n } else {\n if (this === e.target) submenuElements.removeAttribute('active');\n }\n }\n }\n\n /**\n * Deactivates the submenu by removing the \"active\" attribute.\n */\n deactivateSubmenu() {\n if (this.hasSubmenu) {\n let submenuElements = this.submenu.assignedElements({ flatten: true })[0];\n if (submenuElements.hasAttribute('active')) {\n submenuElements.removeAttribute('active');\n }\n }\n }\n\n /**\n * Activates the submenu of the menu item.\n */\n activateSubmenu() {\n if (this.hasSubmenu) {\n let submenuElements = this.submenu.assignedElements({ flatten: true })[0];\n if (!submenuElements.hasAttribute('active')) {\n submenuElements.setAttribute('active', '');\n }\n }\n }\n\n /**\n * Gets the text from the element and returns it.\n */\n beforeDisconnect() {\n event.removeListener(this, 'mousemove', null, this.dispatchMove);\n event.removeListener(this, 'wje-popup:reposition', null, this.dispatchReposition);\n event.removeListener(this, 'mouseenter', null, this.mouseenterHandler);\n event.removeListener(this, 'mouseleave', null, this.shouldHideSubmenu);\n event.removeListener(this, 'focusout', null, this.shouldHideSubmenu);\n event.removeListener(this, 'click', null, this.clickHandler);\n\n this.context.innerHTML = '';\n this.unbindRouterLinks?.();\n }\n\n /**\n * Extracts and returns the concatenated text content from all text nodes within the specified element.\n * @param {HTMLElement} element The HTML element from which to extract text content.\n * @returns {string} The concatenated and trimmed text content from the element's text nodes.\n */\n getTextFromElement(element) {\n let text = '';\n for (let node of element.childNodes) {\n if (node.nodeType === Node.TEXT_NODE) {\n text += node.textContent;\n }\n }\n return text.trim();\n }\n}\n","import MenuItem from './menu-item.element.js';\n\nexport default MenuItem;\n\nMenuItem.define('wje-menu-item', MenuItem);\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-menu-label.js","sources":["../packages/wje-menu-label/menu-label.element.js","../packages/wje-menu-label/menu-label.js"],"sourcesContent":["import { default as WJElement, WjElementUtils } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * `MenuLabel` is a custom web component that represents a menu label.\n * @summary This element represents a menu label.\n * @documentation https://elements.webjet.sk/components/menu-label\n * @status stable\n * @augments {WJElement}\n * @csspart native - The native part of the menu label.\n * @slot - The default slot for the menu label.\n * @cssproperty [--wje-menu-label-font-size=.75rem] - Sets the font size of the menu label. Accepts any valid CSS length unit (e.g., `rem`, `px`, `em`).\n * @cssproperty [--wje-menu-label-weight=600] - Specifies the font weight of the menu label. Accepts values such as `normal`, `bold`, or numeric values (e.g., `400`, `600`).\n * @cssproperty [--wje-letter-spacing=.025rem] - Defines the spacing between letters in the menu label. Accepts any valid CSS length unit. Default value ensures slight spacing for improved readability.\n * @cssproperty [--wje-menu-label-color=var(--wje-color-contrast-6)] - Specifies the text color of the menu label. Accepts any valid CSS color value, including variables and named colors.\n * @cssproperty [--wje-padding-top=0] - Sets the top padding of the menu label. Accepts any valid CSS length value to control spacing above the label.\n * @cssproperty [--wje-padding-bottom=0] - Sets the bottom padding of the menu label. Accepts any valid CSS length value to control spacing below the label.\n * @cssproperty [--wje-padding-start=1.5rem] - Specifies the left padding of the menu label in left-to-right (LTR) layouts. In right-to-left (RTL) layouts, this becomes the right padding. Accepts any valid CSS length value.\n * @cssproperty [--wje-padding-end=1.5rem] - Specifies the right padding of the menu label in left-to-right (LTR) layouts. In right-to-left (RTL) layouts, this becomes the left padding. Accepts any valid CSS length value.\n * @tag wje-menu-label\n */\n\nexport default class MenuLabel extends WJElement {\n /**\n * Creates an instance of MenuLabel.\n * @class\n */\n constructor() {\n super();\n\n this.hasSubmenu = WjElementUtils.hasSlot(this, 'submenu');\n }\n\n className = 'MenuLabel';\n\n /**\n * Returns the CSS styles for the component.\n * @static\n * @returns {CSSStyleSheet}\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Returns the list of attributes to observe for changes.\n * @static\n * @returns {Array<string>}\n */\n static get observedAttributes() {\n return [];\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draws the component for the menu label.\n * @returns {DocumentFragment}\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n // SLOT\n let slot = document.createElement('slot');\n slot.setAttribute('part', 'native');\n slot.classList.add('native-menu-label');\n\n fragment.appendChild(slot);\n\n return fragment;\n }\n}\n","import MenuLabel from './menu-label.element.js';\n\nexport default MenuLabel;\n\nMenuLabel.define('wje-menu-label', MenuLabel);\n"],"names":[],"mappings":";;;;;AAsBe,MAAM,kBAAkB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK7C,cAAc;AACV;AAKJ,qCAAY;AAHR,SAAK,aAAa,eAAe,QAAQ,MAAM,SAAS;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,WAAW,gBAAgB;AACvB,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,WAAW,qBAAqB;AAC5B,WAAO;EACV;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB;AACd,SAAK,eAAe;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO;AACH,QAAI,WAAW,SAAS;AAGxB,QAAI,OAAO,SAAS,cAAc,MAAM;AACxC,SAAK,aAAa,QAAQ,QAAQ;AAClC,SAAK,UAAU,IAAI,mBAAmB;AAEtC,aAAS,YAAY,IAAI;AAEzB,WAAO;AAAA,EACV;AACL;ACxEA,UAAU,OAAO,kBAAkB,SAAS;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-menu.js","sources":["../packages/wje-menu/menu.element.js","../packages/wje-menu/menu.js"],"sourcesContent":["import { default as WJElement } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * `Menu` is a custom web component that represents a menu.\n * It extends from `WJElement`.\n * @summary This element represents a menu.\n * @documentation https://elements.webjet.sk/components/menu\n * @status stable\n * @augments {WJElement}\n * @csspart native - The native part of the menu.\n * @slot - The default slot for the menu.\n * @cssproperty [--wje-menu-background=var(--wje-background)] - Defines the background color of the menu. Accepts any valid CSS color value, such as `#ffffff`, `rgb(255, 255, 255)`, or CSS variables.\n * @cssproperty [--wje-menu-border-width=1px] - Specifies the width of the menu's border. Accepts any valid CSS length value (e.g., `px`, `em`, `%`).\n * @cssproperty [--wje-menu-border-style=solid] - Sets the style of the menu's border. Common values include `solid`, `dashed`, `dotted`, etc.\n * @cssproperty [--wje-menu-border-color=var(--wje-border-color)] - Defines the color of the menu's border. Accepts any valid CSS color value.\n * @cssproperty [--wje-menu-border-radius=var(--wje-border-radius-small)] - Determines the radius of the menu's corners, creating rounded edges. Accepts any valid CSS length value (e.g., `px`, `%`).\n * @cssproperty [--wje-menu-padding-top=.5rem] - Specifies the top padding inside the menu. Accepts any valid CSS length value.\n * @cssproperty [--wje-menu-padding-bottom=.5rem] - Specifies the bottom padding inside the menu. Accepts any valid CSS length value.\n * @cssproperty [--wje-menu-padding-inline=0] - Sets the horizontal (left and right) padding inside the menu. Accepts any valid CSS length value.\n * @cssproperty [--wje-menu-margin-top=0] - Defines the top margin outside the menu. Accepts any valid CSS length value.\n * @cssproperty [--wje-menu-margin-bottom=0] - Defines the bottom margin outside the menu. Accepts any valid CSS length value.\n * @cssproperty [--wje-menu-margin-inline=0] - Specifies the horizontal (left and right) margin outside the menu. Accepts any valid CSS length value.\n * @cssproperty [--wje-menu-collapse-width=65px] - Sets the width of the menu when it is collapsed. This property is typically used to define the reduced size of the menu in collapsed state. Accepts any valid CSS length value.\n * @tag wje-menu\n */\nexport default class Menu extends WJElement {\n /**\n * Creates an instance of Menu.\n * @class\n */\n constructor() {\n super();\n }\n\n className = 'Menu';\n\n /**\n * Returns the CSS styles for the component.\n * @static\n * @returns {CSSStyleSheet}\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Returns the list of attributes to observe for changes.\n * @static\n * @returns {Array<string>}\n */\n static get observedAttributes() {\n return ['active', 'collapse'];\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draws the component for the menu.\n * @returns {DocumentFragment}\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n this.classList.remove('wje-menu-collapse');\n\n if (this.hasAttribute('collapse')) this.classList.add('wje-menu-collapse');\n\n let native = document.createElement('div');\n native.setAttribute('part', 'native');\n native.classList.add('native-menu');\n\n let slot = document.createElement('slot');\n\n native.appendChild(slot);\n fragment.appendChild(native);\n\n return fragment;\n }\n\n /**\n * Refreshes the component after drawing.\n */\n afterDraw() {\n Array.from(this.children).forEach((child) => {\n if (child.tagName.includes('-')) child.refresh();\n });\n }\n\n /**\n * Cleans up the component before disconnecting.\n */\n beforeDisconnect() {\n this.context.innerHTML = '';\n }\n}\n","import Menu from './menu.element.js';\n\nexport default Menu;\n\nMenu.define('wje-menu', Menu);\n"],"names":[],"mappings":";;;;;AA0Be,MAAM,aAAa,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxC,cAAc;AACV;AAGJ,qCAAY;AAAA,EAFX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,WAAW,gBAAgB;AACvB,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,WAAW,qBAAqB;AAC5B,WAAO,CAAC,UAAU,UAAU;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB;AACd,SAAK,eAAe;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO;AACH,QAAI,WAAW,SAAS;AAExB,SAAK,UAAU,OAAO,mBAAmB;AAEzC,QAAI,KAAK,aAAa,UAAU,EAAG,MAAK,UAAU,IAAI,mBAAmB;AAEzE,QAAI,SAAS,SAAS,cAAc,KAAK;AACzC,WAAO,aAAa,QAAQ,QAAQ;AACpC,WAAO,UAAU,IAAI,aAAa;AAElC,QAAI,OAAO,SAAS,cAAc,MAAM;AAExC,WAAO,YAAY,IAAI;AACvB,aAAS,YAAY,MAAM;AAE3B,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY;AACR,UAAM,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC,UAAU;AACzC,UAAI,MAAM,QAAQ,SAAS,GAAG,EAAG,OAAM;IACnD,CAAS;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKD,mBAAmB;AACf,SAAK,QAAQ,YAAY;AAAA,EAC5B;AACL;AChGA,KAAK,OAAO,YAAY,IAAI;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-option.js","sources":["../packages/wje-option/option.element.js","../packages/wje-option/option.js"],"sourcesContent":["import { default as WJElement, event } from '../wje-element/element.js';\nimport Icon from '../wje-icon/icon.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * `Option` is a custom web component that represents an option.\n * @summary This element represents an option.\n * @documentation https://elements.webjet.sk/components/option\n * @status stable\n * @augments {WJElement}\n * @csspart native - The native part of the option.\n * @slot start - The slot for the start of the option.\n * @slot - The default slot for the option.\n * @slot end - The slot for the end of the option.\n * // @fires wje-option:change - Event fired when the option is clicked.\n * @tag wje-option\n */\nexport default class Option extends WJElement {\n /**\n * Creates an instance of Option.\n * @class\n */\n constructor() {\n super();\n }\n\n /**\n * Dependencies of the Option component.\n */\n dependencies = {\n 'wje-icon': Icon,\n };\n\n /**\n * Sets the selected attribute of the option.\n * @param {boolean} value The value to set.\n */\n set selected(value) {\n if (value) this.setAttribute('selected', '');\n else this.removeAttribute('selected');\n }\n\n /**\n * Sets the value attribute of the option.\n * @param {string} value The value to set.\n */\n set value(value) {\n this.setAttribute('value', value);\n }\n\n /**\n * Sets the text content of the option.\n * @param {string} value The text to set.\n */\n set text(value) {\n this.innerText = value;\n }\n\n className = 'Option';\n\n /**\n * Returns the CSS styles for the component.\n * @static\n * @returns {CSSStyleSheet}\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Returns the list of attributes to observe for changes.\n * @static\n * @returns {Array<string>}\n */\n static get observedAttributes() {\n return [];\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draws the component for the option.\n * @returns {DocumentFragment}\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n let element = document.createElement('div');\n element.classList.add('native-option');\n element.setAttribute('part', 'native');\n\n let icon = document.createElement('wje-icon');\n icon.setAttribute('name', 'check');\n\n let start = document.createElement('slot');\n start.setAttribute('name', 'start');\n\n let slot = document.createElement('slot');\n\n let end = document.createElement('slot');\n end.setAttribute('name', 'end');\n\n element.appendChild(icon);\n element.appendChild(start);\n element.appendChild(slot);\n element.appendChild(end);\n\n fragment.appendChild(element);\n\n return fragment;\n }\n\n /**\n * Adds event listeners after the component is drawn.\n */\n afterDraw() {\n event.addListener(this, 'click', null, (e, b, c) => {\n if (this.hasAttribute('disabled')) return;\n\n this.dispatchEvent(\n new CustomEvent('wje-option:change', {\n bubbles: true,\n composed: true,\n detail: {\n value: this.value,\n text: this.text,\n },\n })\n );\n });\n }\n}\n","import Option from './option.element.js';\n\nexport default Option;\n\nOption.define('wje-option', Option);\n"],"names":[],"mappings":";;;;;;AAiBe,MAAM,eAAe,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK1C,cAAc;AACV;AAMJ;AAAA;AAAA;AAAA,wCAAe;AAAA,MACX,YAAY;AAAA,IACpB;AA2BI,qCAAY;AAAA,EAlCX;AAAA;AAAA;AAAA;AAAA;AAAA,EAaD,IAAI,SAAS,OAAO;AAChB,QAAI,MAAO,MAAK,aAAa,YAAY,EAAE;AAAA,QACtC,MAAK,gBAAgB,UAAU;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,MAAM,OAAO;AACb,SAAK,aAAa,SAAS,KAAK;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,IAAI,KAAK,OAAO;AACZ,SAAK,YAAY;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,WAAW,gBAAgB;AACvB,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,WAAW,qBAAqB;AAC5B,WAAO;EACV;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB;AACd,SAAK,eAAe;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO;AACH,QAAI,WAAW,SAAS;AAExB,QAAI,UAAU,SAAS,cAAc,KAAK;AAC1C,YAAQ,UAAU,IAAI,eAAe;AACrC,YAAQ,aAAa,QAAQ,QAAQ;AAErC,QAAI,OAAO,SAAS,cAAc,UAAU;AAC5C,SAAK,aAAa,QAAQ,OAAO;AAEjC,QAAI,QAAQ,SAAS,cAAc,MAAM;AACzC,UAAM,aAAa,QAAQ,OAAO;AAElC,QAAI,OAAO,SAAS,cAAc,MAAM;AAExC,QAAI,MAAM,SAAS,cAAc,MAAM;AACvC,QAAI,aAAa,QAAQ,KAAK;AAE9B,YAAQ,YAAY,IAAI;AACxB,YAAQ,YAAY,KAAK;AACzB,YAAQ,YAAY,IAAI;AACxB,YAAQ,YAAY,GAAG;AAEvB,aAAS,YAAY,OAAO;AAE5B,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY;AACR,UAAM,YAAY,MAAM,SAAS,MAAM,CAAC,GAAG,GAAG,MAAM;AAChD,UAAI,KAAK,aAAa,UAAU,EAAG;AAEnC,WAAK;AAAA,QACD,IAAI,YAAY,qBAAqB;AAAA,UACjC,SAAS;AAAA,UACT,UAAU;AAAA,UACV,QAAQ;AAAA,YACJ,OAAO,KAAK;AAAA,YACZ,MAAM,KAAK;AAAA,UACd;AAAA,QACrB,CAAiB;AAAA,MACjB;AAAA,IACA,CAAS;AAAA,EACJ;AACL;ACpIA,OAAO,OAAO,cAAc,MAAM;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-options.js","sources":["../packages/wje-options/options.element.js","../packages/wje-options/options.js"],"sourcesContent":["import { default as WJElement, event } from '../wje-element/element.js';\nimport InfiniteScroll from '../wje-infinite-scroll/infinite-scroll.element.js';\nimport List from '../wje-list/list.element.js';\nimport Option from '../wje-option/option.js';\n\n/**\n * `Options` is a custom web component that represents a set of options.\n * It extends from `WJElement`.\n * @summary This element represents a set of options.\n * @documentation https://elements.webjet.sk/components/options\n * @status stable\n * @augments {WJElement}\n * // @fires wje-options:load - Event fired when the options are loaded.\n * @tag wje-options\n */\nexport default class Options extends WJElement {\n /**\n * Creates an instance of Options.\n * @class\n */\n constructor() {\n super();\n\n this._loadedOptions = [];\n }\n\n dependencies = {\n 'wje-option': Option,\n 'wje-infinite-scroll': InfiniteScroll,\n 'wje-list': List,\n };\n\n className = 'Options';\n\n /**\n * Returns the list of attributes to observe for changes.\n * @static\n * @returns {Array<string>}\n */\n static get observedAttributes() {\n return ['search'];\n }\n\n /**\n * Sets the option array path attribute.\n * @param {string} value The value to set for the option array path.\n */\n set optionArrayPath(value) {\n this.setAttribute('option-array-path', value);\n }\n\n /**\n * Gets the option array path attribute.\n * @returns {string} The value of the option array path attribute or \"data\" if not set.\n */\n get optionArrayPath() {\n return this.getAttribute('option-array-path');\n }\n\n /**\n * Checks if the option array path attribute is present.\n * @returns {boolean} True if the option array path attribute is present, false otherwise.\n */\n get hasOptionArrayPath() {\n return this.hasAttribute('option-array-path');\n }\n\n /**\n * Gets the dropdown height attribute.\n * @returns {string} The value of the dropdown height attribute or \"100%\" if not set.\n */\n get dropdownHeight() {\n return this.getAttribute('dropdown-height') || '100%';\n }\n\n /**\n * Sets the dropdown height attribute.\n * @param {string} value The value to set for the dropdown height.\n */\n set dropdownHeight(value) {\n this.setAttribute('dropdown-height', value);\n }\n\n /**\n * Sets the item value attribute.\n * @param {string} value The value to set for the item value.\n */\n set itemValue(value) {\n this.setAttribute('item-value', value);\n }\n\n /**\n * Gets the item value attribute.\n * @returns {string} The value of the item value attribute or \"value\" if not set.\n */\n get itemValue() {\n return this.getAttribute('item-value') || 'value';\n }\n\n /**\n * Sets the item text attribute.\n * @param {string} value The value to set for the item text.\n */\n set itemText(value) {\n this.setAttribute('item-text', value);\n }\n\n /**\n * Gets the item text attribute.\n * @returns {string} The value of the item text attribute or \"text\" if not set.\n */\n get itemText() {\n return this.getAttribute('item-text') || 'text';\n }\n\n /**\n * Gets the lazy load size attribute.\n * @returns {number} The value of the lazy load size attribute or 10 if not set.\n */\n get lazyLoadSize() {\n return this.getAttribute('lazy-load-size') || 10;\n }\n\n /**\n * Sets the lazy load size attribute.\n * @param {number} value The value to set for the lazy load size.\n */\n set lazyLoadSize(value) {\n this.setAttribute('lazy-load-size', value);\n }\n\n /**\n * Sets the search attribute.\n * @param {string} value The value to set for the search.\n */\n set search(value) {\n this.setAttribute('search', value);\n }\n\n /**\n * Gets the search attribute.\n * @returns {string} The value of the search attribute.\n */\n get search() {\n return this.getAttribute('search');\n }\n\n /**\n * Checks if the search attribute is present.\n * @returns {boolean} True if the search attribute is present, false otherwise.\n */\n get hasSearch() {\n return this.hasAttribute('search');\n }\n\n /**\n * Checks if the lazy attribute is present.\n * @returns {boolean} True if the lazy attribute is present, false otherwise.\n */\n get lazy() {\n return this.hasAttribute('lazy');\n }\n\n /**\n * Sets the lazy attribute.\n * @param {boolean} value The value to set for the lazy attribute.\n */\n set lazy(value) {\n this.setAttribute('lazy', value);\n }\n\n /**\n * Gets the loaded options.\n * @returns {Array} The loaded options.\n */\n get options() {\n return this.loadedOptions?.flat();\n }\n\n get loadedOptions() {\n return this._loadedOptions;\n }\n\n set loadedOptions(loadedOptions) {\n this._loadedOptions = loadedOptions;\n }\n\n /**\n * Lifecycle method, called whenever an observed property changes.\n */\n attributeChangedCallback(name, oldValue, newValue) {\n if (this.infiniteScroll && name === 'search' && oldValue !== newValue) {\n this.loadedOptions = [];\n this.infiniteScroll.placementObj.innerHTML = '';\n this.infiniteScroll.totalPages = 0;\n this.infiniteScroll.refresh();\n }\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Prepares the component before drawing.\n * Fetches the pages and creates the options elements.\n */\n beforeDraw() {\n event.dispatchCustomEvent(this, 'wje-options:load', {}); // nepomohlo to, v ff stale je scroll hore\n }\n\n /**\n * Draws the component.\n * @returns {DocumentFragment}\n */\n async draw() {\n let fragment = document.createDocumentFragment();\n\n const slot = document.createElement('slot');\n\n if (this.hasAttribute('lazy')) {\n const list = document.createElement('wje-list');\n\n const infiniteScroll = document.createElement('wje-infinite-scroll');\n infiniteScroll.setAttribute('placement', 'wje-list');\n infiniteScroll.setAttribute('height', this.dropdownHeight);\n infiniteScroll.setAttribute('object-name', this.optionArrayPath);\n infiniteScroll.append(list);\n\n infiniteScroll.dataToHtml = this.htmlItem;\n\n infiniteScroll.setCustomData = async (page, signal) => {\n let res = await this.service.get(\n `${this.url}${this.search ? `/${this.search}` : ''}?page=${page}&size=${this.lazyLoadSize}`,\n null,\n false,\n signal\n );\n const filteredOptions = this.filterOutDrawnOptions(res);\n this.loadedOptions.push(...this.processData(filteredOptions));\n\n return filteredOptions;\n };\n\n if (!this.contains(infiniteScroll)) {\n this.appendChild(infiniteScroll);\n }\n\n this.infiniteScroll = infiniteScroll;\n } else {\n this.response = await this.getPages();\n let optionsData = this.filterOutDrawnOptions(this.response);\n optionsData = this.processData(optionsData);\n\n this.loadedOptions.push(...optionsData);\n\n this.append(...optionsData.map(this.htmlItem));\n }\n\n fragment.appendChild(slot);\n\n return fragment;\n }\n\n /**\n * Processes the given data and returns the options based on the option array path.\n * @param {any} data The data to be processed.\n * @returns {any} - The options based on the option array path.\n */\n processData(data) {\n const splittedOptionArrayPath = this.optionArrayPath ? this.optionArrayPath?.split('.') : null;\n let options = data;\n\n splittedOptionArrayPath?.forEach((path) => {\n options = options[path];\n });\n\n return options ?? [];\n }\n\n /**\n * Filters out drawn options from the response.\n * @param {object | null} response The response to filter.\n * @returns {object} The filtered response.\n */\n filterOutDrawnOptions(response) {\n const splittedOptionArrayPath = this.optionArrayPath ? this.optionArrayPath?.split('.') : [];\n let filteredResponse = structuredClone(response);\n\n filteredResponse = this.recursiveUpdate(filteredResponse, splittedOptionArrayPath);\n return filteredResponse;\n }\n\n /**\n * Recursively updates the object based on the provided path to the property.\n * @param {object | Array | null} object\n * @param {Array<string> | null} pathToProperty\n * @returns {object | Array | null}\n */\n recursiveUpdate = (object, pathToProperty) => {\n if (pathToProperty.length === 0) {\n if (Array.isArray(object)) {\n return object.filter(\n (option) =>\n !this.loadedOptions.some(\n (loadedOption) => loadedOption[this.itemValue] === option[this.itemValue]\n )\n );\n } else {\n console.error('Expected an array but got:', object, pathToProperty);\n return [];\n }\n }\n\n const [currentPath, ...remainingPath] = pathToProperty;\n if (remainingPath.length > 0) {\n object[currentPath] = this.recursiveUpdate(object[currentPath], remainingPath);\n } else {\n object[currentPath] =\n object[currentPath]?.filter(\n (option) =>\n !this.loadedOptions.some(\n (loadedOption) => loadedOption[this.itemValue] === option[this.itemValue]\n )\n ) ?? [];\n }\n return object;\n };\n\n /**\n * Generates an HTML option element based on the provided item.\n * @param {object} item The item to generate the option element for.\n * @returns {HTMLElement} The generated option element.\n */\n htmlItem = (item) => {\n let option = document.createElement('wje-option');\n\n if (item[this.itemValue] === null || item[this.itemValue] === undefined) {\n console.warn(`The item ${JSON.stringify(item)} does not have the property ${this.itemValue}`);\n }\n\n if (item[this.itemText] === null || item[this.itemText] === undefined) {\n console.warn(`The item ${JSON.stringify(item)} does not have the property ${this.itemText}`);\n }\n\n option.setAttribute('value', item[this.itemValue] ?? '');\n option.innerText = item[this.itemText] ?? '';\n\n return option;\n };\n\n /**\n * Fetches the pages from the provided URL.\n * @param {number} page The page number to fetch.\n * @returns {Promise<object>} The fetched data.\n * @throws Will throw an error if the response is not ok.\n */\n async getPages(page) {\n const response = await fetch(this.url);\n if (!response.ok) {\n throw new Error(`An error occurred: ${response.status}`);\n }\n return await response.json();\n }\n\n /**\n * Finds the selected option data based on the given selected option values.\n * @param {Array} selectedOptionValues The array of selected option values.\n * @returns {Array} - The array of option data that matches the selected option values.\n */\n findSelectedOptionData(selectedOptionValues = []) {\n return this.options.filter((option) => selectedOptionValues.includes(option[this.itemValue]));\n }\n\n /**\n * Adds an option to the element.\n * @param {object} optionData The data of the option to be added.\n */\n addOption(optionData) {\n if (this.loadedOptions.some((option) => option[this.itemValue] === optionData[this.itemValue])) {\n return;\n }\n\n this.prepend(this.htmlItem(optionData));\n this.loadedOptions.push(optionData);\n }\n\n /**\n * Adds options to the element.\n * @param {Array} optionsData The array of option data to be added.\n * @param {boolean} [silent] Whether to suppress events triggered by adding options.\n */\n addOptions(optionsData = [], silent = false) {\n if (Array.isArray(optionsData)) optionsData?.forEach((od) => this.addOption(od, silent));\n else this.addOption(optionsData, silent);\n }\n}\n","import Options from './options.element.js';\n\nexport default Options;\n\nOptions.define('wje-options', Options);\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-orgchart-group.js","sources":["../packages/wje-orgchart-group/orgchart-group.element.js","../packages/wje-orgchart-group/orgchart-group.js"],"sourcesContent":["import { default as WJElement, event } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * @summary OrgchartItem is a custom web component that extends WJElement.\n * @documentation https://elements.webjet.sk/components/OrgchartItem\n * @status stable\n * @augments WJElement\n * @csspart - Styles the element.\n * @tag wje-orgchart-item\n * @example\n */\nexport default class OrgchartGroup extends WJElement {\n /**\n * Creates an instance of OrgchartGroup.\n * @class\n */\n constructor() {\n super();\n }\n\n /**\n * The class name for the component.\n * @type {string}\n */\n className = 'OrgchartGroup';\n\n /**\n * Returns the CSS styles for the component.\n * @static\n * @returns {CSSStyleSheet}\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draws the component for the org chart group.\n * @returns {DocumentFragment}\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n let native = document.createElement('div');\n native.setAttribute('part', 'native');\n native.classList.add('orgchart-group');\n\n let card = document.createElement('wje-card');\n\n let title = document.createElement('h4');\n title.setAttribute('part', 'title');\n title.innerHTML = this.getAttribute('title') || '';\n\n let items = document.createElement('div');\n items.setAttribute('part', 'items');\n items.classList.add('items');\n\n let slot = document.createElement('slot');\n\n items.appendChild(slot);\n\n card.appendChild(title);\n card.appendChild(items);\n\n native.appendChild(card);\n\n fragment.appendChild(native);\n\n this.card = card;\n\n return fragment;\n }\n\n /**\n * After Draws the component for the org chart group.\n */\n afterDraw() {\n this.card.addEventListener('click', (e) => {\n e.stopPropagation();\n event.dispatchCustomEvent(this.card, 'wje-orgchart-group:click', { target: this });\n });\n }\n}\n","import OrgchartGroup from './orgchart-group.element.js';\n\nexport default OrgchartGroup;\n\nOrgchartGroup.define('wje-orgchart-group', OrgchartGroup);\n"],"names":[],"mappings":";;;;;AAYe,MAAM,sBAAsB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjD,cAAc;AACV;AAOJ;AAAA;AAAA;AAAA;AAAA,qCAAY;AAAA,EANX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaD,WAAW,gBAAgB;AACvB,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB;AACd,SAAK,eAAe;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO;AACH,QAAI,WAAW,SAAS;AAExB,QAAI,SAAS,SAAS,cAAc,KAAK;AACzC,WAAO,aAAa,QAAQ,QAAQ;AACpC,WAAO,UAAU,IAAI,gBAAgB;AAErC,QAAI,OAAO,SAAS,cAAc,UAAU;AAE5C,QAAI,QAAQ,SAAS,cAAc,IAAI;AACvC,UAAM,aAAa,QAAQ,OAAO;AAClC,UAAM,YAAY,KAAK,aAAa,OAAO,KAAK;AAEhD,QAAI,QAAQ,SAAS,cAAc,KAAK;AACxC,UAAM,aAAa,QAAQ,OAAO;AAClC,UAAM,UAAU,IAAI,OAAO;AAE3B,QAAI,OAAO,SAAS,cAAc,MAAM;AAExC,UAAM,YAAY,IAAI;AAEtB,SAAK,YAAY,KAAK;AACtB,SAAK,YAAY,KAAK;AAEtB,WAAO,YAAY,IAAI;AAEvB,aAAS,YAAY,MAAM;AAE3B,SAAK,OAAO;AAEZ,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY;AACR,SAAK,KAAK,iBAAiB,SAAS,CAAC,MAAM;AACvC,QAAE,gBAAe;AACjB,YAAM,oBAAoB,KAAK,MAAM,4BAA4B,EAAE,QAAQ,KAAI,CAAE;AAAA,IAC7F,CAAS;AAAA,EACJ;AACL;ACrFA,cAAc,OAAO,sBAAsB,aAAa;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-orgchart-item.js","sources":["../packages/wje-orgchart-item/orgchart-item.element.js","../packages/wje-orgchart-item/orgchart-item.js"],"sourcesContent":["import { default as WJElement } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * @summary OrgchartItem is a custom web component that extends WJElement.\n * @documentation https://elements.webjet.sk/components/OrgchartItem\n * @status stable\n * @augments WJElement\n * @attribute {boolean} boss - The boss of the orgchart item (default: false).\n * @slot - The default slot for the orgchart item.\n * @slot child - The child slot for the orgchart item.\n * @csspart - Styles the element.\n * @csspart native - Styles the native element.\n * @csspart expander - Styles the expander element.\n * @tag wje-orgchart-item\n */\nexport default class OrgchartItem extends WJElement {\n /**\n * Creates an instance of OrgchartItem.\n * @class\n */\n constructor() {\n super();\n }\n\n /**\n * Sets the boss of the orgchart item.\n * @param value\n */\n\n set boss(value) {\n if (value) this.setAttribute('boss', value);\n }\n\n /**\n * Gets the boss of the orgchart item.\n * @returns {boolean}\n */\n\n get boss() {\n return this.hasAttribute('boss');\n }\n\n className = 'OrgchartItem';\n\n /**\n * Returns the CSS styles for the component.\n * @static\n * @returns {CSSStyleSheet}\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n beforeDraw() {\n if (this.parentElement && this.parentElement.tagName === 'WJE-ORGCHART-GROUP') {\n this.classList.add('parent-group');\n }\n }\n\n /**\n * Draws the component for the org chart item.\n * @returns {DocumentFragment}\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n let native = document.createElement('div');\n native.setAttribute('part', 'native');\n native.classList.add('orgchart-item');\n\n let card = document.createElement('wje-card');\n card.setAttribute('part', 'card');\n\n let slot = document.createElement('slot');\n\n let child = document.createElement('slot');\n child.setAttribute('name', 'child');\n\n let expander = document.createElement('div');\n expander.setAttribute('part', 'expander');\n expander.classList.add('expander');\n expander.innerHTML = '-';\n\n card.appendChild(slot);\n if (this.children.length > 0 && Array.from(this.children).some((el) => el.tagName === 'WJE-ORGCHART'))\n card.appendChild(expander); // if the orgchart item has children and\n\n native.appendChild(card);\n native.appendChild(child);\n\n fragment.appendChild(native);\n\n this.expander = expander;\n\n return fragment;\n }\n\n /**\n * After Draws the component for the org chart item.\n */\n afterDraw() {\n this.expander.addEventListener('click', this.toggleChildren);\n }\n\n /**\n * Toggles the children of the orgchart item.\n * @param e The event object.\n */\n toggleChildren = (e) => {\n this.classList.toggle('collapse');\n if (this.classList.contains('collapse')) e.target.innerHTML = '+';\n else e.target.innerHTML = '-';\n };\n\n dispatchEvent(e) {\n return false;\n }\n}\n","import OrgchartItem from './orgchart-item.element.js';\n\nexport default OrgchartItem;\n\nOrgchartItem.define('wje-orgchart-item', OrgchartItem);\n"],"names":[],"mappings":";;;;;AAgBe,MAAM,qBAAqB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKhD,cAAc;AACV;AAqBJ,qCAAY;AAyEZ;AAAA;AAAA;AAAA;AAAA,0CAAiB,CAAC,MAAM;AACpB,WAAK,UAAU,OAAO,UAAU;AAChC,UAAI,KAAK,UAAU,SAAS,UAAU,EAAG,GAAE,OAAO,YAAY;AAAA,UACzD,GAAE,OAAO,YAAY;AAAA,IAClC;AAAA,EAjGK;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,KAAK,OAAO;AACZ,QAAI,MAAO,MAAK,aAAa,QAAQ,KAAK;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,IAAI,OAAO;AACP,WAAO,KAAK,aAAa,MAAM;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,WAAW,gBAAgB;AACvB,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB;AACd,SAAK,eAAe;AAAA,EACvB;AAAA,EAED,aAAa;AACT,QAAI,KAAK,iBAAiB,KAAK,cAAc,YAAY,sBAAsB;AAC3E,WAAK,UAAU,IAAI,cAAc;AAAA,IACpC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO;AACH,QAAI,WAAW,SAAS;AAExB,QAAI,SAAS,SAAS,cAAc,KAAK;AACzC,WAAO,aAAa,QAAQ,QAAQ;AACpC,WAAO,UAAU,IAAI,eAAe;AAEpC,QAAI,OAAO,SAAS,cAAc,UAAU;AAC5C,SAAK,aAAa,QAAQ,MAAM;AAEhC,QAAI,OAAO,SAAS,cAAc,MAAM;AAExC,QAAI,QAAQ,SAAS,cAAc,MAAM;AACzC,UAAM,aAAa,QAAQ,OAAO;AAElC,QAAI,WAAW,SAAS,cAAc,KAAK;AAC3C,aAAS,aAAa,QAAQ,UAAU;AACxC,aAAS,UAAU,IAAI,UAAU;AACjC,aAAS,YAAY;AAErB,SAAK,YAAY,IAAI;AACrB,QAAI,KAAK,SAAS,SAAS,KAAK,MAAM,KAAK,KAAK,QAAQ,EAAE,KAAK,CAAC,OAAO,GAAG,YAAY,cAAc;AAChG,WAAK,YAAY,QAAQ;AAE7B,WAAO,YAAY,IAAI;AACvB,WAAO,YAAY,KAAK;AAExB,aAAS,YAAY,MAAM;AAE3B,SAAK,WAAW;AAEhB,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKD,YAAY;AACR,SAAK,SAAS,iBAAiB,SAAS,KAAK,cAAc;AAAA,EAC9D;AAAA,EAYD,cAAc,GAAG;AACb,WAAO;AAAA,EACV;AACL;ACzHA,aAAa,OAAO,qBAAqB,YAAY;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-orgchart.js","sources":["../packages/wje-orgchart/orgchart.element.js","../packages/wje-orgchart/orgchart.js"],"sourcesContent":["import { default as WJElement } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * @summary Orgchart is a custom web component that extends WJElement.\n * @documentation https://elements.webjet.sk/components/Orgchart\n * @status stable\n * @augments WJElement\n * @csspart - Styles the element.\n * @tag wje-orgchart\n * @example\n */\nexport default class Orgchart extends WJElement {\n /**\n * Creates an instance of Orgchart.\n * @class\n */\n constructor() {\n super();\n }\n\n className = 'Orgchart';\n\n /**\n * Returns the CSS styles for the component.\n * @static\n * @returns {CSSStyleSheet}\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draws the component for the org chart.\n * @returns {DocumentFragment}\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n let native = document.createElement('div');\n native.setAttribute('part', 'native');\n native.classList.add('native-orgchart');\n\n let slot = document.createElement('slot');\n\n native.appendChild(slot);\n\n fragment.appendChild(native);\n\n this.native = native;\n\n return fragment;\n }\n}\n","import Orgchart from './orgchart.element.js';\n\nexport default Orgchart;\n\nOrgchart.define('wje-orgchart', Orgchart);\n"],"names":[],"mappings":";;;;;AAYe,MAAM,iBAAiB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK5C,cAAc;AACV;AAGJ,qCAAY;AAAA,EAFX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,WAAW,gBAAgB;AACvB,WAAO;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKD,kBAAkB;AACd,SAAK,eAAe;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAO;AACH,QAAI,WAAW,SAAS;AAExB,QAAI,SAAS,SAAS,cAAc,KAAK;AACzC,WAAO,aAAa,QAAQ,QAAQ;AACpC,WAAO,UAAU,IAAI,iBAAiB;AAEtC,QAAI,OAAO,SAAS,cAAc,MAAM;AAExC,WAAO,YAAY,IAAI;AAEvB,aAAS,YAAY,MAAM;AAE3B,SAAK,SAAS;AAEd,WAAO;AAAA,EACV;AACL;ACxDA,SAAS,OAAO,gBAAgB,QAAQ;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-popup.js","sources":["../packages/wje-popup/popup.js"],"sourcesContent":["import Popup from './popup.element.js';\n\nexport default Popup;\n\nPopup.define('wje-popup', Popup);\n"],"names":[],"mappings":";AAIA,MAAM,OAAO,aAAa,KAAK;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-progress-bar.js","sources":["../packages/wje-progress-bar/progress-bar.element.js","../packages/wje-progress-bar/progress-bar.js"],"sourcesContent":["import { default as WJElement } from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\n\n/**\n * `ProgressBar` is a custom web component that represents a progress bar.\n * @summary This element represents a progress bar.\n * @documentation https://elements.webjet.sk/components/progress-bar\n * @status stable\n * @augments {WJElement}\n * @slot - The default slot for the progress bar.\n * @slot start - The start slot of the progress bar.\n * @slot end - The end slot of the progress bar.\n * @cssproperty [--wje-progress-bar-color=var(--wje-color-contrast-6)] - Sets the color of the progress bar. This property controls the fill color of the progress indicator. Accepts any valid CSS color value, such as named colors (`red`), hex values (`#ff0000`), or CSS variables.\n * @cssproperty [--wje-progress-bar-text-size=.75rem] - Defines the font size of the text displayed within the progress bar. Accepts any valid CSS length unit (e.g., `rem`, `px`, `em`) to control text size relative to the bar's design.\n * @cssproperty [--wje-progress-bar-text-color=var(--wje-color)] - Specifies the color of the text displayed within the progress bar. Accepts any valid CSS color value to ensure contrast and readability against the progress bar's background.\n * @tag wje-progress-bar\n */\nexport default class ProgressBar extends WJElement {\n /**\n * Creates an instance of ProgressBar.\n * @class\n */\n constructor() {\n super();\n }\n\n /**\n * Sets the radius of the progress bar.\n * @param {number} value The value to set.\n */\n set radius(value) {\n this.setAttribute('radius', value);\n }\n\n /**\n * Gets the radius of the progress bar.\n * @returns {number} The value of the radius.\n */\n get radius() {\n return +this.getAttribute('radius') || 70;\n }\n\n /**\n * Gets the diameter of the progress bar.\n * @returns {number} The value of the diameter.\n */\n get diameter() {\n return this.radius * 2;\n }\n\n /**\n * Gets the diameter of the progress bar.\n * @returns {number} The value of the diameter.\n */\n get containerSize() {\n return this.diameter + 2 * this.stroke;\n }\n\n /**\n * Sets the stroke of the progress bar.\n * @param {number} value The value to set.\n */\n set stroke(value) {\n this.setAttribute('stroke', value);\n }\n\n /**\n * Gets the stroke of the progress bar.\n * @returns {number} The value of the stroke.\n */\n get stroke() {\n return +this.getAttribute('stroke') || 6;\n }\n\n /**\n * Gets the linecap of the progress bar.\n * @returns {string} The value of the linecap.\n */\n get linecap() {\n return this.getAttribute('linecap') || 'square';\n }\n\n className = 'ProgressBar';\n\n /**\n * Returns the CSS styles for the component.\n * @static\n * @returns {CSSStyleSheet}\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Returns the list of attributes to observe for changes.\n * @static\n * @returns {Array<string>}\n */\n static get observedAttributes() {\n return ['progress'];\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Draws the component.\n * @param {object} context The context for drawing.\n * @param {object} store The store for drawing.\n * @param {object} params The parameters for drawing.\n * @returns {DocumentFragment}\n */\n draw(context, store, params) {\n let xy = this.radius + this.stroke / 2;\n\n let fragment = document.createDocumentFragment();\n\n if (params.color) this.classList.add('wje-color');\n\n let element = document.createElement('div');\n element.classList.add('progress');\n\n let slot = document.createElement('slot');\n\n let slotWrapper = document.createElement('div');\n slotWrapper.classList.add('slot-wrapper');\n\n let slotStart = document.createElement('slot');\n slotStart.setAttribute('name', 'start');\n\n let slotEnd = document.createElement('slot');\n slotEnd.setAttribute('name', 'end');\n\n const svgNamespace = 'http://www.w3.org/2000/svg';\n\n let svg = document.createElementNS(svgNamespace, 'svg');\n\n let background;\n let bar;\n\n if (this?.type === 'circle') {\n // console.log(\"CIRCLE\", \"RADIUS:\", this.radius, \"DIAMETER:\", this.diameter, \"CONTAINER SIZE:\", this.containerSize, \"STROKE:\", this.stroke);\n svg.setAttribute('width', this.containerSize);\n svg.setAttribute('height', this.containerSize);\n svg.setAttribute('viewBox', `0 0 ${this.containerSize} ${this.containerSize}`);\n svg.setAttribute('style', 'transform: rotate(-90deg)');\n\n background = document.createElementNS(svgNamespace, 'circle');\n background.setAttribute('stroke', 'var(--wje-progress-bar-background-color)');\n background.setAttribute('stroke-width', this.stroke);\n background.setAttribute('fill', 'transparent');\n background.setAttribute('r', this.radius);\n background.setAttribute('cx', this.containerSize / 2);\n background.setAttribute('cy', this.containerSize / 2);\n\n bar = document.createElementNS(svgNamespace, 'circle');\n bar.setAttribute('stroke', 'var(--wje-progress-bar-color)');\n bar.setAttribute('stroke-width', this.stroke);\n bar.setAttribute('fill', 'transparent');\n bar.setAttribute('r', this.radius);\n bar.setAttribute('cx', this.containerSize / 2);\n bar.setAttribute('cy', this.containerSize / 2);\n bar.setAttribute('stroke-linecap', this.linecap);\n\n let text = document.createElementNS(svgNamespace, 'text');\n text.setAttribute('x', '50%');\n text.setAttribute('y', '50%');\n text.innerHTML = this.progress + '%';\n\n svg.appendChild(text);\n } else {\n svg.setAttribute('width', '100%');\n svg.setAttribute('height', this.stroke);\n svg.setAttribute('preserveAspectRatio', 'none');\n\n background = document.createElementNS(svgNamespace, 'rect');\n background.setAttribute('x', 0);\n background.setAttribute('y', 0);\n background.setAttribute('width', '100%');\n background.setAttribute('height', this.stroke);\n if (this.linecap === 'round') {\n background.setAttribute('rx', this.stroke / 2);\n background.setAttribute('ry', this.stroke / 2);\n }\n\n bar = document.createElementNS(svgNamespace, 'rect');\n bar.setAttribute('x', 0);\n bar.setAttribute('y', 0);\n bar.setAttribute('width', this.progress + '%');\n bar.setAttribute('height', this.stroke);\n bar.setAttribute('id', 'bar');\n\n if (this.linecap === 'round') {\n bar.setAttribute('rx', this.stroke / 2);\n bar.setAttribute('ry', this.stroke / 2);\n }\n }\n\n svg.appendChild(background);\n svg.appendChild(bar);\n\n slotWrapper.appendChild(slot);\n\n element.appendChild(slotStart);\n element.appendChild(slotWrapper);\n element.appendChild(svg);\n element.appendChild(slotEnd);\n\n fragment.appendChild(element);\n\n this.background = background;\n this.bar = bar;\n\n return fragment;\n }\n\n /**\n * Adds event listeners after the component is drawn.\n */\n afterDraw() {\n if (this.type === 'circle') {\n this.setCircleProgress(this.progress);\n }\n }\n\n /**\n * Returns the dasharray for a circle with the given radius.\n * @param {number} radius The radius of the circle in pixels.\n * @returns {number} The dasharray value.\n */\n getCircleDasharray(radius = 70) {\n return 2 * Math.PI * radius;\n }\n\n /**\n * Returns the dashoffset for a circle with the given progress and radius.\n * @param {number} progress The progress of the circle in percentage.\n * @param {number} radius The radius of the circle in pixels.\n * @returns {number} The dashoffset value.\n */\n getCircleDashoffset(progress = 0, radius = 70) {\n return this.getCircleDasharray(radius) * ((100 - progress) / 100);\n }\n\n /**\n * Sets the progress of the circle.\n * @param percent\n */\n setCircleProgress(percent) {\n const progress = this.bar;\n const radius = progress.r.baseVal.value;\n const circumference = 2 * Math.PI * radius;\n\n progress.style.strokeDasharray = `${circumference}`;\n const offset = circumference - (percent / 100) * circumference;\n progress.style.strokeDashoffset = offset;\n }\n}\n","import ProgressBar from './progress-bar.element.js';\n\nexport default ProgressBar;\n\nProgressBar.define('wje-progress-bar', ProgressBar);\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wje-qr-code.js","sources":["../node_modules/qrious/dist/qrious.js","../packages/wje-qr-code/qr-code.element.js","../packages/wje-qr-code/qr-code.js"],"sourcesContent":["/*\n * QRious v4.0.2\n * Copyright (C) 2017 Alasdair Mercer\n * Copyright (C) 2010 Tom Zerucha\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.QRious = factory());\n}(this, (function () { 'use strict';\n\n /*\n * Copyright (C) 2017 Alasdair Mercer, !ninja\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n /**\n * A bare-bones constructor for surrogate prototype swapping.\n *\n * @private\n * @constructor\n */\n var Constructor = /* istanbul ignore next */ function() {};\n /**\n * A reference to <code>Object.prototype.hasOwnProperty</code>.\n *\n * @private\n * @type {Function}\n */\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n /**\n * A reference to <code>Array.prototype.slice</code>.\n *\n * @private\n * @type {Function}\n */\n var slice = Array.prototype.slice;\n\n /**\n * Creates an object which inherits the given <code>prototype</code>.\n *\n * Optionally, the created object can be extended further with the specified <code>properties</code>.\n *\n * @param {Object} prototype - the prototype to be inherited by the created object\n * @param {Object} [properties] - the optional properties to be extended by the created object\n * @return {Object} The newly created object.\n * @private\n */\n function createObject(prototype, properties) {\n var result;\n /* istanbul ignore next */\n if (typeof Object.create === 'function') {\n result = Object.create(prototype);\n } else {\n Constructor.prototype = prototype;\n result = new Constructor();\n Constructor.prototype = null;\n }\n\n if (properties) {\n extendObject(true, result, properties);\n }\n\n return result;\n }\n\n /**\n * Extends the constructor to which this method is associated with the <code>prototype</code> and/or\n * <code>statics</code> provided.\n *\n * If <code>name</code> is provided, it will be used as the class name and can be accessed via a special\n * <code>class_</code> property on the child constructor, otherwise the class name of the super constructor will be used\n * instead. The class name may also be used string representation for instances of the child constructor (via\n * <code>toString</code>), but this is not applicable to the <i>lite</i> version of Nevis.\n *\n * If <code>constructor</code> is provided, it will be used as the constructor for the child, otherwise a simple\n * constructor which only calls the super constructor will be used instead.\n *\n * The super constructor can be accessed via a special <code>super_</code> property on the child constructor.\n *\n * @param {string} [name=this.class_] - the class name to be used for the child constructor\n * @param {Function} [constructor] - the constructor for the child\n * @param {Object} [prototype] - the prototype properties to be defined for the child\n * @param {Object} [statics] - the static properties to be defined for the child\n * @return {Function} The child <code>constructor</code> provided or the one created if none was given.\n * @public\n */\n function extend(name, constructor, prototype, statics) {\n var superConstructor = this;\n\n if (typeof name !== 'string') {\n statics = prototype;\n prototype = constructor;\n constructor = name;\n name = null;\n }\n\n if (typeof constructor !== 'function') {\n statics = prototype;\n prototype = constructor;\n constructor = function() {\n return superConstructor.apply(this, arguments);\n };\n }\n\n extendObject(false, constructor, superConstructor, statics);\n\n constructor.prototype = createObject(superConstructor.prototype, prototype);\n constructor.prototype.constructor = constructor;\n\n constructor.class_ = name || superConstructor.class_;\n constructor.super_ = superConstructor;\n\n return constructor;\n }\n\n /**\n * Extends the specified <code>target</code> object with the properties in each of the <code>sources</code> provided.\n *\n * if any source is <code>null</code> it will be ignored.\n *\n * @param {boolean} own - <code>true</code> to only copy <b>own</b> properties from <code>sources</code> onto\n * <code>target</code>; otherwise <code>false</code>\n * @param {Object} target - the target object which should be extended\n * @param {...Object} [sources] - the source objects whose properties are to be copied onto <code>target</code>\n * @return {void}\n * @private\n */\n function extendObject(own, target, sources) {\n sources = slice.call(arguments, 2);\n\n var property;\n var source;\n\n for (var i = 0, length = sources.length; i < length; i++) {\n source = sources[i];\n\n for (property in source) {\n if (!own || hasOwnProperty.call(source, property)) {\n target[property] = source[property];\n }\n }\n }\n }\n\n var extend_1 = extend;\n\n /**\n * The base class from which all others should extend.\n *\n * @public\n * @constructor\n */\n function Nevis() {}\n Nevis.class_ = 'Nevis';\n Nevis.super_ = Object;\n\n /**\n * Extends the constructor to which this method is associated with the <code>prototype</code> and/or\n * <code>statics</code> provided.\n *\n * If <code>name</code> is provided, it will be used as the class name and can be accessed via a special\n * <code>class_</code> property on the child constructor, otherwise the class name of the super constructor will be used\n * instead. The class name may also be used string representation for instances of the child constructor (via\n * <code>toString</code>), but this is not applicable to the <i>lite</i> version of Nevis.\n *\n * If <code>constructor</code> is provided, it will be used as the constructor for the child, otherwise a simple\n * constructor which only calls the super constructor will be used instead.\n *\n * The super constructor can be accessed via a special <code>super_</code> property on the child constructor.\n *\n * @param {string} [name=this.class_] - the class name to be used for the child constructor\n * @param {Function} [constructor] - the constructor for the child\n * @param {Object} [prototype] - the prototype properties to be defined for the child\n * @param {Object} [statics] - the static properties to be defined for the child\n * @return {Function} The child <code>constructor</code> provided or the one created if none was given.\n * @public\n * @static\n * @memberof Nevis\n */\n Nevis.extend = extend_1;\n\n var nevis = Nevis;\n\n var lite = nevis;\n\n /**\n * Responsible for rendering a QR code {@link Frame} on a specific type of element.\n *\n * A renderer may be dependant on the rendering of another element, so the ordering of their execution is important.\n *\n * The rendering of a element can be deferred by disabling the renderer initially, however, any attempt get the element\n * from the renderer will result in it being immediately enabled and the element being rendered.\n *\n * @param {QRious} qrious - the {@link QRious} instance to be used\n * @param {*} element - the element onto which the QR code is to be rendered\n * @param {boolean} [enabled] - <code>true</code> this {@link Renderer} is enabled; otherwise <code>false</code>.\n * @public\n * @class\n * @extends Nevis\n */\n var Renderer = lite.extend(function(qrious, element, enabled) {\n /**\n * The {@link QRious} instance.\n *\n * @protected\n * @type {QRious}\n * @memberof Renderer#\n */\n this.qrious = qrious;\n\n /**\n * The element onto which this {@link Renderer} is rendering the QR code.\n *\n * @protected\n * @type {*}\n * @memberof Renderer#\n */\n this.element = element;\n this.element.qrious = qrious;\n\n /**\n * Whether this {@link Renderer} is enabled.\n *\n * @protected\n * @type {boolean}\n * @memberof Renderer#\n */\n this.enabled = Boolean(enabled);\n }, {\n\n /**\n * Draws the specified QR code <code>frame</code> on the underlying element.\n *\n * Implementations of {@link Renderer} <b>must</b> override this method with their own specific logic.\n *\n * @param {Frame} frame - the {@link Frame} to be drawn\n * @return {void}\n * @protected\n * @abstract\n * @memberof Renderer#\n */\n draw: function(frame) {},\n\n /**\n * Returns the element onto which this {@link Renderer} is rendering the QR code.\n *\n * If this method is called while this {@link Renderer} is disabled, it will be immediately enabled and rendered\n * before the element is returned.\n *\n * @return {*} The element.\n * @public\n * @memberof Renderer#\n */\n getElement: function() {\n if (!this.enabled) {\n this.enabled = true;\n this.render();\n }\n\n return this.element;\n },\n\n /**\n * Calculates the size (in pixel units) to represent an individual module within the QR code based on the\n * <code>frame</code> provided.\n *\n * Any configured padding will be excluded from the returned size.\n *\n * The returned value will be at least one, even in cases where the size of the QR code does not fit its contents.\n * This is done so that the inevitable clipping is handled more gracefully since this way at least something is\n * displayed instead of just a blank space filled by the background color.\n *\n * @param {Frame} frame - the {@link Frame} from which the module size is to be derived\n * @return {number} The pixel size for each module in the QR code which will be no less than one.\n * @protected\n * @memberof Renderer#\n */\n getModuleSize: function(frame) {\n var qrious = this.qrious;\n var padding = qrious.padding || 0;\n var pixels = Math.floor((qrious.size - (padding * 2)) / frame.width);\n\n return Math.max(1, pixels);\n },\n\n /**\n * Calculates the offset/padding (in pixel units) to be inserted before the QR code based on the <code>frame</code>\n * provided.\n *\n * The returned value will be zero if there is no available offset or if the size of the QR code does not fit its\n * contents. It will never be a negative value. This is done so that the inevitable clipping appears more naturally\n * and it is not clipped from all directions.\n *\n * @param {Frame} frame - the {@link Frame} from which the offset is to be derived\n * @return {number} The pixel offset for the QR code which will be no less than zero.\n * @protected\n * @memberof Renderer#\n */\n getOffset: function(frame) {\n var qrious = this.qrious;\n var padding = qrious.padding;\n\n if (padding != null) {\n return padding;\n }\n\n var moduleSize = this.getModuleSize(frame);\n var offset = Math.floor((qrious.size - (moduleSize * frame.width)) / 2);\n\n return Math.max(0, offset);\n },\n\n /**\n * Renders a QR code on the underlying element based on the <code>frame</code> provided.\n *\n * @param {Frame} frame - the {@link Frame} to be rendered\n * @return {void}\n * @public\n * @memberof Renderer#\n */\n render: function(frame) {\n if (this.enabled) {\n this.resize();\n this.reset();\n this.draw(frame);\n }\n },\n\n /**\n * Resets the underlying element, effectively clearing any previously rendered QR code.\n *\n * Implementations of {@link Renderer} <b>must</b> override this method with their own specific logic.\n *\n * @return {void}\n * @protected\n * @abstract\n * @memberof Renderer#\n */\n reset: function() {},\n\n /**\n * Ensures that the size of the underlying element matches that defined on the associated {@link QRious} instance.\n *\n * Implementations of {@link Renderer} <b>must</b> override this method with their own specific logic.\n *\n * @return {void}\n * @protected\n * @abstract\n * @memberof Renderer#\n */\n resize: function() {}\n\n });\n\n var Renderer_1 = Renderer;\n\n /**\n * An implementation of {@link Renderer} for working with <code>canvas</code> elements.\n *\n * @public\n * @class\n * @extends Renderer\n */\n var CanvasRenderer = Renderer_1.extend({\n\n /**\n * @override\n */\n draw: function(frame) {\n var i, j;\n var qrious = this.qrious;\n var moduleSize = this.getModuleSize(frame);\n var offset = this.getOffset(frame);\n var context = this.element.getContext('2d');\n\n context.fillStyle = qrious.foreground;\n context.globalAlpha = qrious.foregroundAlpha;\n\n for (i = 0; i < frame.width; i++) {\n for (j = 0; j < frame.width; j++) {\n if (frame.buffer[(j * frame.width) + i]) {\n context.fillRect((moduleSize * i) + offset, (moduleSize * j) + offset, moduleSize, moduleSize);\n }\n }\n }\n },\n\n /**\n * @override\n */\n reset: function() {\n var qrious = this.qrious;\n var context = this.element.getContext('2d');\n var size = qrious.size;\n\n context.lineWidth = 1;\n context.clearRect(0, 0, size, size);\n context.fillStyle = qrious.background;\n context.globalAlpha = qrious.backgroundAlpha;\n context.fillRect(0, 0, size, size);\n },\n\n /**\n * @override\n */\n resize: function() {\n var element = this.element;\n\n element.width = element.height = this.qrious.size;\n }\n\n });\n\n var CanvasRenderer_1 = CanvasRenderer;\n\n /* eslint no-multi-spaces: \"off\" */\n\n\n\n /**\n * Contains alignment pattern information.\n *\n * @public\n * @class\n * @extends Nevis\n */\n var Alignment = lite.extend(null, {\n\n /**\n * The alignment pattern block.\n *\n * @public\n * @static\n * @type {number[]}\n * @memberof Alignment\n */\n BLOCK: [\n 0, 11, 15, 19, 23, 27, 31,\n 16, 18, 20, 22, 24, 26, 28, 20, 22, 24, 24, 26, 28, 28, 22, 24, 24,\n 26, 26, 28, 28, 24, 24, 26, 26, 26, 28, 28, 24, 26, 26, 26, 28, 28\n ]\n\n });\n\n var Alignment_1 = Alignment;\n\n /* eslint no-multi-spaces: \"off\" */\n\n\n\n /**\n * Contains error correction information.\n *\n * @public\n * @class\n * @extends Nevis\n */\n var ErrorCorrection = lite.extend(null, {\n\n /**\n * The error correction blocks.\n *\n * There are four elements per version. The first two indicate the number of blocks, then the data width, and finally\n * the ECC width.\n *\n * @public\n * @static\n * @type {number[]}\n * @memberof ErrorCorrection\n */\n BLOCKS: [\n 1, 0, 19, 7, 1, 0, 16, 10, 1, 0, 13, 13, 1, 0, 9, 17,\n 1, 0, 34, 10, 1, 0, 28, 16, 1, 0, 22, 22, 1, 0, 16, 28,\n 1, 0, 55, 15, 1, 0, 44, 26, 2, 0, 17, 18, 2, 0, 13, 22,\n 1, 0, 80, 20, 2, 0, 32, 18, 2, 0, 24, 26, 4, 0, 9, 16,\n 1, 0, 108, 26, 2, 0, 43, 24, 2, 2, 15, 18, 2, 2, 11, 22,\n 2, 0, 68, 18, 4, 0, 27, 16, 4, 0, 19, 24, 4, 0, 15, 28,\n 2, 0, 78, 20, 4, 0, 31, 18, 2, 4, 14, 18, 4, 1, 13, 26,\n 2, 0, 97, 24, 2, 2, 38, 22, 4, 2, 18, 22, 4, 2, 14, 26,\n 2, 0, 116, 30, 3, 2, 36, 22, 4, 4, 16, 20, 4, 4, 12, 24,\n 2, 2, 68, 18, 4, 1, 43, 26, 6, 2, 19, 24, 6, 2, 15, 28,\n 4, 0, 81, 20, 1, 4, 50, 30, 4, 4, 22, 28, 3, 8, 12, 24,\n 2, 2, 92, 24, 6, 2, 36, 22, 4, 6, 20, 26, 7, 4, 14, 28,\n 4, 0, 107, 26, 8, 1, 37, 22, 8, 4, 20, 24, 12, 4, 11, 22,\n 3, 1, 115, 30, 4, 5, 40, 24, 11, 5, 16, 20, 11, 5, 12, 24,\n 5, 1, 87, 22, 5, 5, 41, 24, 5, 7, 24, 30, 11, 7, 12, 24,\n 5, 1, 98, 24, 7, 3, 45, 28, 15, 2, 19, 24, 3, 13, 15, 30,\n 1, 5, 107, 28, 10, 1, 46, 28, 1, 15, 22, 28, 2, 17, 14, 28,\n 5, 1, 120, 30, 9, 4, 43, 26, 17, 1, 22, 28, 2, 19, 14, 28,\n 3, 4, 113, 28, 3, 11, 44, 26, 17, 4, 21, 26, 9, 16, 13, 26,\n 3, 5, 107, 28, 3, 13, 41, 26, 15, 5, 24, 30, 15, 10, 15, 28,\n 4, 4, 116, 28, 17, 0, 42, 26, 17, 6, 22, 28, 19, 6, 16, 30,\n 2, 7, 111, 28, 17, 0, 46, 28, 7, 16, 24, 30, 34, 0, 13, 24,\n 4, 5, 121, 30, 4, 14, 47, 28, 11, 14, 24, 30, 16, 14, 15, 30,\n 6, 4, 117, 30, 6, 14, 45, 28, 11, 16, 24, 30, 30, 2, 16, 30,\n 8, 4, 106, 26, 8, 13, 47, 28, 7, 22, 24, 30, 22, 13, 15, 30,\n 10, 2, 114, 28, 19, 4, 46, 28, 28, 6, 22, 28, 33, 4, 16, 30,\n 8, 4, 122, 30, 22, 3, 45, 28, 8, 26, 23, 30, 12, 28, 15, 30,\n 3, 10, 117, 30, 3, 23, 45, 28, 4, 31, 24, 30, 11, 31, 15, 30,\n 7, 7, 116, 30, 21, 7, 45, 28, 1, 37, 23, 30, 19, 26, 15, 30,\n 5, 10, 115, 30, 19, 10, 47, 28, 15, 25, 24, 30, 23, 25, 15, 30,\n 13, 3, 115, 30, 2, 29, 46, 28, 42, 1, 24, 30, 23, 28, 15, 30,\n 17, 0, 115, 30, 10, 23, 46, 28, 10, 35, 24, 30, 19, 35, 15, 30,\n 17, 1, 115, 30, 14, 21, 46, 28, 29, 19, 24, 30, 11, 46, 15, 30,\n 13, 6, 115, 30, 14, 23, 46, 28, 44, 7, 24, 30, 59, 1, 16, 30,\n 12, 7, 121, 30, 12, 26, 47, 28, 39, 14, 24, 30, 22, 41, 15, 30,\n 6, 14, 121, 30, 6, 34, 47, 28, 46, 10, 24, 30, 2, 64, 15, 30,\n 17, 4, 122, 30, 29, 14, 46, 28, 49, 10, 24, 30, 24, 46, 15, 30,\n 4, 18, 122, 30, 13, 32, 46, 28, 48, 14, 24, 30, 42, 32, 15, 30,\n 20, 4, 117, 30, 40, 7, 47, 28, 43, 22, 24, 30, 10, 67, 15, 30,\n 19, 6, 118, 30, 18, 31, 47, 28, 34, 34, 24, 30, 20, 61, 15, 30\n ],\n\n /**\n * The final format bits with mask (level << 3 | mask).\n *\n * @public\n * @static\n * @type {number[]}\n * @memberof ErrorCorrection\n */\n FINAL_FORMAT: [\n // L\n 0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976,\n // M\n 0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0,\n // Q\n 0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed,\n // H\n 0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b\n ],\n\n /**\n * A map of human-readable ECC levels.\n *\n * @public\n * @static\n * @type {Object.<string, number>}\n * @memberof ErrorCorrection\n */\n LEVELS: {\n L: 1,\n M: 2,\n Q: 3,\n H: 4\n }\n\n });\n\n var ErrorCorrection_1 = ErrorCorrection;\n\n /**\n * Contains Galois field information.\n *\n * @public\n * @class\n * @extends Nevis\n */\n var Galois = lite.extend(null, {\n\n /**\n * The Galois field exponent table.\n *\n * @public\n * @static\n * @type {number[]}\n * @memberof Galois\n */\n EXPONENT: [\n 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1d, 0x3a, 0x74, 0xe8, 0xcd, 0x87, 0x13, 0x26,\n 0x4c, 0x98, 0x2d, 0x5a, 0xb4, 0x75, 0xea, 0xc9, 0x8f, 0x03, 0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0,\n 0x9d, 0x27, 0x4e, 0x9c, 0x25, 0x4a, 0x94, 0x35, 0x6a, 0xd4, 0xb5, 0x77, 0xee, 0xc1, 0x9f, 0x23,\n 0x46, 0x8c, 0x05, 0x0a, 0x14, 0x28, 0x50, 0xa0, 0x5d, 0xba, 0x69, 0xd2, 0xb9, 0x6f, 0xde, 0xa1,\n 0x5f, 0xbe, 0x61, 0xc2, 0x99, 0x2f, 0x5e, 0xbc, 0x65, 0xca, 0x89, 0x0f, 0x1e, 0x3c, 0x78, 0xf0,\n 0xfd, 0xe7, 0xd3, 0xbb, 0x6b, 0xd6, 0xb1, 0x7f, 0xfe, 0xe1, 0xdf, 0xa3, 0x5b, 0xb6, 0x71, 0xe2,\n 0xd9, 0xaf, 0x43, 0x86, 0x11, 0x22, 0x44, 0x88, 0x0d, 0x1a, 0x34, 0x68, 0xd0, 0xbd, 0x67, 0xce,\n 0x81, 0x1f, 0x3e, 0x7c, 0xf8, 0xed, 0xc7, 0x93, 0x3b, 0x76, 0xec, 0xc5, 0x97, 0x33, 0x66, 0xcc,\n 0x85, 0x17, 0x2e, 0x5c, 0xb8, 0x6d, 0xda, 0xa9, 0x4f, 0x9e, 0x21, 0x42, 0x84, 0x15, 0x2a, 0x54,\n 0xa8, 0x4d, 0x9a, 0x29, 0x52, 0xa4, 0x55, 0xaa, 0x49, 0x92, 0x39, 0x72, 0xe4, 0xd5, 0xb7, 0x73,\n 0xe6, 0xd1, 0xbf, 0x63, 0xc6, 0x91, 0x3f, 0x7e, 0xfc, 0xe5, 0xd7, 0xb3, 0x7b, 0xf6, 0xf1, 0xff,\n 0xe3, 0xdb, 0xab, 0x4b, 0x96, 0x31, 0x62, 0xc4, 0x95, 0x37, 0x6e, 0xdc, 0xa5, 0x57, 0xae, 0x41,\n 0x82, 0x19, 0x32, 0x64, 0xc8, 0x8d, 0x07, 0x0e, 0x1c, 0x38, 0x70, 0xe0, 0xdd, 0xa7, 0x53, 0xa6,\n 0x51, 0xa2, 0x59, 0xb2, 0x79, 0xf2, 0xf9, 0xef, 0xc3, 0x9b, 0x2b, 0x56, 0xac, 0x45, 0x8a, 0x09,\n 0x12, 0x24, 0x48, 0x90, 0x3d, 0x7a, 0xf4, 0xf5, 0xf7, 0xf3, 0xfb, 0xeb, 0xcb, 0x8b, 0x0b, 0x16,\n 0x2c, 0x58, 0xb0, 0x7d, 0xfa, 0xe9, 0xcf, 0x83, 0x1b, 0x36, 0x6c, 0xd8, 0xad, 0x47, 0x8e, 0x00\n ],\n\n /**\n * The Galois field log table.\n *\n * @public\n * @static\n * @type {number[]}\n * @memberof Galois\n */\n LOG: [\n 0xff, 0x00, 0x01, 0x19, 0x02, 0x32, 0x1a, 0xc6, 0x03, 0xdf, 0x33, 0xee, 0x1b, 0x68, 0xc7, 0x4b,\n 0x04, 0x64, 0xe0, 0x0e, 0x34, 0x8d, 0xef, 0x81, 0x1c, 0xc1, 0x69, 0xf8, 0xc8, 0x08, 0x4c, 0x71,\n 0x05, 0x8a, 0x65, 0x2f, 0xe1, 0x24, 0x0f, 0x21, 0x35, 0x93, 0x8e, 0xda, 0xf0, 0x12, 0x82, 0x45,\n 0x1d, 0xb5, 0xc2, 0x7d, 0x6a, 0x27, 0xf9, 0xb9, 0xc9, 0x9a, 0x09, 0x78, 0x4d, 0xe4, 0x72, 0xa6,\n 0x06, 0xbf, 0x8b, 0x62, 0x66, 0xdd, 0x30, 0xfd, 0xe2, 0x98, 0x25, 0xb3, 0x10, 0x91, 0x22, 0x88,\n 0x36, 0xd0, 0x94, 0xce, 0x8f, 0x96, 0xdb, 0xbd, 0xf1, 0xd2, 0x13, 0x5c, 0x83, 0x38, 0x46, 0x40,\n 0x1e, 0x42, 0xb6, 0xa3, 0xc3, 0x48, 0x7e, 0x6e, 0x6b, 0x3a, 0x28, 0x54, 0xfa, 0x85, 0xba, 0x3d,\n 0xca, 0x5e, 0x9b, 0x9f, 0x0a, 0x15, 0x79, 0x2b, 0x4e, 0xd4, 0xe5, 0xac, 0x73, 0xf3, 0xa7, 0x57,\n 0x07, 0x70, 0xc0, 0xf7, 0x8c, 0x80, 0x63, 0x0d, 0x67, 0x4a, 0xde, 0xed, 0x31, 0xc5, 0xfe, 0x18,\n 0xe3, 0xa5, 0x99, 0x77, 0x26, 0xb8, 0xb4, 0x7c, 0x11, 0x44, 0x92, 0xd9, 0x23, 0x20, 0x89, 0x2e,\n 0x37, 0x3f, 0xd1, 0x5b, 0x95, 0xbc, 0xcf, 0xcd, 0x90, 0x87, 0x97, 0xb2, 0xdc, 0xfc, 0xbe, 0x61,\n 0xf2, 0x56, 0xd3, 0xab, 0x14, 0x2a, 0x5d, 0x9e, 0x84, 0x3c, 0x39, 0x53, 0x47, 0x6d, 0x41, 0xa2,\n 0x1f, 0x2d, 0x43, 0xd8, 0xb7, 0x7b, 0xa4, 0x76, 0xc4, 0x17, 0x49, 0xec, 0x7f, 0x0c, 0x6f, 0xf6,\n 0x6c, 0xa1, 0x3b, 0x52, 0x29, 0x9d, 0x55, 0xaa, 0xfb, 0x60, 0x86, 0xb1, 0xbb, 0xcc, 0x3e, 0x5a,\n 0xcb, 0x59, 0x5f, 0xb0, 0x9c, 0xa9, 0xa0, 0x51, 0x0b, 0xf5, 0x16, 0xeb, 0x7a, 0x75, 0x2c, 0xd7,\n 0x4f, 0xae, 0xd5, 0xe9, 0xe6, 0xe7, 0xad, 0xe8, 0x74, 0xd6, 0xf4, 0xea, 0xa8, 0x50, 0x58, 0xaf\n ]\n\n });\n\n var Galois_1 = Galois;\n\n /**\n * Contains version pattern information.\n *\n * @public\n * @class\n * @extends Nevis\n */\n var Version = lite.extend(null, {\n\n /**\n * The version pattern block.\n *\n * @public\n * @static\n * @type {number[]}\n * @memberof Version\n */\n BLOCK: [\n 0xc94, 0x5bc, 0xa99, 0x4d3, 0xbf6, 0x762, 0x847, 0x60d, 0x928, 0xb78, 0x45d, 0xa17, 0x532,\n 0x9a6, 0x683, 0x8c9, 0x7ec, 0xec4, 0x1e1, 0xfab, 0x08e, 0xc1a, 0x33f, 0xd75, 0x250, 0x9d5,\n 0x6f0, 0x8ba, 0x79f, 0xb0b, 0x42e, 0xa64, 0x541, 0xc69\n ]\n\n });\n\n var Version_1 = Version;\n\n /**\n * Generates information for a QR code frame based on a specific value to be encoded.\n *\n * @param {Frame~Options} options - the options to be used\n * @public\n * @class\n * @extends Nevis\n */\n var Frame = lite.extend(function(options) {\n var dataBlock, eccBlock, index, neccBlock1, neccBlock2;\n var valueLength = options.value.length;\n\n this._badness = [];\n this._level = ErrorCorrection_1.LEVELS[options.level];\n this._polynomial = [];\n this._value = options.value;\n this._version = 0;\n this._stringBuffer = [];\n\n while (this._version < 40) {\n this._version++;\n\n index = ((this._level - 1) * 4) + ((this._version - 1) * 16);\n\n neccBlock1 = ErrorCorrection_1.BLOCKS[index++];\n neccBlock2 = ErrorCorrection_1.BLOCKS[index++];\n dataBlock = ErrorCorrection_1.BLOCKS[index++];\n eccBlock = ErrorCorrection_1.BLOCKS[index];\n\n index = (dataBlock * (neccBlock1 + neccBlock2)) + neccBlock2 - 3 + (this._version <= 9);\n\n if (valueLength <= index) {\n break;\n }\n }\n\n this._dataBlock = dataBlock;\n this._eccBlock = eccBlock;\n this._neccBlock1 = neccBlock1;\n this._neccBlock2 = neccBlock2;\n\n /**\n * The data width is based on version.\n *\n * @public\n * @type {number}\n * @memberof Frame#\n */\n // FIXME: Ensure that it fits instead of being truncated.\n var width = this.width = 17 + (4 * this._version);\n\n /**\n * The image buffer.\n *\n * @public\n * @type {number[]}\n * @memberof Frame#\n */\n this.buffer = Frame._createArray(width * width);\n\n this._ecc = Frame._createArray(dataBlock + ((dataBlock + eccBlock) * (neccBlock1 + neccBlock2)) + neccBlock2);\n this._mask = Frame._createArray(((width * (width + 1)) + 1) / 2);\n\n this._insertFinders();\n this._insertAlignments();\n\n // Insert single foreground cell.\n this.buffer[8 + (width * (width - 8))] = 1;\n\n this._insertTimingGap();\n this._reverseMask();\n this._insertTimingRowAndColumn();\n this._insertVersion();\n this._syncMask();\n this._convertBitStream(valueLength);\n this._calculatePolynomial();\n this._appendEccToData();\n this._interleaveBlocks();\n this._pack();\n this._finish();\n }, {\n\n _addAlignment: function(x, y) {\n var i;\n var buffer = this.buffer;\n var width = this.width;\n\n buffer[x + (width * y)] = 1;\n\n for (i = -2; i < 2; i++) {\n buffer[x + i + (width * (y - 2))] = 1;\n buffer[x - 2 + (width * (y + i + 1))] = 1;\n buffer[x + 2 + (width * (y + i))] = 1;\n buffer[x + i + 1 + (width * (y + 2))] = 1;\n }\n\n for (i = 0; i < 2; i++) {\n this._setMask(x - 1, y + i);\n this._setMask(x + 1, y - i);\n this._setMask(x - i, y - 1);\n this._setMask(x + i, y + 1);\n }\n },\n\n _appendData: function(data, dataLength, ecc, eccLength) {\n var bit, i, j;\n var polynomial = this._polynomial;\n var stringBuffer = this._stringBuffer;\n\n for (i = 0; i < eccLength; i++) {\n stringBuffer[ecc + i] = 0;\n }\n\n for (i = 0; i < dataLength; i++) {\n bit = Galois_1.LOG[stringBuffer[data + i] ^ stringBuffer[ecc]];\n\n if (bit !== 255) {\n for (j = 1; j < eccLength; j++) {\n stringBuffer[ecc + j - 1] = stringBuffer[ecc + j] ^\n Galois_1.EXPONENT[Frame._modN(bit + polynomial[eccLength - j])];\n }\n } else {\n for (j = ecc; j < ecc + eccLength; j++) {\n stringBuffer[j] = stringBuffer[j + 1];\n }\n }\n\n stringBuffer[ecc + eccLength - 1] = bit === 255 ? 0 : Galois_1.EXPONENT[Frame._modN(bit + polynomial[0])];\n }\n },\n\n _appendEccToData: function() {\n var i;\n var data = 0;\n var dataBlock = this._dataBlock;\n var ecc = this._calculateMaxLength();\n var eccBlock = this._eccBlock;\n\n for (i = 0; i < this._neccBlock1; i++) {\n this._appendData(data, dataBlock, ecc, eccBlock);\n\n data += dataBlock;\n ecc += eccBlock;\n }\n\n for (i = 0; i < this._neccBlock2; i++) {\n this._appendData(data, dataBlock + 1, ecc, eccBlock);\n\n data += dataBlock + 1;\n ecc += eccBlock;\n }\n },\n\n _applyMask: function(mask) {\n var r3x, r3y, x, y;\n var buffer = this.buffer;\n var width = this.width;\n\n switch (mask) {\n case 0:\n for (y = 0; y < width; y++) {\n for (x = 0; x < width; x++) {\n if (!((x + y) & 1) && !this._isMasked(x, y)) {\n buffer[x + (y * width)] ^= 1;\n }\n }\n }\n\n break;\n case 1:\n for (y = 0; y < width; y++) {\n for (x = 0; x < width; x++) {\n if (!(y & 1) && !this._isMasked(x, y)) {\n buffer[x + (y * width)] ^= 1;\n }\n }\n }\n\n break;\n case 2:\n for (y = 0; y < width; y++) {\n for (r3x = 0, x = 0; x < width; x++, r3x++) {\n if (r3x === 3) {\n r3x = 0;\n }\n\n if (!r3x && !this._isMasked(x, y)) {\n buffer[x + (y * width)] ^= 1;\n }\n }\n }\n\n break;\n case 3:\n for (r3y = 0, y = 0; y < width; y++, r3y++) {\n if (r3y === 3) {\n r3y = 0;\n }\n\n for (r3x = r3y, x = 0; x < width; x++, r3x++) {\n if (r3x === 3) {\n r3x = 0;\n }\n\n if (!r3x && !this._isMasked(x, y)) {\n buffer[x + (y * width)] ^= 1;\n }\n }\n }\n\n break;\n case 4:\n for (y = 0; y < width; y++) {\n for (r3x = 0, r3y = (y >> 1) & 1, x = 0; x < width; x++, r3x++) {\n if (r3x === 3) {\n r3x = 0;\n r3y = !r3y;\n }\n\n if (!r3y && !this._isMasked(x, y)) {\n buffer[x + (y * width)] ^= 1;\n }\n }\n }\n\n break;\n case 5:\n for (r3y = 0, y = 0; y < width; y++, r3y++) {\n if (r3y === 3) {\n r3y = 0;\n }\n\n for (r3x = 0, x = 0; x < width; x++, r3x++) {\n if (r3x === 3) {\n r3x = 0;\n }\n\n if (!((x & y & 1) + !(!r3x | !r3y)) && !this._isMasked(x, y)) {\n buffer[x + (y * width)] ^= 1;\n }\n }\n }\n\n break;\n case 6:\n for (r3y = 0, y = 0; y < width; y++, r3y++) {\n if (r3y === 3) {\n r3y = 0;\n }\n\n for (r3x = 0, x = 0; x < width; x++, r3x++) {\n if (r3x === 3) {\n r3x = 0;\n }\n\n if (!((x & y & 1) + (r3x && r3x === r3y) & 1) && !this._isMasked(x, y)) {\n buffer[x + (y * width)] ^= 1;\n }\n }\n }\n\n break;\n case 7:\n for (r3y = 0, y = 0; y < width; y++, r3y++) {\n if (r3y === 3) {\n r3y = 0;\n }\n\n for (r3x = 0, x = 0; x < width; x++, r3x++) {\n if (r3x === 3) {\n r3x = 0;\n }\n\n if (!((r3x && r3x === r3y) + (x + y & 1) & 1) && !this._isMasked(x, y)) {\n buffer[x + (y * width)] ^= 1;\n }\n }\n }\n\n break;\n }\n },\n\n _calculateMaxLength: function() {\n return (this._dataBlock * (this._neccBlock1 + this._neccBlock2)) + this._neccBlock2;\n },\n\n _calculatePolynomial: function() {\n var i, j;\n var eccBlock = this._eccBlock;\n var polynomial = this._polynomial;\n\n polynomial[0] = 1;\n\n for (i = 0; i < eccBlock; i++) {\n polynomial[i + 1] = 1;\n\n for (j = i; j > 0; j--) {\n polynomial[j] = polynomial[j] ? polynomial[j - 1] ^\n Galois_1.EXPONENT[Frame._modN(Galois_1.LOG[polynomial[j]] + i)] : polynomial[j - 1];\n }\n\n polynomial[0] = Galois_1.EXPONENT[Frame._modN(Galois_1.LOG[polynomial[0]] + i)];\n }\n\n // Use logs for generator polynomial to save calculation step.\n for (i = 0; i <= eccBlock; i++) {\n polynomial[i] = Galois_1.LOG[polynomial[i]];\n }\n },\n\n _checkBadness: function() {\n var b, b1, h, x, y;\n var bad = 0;\n var badness = this._badness;\n var buffer = this.buffer;\n var width = this.width;\n\n // Blocks of same colour.\n for (y = 0; y < width - 1; y++) {\n for (x = 0; x < width - 1; x++) {\n // All foreground colour.\n if ((buffer[x + (width * y)] &&\n buffer[x + 1 + (width * y)] &&\n buffer[x + (width * (y + 1))] &&\n buffer[x + 1 + (width * (y + 1))]) ||\n // All background colour.\n !(buffer[x + (width * y)] ||\n buffer[x + 1 + (width * y)] ||\n buffer[x + (width * (y + 1))] ||\n buffer[x + 1 + (width * (y + 1))])) {\n bad += Frame.N2;\n }\n }\n }\n\n var bw = 0;\n\n // X runs.\n for (y = 0; y < width; y++) {\n h = 0;\n\n badness[0] = 0;\n\n for (b = 0, x = 0; x < width; x++) {\n b1 = buffer[x + (width * y)];\n\n if (b === b1) {\n badness[h]++;\n } else {\n badness[++h] = 1;\n }\n\n b = b1;\n bw += b ? 1 : -1;\n }\n\n bad += this._getBadness(h);\n }\n\n if (bw < 0) {\n bw = -bw;\n }\n\n var count = 0;\n var big = bw;\n big += big << 2;\n big <<= 1;\n\n while (big > width * width) {\n big -= width * width;\n count++;\n }\n\n bad += count * Frame.N4;\n\n // Y runs.\n for (x = 0; x < width; x++) {\n h = 0;\n\n badness[0] = 0;\n\n for (b = 0, y = 0; y < width; y++) {\n b1 = buffer[x + (width * y)];\n\n if (b === b1) {\n badness[h]++;\n } else {\n badness[++h] = 1;\n }\n\n b = b1;\n }\n\n bad += this._getBadness(h);\n }\n\n return bad;\n },\n\n _convertBitStream: function(length) {\n var bit, i;\n var ecc = this._ecc;\n var version = this._version;\n\n // Convert string to bit stream. 8-bit data to QR-coded 8-bit data (numeric, alphanumeric, or kanji not supported).\n for (i = 0; i < length; i++) {\n ecc[i] = this._value.charCodeAt(i);\n }\n\n var stringBuffer = this._stringBuffer = ecc.slice();\n var maxLength = this._calculateMaxLength();\n\n if (length >= maxLength - 2) {\n length = maxLength - 2;\n\n if (version > 9) {\n length--;\n }\n }\n\n // Shift and re-pack to insert length prefix.\n var index = length;\n\n if (version > 9) {\n stringBuffer[index + 2] = 0;\n stringBuffer[index + 3] = 0;\n\n while (index--) {\n bit = stringBuffer[index];\n\n stringBuffer[index + 3] |= 255 & (bit << 4);\n stringBuffer[index + 2] = bit >> 4;\n }\n\n stringBuffer[2] |= 255 & (length << 4);\n stringBuffer[1] = length >> 4;\n stringBuffer[0] = 0x40 | (length >> 12);\n } else {\n stringBuffer[index + 1] = 0;\n stringBuffer[index + 2] = 0;\n\n while (index--) {\n bit = stringBuffer[index];\n\n stringBuffer[index + 2] |= 255 & (bit << 4);\n stringBuffer[index + 1] = bit >> 4;\n }\n\n stringBuffer[1] |= 255 & (length << 4);\n stringBuffer[0] = 0x40 | (length >> 4);\n }\n\n // Fill to end with pad pattern.\n index = length + 3 - (version < 10);\n\n while (index < maxLength) {\n stringBuffer[index++] = 0xec;\n stringBuffer[index++] = 0x11;\n }\n },\n\n _getBadness: function(length) {\n var i;\n var badRuns = 0;\n var badness = this._badness;\n\n for (i = 0; i <= length; i++) {\n if (badness[i] >= 5) {\n badRuns += Frame.N1 + badness[i] - 5;\n }\n }\n\n // FBFFFBF as in finder.\n for (i = 3; i < length - 1; i += 2) {\n if (badness[i - 2] === badness[i + 2] &&\n badness[i + 2] === badness[i - 1] &&\n badness[i - 1] === badness[i + 1] &&\n badness[i - 1] * 3 === badness[i] &&\n // Background around the foreground pattern? Not part of the specs.\n (badness[i - 3] === 0 || i + 3 > length ||\n badness[i - 3] * 3 >= badness[i] * 4 ||\n badness[i + 3] * 3 >= badness[i] * 4)) {\n badRuns += Frame.N3;\n }\n }\n\n return badRuns;\n },\n\n _finish: function() {\n // Save pre-mask copy of frame.\n this._stringBuffer = this.buffer.slice();\n\n var currentMask, i;\n var bit = 0;\n var mask = 30000;\n\n /*\n * Using for instead of while since in original Arduino code if an early mask was \"good enough\" it wouldn't try for\n * a better one since they get more complex and take longer.\n */\n for (i = 0; i < 8; i++) {\n // Returns foreground-background imbalance.\n this._applyMask(i);\n\n currentMask = this._checkBadness();\n\n // Is current mask better than previous best?\n if (currentMask < mask) {\n mask = currentMask;\n bit = i;\n }\n\n // Don't increment \"i\" to a void redoing mask.\n if (bit === 7) {\n break;\n }\n\n // Reset for next pass.\n this.buffer = this._stringBuffer.slice();\n }\n\n // Redo best mask as none were \"good enough\" (i.e. last wasn't bit).\n if (bit !== i) {\n this._applyMask(bit);\n }\n\n // Add in final mask/ECC level bytes.\n mask = ErrorCorrection_1.FINAL_FORMAT[bit + (this._level - 1 << 3)];\n\n var buffer = this.buffer;\n var width = this.width;\n\n // Low byte.\n for (i = 0; i < 8; i++, mask >>= 1) {\n if (mask & 1) {\n buffer[width - 1 - i + (width * 8)] = 1;\n\n if (i < 6) {\n buffer[8 + (width * i)] = 1;\n } else {\n buffer[8 + (width * (i + 1))] = 1;\n }\n }\n }\n\n // High byte.\n for (i = 0; i < 7; i++, mask >>= 1) {\n if (mask & 1) {\n buffer[8 + (width * (width - 7 + i))] = 1;\n\n if (i) {\n buffer[6 - i + (width * 8)] = 1;\n } else {\n buffer[7 + (width * 8)] = 1;\n }\n }\n }\n },\n\n _interleaveBlocks: function() {\n var i, j;\n var dataBlock = this._dataBlock;\n var ecc = this._ecc;\n var eccBlock = this._eccBlock;\n var k = 0;\n var maxLength = this._calculateMaxLength();\n var neccBlock1 = this._neccBlock1;\n var neccBlock2 = this._neccBlock2;\n var stringBuffer = this._stringBuffer;\n\n for (i = 0; i < dataBlock; i++) {\n for (j = 0; j < neccBlock1; j++) {\n ecc[k++] = stringBuffer[i + (j * dataBlock)];\n }\n\n for (j = 0; j < neccBlock2; j++) {\n ecc[k++] = stringBuffer[(neccBlock1 * dataBlock) + i + (j * (dataBlock + 1))];\n }\n }\n\n for (j = 0; j < neccBlock2; j++) {\n ecc[k++] = stringBuffer[(neccBlock1 * dataBlock) + i + (j * (dataBlock + 1))];\n }\n\n for (i = 0; i < eccBlock; i++) {\n for (j = 0; j < neccBlock1 + neccBlock2; j++) {\n ecc[k++] = stringBuffer[maxLength + i + (j * eccBlock)];\n }\n }\n\n this._stringBuffer = ecc;\n },\n\n _insertAlignments: function() {\n var i, x, y;\n var version = this._version;\n var width = this.width;\n\n if (version > 1) {\n i = Alignment_1.BLOCK[version];\n y = width - 7;\n\n for (;;) {\n x = width - 7;\n\n while (x > i - 3) {\n this._addAlignment(x, y);\n\n if (x < i) {\n break;\n }\n\n x -= i;\n }\n\n if (y <= i + 9) {\n break;\n }\n\n y -= i;\n\n this._addAlignment(6, y);\n this._addAlignment(y, 6);\n }\n }\n },\n\n _insertFinders: function() {\n var i, j, x, y;\n var buffer = this.buffer;\n var width = this.width;\n\n for (i = 0; i < 3; i++) {\n j = 0;\n y = 0;\n\n if (i === 1) {\n j = width - 7;\n }\n if (i === 2) {\n y = width - 7;\n }\n\n buffer[y + 3 + (width * (j + 3))] = 1;\n\n for (x = 0; x < 6; x++) {\n buffer[y + x + (width * j)] = 1;\n buffer[y + (width * (j + x + 1))] = 1;\n buffer[y + 6 + (width * (j + x))] = 1;\n buffer[y + x + 1 + (width * (j + 6))] = 1;\n }\n\n for (x = 1; x < 5; x++) {\n this._setMask(y + x, j + 1);\n this._setMask(y + 1, j + x + 1);\n this._setMask(y + 5, j + x);\n this._setMask(y + x + 1, j + 5);\n }\n\n for (x = 2; x < 4; x++) {\n buffer[y + x + (width * (j + 2))] = 1;\n buffer[y + 2 + (width * (j + x + 1))] = 1;\n buffer[y + 4 + (width * (j + x))] = 1;\n buffer[y + x + 1 + (width * (j + 4))] = 1;\n }\n }\n },\n\n _insertTimingGap: function() {\n var x, y;\n var width = this.width;\n\n for (y = 0; y < 7; y++) {\n this._setMask(7, y);\n this._setMask(width - 8, y);\n this._setMask(7, y + width - 7);\n }\n\n for (x = 0; x < 8; x++) {\n this._setMask(x, 7);\n this._setMask(x + width - 8, 7);\n this._setMask(x, width - 8);\n }\n },\n\n _insertTimingRowAndColumn: function() {\n var x;\n var buffer = this.buffer;\n var width = this.width;\n\n for (x = 0; x < width - 14; x++) {\n if (x & 1) {\n this._setMask(8 + x, 6);\n this._setMask(6, 8 + x);\n } else {\n buffer[8 + x + (width * 6)] = 1;\n buffer[6 + (width * (8 + x))] = 1;\n }\n }\n },\n\n _insertVersion: function() {\n var i, j, x, y;\n var buffer = this.buffer;\n var version = this._version;\n var width = this.width;\n\n if (version > 6) {\n i = Version_1.BLOCK[version - 7];\n j = 17;\n\n for (x = 0; x < 6; x++) {\n for (y = 0; y < 3; y++, j--) {\n if (1 & (j > 11 ? version >> j - 12 : i >> j)) {\n buffer[5 - x + (width * (2 - y + width - 11))] = 1;\n buffer[2 - y + width - 11 + (width * (5 - x))] = 1;\n } else {\n this._setMask(5 - x, 2 - y + width - 11);\n this._setMask(2 - y + width - 11, 5 - x);\n }\n }\n }\n }\n },\n\n _isMasked: function(x, y) {\n var bit = Frame._getMaskBit(x, y);\n\n return this._mask[bit] === 1;\n },\n\n _pack: function() {\n var bit, i, j;\n var k = 1;\n var v = 1;\n var width = this.width;\n var x = width - 1;\n var y = width - 1;\n\n // Interleaved data and ECC codes.\n var length = ((this._dataBlock + this._eccBlock) * (this._neccBlock1 + this._neccBlock2)) + this._neccBlock2;\n\n for (i = 0; i < length; i++) {\n bit = this._stringBuffer[i];\n\n for (j = 0; j < 8; j++, bit <<= 1) {\n if (0x80 & bit) {\n this.buffer[x + (width * y)] = 1;\n }\n\n // Find next fill position.\n do {\n if (v) {\n x--;\n } else {\n x++;\n\n if (k) {\n if (y !== 0) {\n y--;\n } else {\n x -= 2;\n k = !k;\n\n if (x === 6) {\n x--;\n y = 9;\n }\n }\n } else if (y !== width - 1) {\n y++;\n } else {\n x -= 2;\n k = !k;\n\n if (x === 6) {\n x--;\n y -= 8;\n }\n }\n }\n\n v = !v;\n } while (this._isMasked(x, y));\n }\n }\n },\n\n _reverseMask: function() {\n var x, y;\n var width = this.width;\n\n for (x = 0; x < 9; x++) {\n this._setMask(x, 8);\n }\n\n for (x = 0; x < 8; x++) {\n this._setMask(x + width - 8, 8);\n this._setMask(8, x);\n }\n\n for (y = 0; y < 7; y++) {\n this._setMask(8, y + width - 7);\n }\n },\n\n _setMask: function(x, y) {\n var bit = Frame._getMaskBit(x, y);\n\n this._mask[bit] = 1;\n },\n\n _syncMask: function() {\n var x, y;\n var width = this.width;\n\n for (y = 0; y < width; y++) {\n for (x = 0; x <= y; x++) {\n if (this.buffer[x + (width * y)]) {\n this._setMask(x, y);\n }\n }\n }\n }\n\n }, {\n\n _createArray: function(length) {\n var i;\n var array = [];\n\n for (i = 0; i < length; i++) {\n array[i] = 0;\n }\n\n return array;\n },\n\n _getMaskBit: function(x, y) {\n var bit;\n\n if (x > y) {\n bit = x;\n x = y;\n y = bit;\n }\n\n bit = y;\n bit += y * y;\n bit >>= 1;\n bit += x;\n\n return bit;\n },\n\n _modN: function(x) {\n while (x >= 255) {\n x -= 255;\n x = (x >> 8) + (x & 255);\n }\n\n return x;\n },\n\n // *Badness* coefficients.\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n\n });\n\n var Frame_1 = Frame;\n\n /**\n * The options used by {@link Frame}.\n *\n * @typedef {Object} Frame~Options\n * @property {string} level - The ECC level to be used.\n * @property {string} value - The value to be encoded.\n */\n\n /**\n * An implementation of {@link Renderer} for working with <code>img</code> elements.\n *\n * This depends on {@link CanvasRenderer} being executed first as this implementation simply applies the data URL from\n * the rendered <code>canvas</code> element as the <code>src</code> for the <code>img</code> element being rendered.\n *\n * @public\n * @class\n * @extends Renderer\n */\n var ImageRenderer = Renderer_1.extend({\n\n /**\n * @override\n */\n draw: function() {\n this.element.src = this.qrious.toDataURL();\n },\n\n /**\n * @override\n */\n reset: function() {\n this.element.src = '';\n },\n\n /**\n * @override\n */\n resize: function() {\n var element = this.element;\n\n element.width = element.height = this.qrious.size;\n }\n\n });\n\n var ImageRenderer_1 = ImageRenderer;\n\n /**\n * Defines an available option while also configuring how values are applied to the target object.\n *\n * Optionally, a default value can be specified as well a value transformer for greater control over how the option\n * value is applied.\n *\n * If no value transformer is specified, then any specified option will be applied directly. All values are maintained\n * on the target object itself as a field using the option name prefixed with a single underscore.\n *\n * When an option is specified as modifiable, the {@link OptionManager} will be required to include a setter for the\n * property that is defined on the target object that uses the option name.\n *\n * @param {string} name - the name to be used\n * @param {boolean} [modifiable] - <code>true</code> if the property defined on target objects should include a setter;\n * otherwise <code>false</code>\n * @param {*} [defaultValue] - the default value to be used\n * @param {Option~ValueTransformer} [valueTransformer] - the value transformer to be used\n * @public\n * @class\n * @extends Nevis\n */\n var Option = lite.extend(function(name, modifiable, defaultValue, valueTransformer) {\n /**\n * The name for this {@link Option}.\n *\n * @public\n * @type {string}\n * @memberof Option#\n */\n this.name = name;\n\n /**\n * Whether a setter should be included on the property defined on target objects for this {@link Option}.\n *\n * @public\n * @type {boolean}\n * @memberof Option#\n */\n this.modifiable = Boolean(modifiable);\n\n /**\n * The default value for this {@link Option}.\n *\n * @public\n * @type {*}\n * @memberof Option#\n */\n this.defaultValue = defaultValue;\n\n this._valueTransformer = valueTransformer;\n }, {\n\n /**\n * Transforms the specified <code>value</code> so that it can be applied for this {@link Option}.\n *\n * If a value transformer has been specified for this {@link Option}, it will be called upon to transform\n * <code>value</code>. Otherwise, <code>value</code> will be returned directly.\n *\n * @param {*} value - the value to be transformed\n * @return {*} The transformed value or <code>value</code> if no value transformer is specified.\n * @public\n * @memberof Option#\n */\n transform: function(value) {\n var transformer = this._valueTransformer;\n if (typeof transformer === 'function') {\n return transformer(value, this);\n }\n\n return value;\n }\n\n });\n\n var Option_1 = Option;\n\n /**\n * Returns a transformed value for the specified <code>value</code> to be applied for the <code>option</code> provided.\n *\n * @callback Option~ValueTransformer\n * @param {*} value - the value to be transformed\n * @param {Option} option - the {@link Option} for which <code>value</code> is being transformed\n * @return {*} The transform value.\n */\n\n /**\n * Contains utility methods that are useful throughout the library.\n *\n * @public\n * @class\n * @extends Nevis\n */\n var Utilities = lite.extend(null, {\n\n /**\n * Returns the absolute value of a given number.\n *\n * This method is simply a convenient shorthand for <code>Math.abs</code> while ensuring that nulls are returned as\n * <code>null</code> instead of zero.\n *\n * @param {number} value - the number whose absolute value is to be returned\n * @return {number} The absolute value of <code>value</code> or <code>null</code> if <code>value</code> is\n * <code>null</code>.\n * @public\n * @static\n * @memberof Utilities\n */\n abs: function(value) {\n return value != null ? Math.abs(value) : null;\n },\n\n /**\n * Returns whether the specified <code>object</code> has a property with the specified <code>name</code> as an own\n * (not inherited) property.\n *\n * @param {Object} object - the object on which the property is to be checked\n * @param {string} name - the name of the property to be checked\n * @return {boolean} <code>true</code> if <code>object</code> has an own property with <code>name</code>.\n * @public\n * @static\n * @memberof Utilities\n */\n hasOwn: function(object, name) {\n return Object.prototype.hasOwnProperty.call(object, name);\n },\n\n /**\n * A non-operation method that does absolutely nothing.\n *\n * @return {void}\n * @public\n * @static\n * @memberof Utilities\n */\n noop: function() {},\n\n /**\n * Transforms the specified <code>string</code> to upper case while remaining null-safe.\n *\n * @param {string} string - the string to be transformed to upper case\n * @return {string} <code>string</code> transformed to upper case if <code>string</code> is not <code>null</code>.\n * @public\n * @static\n * @memberof Utilities\n */\n toUpperCase: function(string) {\n return string != null ? string.toUpperCase() : null;\n }\n\n });\n\n var Utilities_1 = Utilities;\n\n /**\n * Manages multiple {@link Option} instances that are intended to be used by multiple implementations.\n *\n * Although the option definitions are shared between targets, the values are maintained on the targets themselves.\n *\n * @param {Option[]} options - the options to be used\n * @public\n * @class\n * @extends Nevis\n */\n var OptionManager = lite.extend(function(options) {\n /**\n * The available options for this {@link OptionManager}.\n *\n * @public\n * @type {Object.<string, Option>}\n * @memberof OptionManager#\n */\n this.options = {};\n\n options.forEach(function(option) {\n this.options[option.name] = option;\n }, this);\n }, {\n\n /**\n * Returns whether an option with the specified <code>name</code> is available.\n *\n * @param {string} name - the name of the {@link Option} whose existence is to be checked\n * @return {boolean} <code>true</code> if an {@link Option} exists with <code>name</code>; otherwise\n * <code>false</code>.\n * @public\n * @memberof OptionManager#\n */\n exists: function(name) {\n return this.options[name] != null;\n },\n\n /**\n * Returns the value of the option with the specified <code>name</code> on the <code>target</code> object provided.\n *\n * @param {string} name - the name of the {@link Option} whose value on <code>target</code> is to be returned\n * @param {Object} target - the object from which the value of the named {@link Option} is to be returned\n * @return {*} The value of the {@link Option} with <code>name</code> on <code>target</code>.\n * @public\n * @memberof OptionManager#\n */\n get: function(name, target) {\n return OptionManager._get(this.options[name], target);\n },\n\n /**\n * Returns a copy of all of the available options on the <code>target</code> object provided.\n *\n * @param {Object} target - the object from which the option name/value pairs are to be returned\n * @return {Object.<string, *>} A hash containing the name/value pairs of all options on <code>target</code>.\n * @public\n * @memberof OptionManager#\n */\n getAll: function(target) {\n var name;\n var options = this.options;\n var result = {};\n\n for (name in options) {\n if (Utilities_1.hasOwn(options, name)) {\n result[name] = OptionManager._get(options[name], target);\n }\n }\n\n return result;\n },\n\n /**\n * Initializes the available options for the <code>target</code> object provided and then applies the initial values\n * within the speciifed <code>options</code>.\n *\n * This method will throw an error if any of the names within <code>options</code> does not match an available option.\n *\n * This involves setting the default values and defining properties for all of the available options on\n * <code>target</code> before finally calling {@link OptionMananger#setAll} with <code>options</code> and\n * <code>target</code>. Any options that are configured to be modifiable will have a setter included in their defined\n * property that will allow its corresponding value to be modified.\n *\n * If a change handler is specified, it will be called whenever the value changes on <code>target</code> for a\n * modifiable option, but only when done so via the defined property's setter.\n *\n * @param {Object.<string, *>} options - the name/value pairs of the initial options to be set\n * @param {Object} target - the object on which the options are to be initialized\n * @param {Function} [changeHandler] - the function to be called whenever the value of an modifiable option changes on\n * <code>target</code>\n * @return {void}\n * @throws {Error} If <code>options</code> contains an invalid option name.\n * @public\n * @memberof OptionManager#\n */\n init: function(options, target, changeHandler) {\n if (typeof changeHandler !== 'function') {\n changeHandler = Utilities_1.noop;\n }\n\n var name, option;\n\n for (name in this.options) {\n if (Utilities_1.hasOwn(this.options, name)) {\n option = this.options[name];\n\n OptionManager._set(option, option.defaultValue, target);\n OptionManager._createAccessor(option, target, changeHandler);\n }\n }\n\n this._setAll(options, target, true);\n },\n\n /**\n * Sets the value of the option with the specified <code>name</code> on the <code>target</code> object provided to\n * <code>value</code>.\n *\n * This method will throw an error if <code>name</code> does not match an available option or matches an option that\n * cannot be modified.\n *\n * If <code>value</code> is <code>null</code> and the {@link Option} has a default value configured, then that default\n * value will be used instead. If the {@link Option} also has a value transformer configured, it will be used to\n * transform whichever value was determined to be used.\n *\n * This method returns whether the value of the underlying field on <code>target</code> was changed as a result.\n *\n * @param {string} name - the name of the {@link Option} whose value is to be set\n * @param {*} value - the value to be set for the named {@link Option} on <code>target</code>\n * @param {Object} target - the object on which <code>value</code> is to be set for the named {@link Option}\n * @return {boolean} <code>true</code> if the underlying field on <code>target</code> was changed; otherwise\n * <code>false</code>.\n * @throws {Error} If <code>name</code> is invalid or is for an option that cannot be modified.\n * @public\n * @memberof OptionManager#\n */\n set: function(name, value, target) {\n return this._set(name, value, target);\n },\n\n /**\n * Sets all of the specified <code>options</code> on the <code>target</code> object provided to their corresponding\n * values.\n *\n * This method will throw an error if any of the names within <code>options</code> does not match an available option\n * or matches an option that cannot be modified.\n *\n * If any value within <code>options</code> is <code>null</code> and the corresponding {@link Option} has a default\n * value configured, then that default value will be used instead. If an {@link Option} also has a value transformer\n * configured, it will be used to transform whichever value was determined to be used.\n *\n * This method returns whether the value for any of the underlying fields on <code>target</code> were changed as a\n * result.\n *\n * @param {Object.<string, *>} options - the name/value pairs of options to be set\n * @param {Object} target - the object on which the options are to be set\n * @return {boolean} <code>true</code> if any of the underlying fields on <code>target</code> were changed; otherwise\n * <code>false</code>.\n * @throws {Error} If <code>options</code> contains an invalid option name or an option that cannot be modiifed.\n * @public\n * @memberof OptionManager#\n */\n setAll: function(options, target) {\n return this._setAll(options, target);\n },\n\n _set: function(name, value, target, allowUnmodifiable) {\n var option = this.options[name];\n if (!option) {\n throw new Error('Invalid option: ' + name);\n }\n if (!option.modifiable && !allowUnmodifiable) {\n throw new Error('Option cannot be modified: ' + name);\n }\n\n return OptionManager._set(option, value, target);\n },\n\n _setAll: function(options, target, allowUnmodifiable) {\n if (!options) {\n return false;\n }\n\n var name;\n var changed = false;\n\n for (name in options) {\n if (Utilities_1.hasOwn(options, name) && this._set(name, options[name], target, allowUnmodifiable)) {\n changed = true;\n }\n }\n\n return changed;\n }\n\n }, {\n\n _createAccessor: function(option, target, changeHandler) {\n var descriptor = {\n get: function() {\n return OptionManager._get(option, target);\n }\n };\n\n if (option.modifiable) {\n descriptor.set = function(value) {\n if (OptionManager._set(option, value, target)) {\n changeHandler(value, option);\n }\n };\n }\n\n Object.defineProperty(target, option.name, descriptor);\n },\n\n _get: function(option, target) {\n return target['_' + option.name];\n },\n\n _set: function(option, value, target) {\n var fieldName = '_' + option.name;\n var oldValue = target[fieldName];\n var newValue = option.transform(value != null ? value : option.defaultValue);\n\n target[fieldName] = newValue;\n\n return newValue !== oldValue;\n }\n\n });\n\n var OptionManager_1 = OptionManager;\n\n /**\n * Called whenever the value of a modifiable {@link Option} is changed on a target object via the defined property's\n * setter.\n *\n * @callback OptionManager~ChangeHandler\n * @param {*} value - the new value for <code>option</code> on the target object\n * @param {Option} option - the modifable {@link Option} whose value has changed on the target object.\n * @return {void}\n */\n\n /**\n * A basic manager for {@link Service} implementations that are mapped to simple names.\n *\n * @public\n * @class\n * @extends Nevis\n */\n var ServiceManager = lite.extend(function() {\n this._services = {};\n }, {\n\n /**\n * Returns the {@link Service} being managed with the specified <code>name</code>.\n *\n * @param {string} name - the name of the {@link Service} to be returned\n * @return {Service} The {@link Service} is being managed with <code>name</code>.\n * @throws {Error} If no {@link Service} is being managed with <code>name</code>.\n * @public\n * @memberof ServiceManager#\n */\n getService: function(name) {\n var service = this._services[name];\n if (!service) {\n throw new Error('Service is not being managed with name: ' + name);\n }\n\n return service;\n },\n\n /**\n * Sets the {@link Service} implementation to be managed for the specified <code>name</code> to the\n * <code>service</code> provided.\n *\n * @param {string} name - the name of the {@link Service} to be managed with <code>name</code>\n * @param {Service} service - the {@link Service} implementation to be managed\n * @return {void}\n * @throws {Error} If a {@link Service} is already being managed with the same <code>name</code>.\n * @public\n * @memberof ServiceManager#\n */\n setService: function(name, service) {\n if (this._services[name]) {\n throw new Error('Service is already managed with name: ' + name);\n }\n\n if (service) {\n this._services[name] = service;\n }\n }\n\n });\n\n var ServiceManager_1 = ServiceManager;\n\n var optionManager = new OptionManager_1([\n new Option_1('background', true, 'white'),\n new Option_1('backgroundAlpha', true, 1, Utilities_1.abs),\n new Option_1('element'),\n new Option_1('foreground', true, 'black'),\n new Option_1('foregroundAlpha', true, 1, Utilities_1.abs),\n new Option_1('level', true, 'L', Utilities_1.toUpperCase),\n new Option_1('mime', true, 'image/png'),\n new Option_1('padding', true, null, Utilities_1.abs),\n new Option_1('size', true, 100, Utilities_1.abs),\n new Option_1('value', true, '')\n ]);\n var serviceManager = new ServiceManager_1();\n\n /**\n * Enables configuration of a QR code generator which uses HTML5 <code>canvas</code> for rendering.\n *\n * @param {QRious~Options} [options] - the options to be used\n * @throws {Error} If any <code>options</code> are invalid.\n * @public\n * @class\n * @extends Nevis\n */\n var QRious = lite.extend(function(options) {\n optionManager.init(options, this, this.update.bind(this));\n\n var element = optionManager.get('element', this);\n var elementService = serviceManager.getService('element');\n var canvas = element && elementService.isCanvas(element) ? element : elementService.createCanvas();\n var image = element && elementService.isImage(element) ? element : elementService.createImage();\n\n this._canvasRenderer = new CanvasRenderer_1(this, canvas, true);\n this._imageRenderer = new ImageRenderer_1(this, image, image === element);\n\n this.update();\n }, {\n\n /**\n * Returns all of the options configured for this {@link QRious}.\n *\n * Any changes made to the returned object will not be reflected in the options themselves or their corresponding\n * underlying fields.\n *\n * @return {Object.<string, *>} A copy of the applied options.\n * @public\n * @memberof QRious#\n */\n get: function() {\n return optionManager.getAll(this);\n },\n\n /**\n * Sets all of the specified <code>options</code> and automatically updates this {@link QRious} if any of the\n * underlying fields are changed as a result.\n *\n * This is the preferred method for updating multiple options at one time to avoid unnecessary updates between\n * changes.\n *\n * @param {QRious~Options} options - the options to be set\n * @return {void}\n * @throws {Error} If any <code>options</code> are invalid or cannot be modified.\n * @public\n * @memberof QRious#\n */\n set: function(options) {\n if (optionManager.setAll(options, this)) {\n this.update();\n }\n },\n\n /**\n * Returns the image data URI for the generated QR code using the <code>mime</code> provided.\n *\n * @param {string} [mime] - the MIME type for the image\n * @return {string} The image data URI for the QR code.\n * @public\n * @memberof QRious#\n */\n toDataURL: function(mime) {\n return this.canvas.toDataURL(mime || this.mime);\n },\n\n /**\n * Updates this {@link QRious} by generating a new {@link Frame} and re-rendering the QR code.\n *\n * @return {void}\n * @protected\n * @memberof QRious#\n */\n update: function() {\n var frame = new Frame_1({\n level: this.level,\n value: this.value\n });\n\n this._canvasRenderer.render(frame);\n this._imageRenderer.render(frame);\n }\n\n }, {\n\n /**\n * Configures the <code>service</code> provided to be used by all {@link QRious} instances.\n *\n * @param {Service} service - the {@link Service} to be configured\n * @return {void}\n * @throws {Error} If a {@link Service} has already been configured with the same name.\n * @public\n * @static\n * @memberof QRious\n */\n use: function(service) {\n serviceManager.setService(service.getName(), service);\n }\n\n });\n\n Object.defineProperties(QRious.prototype, {\n\n canvas: {\n /**\n * Returns the <code>canvas</code> element being used to render the QR code for this {@link QRious}.\n *\n * @return {*} The <code>canvas</code> element.\n * @public\n * @memberof QRious#\n * @alias canvas\n */\n get: function() {\n return this._canvasRenderer.getElement();\n }\n },\n\n image: {\n /**\n * Returns the <code>img</code> element being used to render the QR code for this {@link QRious}.\n *\n * @return {*} The <code>img</code> element.\n * @public\n * @memberof QRious#\n * @alias image\n */\n get: function() {\n return this._imageRenderer.getElement();\n }\n }\n\n });\n\n var QRious_1$2 = QRious;\n\n /**\n * The options used by {@link QRious}.\n *\n * @typedef {Object} QRious~Options\n * @property {string} [background=\"white\"] - The background color to be applied to the QR code.\n * @property {number} [backgroundAlpha=1] - The background alpha to be applied to the QR code.\n * @property {*} [element] - The element to be used to render the QR code which may either be an <code>canvas</code> or\n * <code>img</code>. The element(s) will be created if needed.\n * @property {string} [foreground=\"black\"] - The foreground color to be applied to the QR code.\n * @property {number} [foregroundAlpha=1] - The foreground alpha to be applied to the QR code.\n * @property {string} [level=\"L\"] - The error correction level to be applied to the QR code.\n * @property {string} [mime=\"image/png\"] - The MIME type to be used to render the image for the QR code.\n * @property {number} [padding] - The padding for the QR code in pixels.\n * @property {number} [size=100] - The size of the QR code in pixels.\n * @property {string} [value=\"\"] - The value to be encoded within the QR code.\n */\n\n var index = QRious_1$2;\n\n /**\n * Defines a service contract that must be met by all implementations.\n *\n * @public\n * @class\n * @extends Nevis\n */\n var Service = lite.extend({\n\n /**\n * Returns the name of this {@link Service}.\n *\n * @return {string} The service name.\n * @public\n * @abstract\n * @memberof Service#\n */\n getName: function() {}\n\n });\n\n var Service_1 = Service;\n\n /**\n * A service for working with elements.\n *\n * @public\n * @class\n * @extends Service\n */\n var ElementService = Service_1.extend({\n\n /**\n * Creates an instance of a canvas element.\n *\n * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n *\n * @return {*} The newly created canvas element.\n * @public\n * @abstract\n * @memberof ElementService#\n */\n createCanvas: function() {},\n\n /**\n * Creates an instance of a image element.\n *\n * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n *\n * @return {*} The newly created image element.\n * @public\n * @abstract\n * @memberof ElementService#\n */\n createImage: function() {},\n\n /**\n * @override\n */\n getName: function() {\n return 'element';\n },\n\n /**\n * Returns whether the specified <code>element</code> is a canvas.\n *\n * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n *\n * @param {*} element - the element to be checked\n * @return {boolean} <code>true</code> if <code>element</code> is a canvas; otherwise <code>false</code>.\n * @public\n * @abstract\n * @memberof ElementService#\n */\n isCanvas: function(element) {},\n\n /**\n * Returns whether the specified <code>element</code> is an image.\n *\n * Implementations of {@link ElementService} <b>must</b> override this method with their own specific logic.\n *\n * @param {*} element - the element to be checked\n * @return {boolean} <code>true</code> if <code>element</code> is an image; otherwise <code>false</code>.\n * @public\n * @abstract\n * @memberof ElementService#\n */\n isImage: function(element) {}\n\n });\n\n var ElementService_1 = ElementService;\n\n /**\n * An implementation of {@link ElementService} intended for use within a browser environment.\n *\n * @public\n * @class\n * @extends ElementService\n */\n var BrowserElementService = ElementService_1.extend({\n\n /**\n * @override\n */\n createCanvas: function() {\n return document.createElement('canvas');\n },\n\n /**\n * @override\n */\n createImage: function() {\n return document.createElement('img');\n },\n\n /**\n * @override\n */\n isCanvas: function(element) {\n return element instanceof HTMLCanvasElement;\n },\n\n /**\n * @override\n */\n isImage: function(element) {\n return element instanceof HTMLImageElement;\n }\n\n });\n\n var BrowserElementService_1 = BrowserElementService;\n\n index.use(new BrowserElementService_1());\n\n var QRious_1 = index;\n\n return QRious_1;\n\n})));\n\n//# sourceMappingURL=qrious.js.map","import WJElement from '../wje-element/element.js';\nimport styles from './styles/styles.css?inline';\nimport QRious from 'qrious';\n\n/**\n * `QrCode` is a custom web component that generates a QR code.\n * @summary This element represents a QR code generator.\n * @documentation https://elements.webjet.sk/components/qr-code\n * @status stable\n * @augments {WJElement}\n * @csspart native - The native part of the QR code.\n * @slot top - The slot for the top content of the QR code.\n * @slot bottom - The slot for the bottom content of the QR code.\n * @tag wje-qr-code\n */\n\nexport default class QrCode extends WJElement {\n /**\n * Creates an instance of QrCode.\n */\n constructor() {\n super();\n }\n\n /**\n * The class name for the component.\n * @type {string}\n */\n className = 'QrCode';\n\n /**\n * Returns the CSS stylesheet for the component.\n * @returns {CSSStyleSheet} The CSS stylesheet.\n */\n static get cssStyleSheet() {\n return styles;\n }\n\n /**\n * Sets up the attributes for the component.\n */\n setupAttributes() {\n this.isShadowRoot = 'open';\n }\n\n /**\n * Returns the list of observed attributes.\n * @returns {string[]} The list of observed attributes.\n */\n static get observedAttributes() {\n return ['value', 'background', 'backgroundAlpha', 'foreground', 'foregroundAlpha', 'level', 'padding', 'size'];\n }\n\n /**\n * Draws the QR code component.\n * @returns {DocumentFragment} The document fragment containing the QR code component.\n */\n draw() {\n let fragment = document.createDocumentFragment();\n\n let wrapper = document.createElement('div');\n wrapper.classList.add('container');\n\n let qrCode = document.createElement('canvas');\n qrCode.classList.add('qr');\n qrCode.setAttribute('part', 'native');\n\n let slotTop = document.createElement('slot');\n slotTop.setAttribute('name', 'top');\n\n let slotBottom = document.createElement('slot');\n slotBottom.setAttribute('name', 'bottom');\n\n wrapper.appendChild(slotTop);\n wrapper.appendChild(qrCode);\n wrapper.appendChild(slotBottom);\n\n fragment.appendChild(wrapper);\n\n return fragment;\n }\n\n /**\n * Called after the component is drawn to generate the QR code.\n */\n afterDraw() {\n const canvas = this.shadowRoot.querySelector('canvas');\n const qrOptions = {};\n\n const attributes = [\n 'value',\n 'background',\n 'backgroundAlpha',\n 'foreground',\n 'foregroundAlpha',\n 'level',\n 'padding',\n 'size',\n ];\n\n attributes.forEach((attribute) => {\n const value = this.getAttribute(attribute);\n if (value !== null) {\n qrOptions[attribute] = value;\n }\n });\n\n if (!qrOptions.hasOwnProperty('value')) {\n qrOptions.value = 'empty value';\n }\n\n const qr = new QRious({\n element: canvas,\n ...qrOptions,\n });\n }\n}\n","import QrCode from './qr-code.element.js';\n\nexport default QrCode;\n\nQrCode.define('wje-qr-code', QrCode);\n"],"names":["global","this","qrious","index","QRious"],"mappings":"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QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QACzE;AAAA,QAAI;AAAA,QAAI;AAAA,QAAK;AAAA,QAAO;AAAA,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AAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,MAC3F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUD,KAAK;AAAA,QACH;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAAM;AAAA,QAC1F;AAAA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","x_google_ignoreList":[0]}