bootstrap-italia 2.12.1 → 2.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/README.EN.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/bootstrap-italia.esm.js +1 -1
  4. package/dist/css/bootstrap-italia.min.css +9 -1
  5. package/dist/css/bootstrap-italia.min.css.map +1 -1
  6. package/dist/js/bootstrap-italia.bundle.min.js +19 -23
  7. package/dist/js/bootstrap-italia.min.js +18 -2
  8. package/dist/plugins/accept-overlay.js +19 -9
  9. package/dist/plugins/accept-overlay.js.map +1 -1
  10. package/dist/plugins/accordion.js +19 -24
  11. package/dist/plugins/accordion.js.map +1 -1
  12. package/dist/plugins/alert.js +67 -2
  13. package/dist/plugins/alert.js.map +1 -1
  14. package/dist/plugins/{backToTop.js → back-to-top.js} +14 -5
  15. package/dist/plugins/back-to-top.js.map +1 -0
  16. package/dist/plugins/base-component.js +91 -0
  17. package/dist/plugins/base-component.js.map +1 -0
  18. package/dist/plugins/button.js +58 -2
  19. package/dist/plugins/button.js.map +1 -1
  20. package/dist/plugins/carousel-bi.js +19 -9
  21. package/dist/plugins/carousel-bi.js.map +1 -1
  22. package/dist/plugins/carousel.js +445 -2
  23. package/dist/plugins/carousel.js.map +1 -1
  24. package/dist/plugins/collapse.js +273 -2
  25. package/dist/plugins/collapse.js.map +1 -1
  26. package/dist/plugins/cookiebar.js +39 -52
  27. package/dist/plugins/cookiebar.js.map +1 -1
  28. package/dist/plugins/dimmer.js +19 -8
  29. package/dist/plugins/dimmer.js.map +1 -1
  30. package/dist/plugins/dom/data.js +61 -0
  31. package/dist/plugins/dom/data.js.map +1 -0
  32. package/dist/plugins/dom/event-handler.js +296 -0
  33. package/dist/plugins/dom/event-handler.js.map +1 -0
  34. package/dist/plugins/dom/manipulator.js +76 -0
  35. package/dist/plugins/dom/manipulator.js.map +1 -0
  36. package/dist/plugins/dom/selector-engine.js +82 -0
  37. package/dist/plugins/dom/selector-engine.js.map +1 -0
  38. package/dist/plugins/dropdown.js +433 -2
  39. package/dist/plugins/dropdown.js.map +1 -1
  40. package/dist/plugins/fonts-loader.js +9 -1
  41. package/dist/plugins/fonts-loader.js.map +1 -1
  42. package/dist/plugins/form-validate.js +22 -8
  43. package/dist/plugins/form-validate.js.map +1 -1
  44. package/dist/plugins/forward.js +21 -18
  45. package/dist/plugins/forward.js.map +1 -1
  46. package/dist/plugins/header-sticky.js +11 -2
  47. package/dist/plugins/header-sticky.js.map +1 -1
  48. package/dist/plugins/history-back.js +17 -17
  49. package/dist/plugins/history-back.js.map +1 -1
  50. package/dist/plugins/init.js +9 -0
  51. package/dist/plugins/init.js.map +1 -1
  52. package/dist/plugins/input-label.js +14 -3
  53. package/dist/plugins/input-label.js.map +1 -1
  54. package/dist/plugins/input-number.js +13 -4
  55. package/dist/plugins/input-number.js.map +1 -1
  56. package/dist/plugins/input-password.js +48 -37
  57. package/dist/plugins/input-password.js.map +1 -1
  58. package/dist/plugins/input-search-autocomplete.js +9 -11
  59. package/dist/plugins/input-search-autocomplete.js.map +1 -1
  60. package/dist/plugins/input.js +12 -3
  61. package/dist/plugins/input.js.map +1 -1
  62. package/dist/plugins/list.js +23 -12
  63. package/dist/plugins/list.js.map +1 -1
  64. package/dist/plugins/masonry.js +29 -29
  65. package/dist/plugins/masonry.js.map +1 -1
  66. package/dist/plugins/modal.js +358 -2
  67. package/dist/plugins/modal.js.map +1 -1
  68. package/dist/plugins/navbar-collapsible.js +55 -45
  69. package/dist/plugins/navbar-collapsible.js.map +1 -1
  70. package/dist/plugins/navscroll.js +16 -23
  71. package/dist/plugins/navscroll.js.map +1 -1
  72. package/dist/plugins/notification.js +34 -23
  73. package/dist/plugins/notification.js.map +1 -1
  74. package/dist/plugins/offcanvas.js +259 -2
  75. package/dist/plugins/offcanvas.js.map +1 -1
  76. package/dist/plugins/popover.js +76 -2
  77. package/dist/plugins/popover.js.map +1 -1
  78. package/dist/plugins/progress-donut.js +19 -12
  79. package/dist/plugins/progress-donut.js.map +1 -1
  80. package/dist/plugins/scrollspy.js +273 -2
  81. package/dist/plugins/scrollspy.js.map +1 -1
  82. package/dist/plugins/select-autocomplete.js +10 -1
  83. package/dist/plugins/select-autocomplete.js.map +1 -1
  84. package/dist/plugins/sticky.js +21 -18
  85. package/dist/plugins/sticky.js.map +1 -1
  86. package/dist/plugins/tab.js +244 -27
  87. package/dist/plugins/tab.js.map +1 -1
  88. package/dist/plugins/toast.js +203 -2
  89. package/dist/plugins/toast.js.map +1 -1
  90. package/dist/plugins/tooltip.js +602 -2
  91. package/dist/plugins/tooltip.js.map +1 -1
  92. package/dist/plugins/track-focus.js +8 -0
  93. package/dist/plugins/track-focus.js.map +1 -1
  94. package/dist/plugins/transfer.js +11 -16
  95. package/dist/plugins/transfer.js.map +1 -1
  96. package/dist/plugins/upload-dragdrop.js +13 -4
  97. package/dist/plugins/upload-dragdrop.js.map +1 -1
  98. package/dist/plugins/util/backdrop.js +155 -0
  99. package/dist/plugins/util/backdrop.js.map +1 -0
  100. package/dist/plugins/util/component-functions.js +38 -0
  101. package/dist/plugins/util/component-functions.js.map +1 -0
  102. package/dist/plugins/util/config.js +70 -0
  103. package/dist/plugins/util/config.js.map +1 -0
  104. package/dist/plugins/util/cookies.js +8 -0
  105. package/dist/plugins/util/cookies.js.map +1 -1
  106. package/dist/plugins/util/device.js +0 -3
  107. package/dist/plugins/util/device.js.map +1 -1
  108. package/dist/plugins/util/dom.js +8 -0
  109. package/dist/plugins/util/dom.js.map +1 -1
  110. package/dist/plugins/util/focustrap.js +121 -0
  111. package/dist/plugins/util/focustrap.js.map +1 -0
  112. package/dist/plugins/util/index.js +280 -0
  113. package/dist/plugins/util/index.js.map +1 -0
  114. package/dist/plugins/util/observer.js +8 -0
  115. package/dist/plugins/util/observer.js.map +1 -1
  116. package/dist/plugins/util/on-document-scroll.js +20 -9
  117. package/dist/plugins/util/on-document-scroll.js.map +1 -1
  118. package/dist/plugins/util/pageScroll.js +8 -0
  119. package/dist/plugins/util/pageScroll.js.map +1 -1
  120. package/dist/plugins/util/sanitizer.js +115 -0
  121. package/dist/plugins/util/sanitizer.js.map +1 -0
  122. package/dist/plugins/util/scrollbar.js +120 -0
  123. package/dist/plugins/util/scrollbar.js.map +1 -0
  124. package/dist/plugins/util/swipe.js +150 -0
  125. package/dist/plugins/util/swipe.js.map +1 -0
  126. package/dist/plugins/util/template-factory.js +166 -0
  127. package/dist/plugins/util/template-factory.js.map +1 -0
  128. package/dist/plugins/util/tween.js +10 -1
  129. package/dist/plugins/util/tween.js.map +1 -1
  130. package/dist/plugins/util/youtube-video.js +12 -21
  131. package/dist/plugins/util/youtube-video.js.map +1 -1
  132. package/dist/plugins/videoplayer.js +19 -8
  133. package/dist/plugins/videoplayer.js.map +1 -1
  134. package/dist/version.js +10 -3
  135. package/dist/version.js.map +1 -1
  136. package/package.json +6 -7
  137. package/src/js/bootstrap-italia.entry.js +8 -0
  138. package/src/js/bootstrap-italia.esm.js +9 -1
  139. package/src/js/icons.js +8 -0
  140. package/src/js/load-plugin.js +8 -0
  141. package/src/js/plugins/accept-overlay.js +18 -10
  142. package/src/js/plugins/accordion.js +16 -22
  143. package/src/js/plugins/alert.js +66 -2
  144. package/src/js/plugins/{backToTop.js → back-to-top.js} +12 -4
  145. package/src/js/plugins/base-component.js +89 -0
  146. package/src/js/plugins/button.js +57 -2
  147. package/src/js/plugins/carousel-bi.js +18 -9
  148. package/src/js/plugins/carousel.js +444 -2
  149. package/src/js/plugins/collapse.js +272 -2
  150. package/src/js/plugins/cookiebar.js +37 -60
  151. package/src/js/plugins/dimmer.js +18 -8
  152. package/src/js/plugins/dom/data.js +58 -0
  153. package/src/js/plugins/dom/event-handler.js +301 -0
  154. package/src/js/plugins/dom/manipulator.js +75 -0
  155. package/src/js/plugins/dom/selector-engine.js +80 -0
  156. package/src/js/plugins/dropdown.js +432 -2
  157. package/src/js/plugins/fonts-loader.js +9 -1
  158. package/src/js/plugins/form-validate.js +21 -8
  159. package/src/js/plugins/form.js +11 -3
  160. package/src/js/plugins/forward.js +18 -16
  161. package/src/js/plugins/header-sticky.js +10 -2
  162. package/src/js/plugins/history-back.js +14 -14
  163. package/src/js/plugins/init.js +8 -0
  164. package/src/js/plugins/input-label.js +13 -3
  165. package/src/js/plugins/input-number.js +12 -4
  166. package/src/js/plugins/input-password.js +46 -36
  167. package/src/js/plugins/input-search-autocomplete.js +9 -13
  168. package/src/js/plugins/input.js +11 -3
  169. package/src/js/plugins/list.js +22 -12
  170. package/src/js/plugins/masonry.js +26 -27
  171. package/src/js/plugins/modal.js +357 -2
  172. package/src/js/plugins/navbar-collapsible.js +55 -53
  173. package/src/js/plugins/navscroll.js +16 -23
  174. package/src/js/plugins/notification.js +33 -23
  175. package/src/js/plugins/offcanvas.js +258 -2
  176. package/src/js/plugins/popover.js +75 -2
  177. package/src/js/plugins/progress-donut.js +17 -13
  178. package/src/js/plugins/scrollspy.js +272 -2
  179. package/src/js/plugins/select-autocomplete.js +9 -1
  180. package/src/js/plugins/sticky.js +21 -23
  181. package/src/js/plugins/tab.js +243 -27
  182. package/src/js/plugins/toast.js +206 -2
  183. package/src/js/plugins/tooltip.js +601 -2
  184. package/src/js/plugins/track-focus.js +8 -0
  185. package/src/js/plugins/transfer.js +12 -24
  186. package/src/js/plugins/upload-dragdrop.js +12 -4
  187. package/src/js/plugins/util/backdrop.js +153 -0
  188. package/src/js/plugins/util/component-functions.js +36 -0
  189. package/src/js/plugins/util/config.js +68 -0
  190. package/src/js/plugins/util/cookies.js +8 -0
  191. package/src/js/plugins/util/device.js +0 -3
  192. package/src/js/plugins/util/dom.js +8 -0
  193. package/src/js/plugins/util/focustrap.js +119 -0
  194. package/src/js/plugins/util/index.js +317 -0
  195. package/src/js/plugins/util/observer.js +8 -0
  196. package/src/js/plugins/util/on-document-scroll.js +19 -9
  197. package/src/js/plugins/util/pageScroll.js +8 -0
  198. package/src/js/plugins/util/sanitizer.js +112 -0
  199. package/src/js/plugins/util/scrollbar.js +118 -0
  200. package/src/js/plugins/util/swipe.js +148 -0
  201. package/src/js/plugins/util/template-factory.js +164 -0
  202. package/src/js/plugins/util/tween.js +9 -1
  203. package/src/js/plugins/util/youtube-video.js +12 -21
  204. package/src/js/plugins/videoplayer.js +18 -8
  205. package/src/js/version.js +10 -3
  206. package/src/scss/base/_containers.scss +41 -0
  207. package/src/scss/base/_functions.scss +373 -0
  208. package/src/scss/base/_helpers.scss +10 -0
  209. package/src/scss/base/_maps.scss +54 -0
  210. package/src/scss/base/_mixins.scss +44 -0
  211. package/src/scss/base/_reboot.scss +590 -0
  212. package/src/scss/base/_root.scss +73 -0
  213. package/src/scss/base/_transitions.scss +27 -0
  214. package/src/scss/base/_utilities.scss +742 -0
  215. package/src/scss/base/_variables.scss +2123 -0
  216. package/src/scss/base/_version.scss +3 -0
  217. package/src/scss/base/helpers/_clearfix.scss +3 -0
  218. package/src/scss/base/helpers/_color-bg.scss +10 -0
  219. package/src/scss/base/helpers/_colored-links.scss +16 -0
  220. package/src/scss/base/helpers/_position.scss +36 -0
  221. package/src/scss/base/helpers/_ratio.scss +26 -0
  222. package/src/scss/base/helpers/_stacks.scss +15 -0
  223. package/src/scss/base/helpers/_stretched-link.scss +15 -0
  224. package/src/scss/base/helpers/_text-truncation.scss +7 -0
  225. package/src/scss/base/helpers/_visually-hidden.scss +8 -0
  226. package/src/scss/base/helpers/_vr.scss +8 -0
  227. package/src/scss/base/mixins/_alert.scss +15 -0
  228. package/src/scss/base/mixins/_backdrop.scss +18 -0
  229. package/src/scss/base/mixins/_banner.scss +11 -0
  230. package/src/scss/base/mixins/_border-radius.scss +77 -0
  231. package/src/scss/base/mixins/_box-shadow.scss +18 -0
  232. package/src/scss/base/mixins/_breakpoints.scss +127 -0
  233. package/src/scss/base/mixins/_buttons.scss +141 -0
  234. package/src/scss/base/mixins/_caret.scss +64 -0
  235. package/src/scss/base/mixins/_clearfix.scss +9 -0
  236. package/src/scss/base/mixins/_color-scheme.scss +7 -0
  237. package/src/scss/base/mixins/_container.scss +11 -0
  238. package/src/scss/base/mixins/_deprecate.scss +10 -0
  239. package/src/scss/base/mixins/_forms.scss +152 -0
  240. package/src/scss/base/mixins/_gradients.scss +47 -0
  241. package/src/scss/base/mixins/_grid.scss +151 -0
  242. package/src/scss/base/mixins/_image.scss +15 -0
  243. package/src/scss/base/mixins/_list-group.scss +24 -0
  244. package/src/scss/base/mixins/_lists.scss +7 -0
  245. package/src/scss/base/mixins/_pagination.scss +10 -0
  246. package/src/scss/base/mixins/_reset-text.scss +17 -0
  247. package/src/scss/base/mixins/_resize.scss +6 -0
  248. package/src/scss/base/mixins/_table-variants.scss +24 -0
  249. package/src/scss/base/mixins/_text-truncate.scss +8 -0
  250. package/src/scss/base/mixins/_transition.scss +26 -0
  251. package/src/scss/base/mixins/_utilities.scss +96 -0
  252. package/src/scss/base/mixins/_visually-hidden.scss +29 -0
  253. package/src/scss/base/utilities/_api.scss +45 -0
  254. package/src/scss/base/vendor/_rfs.scss +337 -0
  255. package/src/scss/bootstrap-italia.scss +137 -156
  256. package/src/scss/{custom → components}/_accept-overlay.scss +2 -1
  257. package/src/scss/components/_accordion.scss +297 -0
  258. package/src/scss/components/_badge.scss +60 -0
  259. package/src/scss/components/_breadcrumb.scss +95 -0
  260. package/src/scss/components/_button-group.scss +143 -0
  261. package/src/scss/components/_buttons.scss +467 -0
  262. package/src/scss/{custom → components}/_card.scss +228 -0
  263. package/src/scss/{custom → components}/_carousel.scss +225 -3
  264. package/src/scss/components/_dropdown.scss +480 -0
  265. package/src/scss/{custom → components}/_grid.scss +33 -0
  266. package/src/scss/{custom → components}/_gridlist.scss +7 -0
  267. package/src/scss/{custom → components}/_hero.scss +23 -57
  268. package/src/scss/components/_images.scss +48 -0
  269. package/src/scss/{custom → components}/_linklist.scss +0 -1
  270. package/src/scss/components/_list-group.scss +190 -0
  271. package/src/scss/components/_modal.scss +475 -0
  272. package/src/scss/components/_nav.scss +169 -0
  273. package/src/scss/components/_navbar.scss +274 -0
  274. package/src/scss/components/_offcanvas.scss +144 -0
  275. package/src/scss/components/_pagination.scss +108 -0
  276. package/src/scss/components/_placeholders.scss +51 -0
  277. package/src/scss/components/_popover.scss +298 -0
  278. package/src/scss/components/_progress-bars.scss +126 -0
  279. package/src/scss/{custom → components}/_steppers.scss +2 -2
  280. package/src/scss/{custom → components}/_tab.scss +3 -7
  281. package/src/scss/components/_tables.scss +171 -0
  282. package/src/scss/components/_toasts.scss +73 -0
  283. package/src/scss/{custom → components}/_toolbar.scss +19 -12
  284. package/src/scss/components/_tooltip.scss +139 -0
  285. package/src/scss/{custom → components}/_type.scss +92 -0
  286. package/src/scss/forms/_accessible-autocomplete.scss +188 -0
  287. package/src/scss/forms/_floating-labels.scss +75 -0
  288. package/src/scss/forms/_form-check.scss +163 -0
  289. package/src/scss/forms/_form-control.scss +201 -0
  290. package/src/scss/forms/_form-range.scss +95 -0
  291. package/src/scss/{custom → forms}/_form-select.scss +72 -0
  292. package/src/scss/forms/_form-text.scss +11 -0
  293. package/src/scss/{custom → forms}/_forms.scss +8 -12
  294. package/src/scss/forms/_input-group.scss +129 -0
  295. package/src/scss/forms/_labels.scss +36 -0
  296. package/src/scss/forms/_validation.scss +12 -0
  297. package/src/scss/utilities/icons.scss +5 -5
  298. package/types/index.d.ts +4 -1
  299. package/types/plugins/video.ts +33 -0
  300. package/dist/plugins/backToTop.js.map +0 -1
  301. package/src/scss/_functions.scss +0 -38
  302. package/src/scss/_variables.scss +0 -639
  303. package/src/scss/custom/_accessible-autocomplete.scss +0 -30
  304. package/src/scss/custom/_accordion.scss +0 -176
  305. package/src/scss/custom/_badge.scss +0 -29
  306. package/src/scss/custom/_breadcrumb.scss +0 -51
  307. package/src/scss/custom/_buttons.scss +0 -235
  308. package/src/scss/custom/_componente-base.scss +0 -6
  309. package/src/scss/custom/_dropdown.scss +0 -248
  310. package/src/scss/custom/_form-datepicker.scss +0 -604
  311. package/src/scss/custom/_images.scss +0 -10
  312. package/src/scss/custom/_modal.scss +0 -248
  313. package/src/scss/custom/_popover.scss +0 -106
  314. package/src/scss/custom/_progress-bars.scss +0 -70
  315. package/src/scss/custom/_tables.scss +0 -11
  316. package/src/scss/custom/_timepicker.scss +0 -252
  317. package/src/scss/custom/_tooltip.scss +0 -33
  318. package/src/scss/custom/_version.scss +0 -3
  319. package/src/scss/custom/mixins/_buttons.scss +0 -67
  320. package/src/scss/utilities/colors_vars.scss +0 -426
  321. /package/src/scss/{custom → base}/mixins/_text-emphasis.scss +0 -0
  322. /package/src/scss/{custom → components}/_affix.scss +0 -0
  323. /package/src/scss/{custom → components}/_alert.scss +0 -0
  324. /package/src/scss/{custom → components}/_anchor.scss +0 -0
  325. /package/src/scss/{custom → components}/_avatar.scss +0 -0
  326. /package/src/scss/{custom → components}/_back-to-top.scss +0 -0
  327. /package/src/scss/{custom → components}/_bottomnav.scss +0 -0
  328. /package/src/scss/{custom → components}/_calendar.scss +0 -0
  329. /package/src/scss/{custom → components}/_callout.scss +0 -0
  330. /package/src/scss/{custom → components}/_chips.scss +0 -0
  331. /package/src/scss/{custom → components}/_code.scss +0 -0
  332. /package/src/scss/{custom → components}/_cookiebar.scss +0 -0
  333. /package/src/scss/{custom → components}/_dimmer.scss +0 -0
  334. /package/src/scss/{custom → components}/_figcaption.scss +0 -0
  335. /package/src/scss/{custom → components}/_font.scss +0 -0
  336. /package/src/scss/{custom → components}/_footer.scss +0 -0
  337. /package/src/scss/{custom → components}/_forward.scss +0 -0
  338. /package/src/scss/{custom → components}/_header.scss +0 -0
  339. /package/src/scss/{custom → components}/_headercenter.scss +0 -0
  340. /package/src/scss/{custom → components}/_headercentertheme.scss +0 -0
  341. /package/src/scss/{custom → components}/_headernavbar.scss +0 -0
  342. /package/src/scss/{custom → components}/_headernavbartheme.scss +0 -0
  343. /package/src/scss/{custom → components}/_headerslim.scss +0 -0
  344. /package/src/scss/{custom → components}/_headerslimtheme.scss +0 -0
  345. /package/src/scss/{custom → components}/_imgresponsive.scss +0 -0
  346. /package/src/scss/{custom → components}/_list.scss +0 -0
  347. /package/src/scss/{custom → components}/_map.scss +0 -0
  348. /package/src/scss/{custom → components}/_masonry-loader.scss +0 -0
  349. /package/src/scss/{custom → components}/_megamenu.scss +0 -0
  350. /package/src/scss/{custom → components}/_navigation.scss +0 -0
  351. /package/src/scss/{custom → components}/_navigationtheme.scss +0 -0
  352. /package/src/scss/{custom → components}/_navscroll.scss +0 -0
  353. /package/src/scss/{custom → components}/_navscrolltheme.scss +0 -0
  354. /package/src/scss/{custom → components}/_notifications.scss +0 -0
  355. /package/src/scss/{custom → components}/_overlay-panel.scss +0 -0
  356. /package/src/scss/{custom → components}/_page-scroll.scss +0 -0
  357. /package/src/scss/{custom → components}/_pager.scss +0 -0
  358. /package/src/scss/{custom → components}/_point-list.scss +0 -0
  359. /package/src/scss/{custom → components}/_print.scss +0 -0
  360. /package/src/scss/{custom → components}/_progress-donuts.scss +0 -0
  361. /package/src/scss/{custom → components}/_progress-spinners.scss +0 -0
  362. /package/src/scss/{custom → components}/_rating-list.scss +0 -0
  363. /package/src/scss/{custom → components}/_rating.scss +0 -0
  364. /package/src/scss/{custom → components}/_sections.scss +0 -0
  365. /package/src/scss/{custom → components}/_sidebar.scss +0 -0
  366. /package/src/scss/{custom → components}/_sidebarthemes.scss +0 -0
  367. /package/src/scss/{custom → components}/_skiplinks.scss +0 -0
  368. /package/src/scss/{custom → components}/_sticky.scss +0 -0
  369. /package/src/scss/{custom → components}/_thumbnav.scss +0 -0
  370. /package/src/scss/{custom → components}/_timeline.scss +0 -0
  371. /package/src/scss/{custom → components}/_videoplayer.scss +0 -0
  372. /package/src/scss/{custom → forms}/_autocomplete.scss +0 -0
  373. /package/src/scss/{custom → forms}/_form-input-file.scss +0 -0
  374. /package/src/scss/{custom → forms}/_form-input-number.scss +0 -0
  375. /package/src/scss/{custom → forms}/_form-input-upload.scss +0 -0
  376. /package/src/scss/{custom → forms}/_form-password.scss +0 -0
  377. /package/src/scss/{custom → forms}/_form-toggles.scss +0 -0
  378. /package/src/scss/{custom → forms}/_form-transfer.scss +0 -0
  379. /package/src/scss/{custom → forms}/_just-validate.scss +0 -0
  380. /package/types/plugins/{backToTop.d.ts → back-to-top.d.ts} +0 -0
@@ -1,24 +1,15 @@
1
- /* The MIT License (MIT)
2
-
3
- Copyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE. */
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
4
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
5
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
6
+ * This file is a modified version of Benoit Tremblay's VideoJS YouTube plugin
7
+ * Main repository: https://github.com/videojs/videojs-youtube
8
+ * Copyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>
9
+ * Licensed under MIT license (https://github.com/videojs/videojs-youtube?tab=readme-ov-file#license)
10
+ * --------------------------------------------------------------------------
11
+ */
12
+
22
13
  /*global define, YT*/
23
14
  const initYoutubePlugin = (videojs) => {
24
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"youtube-video.js","sources":["../../../src/js/plugins/util/youtube-video.js"],"sourcesContent":["/* The MIT License (MIT)\n\nCopyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE. */\n/*global define, YT*/\nconst initYoutubePlugin = (videojs) => {\n\n const _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_NATIVE_ANDROID;\n const Tech = videojs.getTech('Tech');\n\n class Youtube extends Tech {\n\n constructor(options, ready) {\n super(options, ready);\n\n this.setPoster(options.poster);\n this.setSrc(this.options_.source, true);\n\n // Set the vjs-youtube class to the player\n // Parent is not set yet so we have to wait a tick\n this.setTimeout(function () {\n if (this.el_) {\n this.el_.parentNode.className += ' vjs-youtube';\n\n if (_isOnMobile) {\n this.el_.parentNode.className += ' vjs-youtube-mobile';\n }\n\n if (Youtube.isApiReady) {\n this.initYTPlayer();\n } else {\n Youtube.apiReadyQueue.push(this);\n }\n }\n }.bind(this));\n }\n\n dispose() {\n if (this.ytPlayer) {\n //Dispose of the YouTube Player\n if (this.ytPlayer.stopVideo) {\n this.ytPlayer.stopVideo();\n }\n if (this.ytPlayer.destroy) {\n this.ytPlayer.destroy();\n }\n } else {\n //YouTube API hasn't finished loading or the player is already disposed\n var index = Youtube.apiReadyQueue.indexOf(this);\n if (index !== -1) {\n Youtube.apiReadyQueue.splice(index, 1);\n }\n }\n this.ytPlayer = null;\n\n this.el_.parentNode.className = this.el_.parentNode.className\n .replace(' vjs-youtube', '')\n .replace(' vjs-youtube-mobile', '');\n this.el_.parentNode.removeChild(this.el_);\n\n //Needs to be called after the YouTube player is destroyed, otherwise there will be a null reference exception\n Tech.prototype.dispose.call(this);\n }\n\n createEl() {\n if (typeof document === 'undefined') {\n return\n }\n var div = document.createElement('div');\n div.setAttribute('id', this.options_.techId);\n div.setAttribute('style', 'width:100%;height:100%;top:0;left:0;position:absolute');\n div.setAttribute('class', 'vjs-tech');\n\n var divWrapper = document.createElement('div');\n divWrapper.appendChild(div);\n\n if (!_isOnMobile && !this.options_.ytControls) {\n var divBlocker = document.createElement('div');\n divBlocker.setAttribute('class', 'vjs-iframe-blocker');\n divBlocker.setAttribute('style', 'position:absolute;top:0;left:0;width:100%;height:100%');\n\n // In case the blocker is still there and we want to pause\n divBlocker.onclick = function () {\n this.pause();\n }.bind(this);\n\n divWrapper.appendChild(divBlocker);\n }\n\n return divWrapper;\n }\n\n initYTPlayer() {\n var playerVars = {\n controls: 0,\n modestbranding: 1,\n rel: 0,\n showinfo: 0,\n loop: this.options_.loop ? 1 : 0\n };\n\n // Let the user set any YouTube parameter\n // https://developers.google.com/youtube/player_parameters?playerVersion=HTML5#Parameters\n // To use YouTube controls, you must use ytControls instead\n // To use the loop or autoplay, use the video.js settings\n\n if (typeof this.options_.autohide !== 'undefined') {\n playerVars.autohide = this.options_.autohide;\n }\n\n if (typeof this.options_['cc_load_policy'] !== 'undefined') {\n playerVars['cc_load_policy'] = this.options_['cc_load_policy'];\n }\n\n if (typeof this.options_.ytControls !== 'undefined') {\n playerVars.controls = this.options_.ytControls;\n }\n\n if (typeof this.options_.disablekb !== 'undefined') {\n playerVars.disablekb = this.options_.disablekb;\n }\n\n if (typeof this.options_.color !== 'undefined') {\n playerVars.color = this.options_.color;\n }\n\n if (!playerVars.controls) {\n // Let video.js handle the fullscreen unless it is the YouTube native controls\n playerVars.fs = 0;\n } else if (typeof this.options_.fs !== 'undefined') {\n playerVars.fs = this.options_.fs;\n }\n\n if (this.options_.source.src.indexOf('end=') !== -1) {\n var srcEndTime = this.options_.source.src.match(/end=([0-9]*)/);\n this.options_.end = parseInt(srcEndTime[1]);\n }\n\n if (typeof this.options_.end !== 'undefined') {\n playerVars.end = this.options_.end;\n }\n\n if (typeof this.options_.hl !== 'undefined') {\n playerVars.hl = this.options_.hl;\n } else if (typeof this.options_.language !== 'undefined') {\n // Set the YouTube player on the same language than video.js\n playerVars.hl = this.options_.language.substr(0, 2);\n }\n\n if (typeof this.options_['iv_load_policy'] !== 'undefined') {\n playerVars['iv_load_policy'] = this.options_['iv_load_policy'];\n }\n\n if (typeof this.options_.list !== 'undefined') {\n playerVars.list = this.options_.list;\n } else if (this.url && typeof this.url.listId !== 'undefined') {\n playerVars.list = this.url.listId;\n }\n\n if (typeof this.options_.listType !== 'undefined') {\n playerVars.listType = this.options_.listType;\n }\n\n if (typeof this.options_.modestbranding !== 'undefined') {\n playerVars.modestbranding = this.options_.modestbranding;\n }\n\n if (typeof this.options_.playlist !== 'undefined') {\n playerVars.playlist = this.options_.playlist;\n }\n\n if (typeof this.options_.playsinline !== 'undefined') {\n playerVars.playsinline = this.options_.playsinline;\n }\n\n if (typeof this.options_.rel !== 'undefined') {\n playerVars.rel = this.options_.rel;\n }\n\n if (typeof this.options_.showinfo !== 'undefined') {\n playerVars.showinfo = this.options_.showinfo;\n }\n\n if (this.options_.source.src.indexOf('start=') !== -1) {\n var srcStartTime = this.options_.source.src.match(/start=([0-9]*)/);\n this.options_.start = parseInt(srcStartTime[1]);\n }\n\n if (typeof this.options_.start !== 'undefined') {\n playerVars.start = this.options_.start;\n }\n\n if (typeof this.options_.theme !== 'undefined') {\n playerVars.theme = this.options_.theme;\n }\n\n // Allow undocumented options to be passed along via customVars\n if (typeof this.options_.customVars !== 'undefined') {\n var customVars = this.options_.customVars;\n Object.keys(customVars).forEach(function (key) {\n playerVars[key] = customVars[key];\n });\n }\n\n this.activeVideoId = this.url ? this.url.videoId : null;\n this.activeList = playerVars.list;\n\n var playerConfig = {\n videoId: this.activeVideoId,\n playerVars: playerVars,\n events: {\n onReady: this.onPlayerReady.bind(this),\n onPlaybackQualityChange: this.onPlayerPlaybackQualityChange.bind(this),\n onPlaybackRateChange: this.onPlayerPlaybackRateChange.bind(this),\n onStateChange: this.onPlayerStateChange.bind(this),\n onVolumeChange: this.onPlayerVolumeChange.bind(this),\n onError: this.onPlayerError.bind(this)\n }\n };\n\n if (typeof this.options_.enablePrivacyEnhancedMode !== 'undefined' && this.options_.enablePrivacyEnhancedMode) {\n playerConfig.host = 'https://www.youtube-nocookie.com';\n }\n\n this.ytPlayer = new YT.Player(this.options_.techId, playerConfig);\n }\n\n onPlayerReady() {\n if (this.options_.muted) {\n this.ytPlayer.mute();\n }\n\n var playbackRates = this.ytPlayer.getAvailablePlaybackRates();\n if (playbackRates.length > 1) {\n this.featuresPlaybackRate = true;\n }\n\n this.playerReady_ = true;\n this.triggerReady();\n\n if (this.playOnReady) {\n this.play();\n } else if (this.cueOnReady) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n }\n\n onPlayerPlaybackQualityChange() {\n\n }\n\n onPlayerPlaybackRateChange() {\n this.trigger('ratechange');\n }\n\n onPlayerStateChange(e) {\n var state = e.data;\n\n if (state === this.lastState || this.errorNumber) {\n return;\n }\n\n this.lastState = state;\n\n switch (state) {\n case -1:\n this.trigger('loadstart');\n this.trigger('loadedmetadata');\n this.trigger('durationchange');\n this.trigger('ratechange');\n break;\n\n case YT.PlayerState.ENDED:\n this.trigger('ended');\n break;\n\n case YT.PlayerState.PLAYING:\n this.trigger('timeupdate');\n this.trigger('durationchange');\n this.trigger('playing');\n this.trigger('play');\n\n if (this.isSeeking) {\n this.onSeeked();\n }\n break;\n\n case YT.PlayerState.PAUSED:\n this.trigger('canplay');\n if (this.isSeeking) {\n this.onSeeked();\n } else {\n this.trigger('pause');\n }\n break;\n\n case YT.PlayerState.BUFFERING:\n this.player_.trigger('timeupdate');\n this.player_.trigger('waiting');\n break;\n }\n }\n\n onPlayerVolumeChange() {\n this.trigger('volumechange');\n }\n\n onPlayerError(e) {\n this.errorNumber = e.data;\n this.trigger('pause');\n this.trigger('error');\n }\n\n error() {\n var code = 1000 + this.errorNumber; // as smaller codes are reserved\n switch (this.errorNumber) {\n case 5:\n return { code: code, message: 'Error while trying to play the video' };\n\n case 2:\n case 100:\n return { code: code, message: 'Unable to find the video' };\n\n case 101:\n case 150:\n return {\n code: code,\n message: 'Playback on other Websites has been disabled by the video owner.'\n };\n }\n\n return { code: code, message: 'YouTube unknown error (' + this.errorNumber + ')' };\n }\n\n loadVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.loadVideoById(options);\n }\n\n cueVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.cueVideoById(options);\n }\n\n src(src) {\n if (src) {\n this.setSrc({ src: src });\n }\n\n return this.source;\n }\n\n poster() {\n // You can't start programmaticlly a video with a mobile\n // through the iframe so we hide the poster and the play button (with CSS)\n if (_isOnMobile) {\n return null;\n }\n\n return this.poster_;\n }\n\n setPoster(poster) {\n this.poster_ = poster;\n }\n\n setSrc(source) {\n if (!source || !source.src) {\n return;\n }\n\n delete this.errorNumber;\n this.source = source;\n this.url = Youtube.parseUrl(source.src);\n\n if (!this.options_.poster) {\n if (this.url.videoId) {\n // Set the low resolution first\n this.poster_ = 'https://img.youtube.com/vi/' + this.url.videoId + '/0.jpg';\n this.trigger('posterchange');\n\n // Check if their is a high res\n this.checkHighResPoster();\n }\n }\n\n if (this.options_.autoplay && !_isOnMobile) {\n if (this.isReady_) {\n this.play();\n } else {\n this.playOnReady = true;\n }\n } else if (this.activeVideoId !== this.url.videoId) {\n if (this.isReady_) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n } else {\n this.cueOnReady = true;\n }\n }\n }\n\n autoplay() {\n return this.options_.autoplay;\n }\n\n setAutoplay(val) {\n this.options_.autoplay = val;\n }\n\n loop() {\n return this.options_.loop;\n }\n\n setLoop(val) {\n this.options_.loop = val;\n }\n\n play() {\n if (!this.url || !this.url.videoId) {\n return;\n }\n\n this.wasPausedBeforeSeek = false;\n\n if (this.isReady_) {\n if (this.url.listId) {\n if (this.activeList === this.url.listId) {\n this.ytPlayer.playVideo();\n } else {\n this.ytPlayer.loadPlaylist(this.url.listId);\n this.activeList = this.url.listId;\n }\n }\n\n if (this.activeVideoId === this.url.videoId) {\n this.ytPlayer.playVideo();\n } else {\n this.loadVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n } else {\n this.trigger('waiting');\n this.playOnReady = true;\n }\n }\n\n pause() {\n if (this.ytPlayer) {\n this.ytPlayer.pauseVideo();\n }\n }\n\n paused() {\n return (this.ytPlayer) ?\n (this.lastState !== YT.PlayerState.PLAYING && this.lastState !== YT.PlayerState.BUFFERING)\n : true;\n }\n\n currentTime() {\n return this.ytPlayer ? this.ytPlayer.getCurrentTime() : 0;\n }\n\n setCurrentTime(seconds) {\n if (this.lastState === YT.PlayerState.PAUSED) {\n this.timeBeforeSeek = this.currentTime();\n }\n\n if (!this.isSeeking) {\n this.wasPausedBeforeSeek = this.paused();\n }\n\n this.ytPlayer.seekTo(seconds, true);\n this.trigger('timeupdate');\n this.trigger('seeking');\n this.isSeeking = true;\n\n // A seek event during pause does not return an event to trigger a seeked event,\n // so run an interval timer to look for the currentTime to change\n if (this.lastState === YT.PlayerState.PAUSED && this.timeBeforeSeek !== seconds) {\n clearInterval(this.checkSeekedInPauseInterval);\n this.checkSeekedInPauseInterval = setInterval(function () {\n if (this.lastState !== YT.PlayerState.PAUSED || !this.isSeeking) {\n // If something changed while we were waiting for the currentTime to change,\n // clear the interval timer\n clearInterval(this.checkSeekedInPauseInterval);\n } else if (this.currentTime() !== this.timeBeforeSeek) {\n this.trigger('timeupdate');\n this.onSeeked();\n }\n }.bind(this), 250);\n }\n }\n\n seeking() {\n return this.isSeeking;\n }\n\n seekable() {\n if (!this.ytPlayer) {\n return videojs.createTimeRange();\n }\n\n return videojs.createTimeRange(0, this.ytPlayer.getDuration());\n }\n\n onSeeked() {\n clearInterval(this.checkSeekedInPauseInterval);\n this.isSeeking = false;\n\n if (this.wasPausedBeforeSeek) {\n this.pause();\n }\n\n this.trigger('seeked');\n }\n\n playbackRate() {\n return this.ytPlayer ? this.ytPlayer.getPlaybackRate() : 1;\n }\n\n setPlaybackRate(suggestedRate) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setPlaybackRate(suggestedRate);\n }\n\n duration() {\n return this.ytPlayer ? this.ytPlayer.getDuration() : 0;\n }\n\n currentSrc() {\n return this.source && this.source.src;\n }\n\n ended() {\n return this.ytPlayer ? (this.lastState === YT.PlayerState.ENDED) : false;\n }\n\n volume() {\n return this.ytPlayer ? this.ytPlayer.getVolume() / 100.0 : 1;\n }\n\n setVolume(percentAsDecimal) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setVolume(percentAsDecimal * 100.0);\n }\n\n muted() {\n return this.ytPlayer ? this.ytPlayer.isMuted() : false;\n }\n\n setMuted(mute) {\n if (!this.ytPlayer) {\n return;\n }\n else {\n this.muted(true);\n }\n\n if (mute) {\n this.ytPlayer.mute();\n } else {\n this.ytPlayer.unMute();\n }\n this.setTimeout(function () {\n this.trigger('volumechange');\n }, 50);\n }\n\n buffered() {\n if (!this.ytPlayer || !this.ytPlayer.getVideoLoadedFraction) {\n return videojs.createTimeRange();\n }\n\n var bufferedEnd = this.ytPlayer.getVideoLoadedFraction() * this.ytPlayer.getDuration();\n\n return videojs.createTimeRange(0, bufferedEnd);\n }\n\n // TODO: Can we really do something with this on YouTUbe?\n preload() { }\n load() { }\n reset() { }\n networkState() {\n if (!this.ytPlayer) {\n return 0; //NETWORK_EMPTY\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //NETWORK_EMPTY\n case 3: //buffering\n return 2; //NETWORK_LOADING\n default:\n return 1; //NETWORK_IDLE\n }\n }\n readyState() {\n if (!this.ytPlayer) {\n return 0; //HAVE_NOTHING\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //HAVE_NOTHING\n case 5: //video cued\n return 1; //HAVE_METADATA\n case 3: //buffering\n return 2; //HAVE_CURRENT_DATA\n default:\n return 4; //HAVE_ENOUGH_DATA\n }\n }\n\n supportsFullScreen() {\n if (typeof document === 'undefined') {\n return\n }\n return document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled;\n }\n\n // Tries to get the highest resolution thumbnail available for the video\n checkHighResPoster() {\n var uri = 'https://img.youtube.com/vi/' + this.url.videoId + '/maxresdefault.jpg';\n\n try {\n var image = new Image();\n image.onload = function () {\n // Onload may still be called if YouTube returns the 120x90 error thumbnail\n if ('naturalHeight' in image) {\n if (image.naturalHeight <= 90 || image.naturalWidth <= 120) {\n return;\n }\n } else if (image.height <= 90 || image.width <= 120) {\n return;\n }\n\n this.poster_ = uri;\n this.trigger('posterchange');\n }.bind(this);\n image.onerror = function () { };\n image.src = uri;\n }\n catch (e) { }\n }\n }\n\n Youtube.isSupported = function () {\n return true;\n };\n\n Youtube.canPlaySource = function (e) {\n return Youtube.canPlayType(e.type);\n };\n\n Youtube.canPlayType = function (e) {\n return (e === 'video/youtube');\n };\n\n Youtube.parseUrl = function (url) {\n var result = {\n videoId: null\n };\n\n var regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\n var match = url.match(regex);\n\n if (match && match[2].length === 11) {\n result.videoId = match[2];\n }\n\n var regPlaylist = /[?&]list=([^#\\&\\?]+)/;\n match = url.match(regPlaylist);\n\n if (match && match[1]) {\n result.listId = match[1];\n }\n\n return result;\n };\n\n function apiLoaded() {\n YT.ready(function () {\n Youtube.isApiReady = true;\n\n for (var i = 0; i < Youtube.apiReadyQueue.length; ++i) {\n Youtube.apiReadyQueue[i].initYTPlayer();\n }\n });\n }\n\n function loadScript(src, callback) {\n if (typeof document === 'undefined') {\n return\n }\n var loaded = false;\n var tag = document.createElement('script');\n var firstScriptTag = document.getElementsByTagName('script')[0];\n if (!firstScriptTag) {\n // when loaded in jest without jsdom setup it doesn't get any element.\n // In jest it doesn't really make sense to do anything, because no one is watching youtube in jest\n return;\n }\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n tag.onload = function () {\n if (!loaded) {\n loaded = true;\n callback();\n }\n };\n tag.onreadystatechange = function () {\n if (!loaded && (this.readyState === 'complete' || this.readyState === 'loaded')) {\n loaded = true;\n callback();\n }\n };\n tag.src = src;\n }\n\n function injectCss() {\n if (typeof document === 'undefined') {\n return\n }\n var css = // iframe blocker to catch mouse events\n '.vjs-youtube .vjs-iframe-blocker { display: none; }' +\n '.vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }' +\n '.vjs-youtube .vjs-poster { background-size: cover; }' +\n '.vjs-youtube-mobile .vjs-big-play-button { display: none; }';\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n\n Youtube.apiReadyQueue = [];\n\n if (typeof document !== 'undefined') {\n loadScript('https://www.youtube.com/iframe_api', apiLoaded);\n injectCss();\n }\n\n // Older versions of VJS5 doesn't have the registerTech function\n if (typeof videojs.registerTech !== 'undefined') {\n videojs.registerTech('Youtube', Youtube);\n } else {\n videojs.registerComponent('Youtube', Youtube);\n }\n}\n\nexport { initYoutubePlugin }"],"names":[],"mappings":"AAAA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACK,MAAC,iBAAiB,GAAG,CAAC,OAAO,KAAK;;AAEvC,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,iBAAiB;AACjF,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;;AAEtC,EAAE,MAAM,OAAO,SAAS,IAAI,CAAC;;AAE7B,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE;AAChC,MAAM,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;;AAE3B,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;AACpC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;;AAE7C;AACA;AACA,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY;AAClC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE;AACtB,UAAU,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,cAAc;;AAEzD,UAAU,IAAI,WAAW,EAAE;AAC3B,YAAY,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,IAAI,qBAAqB;AAClE;;AAEA,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE;AAClC,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,WAAW,MAAM;AACjB,YAAY,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5C;AACA;AACA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB;;AAEA,IAAI,OAAO,GAAG;AACd,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzB;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACrC,UAAU,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACnC;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACnC,UAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACjC;AACA,OAAO,MAAM;AACb;AACA,QAAQ,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;AACvD,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAC1B,UAAU,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAChD;AACA;AACA,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI;;AAE1B,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AAC1D,SAAS,OAAO,CAAC,cAAc,EAAE,EAAE;AACnC,SAAS,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;AAC3C,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;;AAE/C;AACA,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC;;AAEA,IAAI,QAAQ,GAAG;AACf,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AAC3C,QAAQ;AACR;AACA,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC7C,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAClD,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,uDAAuD,CAAC;AACxF,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC;;AAE3C,MAAM,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACpD,MAAM,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC;;AAEjC,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AACrD,QAAQ,IAAI,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACtD,QAAQ,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC;AAC9D,QAAQ,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,uDAAuD,CAAC;;AAEjG;AACA,QAAQ,UAAU,CAAC,OAAO,GAAG,YAAY;AACzC,UAAU,IAAI,CAAC,KAAK,EAAE;AACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEpB,QAAQ,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC;AAC1C;;AAEA,MAAM,OAAO,UAAU;AACvB;;AAEA,IAAI,YAAY,GAAG;AACnB,MAAM,IAAI,UAAU,GAAG;AACvB,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,cAAc,EAAE,CAAC;AACzB,QAAQ,GAAG,EAAE,CAAC;AACd,QAAQ,QAAQ,EAAE,CAAC;AACnB,QAAQ,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG;AACvC,OAAO;;AAEP;AACA;AACA;AACA;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;AACzD,QAAQ,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACpD;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,WAAW,EAAE;AAClE,QAAQ,UAAU,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACtE;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;AAC3D,QAAQ,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU;AACtD;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,WAAW,EAAE;AAC1D,QAAQ,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS;AACtD;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,EAAE;AACtD,QAAQ,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC9C;;AAEA,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;AAChC;AACA,QAAQ,UAAU,CAAC,EAAE,GAAG,CAAC;AACzB,OAAO,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,WAAW,EAAE;AAC1D,QAAQ,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE;AACxC;;AAEA,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;AAC3D,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;AACvE,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACnD;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,WAAW,EAAE;AACpD,QAAQ,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG;AAC1C;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,WAAW,EAAE;AACnD,QAAQ,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE;AACxC,OAAO,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;AAChE;AACA,QAAQ,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3D;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,WAAW,EAAE;AAClE,QAAQ,UAAU,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACtE;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;AACrD,QAAQ,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;AAC5C,OAAO,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE;AACrE,QAAQ,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;AACzC;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;AACzD,QAAQ,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACpD;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,WAAW,EAAE;AAC/D,QAAQ,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc;AAChE;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;AACzD,QAAQ,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACpD;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,WAAW,EAAE;AAC5D,QAAQ,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW;AAC1D;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,WAAW,EAAE;AACpD,QAAQ,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG;AAC1C;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE;AACzD,QAAQ,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACpD;;AAEA,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AAC7D,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC;AAC3E,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACvD;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,EAAE;AACtD,QAAQ,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC9C;;AAEA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,EAAE;AACtD,QAAQ,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC9C;;AAEA;AACA,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,WAAW,EAAE;AAC3D,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU;AACjD,QAAQ,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACvD,UAAU,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;AAC3C,SAAS,CAAC;AACV;;AAEA,MAAM,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI;AAC7D,MAAM,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI;;AAEvC,MAAM,IAAI,YAAY,GAAG;AACzB,QAAQ,OAAO,EAAE,IAAI,CAAC,aAAa;AACnC,QAAQ,UAAU,EAAE,UAAU;AAC9B,QAAQ,MAAM,EAAE;AAChB,UAAU,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,UAAU,uBAAuB,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC;AAChF,UAAU,oBAAoB,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1E,UAAU,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5D,UAAU,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9D,UAAU,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI;AAC/C;AACA,OAAO;;AAEP,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,yBAAyB,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE;AACrH,QAAQ,YAAY,CAAC,IAAI,GAAG,kCAAkC;AAC9D;;AAEA,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;AACvE;;AAEA,IAAI,aAAa,GAAG;AACpB,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC/B,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B;;AAEA,MAAM,IAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,yBAAyB,EAAE;AACnE,MAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI;AACxC;;AAEA,MAAM,IAAI,CAAC,YAAY,GAAG,IAAI;AAC9B,MAAM,IAAI,CAAC,YAAY,EAAE;;AAEzB,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,OAAO,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AAClC,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC5C,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO;AAC7C;AACA;;AAEA,IAAI,6BAA6B,GAAG;;AAEpC;;AAEA,IAAI,0BAA0B,GAAG;AACjC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAChC;;AAEA,IAAI,mBAAmB,CAAC,CAAC,EAAE;AAC3B,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI;;AAExB,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE;AACxD,QAAQ;AACR;;AAEA,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK;;AAE5B,MAAM,QAAQ,KAAK;AACnB,QAAQ,KAAK,CAAC,CAAC;AACf,UAAU,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AACnC,UAAU,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACxC,UAAU,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACxC,UAAU,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACpC,UAAU;;AAEV,QAAQ,KAAK,EAAE,CAAC,WAAW,CAAC,KAAK;AACjC,UAAU,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC/B,UAAU;;AAEV,QAAQ,KAAK,EAAE,CAAC,WAAW,CAAC,OAAO;AACnC,UAAU,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACpC,UAAU,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;AACxC,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACjC,UAAU,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;AAE9B,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B;AACA,UAAU;;AAEV,QAAQ,KAAK,EAAE,CAAC,WAAW,CAAC,MAAM;AAClC,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACjC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;AAC9B,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,WAAW,MAAM;AACjB,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACjC;AACA,UAAU;;AAEV,QAAQ,KAAK,EAAE,CAAC,WAAW,CAAC,SAAS;AACrC,UAAU,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;AAC5C,UAAU,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;AACzC,UAAU;AACV;AACA;;AAEA,IAAI,oBAAoB,GAAG;AAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AAClC;;AAEA,IAAI,aAAa,CAAC,CAAC,EAAE;AACrB,MAAM,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI;AAC/B,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC3B;;AAEA,IAAI,KAAK,GAAG;AACZ,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;AACzC,MAAM,QAAQ,IAAI,CAAC,WAAW;AAC9B,QAAQ,KAAK,CAAC;AACd,UAAU,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAE;;AAEhF,QAAQ,KAAK,CAAC;AACd,QAAQ,KAAK,GAAG;AAChB,UAAU,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,EAAE;;AAEpE,QAAQ,KAAK,GAAG;AAChB,QAAQ,KAAK,GAAG;AAChB,UAAU,OAAO;AACjB,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,OAAO,EAAE;AACrB,WAAW;AACX;;AAEA,MAAM,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE;AACxF;;AAEA,IAAI,cAAc,CAAC,EAAE,EAAE;AACvB,MAAM,IAAI,OAAO,GAAG;AACpB,QAAQ,OAAO,EAAE;AACjB,OAAO;AACP,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC/B,QAAQ,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK;AAClD;AACA,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC7B,QAAQ,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG;AAC9C;AACA,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC1C;;AAEA,IAAI,aAAa,CAAC,EAAE,EAAE;AACtB,MAAM,IAAI,OAAO,GAAG;AACpB,QAAQ,OAAO,EAAE;AACjB,OAAO;AACP,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC/B,QAAQ,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK;AAClD;AACA,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;AAC7B,QAAQ,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG;AAC9C;AACA,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;AACzC;;AAEA,IAAI,GAAG,CAAC,GAAG,EAAE;AACb,MAAM,IAAI,GAAG,EAAE;AACf,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACjC;;AAEA,MAAM,OAAO,IAAI,CAAC,MAAM;AACxB;;AAEA,IAAI,MAAM,GAAG;AACb;AACA;AACA,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQ,OAAO,IAAI;AACnB;;AAEA,MAAM,OAAO,IAAI,CAAC,OAAO;AACzB;;AAEA,IAAI,SAAS,CAAC,MAAM,EAAE;AACtB,MAAM,IAAI,CAAC,OAAO,GAAG,MAAM;AAC3B;;AAEA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;AAClC,QAAQ;AACR;;AAEA,MAAM,OAAO,IAAI,CAAC,WAAW;AAC7B,MAAM,IAAI,CAAC,MAAM,GAAG,MAAM;AAC1B,MAAM,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;;AAE7C,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACjC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AAC9B;AACA,UAAU,IAAI,CAAC,OAAO,GAAG,6BAA6B,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ;AACpF,UAAU,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;;AAEtC;AACA,UAAU,IAAI,CAAC,kBAAkB,EAAE;AACnC;AACA;;AAEA,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE;AAClD,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,UAAU,IAAI,CAAC,IAAI,EAAE;AACrB,SAAS,MAAM;AACf,UAAU,IAAI,CAAC,WAAW,GAAG,IAAI;AACjC;AACA,OAAO,MAAM,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AAC1D,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC9C,UAAU,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO;AAC/C,SAAS,MAAM;AACf,UAAU,IAAI,CAAC,UAAU,GAAG,IAAI;AAChC;AACA;AACA;;AAEA,IAAI,QAAQ,GAAG;AACf,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACnC;;AAEA,IAAI,WAAW,CAAC,GAAG,EAAE;AACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG;AAClC;;AAEA,IAAI,IAAI,GAAG;AACX,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI;AAC/B;;AAEA,IAAI,OAAO,CAAC,GAAG,EAAE;AACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG;AAC9B;;AAEA,IAAI,IAAI,GAAG;AACX,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AAC1C,QAAQ;AACR;;AAEA,MAAM,IAAI,CAAC,mBAAmB,GAAG,KAAK;;AAEtC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AAC7B,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AACnD,YAAY,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACrC,WAAW,MAAM;AACjB,YAAY,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACvD,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM;AAC7C;AACA;;AAEA,QAAQ,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;AACrD,UAAU,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACnC,SAAS,MAAM;AACf,UAAU,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/C,UAAU,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO;AAC/C;AACA,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC/B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B;AACA;;AAEA,IAAI,KAAK,GAAG;AACZ,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAQ,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAClC;AACA;;AAEA,IAAI,MAAM,GAAG;AACb,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ;AAC3B,SAAS,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,WAAW,CAAC,SAAS;AACjG,UAAU,IAAI;AACd;;AAEA,IAAI,WAAW,GAAG;AAClB,MAAM,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;AAC/D;;AAEA,IAAI,cAAc,CAAC,OAAO,EAAE;AAC5B,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE;AACpD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE;AAChD;;AAEA,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3B,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,MAAM,EAAE;AAChD;;AAEA,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;AACzC,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAChC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC7B,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI;;AAE3B;AACA;AACA,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE;AACvF,QAAQ,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC;AACtD,QAAQ,IAAI,CAAC,0BAA0B,GAAG,WAAW,CAAC,YAAY;AAClE,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC3E;AACA;AACA,YAAY,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC;AAC1D,WAAW,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,cAAc,EAAE;AACjE,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACtC,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B;AACA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;AAC1B;AACA;;AAEA,IAAI,OAAO,GAAG;AACd,MAAM,OAAO,IAAI,CAAC,SAAS;AAC3B;;AAEA,IAAI,QAAQ,GAAG;AACf,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ,OAAO,OAAO,CAAC,eAAe,EAAE;AACxC;;AAEA,MAAM,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AACpE;;AAEA,IAAI,QAAQ,GAAG;AACf,MAAM,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC;AACpD,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK;;AAE5B,MAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACpC,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB;;AAEA,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC5B;;AAEA,IAAI,YAAY,GAAG;AACnB,MAAM,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;AAChE;;AAEA,IAAI,eAAe,CAAC,aAAa,EAAE;AACnC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ;AACR;;AAEA,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC;AAClD;;AAEA,IAAI,QAAQ,GAAG;AACf,MAAM,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;AAC5D;;AAEA,IAAI,UAAU,GAAG;AACjB,MAAM,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AAC3C;;AAEA,IAAI,KAAK,GAAG;AACZ,MAAM,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,WAAW,CAAC,KAAK,IAAI,KAAK;AAC9E;;AAEA,IAAI,MAAM,GAAG;AACb,MAAM,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC;AAClE;;AAEA,IAAI,SAAS,CAAC,gBAAgB,EAAE;AAChC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ;AACR;;AAEA,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,GAAG,KAAK,CAAC;AACvD;;AAEA,IAAI,KAAK,GAAG;AACZ,MAAM,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK;AAC5D;;AAEA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ;AACR;AACA,WAAW;AACX,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACxB;;AAEA,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AAC9B;AACA,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY;AAClC,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AACpC,OAAO,EAAE,EAAE,CAAC;AACZ;;AAEA,IAAI,QAAQ,GAAG;AACf,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE;AACnE,QAAQ,OAAO,OAAO,CAAC,eAAe,EAAE;AACxC;;AAEA,MAAM,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;;AAE5F,MAAM,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,WAAW,CAAC;AACpD;;AAEA;AACA,IAAI,OAAO,GAAG;AACd,IAAI,IAAI,GAAG;AACX,IAAI,KAAK,GAAG;AACZ,IAAI,YAAY,GAAG;AACnB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ,OAAO,CAAC,CAAC;AACjB;AACA,MAAM,QAAQ,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC5C,QAAQ,KAAK,CAAC,CAAC;AACf,UAAU,OAAO,CAAC,CAAC;AACnB,QAAQ,KAAK,CAAC;AACd,UAAU,OAAO,CAAC,CAAC;AACnB,QAAQ;AACR,UAAU,OAAO,CAAC,CAAC;AACnB;AACA;AACA,IAAI,UAAU,GAAG;AACjB,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC1B,QAAQ,OAAO,CAAC,CAAC;AACjB;AACA,MAAM,QAAQ,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;AAC5C,QAAQ,KAAK,CAAC,CAAC;AACf,UAAU,OAAO,CAAC,CAAC;AACnB,QAAQ,KAAK,CAAC;AACd,UAAU,OAAO,CAAC,CAAC;AACnB,QAAQ,KAAK,CAAC;AACd,UAAU,OAAO,CAAC,CAAC;AACnB,QAAQ;AACR,UAAU,OAAO,CAAC,CAAC;AACnB;AACA;;AAEA,IAAI,kBAAkB,GAAG;AACzB,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AAC3C,QAAQ;AACR;AACA,MAAM,OAAO,QAAQ,CAAC,iBAAiB;AACvC,QAAQ,QAAQ,CAAC,uBAAuB;AACxC,QAAQ,QAAQ,CAAC,oBAAoB;AACrC,QAAQ,QAAQ,CAAC,mBAAmB;AACpC;;AAEA;AACA,IAAI,kBAAkB,GAAG;AACzB,MAAM,IAAI,GAAG,GAAG,6BAA6B,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oBAAoB;;AAEvF,MAAM,IAAI;AACV,QAAQ,IAAI,KAAK,GAAG,IAAI,KAAK,EAAE;AAC/B,QAAQ,KAAK,CAAC,MAAM,GAAG,YAAY;AACnC;AACA,UAAU,IAAI,eAAe,IAAI,KAAK,EAAE;AACxC,YAAY,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,IAAI,KAAK,CAAC,YAAY,IAAI,GAAG,EAAE;AACxE,cAAc;AACd;AACA,WAAW,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,IAAI,GAAG,EAAE;AAC/D,YAAY;AACZ;;AAEA,UAAU,IAAI,CAAC,OAAO,GAAG,GAAG;AAC5B,UAAU,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;AACtC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACpB,QAAQ,KAAK,CAAC,OAAO,GAAG,YAAY,GAAG;AACvC,QAAQ,KAAK,CAAC,GAAG,GAAG,GAAG;AACvB;AACA,MAAM,OAAO,CAAC,EAAE;AAChB;AACA;;AAEA,EAAE,OAAO,CAAC,WAAW,GAAG,YAAY;AACpC,IAAI,OAAO,IAAI;AACf,GAAG;;AAEH,EAAE,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE;AACvC,IAAI,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,GAAG;;AAEH,EAAE,OAAO,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE;AACrC,IAAI,QAAQ,CAAC,KAAK,eAAe;AACjC,GAAG;;AAEH,EAAE,OAAO,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE;AACpC,IAAI,IAAI,MAAM,GAAG;AACjB,MAAM,OAAO,EAAE;AACf,KAAK;;AAEL,IAAI,IAAI,KAAK,GAAG,iEAAiE;AACjF,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEhC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,EAAE;AACzC,MAAM,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;AAC/B;;AAEA,IAAI,IAAI,WAAW,GAAG,sBAAsB;AAC5C,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC;;AAElC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAC3B,MAAM,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAC9B;;AAEA,IAAI,OAAO,MAAM;AACjB,GAAG;;AAEH,EAAE,SAAS,SAAS,GAAG;AACvB,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY;AACzB,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI;;AAE/B,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;AAC7D,QAAQ,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE;AAC/C;AACA,KAAK,CAAC;AACN;;AAEA,EAAE,SAAS,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE;AACrC,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM;AACN;AACA,IAAI,IAAI,MAAM,GAAG,KAAK;AACtB,IAAI,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC9C,IAAI,IAAI,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACnE,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB;AACA;AACA,MAAM;AACN;AACA,IAAI,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,cAAc,CAAC;AAC/D,IAAI,GAAG,CAAC,MAAM,GAAG,YAAY;AAC7B,MAAM,IAAI,CAAC,MAAM,EAAE;AACnB,QAAQ,MAAM,GAAG,IAAI;AACrB,QAAQ,QAAQ,EAAE;AAClB;AACA,KAAK;AACL,IAAI,GAAG,CAAC,kBAAkB,GAAG,YAAY;AACzC,MAAM,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,EAAE;AACvF,QAAQ,MAAM,GAAG,IAAI;AACrB,QAAQ,QAAQ,EAAE;AAClB;AACA,KAAK;AACL,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG;AACjB;;AAEA,EAAE,SAAS,SAAS,GAAG;AACvB,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM;AACN;AACA,IAAI,IAAI,GAAG;AACX,MAAM,qDAAqD;AAC3D,MAAM,wEAAwE;AAC9E,MAAM,sDAAsD;AAC5D,MAAM,6DAA6D;;AAEnE,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;;AAExE,IAAI,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC/C,IAAI,KAAK,CAAC,IAAI,GAAG,UAAU;;AAE3B,IAAI,IAAI,KAAK,CAAC,UAAU,EAAE;AAC1B,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG;AACpC,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACrD;;AAEA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B;;AAEA,EAAE,OAAO,CAAC,aAAa,GAAG,EAAE;;AAE5B,EAAE,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACvC,IAAI,UAAU,CAAC,oCAAoC,EAAE,SAAS,CAAC;AAC/D,IAAI,SAAS,EAAE;AACf;;AAEA;AACA,EAAE,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,WAAW,EAAE;AACnD,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC;AAC5C,GAAG,MAAM;AACT,IAAI,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC;AACjD;AACA;;;;"}
1
+ {"version":3,"file":"youtube-video.js","sources":["../../../src/js/plugins/util/youtube-video.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * This file is a modified version of Benoit Tremblay's VideoJS YouTube plugin \n * Main repository: https://github.com/videojs/videojs-youtube\n * Copyright (c) 2014-2015 Benoit Tremblay <trembl.ben@gmail.com>\n * Licensed under MIT license (https://github.com/videojs/videojs-youtube?tab=readme-ov-file#license)\n * --------------------------------------------------------------------------\n */\n\n/*global define, YT*/\nconst initYoutubePlugin = (videojs) => {\n\n const _isOnMobile = videojs.browser.IS_IOS || videojs.browser.IS_NATIVE_ANDROID;\n const Tech = videojs.getTech('Tech');\n\n class Youtube extends Tech {\n\n constructor(options, ready) {\n super(options, ready);\n\n this.setPoster(options.poster);\n this.setSrc(this.options_.source, true);\n\n // Set the vjs-youtube class to the player\n // Parent is not set yet so we have to wait a tick\n this.setTimeout(function () {\n if (this.el_) {\n this.el_.parentNode.className += ' vjs-youtube';\n\n if (_isOnMobile) {\n this.el_.parentNode.className += ' vjs-youtube-mobile';\n }\n\n if (Youtube.isApiReady) {\n this.initYTPlayer();\n } else {\n Youtube.apiReadyQueue.push(this);\n }\n }\n }.bind(this));\n }\n\n dispose() {\n if (this.ytPlayer) {\n //Dispose of the YouTube Player\n if (this.ytPlayer.stopVideo) {\n this.ytPlayer.stopVideo();\n }\n if (this.ytPlayer.destroy) {\n this.ytPlayer.destroy();\n }\n } else {\n //YouTube API hasn't finished loading or the player is already disposed\n var index = Youtube.apiReadyQueue.indexOf(this);\n if (index !== -1) {\n Youtube.apiReadyQueue.splice(index, 1);\n }\n }\n this.ytPlayer = null;\n\n this.el_.parentNode.className = this.el_.parentNode.className\n .replace(' vjs-youtube', '')\n .replace(' vjs-youtube-mobile', '');\n this.el_.parentNode.removeChild(this.el_);\n\n //Needs to be called after the YouTube player is destroyed, otherwise there will be a null reference exception\n Tech.prototype.dispose.call(this);\n }\n\n createEl() {\n if (typeof document === 'undefined') {\n return\n }\n var div = document.createElement('div');\n div.setAttribute('id', this.options_.techId);\n div.setAttribute('style', 'width:100%;height:100%;top:0;left:0;position:absolute');\n div.setAttribute('class', 'vjs-tech');\n\n var divWrapper = document.createElement('div');\n divWrapper.appendChild(div);\n\n if (!_isOnMobile && !this.options_.ytControls) {\n var divBlocker = document.createElement('div');\n divBlocker.setAttribute('class', 'vjs-iframe-blocker');\n divBlocker.setAttribute('style', 'position:absolute;top:0;left:0;width:100%;height:100%');\n\n // In case the blocker is still there and we want to pause\n divBlocker.onclick = function () {\n this.pause();\n }.bind(this);\n\n divWrapper.appendChild(divBlocker);\n }\n\n return divWrapper;\n }\n\n initYTPlayer() {\n var playerVars = {\n controls: 0,\n modestbranding: 1,\n rel: 0,\n showinfo: 0,\n loop: this.options_.loop ? 1 : 0\n };\n\n // Let the user set any YouTube parameter\n // https://developers.google.com/youtube/player_parameters?playerVersion=HTML5#Parameters\n // To use YouTube controls, you must use ytControls instead\n // To use the loop or autoplay, use the video.js settings\n\n if (typeof this.options_.autohide !== 'undefined') {\n playerVars.autohide = this.options_.autohide;\n }\n\n if (typeof this.options_['cc_load_policy'] !== 'undefined') {\n playerVars['cc_load_policy'] = this.options_['cc_load_policy'];\n }\n\n if (typeof this.options_.ytControls !== 'undefined') {\n playerVars.controls = this.options_.ytControls;\n }\n\n if (typeof this.options_.disablekb !== 'undefined') {\n playerVars.disablekb = this.options_.disablekb;\n }\n\n if (typeof this.options_.color !== 'undefined') {\n playerVars.color = this.options_.color;\n }\n\n if (!playerVars.controls) {\n // Let video.js handle the fullscreen unless it is the YouTube native controls\n playerVars.fs = 0;\n } else if (typeof this.options_.fs !== 'undefined') {\n playerVars.fs = this.options_.fs;\n }\n\n if (this.options_.source.src.indexOf('end=') !== -1) {\n var srcEndTime = this.options_.source.src.match(/end=([0-9]*)/);\n this.options_.end = parseInt(srcEndTime[1]);\n }\n\n if (typeof this.options_.end !== 'undefined') {\n playerVars.end = this.options_.end;\n }\n\n if (typeof this.options_.hl !== 'undefined') {\n playerVars.hl = this.options_.hl;\n } else if (typeof this.options_.language !== 'undefined') {\n // Set the YouTube player on the same language than video.js\n playerVars.hl = this.options_.language.substr(0, 2);\n }\n\n if (typeof this.options_['iv_load_policy'] !== 'undefined') {\n playerVars['iv_load_policy'] = this.options_['iv_load_policy'];\n }\n\n if (typeof this.options_.list !== 'undefined') {\n playerVars.list = this.options_.list;\n } else if (this.url && typeof this.url.listId !== 'undefined') {\n playerVars.list = this.url.listId;\n }\n\n if (typeof this.options_.listType !== 'undefined') {\n playerVars.listType = this.options_.listType;\n }\n\n if (typeof this.options_.modestbranding !== 'undefined') {\n playerVars.modestbranding = this.options_.modestbranding;\n }\n\n if (typeof this.options_.playlist !== 'undefined') {\n playerVars.playlist = this.options_.playlist;\n }\n\n if (typeof this.options_.playsinline !== 'undefined') {\n playerVars.playsinline = this.options_.playsinline;\n }\n\n if (typeof this.options_.rel !== 'undefined') {\n playerVars.rel = this.options_.rel;\n }\n\n if (typeof this.options_.showinfo !== 'undefined') {\n playerVars.showinfo = this.options_.showinfo;\n }\n\n if (this.options_.source.src.indexOf('start=') !== -1) {\n var srcStartTime = this.options_.source.src.match(/start=([0-9]*)/);\n this.options_.start = parseInt(srcStartTime[1]);\n }\n\n if (typeof this.options_.start !== 'undefined') {\n playerVars.start = this.options_.start;\n }\n\n if (typeof this.options_.theme !== 'undefined') {\n playerVars.theme = this.options_.theme;\n }\n\n // Allow undocumented options to be passed along via customVars\n if (typeof this.options_.customVars !== 'undefined') {\n var customVars = this.options_.customVars;\n Object.keys(customVars).forEach(function (key) {\n playerVars[key] = customVars[key];\n });\n }\n\n this.activeVideoId = this.url ? this.url.videoId : null;\n this.activeList = playerVars.list;\n\n var playerConfig = {\n videoId: this.activeVideoId,\n playerVars: playerVars,\n events: {\n onReady: this.onPlayerReady.bind(this),\n onPlaybackQualityChange: this.onPlayerPlaybackQualityChange.bind(this),\n onPlaybackRateChange: this.onPlayerPlaybackRateChange.bind(this),\n onStateChange: this.onPlayerStateChange.bind(this),\n onVolumeChange: this.onPlayerVolumeChange.bind(this),\n onError: this.onPlayerError.bind(this)\n }\n };\n\n if (typeof this.options_.enablePrivacyEnhancedMode !== 'undefined' && this.options_.enablePrivacyEnhancedMode) {\n playerConfig.host = 'https://www.youtube-nocookie.com';\n }\n\n this.ytPlayer = new YT.Player(this.options_.techId, playerConfig);\n }\n\n onPlayerReady() {\n if (this.options_.muted) {\n this.ytPlayer.mute();\n }\n\n var playbackRates = this.ytPlayer.getAvailablePlaybackRates();\n if (playbackRates.length > 1) {\n this.featuresPlaybackRate = true;\n }\n\n this.playerReady_ = true;\n this.triggerReady();\n\n if (this.playOnReady) {\n this.play();\n } else if (this.cueOnReady) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n }\n\n onPlayerPlaybackQualityChange() {\n\n }\n\n onPlayerPlaybackRateChange() {\n this.trigger('ratechange');\n }\n\n onPlayerStateChange(e) {\n var state = e.data;\n\n if (state === this.lastState || this.errorNumber) {\n return;\n }\n\n this.lastState = state;\n\n switch (state) {\n case -1:\n this.trigger('loadstart');\n this.trigger('loadedmetadata');\n this.trigger('durationchange');\n this.trigger('ratechange');\n break;\n\n case YT.PlayerState.ENDED:\n this.trigger('ended');\n break;\n\n case YT.PlayerState.PLAYING:\n this.trigger('timeupdate');\n this.trigger('durationchange');\n this.trigger('playing');\n this.trigger('play');\n\n if (this.isSeeking) {\n this.onSeeked();\n }\n break;\n\n case YT.PlayerState.PAUSED:\n this.trigger('canplay');\n if (this.isSeeking) {\n this.onSeeked();\n } else {\n this.trigger('pause');\n }\n break;\n\n case YT.PlayerState.BUFFERING:\n this.player_.trigger('timeupdate');\n this.player_.trigger('waiting');\n break;\n }\n }\n\n onPlayerVolumeChange() {\n this.trigger('volumechange');\n }\n\n onPlayerError(e) {\n this.errorNumber = e.data;\n this.trigger('pause');\n this.trigger('error');\n }\n\n error() {\n var code = 1000 + this.errorNumber; // as smaller codes are reserved\n switch (this.errorNumber) {\n case 5:\n return { code: code, message: 'Error while trying to play the video' };\n\n case 2:\n case 100:\n return { code: code, message: 'Unable to find the video' };\n\n case 101:\n case 150:\n return {\n code: code,\n message: 'Playback on other Websites has been disabled by the video owner.'\n };\n }\n\n return { code: code, message: 'YouTube unknown error (' + this.errorNumber + ')' };\n }\n\n loadVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.loadVideoById(options);\n }\n\n cueVideoById_(id) {\n var options = {\n videoId: id\n };\n if (this.options_.start) {\n options.startSeconds = this.options_.start;\n }\n if (this.options_.end) {\n options.endSeconds = this.options_.end;\n }\n this.ytPlayer.cueVideoById(options);\n }\n\n src(src) {\n if (src) {\n this.setSrc({ src: src });\n }\n\n return this.source;\n }\n\n poster() {\n // You can't start programmaticlly a video with a mobile\n // through the iframe so we hide the poster and the play button (with CSS)\n if (_isOnMobile) {\n return null;\n }\n\n return this.poster_;\n }\n\n setPoster(poster) {\n this.poster_ = poster;\n }\n\n setSrc(source) {\n if (!source || !source.src) {\n return;\n }\n\n delete this.errorNumber;\n this.source = source;\n this.url = Youtube.parseUrl(source.src);\n\n if (!this.options_.poster) {\n if (this.url.videoId) {\n // Set the low resolution first\n this.poster_ = 'https://img.youtube.com/vi/' + this.url.videoId + '/0.jpg';\n this.trigger('posterchange');\n\n // Check if their is a high res\n this.checkHighResPoster();\n }\n }\n\n if (this.options_.autoplay && !_isOnMobile) {\n if (this.isReady_) {\n this.play();\n } else {\n this.playOnReady = true;\n }\n } else if (this.activeVideoId !== this.url.videoId) {\n if (this.isReady_) {\n this.cueVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n } else {\n this.cueOnReady = true;\n }\n }\n }\n\n autoplay() {\n return this.options_.autoplay;\n }\n\n setAutoplay(val) {\n this.options_.autoplay = val;\n }\n\n loop() {\n return this.options_.loop;\n }\n\n setLoop(val) {\n this.options_.loop = val;\n }\n\n play() {\n if (!this.url || !this.url.videoId) {\n return;\n }\n\n this.wasPausedBeforeSeek = false;\n\n if (this.isReady_) {\n if (this.url.listId) {\n if (this.activeList === this.url.listId) {\n this.ytPlayer.playVideo();\n } else {\n this.ytPlayer.loadPlaylist(this.url.listId);\n this.activeList = this.url.listId;\n }\n }\n\n if (this.activeVideoId === this.url.videoId) {\n this.ytPlayer.playVideo();\n } else {\n this.loadVideoById_(this.url.videoId);\n this.activeVideoId = this.url.videoId;\n }\n } else {\n this.trigger('waiting');\n this.playOnReady = true;\n }\n }\n\n pause() {\n if (this.ytPlayer) {\n this.ytPlayer.pauseVideo();\n }\n }\n\n paused() {\n return (this.ytPlayer) ?\n (this.lastState !== YT.PlayerState.PLAYING && this.lastState !== YT.PlayerState.BUFFERING)\n : true;\n }\n\n currentTime() {\n return this.ytPlayer ? this.ytPlayer.getCurrentTime() : 0;\n }\n\n setCurrentTime(seconds) {\n if (this.lastState === YT.PlayerState.PAUSED) {\n this.timeBeforeSeek = this.currentTime();\n }\n\n if (!this.isSeeking) {\n this.wasPausedBeforeSeek = this.paused();\n }\n\n this.ytPlayer.seekTo(seconds, true);\n this.trigger('timeupdate');\n this.trigger('seeking');\n this.isSeeking = true;\n\n // A seek event during pause does not return an event to trigger a seeked event,\n // so run an interval timer to look for the currentTime to change\n if (this.lastState === YT.PlayerState.PAUSED && this.timeBeforeSeek !== seconds) {\n clearInterval(this.checkSeekedInPauseInterval);\n this.checkSeekedInPauseInterval = setInterval(function () {\n if (this.lastState !== YT.PlayerState.PAUSED || !this.isSeeking) {\n // If something changed while we were waiting for the currentTime to change,\n // clear the interval timer\n clearInterval(this.checkSeekedInPauseInterval);\n } else if (this.currentTime() !== this.timeBeforeSeek) {\n this.trigger('timeupdate');\n this.onSeeked();\n }\n }.bind(this), 250);\n }\n }\n\n seeking() {\n return this.isSeeking;\n }\n\n seekable() {\n if (!this.ytPlayer) {\n return videojs.createTimeRange();\n }\n\n return videojs.createTimeRange(0, this.ytPlayer.getDuration());\n }\n\n onSeeked() {\n clearInterval(this.checkSeekedInPauseInterval);\n this.isSeeking = false;\n\n if (this.wasPausedBeforeSeek) {\n this.pause();\n }\n\n this.trigger('seeked');\n }\n\n playbackRate() {\n return this.ytPlayer ? this.ytPlayer.getPlaybackRate() : 1;\n }\n\n setPlaybackRate(suggestedRate) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setPlaybackRate(suggestedRate);\n }\n\n duration() {\n return this.ytPlayer ? this.ytPlayer.getDuration() : 0;\n }\n\n currentSrc() {\n return this.source && this.source.src;\n }\n\n ended() {\n return this.ytPlayer ? (this.lastState === YT.PlayerState.ENDED) : false;\n }\n\n volume() {\n return this.ytPlayer ? this.ytPlayer.getVolume() / 100.0 : 1;\n }\n\n setVolume(percentAsDecimal) {\n if (!this.ytPlayer) {\n return;\n }\n\n this.ytPlayer.setVolume(percentAsDecimal * 100.0);\n }\n\n muted() {\n return this.ytPlayer ? this.ytPlayer.isMuted() : false;\n }\n\n setMuted(mute) {\n if (!this.ytPlayer) {\n return;\n }\n else {\n this.muted(true);\n }\n\n if (mute) {\n this.ytPlayer.mute();\n } else {\n this.ytPlayer.unMute();\n }\n this.setTimeout(function () {\n this.trigger('volumechange');\n }, 50);\n }\n\n buffered() {\n if (!this.ytPlayer || !this.ytPlayer.getVideoLoadedFraction) {\n return videojs.createTimeRange();\n }\n\n var bufferedEnd = this.ytPlayer.getVideoLoadedFraction() * this.ytPlayer.getDuration();\n\n return videojs.createTimeRange(0, bufferedEnd);\n }\n\n // TODO: Can we really do something with this on YouTUbe?\n preload() { }\n load() { }\n reset() { }\n networkState() {\n if (!this.ytPlayer) {\n return 0; //NETWORK_EMPTY\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //NETWORK_EMPTY\n case 3: //buffering\n return 2; //NETWORK_LOADING\n default:\n return 1; //NETWORK_IDLE\n }\n }\n readyState() {\n if (!this.ytPlayer) {\n return 0; //HAVE_NOTHING\n }\n switch (this.ytPlayer.getPlayerState()) {\n case -1: //unstarted\n return 0; //HAVE_NOTHING\n case 5: //video cued\n return 1; //HAVE_METADATA\n case 3: //buffering\n return 2; //HAVE_CURRENT_DATA\n default:\n return 4; //HAVE_ENOUGH_DATA\n }\n }\n\n supportsFullScreen() {\n if (typeof document === 'undefined') {\n return\n }\n return document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled;\n }\n\n // Tries to get the highest resolution thumbnail available for the video\n checkHighResPoster() {\n var uri = 'https://img.youtube.com/vi/' + this.url.videoId + '/maxresdefault.jpg';\n\n try {\n var image = new Image();\n image.onload = function () {\n // Onload may still be called if YouTube returns the 120x90 error thumbnail\n if ('naturalHeight' in image) {\n if (image.naturalHeight <= 90 || image.naturalWidth <= 120) {\n return;\n }\n } else if (image.height <= 90 || image.width <= 120) {\n return;\n }\n\n this.poster_ = uri;\n this.trigger('posterchange');\n }.bind(this);\n image.onerror = function () { };\n image.src = uri;\n }\n catch (e) { }\n }\n }\n\n Youtube.isSupported = function () {\n return true;\n };\n\n Youtube.canPlaySource = function (e) {\n return Youtube.canPlayType(e.type);\n };\n\n Youtube.canPlayType = function (e) {\n return (e === 'video/youtube');\n };\n\n Youtube.parseUrl = function (url) {\n var result = {\n videoId: null\n };\n\n var regex = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\n var match = url.match(regex);\n\n if (match && match[2].length === 11) {\n result.videoId = match[2];\n }\n\n var regPlaylist = /[?&]list=([^#\\&\\?]+)/;\n match = url.match(regPlaylist);\n\n if (match && match[1]) {\n result.listId = match[1];\n }\n\n return result;\n };\n\n function apiLoaded() {\n YT.ready(function () {\n Youtube.isApiReady = true;\n\n for (var i = 0; i < Youtube.apiReadyQueue.length; ++i) {\n Youtube.apiReadyQueue[i].initYTPlayer();\n }\n });\n }\n\n function loadScript(src, callback) {\n if (typeof document === 'undefined') {\n return\n }\n var loaded = false;\n var tag = document.createElement('script');\n var firstScriptTag = document.getElementsByTagName('script')[0];\n if (!firstScriptTag) {\n // when loaded in jest without jsdom setup it doesn't get any element.\n // In jest it doesn't really make sense to do anything, because no one is watching youtube in jest\n return;\n }\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n tag.onload = function () {\n if (!loaded) {\n loaded = true;\n callback();\n }\n };\n tag.onreadystatechange = function () {\n if (!loaded && (this.readyState === 'complete' || this.readyState === 'loaded')) {\n loaded = true;\n callback();\n }\n };\n tag.src = src;\n }\n\n function injectCss() {\n if (typeof document === 'undefined') {\n return\n }\n var css = // iframe blocker to catch mouse events\n '.vjs-youtube .vjs-iframe-blocker { display: none; }' +\n '.vjs-youtube.vjs-user-inactive .vjs-iframe-blocker { display: block; }' +\n '.vjs-youtube .vjs-poster { background-size: cover; }' +\n '.vjs-youtube-mobile .vjs-big-play-button { display: none; }';\n\n var head = document.head || document.getElementsByTagName('head')[0];\n\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n\n Youtube.apiReadyQueue = [];\n\n if (typeof document !== 'undefined') {\n loadScript('https://www.youtube.com/iframe_api', apiLoaded);\n injectCss();\n }\n\n // Older versions of VJS5 doesn't have the registerTech function\n if (typeof videojs.registerTech !== 'undefined') {\n videojs.registerTech('Youtube', Youtube);\n } else {\n videojs.registerComponent('Youtube', Youtube);\n }\n}\n\nexport { initYoutubePlugin }"],"names":[],"mappings":"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"}
@@ -1,9 +1,18 @@
1
- import BaseComponent from 'bootstrap/js/src/base-component.js';
2
- import SelectorEngine from 'bootstrap/js/src/dom/selector-engine';
3
- import Manipulator from 'bootstrap/js/src/dom/manipulator';
1
+ import BaseComponent from './base-component.js';
2
+ import SelectorEngine from './dom/selector-engine.js';
3
+ import Manipulator from './dom/manipulator.js';
4
4
  import videojs from 'video.js';
5
5
  import { initYoutubePlugin } from './util/youtube-video.js';
6
6
 
7
+ /**
8
+ * --------------------------------------------------------------------------
9
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
10
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
11
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
12
+ * --------------------------------------------------------------------------
13
+ */
14
+
15
+
7
16
  const NAME = 'videoplayer';
8
17
 
9
18
  const SELECTOR_TOGGLE = '[data-bs-video]';
@@ -149,11 +158,13 @@ class VideoPlayer extends BaseComponent {
149
158
  * ------------------------------------------------------------------------
150
159
  */
151
160
 
152
- const players = SelectorEngine.find(SELECTOR_TOGGLE);
153
- if (players.length > 0) {
154
- players.forEach((player) => {
155
- VideoPlayer.getOrCreateInstance(player);
156
- });
161
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') {
162
+ const players = SelectorEngine.find(SELECTOR_TOGGLE);
163
+ if (players.length > 0) {
164
+ players.forEach((player) => {
165
+ VideoPlayer.getOrCreateInstance(player);
166
+ });
167
+ }
157
168
  }
158
169
 
159
170
  export { VideoPlayer as default };
@@ -1 +1 @@
1
- {"version":3,"file":"videoplayer.js","sources":["../../src/js/plugins/videoplayer.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\nimport Manipulator from 'bootstrap/js/src/dom/manipulator'\nimport videojs from 'video.js'\nimport { initYoutubePlugin } from './util/youtube-video'\n\nconst NAME = 'videoplayer'\n\nconst SELECTOR_TOGGLE = '[data-bs-video]'\n\nconst itLang = {\n 'Audio Player': 'Lettore audio',\n 'Video Player': 'Lettore video',\n Play: 'Play',\n Pause: 'Pausa',\n Replay: 'Replay',\n 'Current Time': 'Orario attuale',\n Duration: 'Durata',\n 'Remaining Time': 'Tempo rimanente',\n 'Stream Type': 'Tipo di streaming',\n LIVE: 'LIVE',\n Loaded: 'Caricato',\n Progress: 'Stato',\n 'Progress Bar': 'Barra di avanzamento',\n 'progress bar timing: currentTime={1} duration={2}': '{1} di {2}',\n Fullscreen: 'Schermo intero',\n 'Exit Fullscreen': 'Chiudi Schermo intero',\n Mute: 'Disattiva l’audio',\n Unmute: 'Attiva l’audio',\n 'Playback Rate': 'Velocità di riproduzione',\n Subtitles: 'Sottotitoli',\n 'subtitles off': 'Senza sottotitoli',\n Captions: 'Sottotitoli non udenti',\n 'captions off': 'Senza sottotitoli non udenti',\n Chapters: 'Capitolo',\n Descriptions: 'Descrizioni',\n 'descriptions off': 'Descrizioni disattivate',\n 'Audio Track': 'Traccia audio',\n 'Volume Level': 'Livello del volume',\n 'You aborted the media playback': 'La riproduzione del filmato è stata interrotta.',\n 'A network error caused the media download to fail part-way.': 'Il download del filmato è stato interrotto a causa di un problema rete.',\n 'The media could not be loaded, either because the server or network failed or because the format is not supported.':\n 'Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.',\n 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.':\n 'La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.',\n 'No compatible source was found for this media.': 'Non ci sono fonti compatibili per questo filmato.',\n 'The media is encrypted and we do not have the keys to decrypt it.': 'Il contenuto multimediale è criptato e non disponiamo delle chiavi per decifrarlo.',\n 'Play Video': 'Riproduci il video',\n Close: 'Chiudi',\n 'Close Modal Dialog': 'Chiudi la finestra di dialogo',\n 'Modal Window': 'Finestra di dialogo',\n 'This is a modal window': 'Questa è una finestra di dialogo',\n 'This modal can be closed by pressing the Escape key or activating the close button.':\n 'Questa finestra di dialogo può essere chiusa premendo sul tasto Esc o attivando il pulsante di chiusura.',\n ', opens captions settings dialog': ', aprire i parametri della trascrizione dei sottotitoli',\n ', opens subtitles settings dialog': ', aprire i parametri dei sottotitoli',\n ', opens descriptions settings dialog': ', aprire i parametri delle descrizioni',\n ', selected': ', selezionato',\n 'captions settings': 'Parametri sottotitoli non udenti',\n 'subtitles settings': 'Parametri sottotitoli',\n 'descriptions settings': 'Parametri descrizioni',\n Text: 'Testo',\n White: 'Bianco',\n Black: 'Nero',\n Red: 'Rosso',\n Green: 'Verde',\n Blue: 'Blu',\n Yellow: 'Giallo',\n Magenta: 'Magenta',\n Cyan: 'Ciano',\n Background: 'Sfondo',\n Window: 'Finestra',\n Transparent: 'Trasparente',\n 'Semi-Transparent': 'Semi-Trasparente',\n Opaque: 'Opaco',\n 'Font Size': 'Dimensione dei caratteri',\n 'Text Edge Style': 'Stile dei bordi del testo',\n None: 'Nessuno',\n Uniform: 'Uniforme',\n 'Drop shadow': 'Ombra',\n 'Font Family': 'Carattere',\n 'Proportional Sans-Serif': 'Sans-Serif proporzionale',\n 'Monospace Sans-Serif': 'Sans-Serif monospaziato',\n 'Proportional Serif': 'Serif proporzionale',\n 'Monospace Serif': 'Serif monospaziato',\n 'Small Caps': 'Maiuscoletto',\n Reset: 'Reinizializza',\n 'restore all settings to the default values': 'Ripristina i valori predefiniti per tutti i parametri',\n Done: 'Fatto',\n 'Caption Settings Dialog': 'Finestra di dialogo dei parametri della trascrizione dei sottotitoli',\n 'Beginning of dialog window. Escape will cancel and close the window.':\n 'Inizio della finestra di dialogo. Il tasto Esc annullerà l’operazione e chiuderà la finestra.',\n 'End of dialog window.': 'Fine della finestra di dialogo.',\n '{1} is loading.': '{1} in fase di caricamento.',\n 'Exit Picture-in-Picture': 'Esci dalla modalità Picture-in-Picture',\n 'Picture-in-Picture': 'Picture-in-Picture',\n Color: 'Colore',\n Opacity: 'Opacità',\n 'Text Background': 'Sfondo testo',\n 'Caption Area Background': 'Sfondo area sottotitoli',\n 'Skip forward {1} seconds': 'Avanti {1} secondi',\n 'Skip backward {1} seconds': 'Indietro {1} secondi',\n}\n\nconst DEFAULT_CONFIG = { languages: { it: itLang }, language: 'it' }\n\nconst Default = {}\n\nif (typeof window !== 'undefined') {\n window.videojs = videojs\n}\n\nclass VideoPlayer extends BaseComponent {\n constructor(element, config) {\n super(element)\n element.classList.add('video-js', 'vjs-theme-bootstrap-italia', 'vjs-fluid', 'vjs-big-play-centered')\n this._config = this._getConfig(config)\n this.player = videojs(element, DEFAULT_CONFIG)\n }\n\n // Public\n\n setYouTubeVideo(url) {\n initYoutubePlugin(videojs)\n this.player.tech('youtube')\n this.player.src({ type: 'video/youtube', src: url })\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nconst players = SelectorEngine.find(SELECTOR_TOGGLE)\nif (players.length > 0) {\n players.forEach((player) => {\n VideoPlayer.getOrCreateInstance(player)\n })\n}\n\nexport default VideoPlayer\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"videoplayer.js","sources":["../../src/js/plugins/videoplayer.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport BaseComponent from './base-component.js'\n\nimport SelectorEngine from './dom/selector-engine'\nimport Manipulator from './dom/manipulator'\nimport videojs from 'video.js'\nimport { initYoutubePlugin } from './util/youtube-video'\n\nconst NAME = 'videoplayer'\n\nconst SELECTOR_TOGGLE = '[data-bs-video]'\n\nconst itLang = {\n 'Audio Player': 'Lettore audio',\n 'Video Player': 'Lettore video',\n Play: 'Play',\n Pause: 'Pausa',\n Replay: 'Replay',\n 'Current Time': 'Orario attuale',\n Duration: 'Durata',\n 'Remaining Time': 'Tempo rimanente',\n 'Stream Type': 'Tipo di streaming',\n LIVE: 'LIVE',\n Loaded: 'Caricato',\n Progress: 'Stato',\n 'Progress Bar': 'Barra di avanzamento',\n 'progress bar timing: currentTime={1} duration={2}': '{1} di {2}',\n Fullscreen: 'Schermo intero',\n 'Exit Fullscreen': 'Chiudi Schermo intero',\n Mute: 'Disattiva l’audio',\n Unmute: 'Attiva l’audio',\n 'Playback Rate': 'Velocità di riproduzione',\n Subtitles: 'Sottotitoli',\n 'subtitles off': 'Senza sottotitoli',\n Captions: 'Sottotitoli non udenti',\n 'captions off': 'Senza sottotitoli non udenti',\n Chapters: 'Capitolo',\n Descriptions: 'Descrizioni',\n 'descriptions off': 'Descrizioni disattivate',\n 'Audio Track': 'Traccia audio',\n 'Volume Level': 'Livello del volume',\n 'You aborted the media playback': 'La riproduzione del filmato è stata interrotta.',\n 'A network error caused the media download to fail part-way.': 'Il download del filmato è stato interrotto a causa di un problema rete.',\n 'The media could not be loaded, either because the server or network failed or because the format is not supported.':\n 'Il filmato non può essere caricato a causa di un errore nel server o nella rete o perché il formato non viene supportato.',\n 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.':\n 'La riproduzione del filmato è stata interrotta a causa di un file danneggiato o per l’utilizzo di impostazioni non supportate dal browser.',\n 'No compatible source was found for this media.': 'Non ci sono fonti compatibili per questo filmato.',\n 'The media is encrypted and we do not have the keys to decrypt it.': 'Il contenuto multimediale è criptato e non disponiamo delle chiavi per decifrarlo.',\n 'Play Video': 'Riproduci il video',\n Close: 'Chiudi',\n 'Close Modal Dialog': 'Chiudi la finestra di dialogo',\n 'Modal Window': 'Finestra di dialogo',\n 'This is a modal window': 'Questa è una finestra di dialogo',\n 'This modal can be closed by pressing the Escape key or activating the close button.':\n 'Questa finestra di dialogo può essere chiusa premendo sul tasto Esc o attivando il pulsante di chiusura.',\n ', opens captions settings dialog': ', aprire i parametri della trascrizione dei sottotitoli',\n ', opens subtitles settings dialog': ', aprire i parametri dei sottotitoli',\n ', opens descriptions settings dialog': ', aprire i parametri delle descrizioni',\n ', selected': ', selezionato',\n 'captions settings': 'Parametri sottotitoli non udenti',\n 'subtitles settings': 'Parametri sottotitoli',\n 'descriptions settings': 'Parametri descrizioni',\n Text: 'Testo',\n White: 'Bianco',\n Black: 'Nero',\n Red: 'Rosso',\n Green: 'Verde',\n Blue: 'Blu',\n Yellow: 'Giallo',\n Magenta: 'Magenta',\n Cyan: 'Ciano',\n Background: 'Sfondo',\n Window: 'Finestra',\n Transparent: 'Trasparente',\n 'Semi-Transparent': 'Semi-Trasparente',\n Opaque: 'Opaco',\n 'Font Size': 'Dimensione dei caratteri',\n 'Text Edge Style': 'Stile dei bordi del testo',\n None: 'Nessuno',\n Uniform: 'Uniforme',\n 'Drop shadow': 'Ombra',\n 'Font Family': 'Carattere',\n 'Proportional Sans-Serif': 'Sans-Serif proporzionale',\n 'Monospace Sans-Serif': 'Sans-Serif monospaziato',\n 'Proportional Serif': 'Serif proporzionale',\n 'Monospace Serif': 'Serif monospaziato',\n 'Small Caps': 'Maiuscoletto',\n Reset: 'Reinizializza',\n 'restore all settings to the default values': 'Ripristina i valori predefiniti per tutti i parametri',\n Done: 'Fatto',\n 'Caption Settings Dialog': 'Finestra di dialogo dei parametri della trascrizione dei sottotitoli',\n 'Beginning of dialog window. Escape will cancel and close the window.':\n 'Inizio della finestra di dialogo. Il tasto Esc annullerà l’operazione e chiuderà la finestra.',\n 'End of dialog window.': 'Fine della finestra di dialogo.',\n '{1} is loading.': '{1} in fase di caricamento.',\n 'Exit Picture-in-Picture': 'Esci dalla modalità Picture-in-Picture',\n 'Picture-in-Picture': 'Picture-in-Picture',\n Color: 'Colore',\n Opacity: 'Opacità',\n 'Text Background': 'Sfondo testo',\n 'Caption Area Background': 'Sfondo area sottotitoli',\n 'Skip forward {1} seconds': 'Avanti {1} secondi',\n 'Skip backward {1} seconds': 'Indietro {1} secondi',\n}\n\nconst DEFAULT_CONFIG = { languages: { it: itLang }, language: 'it' }\n\nconst Default = {}\n\nif (typeof window !== 'undefined') {\n window.videojs = videojs\n}\n\nclass VideoPlayer extends BaseComponent {\n constructor(element, config) {\n super(element)\n element.classList.add('video-js', 'vjs-theme-bootstrap-italia', 'vjs-fluid', 'vjs-big-play-centered')\n this._config = this._getConfig(config)\n this.player = videojs(element, DEFAULT_CONFIG)\n }\n\n // Public\n\n setYouTubeVideo(url) {\n initYoutubePlugin(videojs)\n this.player.tech('youtube')\n this.player.src({ type: 'video/youtube', src: url })\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...(typeof config === 'object' ? config : {}),\n }\n return config\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n const players = SelectorEngine.find(SELECTOR_TOGGLE)\n if (players.length > 0) {\n players.forEach((player) => {\n VideoPlayer.getOrCreateInstance(player)\n })\n }\n}\n\nexport default VideoPlayer\n"],"names":[],"mappings":"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"}
package/dist/version.js CHANGED
@@ -1,7 +1,14 @@
1
- // bootstrap italia version variable
2
- // useful to check for the current version
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
4
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
5
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
6
+ * --------------------------------------------------------------------------
7
+ */
3
8
 
4
- const BOOTSTRAP_ITALIA_VERSION = '2.12.1';
9
+ // NOTE:bootstrap italia version variable, useful to check for the current version
10
+
11
+ const BOOTSTRAP_ITALIA_VERSION = '2.13.1';
5
12
 
6
13
  export { BOOTSTRAP_ITALIA_VERSION as default };
7
14
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../src/js/version.js"],"sourcesContent":["// bootstrap italia version variable\n// useful to check for the current version\n\nconst BOOTSTRAP_ITALIA_VERSION = '2.12.1'\nexport default BOOTSTRAP_ITALIA_VERSION\n"],"names":[],"mappings":"AAAA;AACA;;AAEK,MAAC,wBAAwB,GAAG;;;;"}
1
+ {"version":3,"file":"version.js","sources":["../src/js/version.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// NOTE:bootstrap italia version variable, useful to check for the current version\n\nconst BOOTSTRAP_ITALIA_VERSION = '2.13.1'\nexport default BOOTSTRAP_ITALIA_VERSION\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEK,MAAC,wBAAwB,GAAG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bootstrap-italia",
3
- "version": "2.12.1",
3
+ "version": "2.13.1",
4
4
  "keywords": [
5
5
  "css",
6
6
  "sass",
@@ -37,7 +37,7 @@
37
37
  "fix-scss": "stylelint ./src/scss/ ./docs/assets/src/scss/ --fix",
38
38
  "format-code": "npx prettier --write . && eslint ./src/js ./docs/assets/src/js/ --fix --cache && stylelint ./src/scss/ ./docs/assets/src/scss/ --fix --cache",
39
39
  "release": "node scripts/release",
40
- "version": "node scripts/config-sync && git add _config.yml && git add src/js/version.js && git add src/scss/custom/_version.scss && conventional-changelog -p angular -i CHANGELOG.md -s && node scripts/wait-confirm && git add CHANGELOG.md",
40
+ "version": "node scripts/config-sync && git add _config.yml && git add src/js/version.js && git add src/scss/base/_version.scss && conventional-changelog -p angular -i CHANGELOG.md -s && node scripts/wait-confirm && git add CHANGELOG.md",
41
41
  "postversion": "echo \"You can now publish your tag with 'git push --follow-tags'\"",
42
42
  "test-htmlproofer": "JEKYLL_ENV=development bundle exec jekyll build --config _config.yml && bundle exec htmlproofer ./_site --assume-extension --check-html --allow-hash-href --disable-external --url-ignore /1.x/",
43
43
  "test-a11y": "npx pa11y-ci --sitemap http://localhost:4000/sitemap.xml --sitemap-find ^/ --sitemap-replace 'http://localhost:4000/'",
@@ -94,15 +94,14 @@
94
94
  "stylelint-scss": "^6.10.0"
95
95
  },
96
96
  "dependencies": {
97
- "@popperjs/core": "^2.11.2",
97
+ "@popperjs/core": "^2.11.6",
98
98
  "@splidejs/splide": "^3.6.12",
99
99
  "@types/bootstrap": "^5.2.6",
100
- "accessible-autocomplete": "^2.0.4",
100
+ "accessible-autocomplete": "^3.0.1",
101
101
  "animejs": "^3.2.1",
102
- "bootstrap": "5.2.3",
103
102
  "design-tokens-italia": "^1.1.1",
104
- "just-validate": "^3.10.0",
105
- "masonry-layout": "^4.2.2",
103
+ "just-validate": "^4.3.0",
104
+ "minimasonry": "^1.3.2",
106
105
  "progressbar.js": "^1.1.0",
107
106
  "uuid": "^8.3.2",
108
107
  "video.js": "^8.0.4"
@@ -1,3 +1,11 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
4
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
5
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
6
+ * --------------------------------------------------------------------------
7
+ */
8
+
1
9
  import '../scss/bootstrap-italia.scss'
2
10
 
3
11
  import { loadPlugin } from './load-plugin'
@@ -1,3 +1,11 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
4
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
5
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
6
+ * --------------------------------------------------------------------------
7
+ */
8
+
1
9
  export { default as CarouselBI } from './plugins/carousel-bi'
2
10
  export { default as InputNumber } from './plugins/input-number'
3
11
  export { default as Dimmer } from './plugins/dimmer'
@@ -15,7 +23,7 @@ export { default as InputSearchAutocomplete } from './plugins/input-search-autoc
15
23
  export { default as InputPassword } from './plugins/input-password'
16
24
  export { default as ProgressDonut } from './plugins/progress-donut'
17
25
  export { default as UploadDragDrop } from './plugins/upload-dragdrop'
18
- export { default as BackToTop } from './plugins/backToTop'
26
+ export { default as BackToTop } from './plugins/back-to-top'
19
27
  export { default as HistoryBack } from './plugins/history-back'
20
28
  export { default as Forward } from './plugins/forward'
21
29
  export { default as Masonry } from './plugins/masonry'
package/src/js/icons.js CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
4
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
5
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
6
+ * --------------------------------------------------------------------------
7
+ */
8
+
1
9
  import '../svg/it-android.svg'
2
10
  import '../svg/it-android-square.svg'
3
11
  import '../svg/it-apple.svg'
@@ -1,3 +1,11 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
4
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
5
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
6
+ * --------------------------------------------------------------------------
7
+ */
8
+
1
9
  export const loadPlugin = (module) => {
2
10
  // Trick Rollup.js to keep JavaScript.
3
11
  let obj = {
@@ -1,8 +1,16 @@
1
- import BaseComponent from 'bootstrap/js/src/base-component.js'
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
4
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
5
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
6
+ * --------------------------------------------------------------------------
7
+ */
2
8
 
3
- import { reflow } from 'bootstrap/js/src/util'
9
+ import BaseComponent from './base-component.js'
10
+
11
+ import { reflow } from './util/index'
4
12
  import { cookies } from './util/cookies'
5
- import SelectorEngine from 'bootstrap/js/src/dom/selector-engine'
13
+ import SelectorEngine from './dom/selector-engine'
6
14
 
7
15
  const NAME = 'acceptoverlay'
8
16
 
@@ -113,12 +121,12 @@ class AcceptOverlay extends BaseComponent {
113
121
  * Data Api implementation
114
122
  * ------------------------------------------------------------------------
115
123
  */
116
-
117
- const acceptOverlays = SelectorEngine.find(SELECTOR_DATA_TOGGLE)
118
- if (acceptOverlays.length > 0) {
119
- acceptOverlays.forEach((element) => {
120
- AcceptOverlay.getOrCreateInstance(element, { service: element.dataset.bsAcceptFrom })
121
- })
124
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') {
125
+ const acceptOverlays = SelectorEngine.find(SELECTOR_DATA_TOGGLE)
126
+ if (acceptOverlays.length > 0) {
127
+ acceptOverlays.forEach((element) => {
128
+ AcceptOverlay.getOrCreateInstance(element, { service: element.dataset.bsAcceptFrom })
129
+ })
130
+ }
122
131
  }
123
-
124
132
  export default AcceptOverlay
@@ -1,7 +1,15 @@
1
- import BaseComponent from 'bootstrap/js/src/base-component.js'
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
4
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
5
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
6
+ * --------------------------------------------------------------------------
7
+ */
8
+
9
+ import BaseComponent from './base-component.js'
2
10
 
3
- import EventHandler from 'bootstrap/js/src/dom/event-handler'
4
- import SelectorEngine from 'bootstrap/js/src/dom/selector-engine'
11
+ import EventHandler from './dom/event-handler'
12
+ import SelectorEngine from './dom/selector-engine'
5
13
 
6
14
  import { focusSimbling } from './util/dom'
7
15
 
@@ -82,28 +90,14 @@ class Accordion extends BaseComponent {
82
90
  * Data Api implementation
83
91
  * ------------------------------------------------------------------------
84
92
  */
85
- /*const accordions = SelectorEngine.find(SELECTOR_HEADBTN_WRAPPER)
86
- accordions.forEach((acc) => {
87
- Accordion.getOrCreateInstance(acc)
88
- })*/
89
-
90
- /*const accordionToggles = SelectorEngine.find(SELECTOR_HEADBTN)
91
- accordionToggles.forEach((toggle) => {
92
- EventHandler.one(toggle, EVENT_KEYDOWN_DATA_API, (evt) => {
93
- const parent = toggle.closest(SELECTOR_HEADBTN_WRAPPER)
93
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') {
94
+ EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_HEADBTN, function (evt) {
95
+ const parent = this.closest(SELECTOR_HEADBTN_WRAPPER)
94
96
  if (parent) {
95
97
  const accordion = Accordion.getOrCreateInstance(parent)
96
- accordion.handleKeyDown(evt.key, toggle, evt)
98
+ accordion.handleKeyDown(evt.key, this, evt)
97
99
  }
98
100
  })
99
- })*/
100
-
101
- EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_HEADBTN, function (evt) {
102
- const parent = this.closest(SELECTOR_HEADBTN_WRAPPER)
103
- if (parent) {
104
- const accordion = Accordion.getOrCreateInstance(parent)
105
- accordion.handleKeyDown(evt.key, this, evt)
106
- }
107
- })
101
+ }
108
102
 
109
103
  export default Accordion