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 +1 @@
1
- {"version":3,"file":"track-focus.js","sources":["../../src/js/plugins/track-focus.js"],"sourcesContent":["const DATA_MOUSE_FOCUS = 'data-focus-mouse'\nconst CLASS_NAME_MOUSE_FOCUS = 'focus--mouse'\n\nclass TrackFocus {\n constructor() {\n this._usingMouse = false\n\n this._bindEvents()\n }\n\n // Public\n\n // Private\n _bindEvents() {\n if (typeof document === 'undefined') {\n return\n }\n const events = ['keydown', 'mousedown']\n events.forEach((evtName) => {\n document.addEventListener(evtName, (evt) => {\n this._usingMouse = evt.type === 'mousedown'\n })\n })\n document.addEventListener('focusin', (evt) => {\n if (this._usingMouse) {\n if (evt.target) {\n evt.target.classList.add(CLASS_NAME_MOUSE_FOCUS)\n evt.target.setAttribute(DATA_MOUSE_FOCUS, true)\n }\n }\n })\n document.addEventListener('focusout', (evt) => {\n if (evt.target) {\n evt.target.classList.remove(CLASS_NAME_MOUSE_FOCUS)\n evt.target.setAttribute(DATA_MOUSE_FOCUS, false)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nnew TrackFocus()\n\nexport default TrackFocus\n"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG;AACzB,MAAM,sBAAsB,GAAG;;AAE/B,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,WAAW,GAAG;;AAEvB,IAAI,IAAI,CAAC,WAAW;AACpB;;AAEA;;AAEA;AACA,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM;AACN;AACA,IAAI,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,WAAW;AAC1C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAChC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClD,QAAQ,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,KAAK;AACxC,OAAO;AACP,KAAK;AACL,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK;AAClD,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;AACxB,UAAU,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB;AACzD,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI;AACxD;AACA;AACA,KAAK;AACL,IAAI,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK;AACnD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE;AACtB,QAAQ,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB;AAC1D,QAAQ,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK;AACvD;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,UAAU;;;;"}
1
+ {"version":3,"file":"track-focus.js","sources":["../../src/js/plugins/track-focus.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\nconst DATA_MOUSE_FOCUS = 'data-focus-mouse'\nconst CLASS_NAME_MOUSE_FOCUS = 'focus--mouse'\n\nclass TrackFocus {\n constructor() {\n this._usingMouse = false\n\n this._bindEvents()\n }\n\n // Public\n\n // Private\n _bindEvents() {\n if (typeof document === 'undefined') {\n return\n }\n const events = ['keydown', 'mousedown']\n events.forEach((evtName) => {\n document.addEventListener(evtName, (evt) => {\n this._usingMouse = evt.type === 'mousedown'\n })\n })\n document.addEventListener('focusin', (evt) => {\n if (this._usingMouse) {\n if (evt.target) {\n evt.target.classList.add(CLASS_NAME_MOUSE_FOCUS)\n evt.target.setAttribute(DATA_MOUSE_FOCUS, true)\n }\n }\n })\n document.addEventListener('focusout', (evt) => {\n if (evt.target) {\n evt.target.classList.remove(CLASS_NAME_MOUSE_FOCUS)\n evt.target.setAttribute(DATA_MOUSE_FOCUS, false)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nnew TrackFocus()\n\nexport default TrackFocus\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,gBAAgB,GAAG;AACzB,MAAM,sBAAsB,GAAG;;AAE/B,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,CAAC,WAAW,GAAG;;AAEvB,IAAI,IAAI,CAAC,WAAW;AACpB;;AAEA;;AAEA;AACA,EAAE,WAAW,GAAG;AAChB,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM;AACN;AACA,IAAI,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,WAAW;AAC1C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAChC,MAAM,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK;AAClD,QAAQ,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,KAAK;AACxC,OAAO;AACP,KAAK;AACL,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK;AAClD,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC5B,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;AACxB,UAAU,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB;AACzD,UAAU,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI;AACxD;AACA;AACA,KAAK;AACL,IAAI,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK;AACnD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE;AACtB,QAAQ,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB;AAC1D,QAAQ,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,KAAK;AACvD;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,UAAU;;;;"}
@@ -1,8 +1,6 @@
1
- import BaseComponent from 'bootstrap/js/src/base-component.js';
2
- import EventHandler from 'bootstrap/js/src/dom/event-handler';
3
- import SelectorEngine from 'bootstrap/js/src/dom/selector-engine';
4
-
5
- //import Manipulator from 'bootstrap/js/src/dom/manipulator'
1
+ import BaseComponent from './base-component.js';
2
+ import EventHandler from './dom/event-handler.js';
3
+ import SelectorEngine from './dom/selector-engine.js';
6
4
 
7
5
  const NAME = 'transfer';
8
6
  const DATA_KEY = 'bs.transfer';
@@ -11,7 +9,6 @@ const DATA_API_KEY = '.data-api';
11
9
 
12
10
  const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;
13
11
  const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`;
14
- //const EVENT_SCROLL = `scroll${EVENT_KEY}`
15
12
  const EVENT_CLICK = `click${EVENT_KEY}`;
16
13
 
17
14
  const CLASS_NAME_ACTIVE = 'active';
@@ -252,16 +249,14 @@ class Transfer extends BaseComponent {
252
249
  * ------------------------------------------------------------------------
253
250
  */
254
251
 
255
- /*SelectorEngine.find(SELECTOR_BLOCK).forEach((block) => {
256
- Transfer.getOrCreateInstance(block)
257
- })*/
258
-
259
- EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BLOCK + ' .form-check label', function () {
260
- Transfer.getOrCreateInstance(this.closest(SELECTOR_BLOCK));
261
- });
262
- EventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_BLOCK + ' .form-check label', function () {
263
- Transfer.getOrCreateInstance(this.closest(SELECTOR_BLOCK));
264
- });
252
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') {
253
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BLOCK + ' .form-check label', function () {
254
+ Transfer.getOrCreateInstance(this.closest(SELECTOR_BLOCK));
255
+ });
256
+ EventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_BLOCK + ' .form-check label', function () {
257
+ Transfer.getOrCreateInstance(this.closest(SELECTOR_BLOCK));
258
+ });
259
+ }
265
260
 
266
261
  export { Transfer as default };
267
262
  //# sourceMappingURL=transfer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sources":["../../src/js/plugins/transfer.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\n/*import {\n //defineJQueryPlugin,\n //getElementFromSelector,\n //isVisible,\n //reflow,\n //typeCheckConfig,\n getSelectorFromElement, //in base al bs-target\n} from 'bootstrap/js/src/util'*/\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n//import Manipulator from 'bootstrap/js/src/dom/manipulator'\n\nconst NAME = 'transfer'\nconst DATA_KEY = 'bs.transfer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n//const EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SOURCE = 'source'\nconst CLASS_NAME_SEMICHECKED = 'semi-checked'\n\nconst SELECTOR_BLOCK = '[data-bs-transfer]' //'.it-transfer-block'\nconst SELECTOR_BTN_TRANS = 'a.transfer'\nconst SELECTOR_BTN_TRANS_BACK = 'a.backtransfer'\nconst SELECTOR_BTN_RESET = 'a.reset'\nconst SELECTOR_HEAD = '.transfer-header'\nconst SELECTOR_HEAD_INPUT = '.transfer-header input'\nconst SELECTOR_HEAD_LABEL = '.transfer-header span.num'\nconst SELECTOR_LIST_INPUT = '.transfer-group input'\nconst SELECTOR_TRANS_WRAPPER = '.it-transfer-wrapper'\nconst SELECTOR_TRANS_GROUP = '.transfer-group'\nconst SELECTOR_SOURCE = `${SELECTOR_TRANS_WRAPPER}.source`\nconst SELECTOR_TARGET = `${SELECTOR_TRANS_WRAPPER}.target`\nconst SELECTOR_FORM_CHECK = '.form-check'\n\nclass Transfer extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._addBtnElement = SelectorEngine.findOne(SELECTOR_BTN_TRANS, this._element)\n this._invBtnElement = SelectorEngine.findOne(SELECTOR_BTN_TRANS_BACK, this._element)\n this._resetBtnElement = SelectorEngine.findOne(SELECTOR_BTN_RESET, this._element)\n this._listDefault = {\n source: SelectorEngine.find(SELECTOR_SOURCE + ' ' + SELECTOR_TRANS_GROUP + ' ' + SELECTOR_FORM_CHECK, this._element),\n target: SelectorEngine.find(SELECTOR_TARGET + ' ' + SELECTOR_TRANS_GROUP + ' ' + SELECTOR_FORM_CHECK, this._element),\n }\n\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n // Private\n\n _bindEvents() {\n SelectorEngine.find(SELECTOR_HEAD_INPUT, this._element).forEach((input) => {\n EventHandler.on(input, EVENT_CLICK, () => {\n this._checkListHeader(input.closest(SELECTOR_TRANS_WRAPPER))\n })\n })\n SelectorEngine.find(SELECTOR_LIST_INPUT, this._element).forEach((input) => {\n EventHandler.on(input, EVENT_CLICK, () => {\n this._checkList(input.closest(SELECTOR_TRANS_WRAPPER))\n })\n })\n\n EventHandler.on(this._addBtnElement, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n // disattivo il pulsante corrente\n this._disableElement(this._addBtnElement)\n this._addItems()\n })\n EventHandler.on(this._invBtnElement, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n // disattivo il pulsante corrente\n this._disableElement(this._invBtnElement)\n this._addItems(true)\n })\n\n EventHandler.on(this._resetBtnElement, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n\n this._disableElement(this._addBtnElement)\n this._disableElement(this._invBtnElement)\n this._disableElement(this._resetBtnElement)\n\n this._resetAll()\n })\n }\n\n _disableElement(element) {\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.setAttribute('disabled', 'disabled')\n element.setAttribute('aria-disabled', 'true')\n }\n\n _enableElement(element) {\n element.classList.add(CLASS_NAME_ACTIVE)\n element.removeAttribute('disabled')\n element.removeAttribute('aria-disabled')\n }\n\n _getScopeData(scope) {\n return {\n scope,\n list: SelectorEngine.find(SELECTOR_LIST_INPUT, scope),\n listChecked: SelectorEngine.find(SELECTOR_LIST_INPUT + ':checked', scope),\n head: SelectorEngine.findOne(SELECTOR_HEAD, scope),\n inputHead: SelectorEngine.findOne(SELECTOR_HEAD_INPUT, scope),\n labelNumHead: SelectorEngine.findOne(SELECTOR_HEAD_LABEL, scope),\n group: SelectorEngine.findOne(SELECTOR_TRANS_GROUP, scope),\n }\n }\n\n _checkList(scopeElControl) {\n const scopeData = this._getScopeData(scopeElControl)\n\n if (scopeData.listChecked.length == 0) {\n scopeData.inputHead.classList.remove(CLASS_NAME_SEMICHECKED)\n scopeData.inputHead.checked = true\n // controllo quale pulsante centrale disattivare\n if (scopeElControl.classList.contains(CLASS_NAME_SOURCE)) {\n this._disableElement(this._addBtnElement)\n } else {\n this._disableElement(this._invBtnElement)\n }\n } else {\n if (scopeData.listChecked.length == scopeData.list.length) {\n scopeData.inputHead.classList.remove(CLASS_NAME_SEMICHECKED)\n scopeData.inputHead.checked = true\n } else {\n scopeData.inputHead.classList.add(CLASS_NAME_SEMICHECKED)\n scopeData.inputHead.checked = false\n }\n // controllo quale pulsante centrale disattivare\n if (scopeElControl.classList.contains(CLASS_NAME_SOURCE)) {\n this._enableElement(this._addBtnElement)\n } else {\n this._enableElement(this._invBtnElement)\n }\n }\n }\n\n _checkListHeader(scopeElControl) {\n const scopeData = this._getScopeData(scopeElControl)\n\n if (scopeData.listChecked.length > 0) {\n scopeData.list.forEach((item) => {\n item.checked = false\n })\n scopeData.inputHead.classList.remove(CLASS_NAME_SEMICHECKED)\n scopeData.inputHead.checked = false\n\n // controllo quale pulsante centrale disattivare\n if (scopeElControl.classList.contains(CLASS_NAME_SOURCE)) {\n this._disableElement(this._addBtnElement)\n } else {\n this._disableElement(this._invBtnElement)\n }\n } else {\n scopeData.list.forEach((item) => {\n item.checked = true\n })\n // controllo quale pulsante centrale attivare\n if (scopeElControl.classList.contains(CLASS_NAME_SOURCE)) {\n this._enableElement(this._addBtnElement)\n } else {\n this._enableElement(this._invBtnElement)\n }\n }\n }\n\n _addItems(inverse) {\n const sourceData = this._getScopeData(SelectorEngine.findOne(inverse ? SELECTOR_TARGET : SELECTOR_SOURCE, this._element))\n const targetData = this._getScopeData(SelectorEngine.findOne(inverse ? SELECTOR_SOURCE : SELECTOR_TARGET, this._element))\n\n const sourceItems = sourceData.listChecked //sourceControl.find('.transfer-group input:checked')\n //const sourceItemsBlock = SelectorEngine.findOne('.form-check', sourceData.head) //sourceData.head('.form-check')\n const sourceHeadInput = sourceData.inputHead //sourceControl.find('.transfer-header input')\n const sourceHeadLabel = sourceData.labelNumHead //sourceControl.find('.transfer-header span.num')\n const sourceItemsQty = sourceItems.length\n const sourceTotalQty = sourceData.list.length\n\n const targetDiv = targetData.group\n const targetQty = targetData.list.length + sourceItemsQty\n const targetHeadLabel = targetData.labelNumHead\n const targetHeadInput = targetData.inputHead\n\n // ciclo di aggiunta\n sourceItems.forEach((item) => {\n const wrapper = item.closest(SELECTOR_FORM_CHECK)\n wrapper.remove()\n targetDiv.appendChild(wrapper)\n item.checked = false\n })\n\n // update label\n const totalSource = sourceTotalQty - sourceItemsQty\n const totalTarget = targetQty\n\n sourceHeadLabel.innerText = totalSource\n targetHeadLabel.innerText = totalTarget\n\n // disattivazione header input se non ci sono più elementi\n if (totalSource == 0) {\n sourceHeadInput.setAttribute('disabled', true)\n }\n if (totalTarget > 0) {\n targetHeadInput.removeAttribute('disabled')\n }\n\n // ripristino stato iniziale input header\n sourceHeadInput.classList.remove(CLASS_NAME_SEMICHECKED)\n sourceHeadInput.checked = false\n\n // attivo il pulsante di reset\n this._enableElement(this._resetBtnElement)\n }\n\n _resetAll() {\n const blocks = {\n source: this._getScopeData(SelectorEngine.findOne(SELECTOR_SOURCE, this._element)),\n target: this._getScopeData(SelectorEngine.findOne(SELECTOR_TARGET, this._element)),\n }\n\n Object.keys(blocks).forEach((key) => {\n blocks[key].list.forEach((item) => item.closest(SELECTOR_FORM_CHECK).remove())\n })\n\n Object.keys(blocks).forEach((key) => {\n this._listDefault[key].forEach((item) => {\n item.checked = false\n blocks[key].group.appendChild(item)\n })\n blocks[key].labelNumHead.innerText = this._listDefault[key].length\n\n blocks[key].inputHead.removeAttribute('disabled')\n blocks[key].inputHead.classList.remove(CLASS_NAME_SEMICHECKED)\n blocks[key].inputHead.checked = false\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n/*SelectorEngine.find(SELECTOR_BLOCK).forEach((block) => {\n Transfer.getOrCreateInstance(block)\n})*/\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BLOCK + ' .form-check label', function () {\n Transfer.getOrCreateInstance(this.closest(SELECTOR_BLOCK))\n})\nEventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_BLOCK + ' .form-check label', function () {\n Transfer.getOrCreateInstance(this.closest(SELECTOR_BLOCK))\n})\n\nexport default Transfer\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer.js","sources":["../../src/js/plugins/transfer.js"],"sourcesContent":["import BaseComponent from './base-component.js'\n\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\nconst NAME = 'transfer'\nconst DATA_KEY = 'bs.transfer'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SOURCE = 'source'\nconst CLASS_NAME_SEMICHECKED = 'semi-checked'\n\nconst SELECTOR_BLOCK = '[data-bs-transfer]' //'.it-transfer-block'\nconst SELECTOR_BTN_TRANS = 'a.transfer'\nconst SELECTOR_BTN_TRANS_BACK = 'a.backtransfer'\nconst SELECTOR_BTN_RESET = 'a.reset'\nconst SELECTOR_HEAD = '.transfer-header'\nconst SELECTOR_HEAD_INPUT = '.transfer-header input'\nconst SELECTOR_HEAD_LABEL = '.transfer-header span.num'\nconst SELECTOR_LIST_INPUT = '.transfer-group input'\nconst SELECTOR_TRANS_WRAPPER = '.it-transfer-wrapper'\nconst SELECTOR_TRANS_GROUP = '.transfer-group'\nconst SELECTOR_SOURCE = `${SELECTOR_TRANS_WRAPPER}.source`\nconst SELECTOR_TARGET = `${SELECTOR_TRANS_WRAPPER}.target`\nconst SELECTOR_FORM_CHECK = '.form-check'\n\nclass Transfer extends BaseComponent {\n constructor(element) {\n super(element)\n\n this._addBtnElement = SelectorEngine.findOne(SELECTOR_BTN_TRANS, this._element)\n this._invBtnElement = SelectorEngine.findOne(SELECTOR_BTN_TRANS_BACK, this._element)\n this._resetBtnElement = SelectorEngine.findOne(SELECTOR_BTN_RESET, this._element)\n this._listDefault = {\n source: SelectorEngine.find(SELECTOR_SOURCE + ' ' + SELECTOR_TRANS_GROUP + ' ' + SELECTOR_FORM_CHECK, this._element),\n target: SelectorEngine.find(SELECTOR_TARGET + ' ' + SELECTOR_TRANS_GROUP + ' ' + SELECTOR_FORM_CHECK, this._element),\n }\n\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n\n // Private\n\n _bindEvents() {\n SelectorEngine.find(SELECTOR_HEAD_INPUT, this._element).forEach((input) => {\n EventHandler.on(input, EVENT_CLICK, () => {\n this._checkListHeader(input.closest(SELECTOR_TRANS_WRAPPER))\n })\n })\n SelectorEngine.find(SELECTOR_LIST_INPUT, this._element).forEach((input) => {\n EventHandler.on(input, EVENT_CLICK, () => {\n this._checkList(input.closest(SELECTOR_TRANS_WRAPPER))\n })\n })\n\n EventHandler.on(this._addBtnElement, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n // disattivo il pulsante corrente\n this._disableElement(this._addBtnElement)\n this._addItems()\n })\n EventHandler.on(this._invBtnElement, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n // disattivo il pulsante corrente\n this._disableElement(this._invBtnElement)\n this._addItems(true)\n })\n\n EventHandler.on(this._resetBtnElement, EVENT_CLICK, (evt) => {\n evt.preventDefault()\n\n this._disableElement(this._addBtnElement)\n this._disableElement(this._invBtnElement)\n this._disableElement(this._resetBtnElement)\n\n this._resetAll()\n })\n }\n\n _disableElement(element) {\n element.classList.remove(CLASS_NAME_ACTIVE)\n element.setAttribute('disabled', 'disabled')\n element.setAttribute('aria-disabled', 'true')\n }\n\n _enableElement(element) {\n element.classList.add(CLASS_NAME_ACTIVE)\n element.removeAttribute('disabled')\n element.removeAttribute('aria-disabled')\n }\n\n _getScopeData(scope) {\n return {\n scope,\n list: SelectorEngine.find(SELECTOR_LIST_INPUT, scope),\n listChecked: SelectorEngine.find(SELECTOR_LIST_INPUT + ':checked', scope),\n head: SelectorEngine.findOne(SELECTOR_HEAD, scope),\n inputHead: SelectorEngine.findOne(SELECTOR_HEAD_INPUT, scope),\n labelNumHead: SelectorEngine.findOne(SELECTOR_HEAD_LABEL, scope),\n group: SelectorEngine.findOne(SELECTOR_TRANS_GROUP, scope),\n }\n }\n\n _checkList(scopeElControl) {\n const scopeData = this._getScopeData(scopeElControl)\n\n if (scopeData.listChecked.length == 0) {\n scopeData.inputHead.classList.remove(CLASS_NAME_SEMICHECKED)\n scopeData.inputHead.checked = true\n // controllo quale pulsante centrale disattivare\n if (scopeElControl.classList.contains(CLASS_NAME_SOURCE)) {\n this._disableElement(this._addBtnElement)\n } else {\n this._disableElement(this._invBtnElement)\n }\n } else {\n if (scopeData.listChecked.length == scopeData.list.length) {\n scopeData.inputHead.classList.remove(CLASS_NAME_SEMICHECKED)\n scopeData.inputHead.checked = true\n } else {\n scopeData.inputHead.classList.add(CLASS_NAME_SEMICHECKED)\n scopeData.inputHead.checked = false\n }\n // controllo quale pulsante centrale disattivare\n if (scopeElControl.classList.contains(CLASS_NAME_SOURCE)) {\n this._enableElement(this._addBtnElement)\n } else {\n this._enableElement(this._invBtnElement)\n }\n }\n }\n\n _checkListHeader(scopeElControl) {\n const scopeData = this._getScopeData(scopeElControl)\n\n if (scopeData.listChecked.length > 0) {\n scopeData.list.forEach((item) => {\n item.checked = false\n })\n scopeData.inputHead.classList.remove(CLASS_NAME_SEMICHECKED)\n scopeData.inputHead.checked = false\n\n // controllo quale pulsante centrale disattivare\n if (scopeElControl.classList.contains(CLASS_NAME_SOURCE)) {\n this._disableElement(this._addBtnElement)\n } else {\n this._disableElement(this._invBtnElement)\n }\n } else {\n scopeData.list.forEach((item) => {\n item.checked = true\n })\n // controllo quale pulsante centrale attivare\n if (scopeElControl.classList.contains(CLASS_NAME_SOURCE)) {\n this._enableElement(this._addBtnElement)\n } else {\n this._enableElement(this._invBtnElement)\n }\n }\n }\n\n _addItems(inverse) {\n const sourceData = this._getScopeData(SelectorEngine.findOne(inverse ? SELECTOR_TARGET : SELECTOR_SOURCE, this._element))\n const targetData = this._getScopeData(SelectorEngine.findOne(inverse ? SELECTOR_SOURCE : SELECTOR_TARGET, this._element))\n\n const sourceItems = sourceData.listChecked //sourceControl.find('.transfer-group input:checked')\n //const sourceItemsBlock = SelectorEngine.findOne('.form-check', sourceData.head) //sourceData.head('.form-check')\n const sourceHeadInput = sourceData.inputHead //sourceControl.find('.transfer-header input')\n const sourceHeadLabel = sourceData.labelNumHead //sourceControl.find('.transfer-header span.num')\n const sourceItemsQty = sourceItems.length\n const sourceTotalQty = sourceData.list.length\n\n const targetDiv = targetData.group\n const targetQty = targetData.list.length + sourceItemsQty\n const targetHeadLabel = targetData.labelNumHead\n const targetHeadInput = targetData.inputHead\n\n // ciclo di aggiunta\n sourceItems.forEach((item) => {\n const wrapper = item.closest(SELECTOR_FORM_CHECK)\n wrapper.remove()\n targetDiv.appendChild(wrapper)\n item.checked = false\n })\n\n // update label\n const totalSource = sourceTotalQty - sourceItemsQty\n const totalTarget = targetQty\n\n sourceHeadLabel.innerText = totalSource\n targetHeadLabel.innerText = totalTarget\n\n // disattivazione header input se non ci sono più elementi\n if (totalSource == 0) {\n sourceHeadInput.setAttribute('disabled', true)\n }\n if (totalTarget > 0) {\n targetHeadInput.removeAttribute('disabled')\n }\n\n // ripristino stato iniziale input header\n sourceHeadInput.classList.remove(CLASS_NAME_SEMICHECKED)\n sourceHeadInput.checked = false\n\n // attivo il pulsante di reset\n this._enableElement(this._resetBtnElement)\n }\n\n _resetAll() {\n const blocks = {\n source: this._getScopeData(SelectorEngine.findOne(SELECTOR_SOURCE, this._element)),\n target: this._getScopeData(SelectorEngine.findOne(SELECTOR_TARGET, this._element)),\n }\n\n Object.keys(blocks).forEach((key) => {\n blocks[key].list.forEach((item) => item.closest(SELECTOR_FORM_CHECK).remove())\n })\n\n Object.keys(blocks).forEach((key) => {\n this._listDefault[key].forEach((item) => {\n item.checked = false\n blocks[key].group.appendChild(item)\n })\n blocks[key].labelNumHead.innerText = this._listDefault[key].length\n\n blocks[key].inputHead.removeAttribute('disabled')\n blocks[key].inputHead.classList.remove(CLASS_NAME_SEMICHECKED)\n blocks[key].inputHead.checked = false\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_BLOCK + ' .form-check label', function () {\n Transfer.getOrCreateInstance(this.closest(SELECTOR_BLOCK))\n })\n EventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_BLOCK + ' .form-check label', function () {\n Transfer.getOrCreateInstance(this.closest(SELECTOR_BLOCK))\n })\n}\n\nexport default Transfer\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,17 @@
1
- import BaseComponent from 'bootstrap/js/src/base-component.js';
2
- import EventHandler from 'bootstrap/js/src/dom/event-handler';
3
- import SelectorEngine from 'bootstrap/js/src/dom/selector-engine';
1
+ import BaseComponent from './base-component.js';
2
+ import EventHandler from './dom/event-handler.js';
3
+ import SelectorEngine from './dom/selector-engine.js';
4
4
  import ProgressDonut from './progress-donut.js';
5
5
 
6
+ /**
7
+ * --------------------------------------------------------------------------
8
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
9
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
10
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
11
+ * --------------------------------------------------------------------------
12
+ */
13
+
14
+
6
15
  const NAME = 'upload';
7
16
  const DATA_KEY = 'bs.upload';
8
17
  const EVENT_KEY = `.${DATA_KEY}`;
@@ -132,7 +141,7 @@ const createInput = (element) => {
132
141
  return null
133
142
  };
134
143
 
135
- if (typeof document !== 'undefined') {
144
+ if (typeof window !== 'undefined' && typeof document !== 'undefined') {
136
145
  document.addEventListener('dragenter', function (evt) {
137
146
  createInput(evt.target);
138
147
  });
@@ -1 +1 @@
1
- {"version":3,"file":"upload-dragdrop.js","sources":["../../src/js/plugins/upload-dragdrop.js"],"sourcesContent":["import BaseComponent from 'bootstrap/js/src/base-component.js'\n\nimport EventHandler from 'bootstrap/js/src/dom/event-handler'\nimport SelectorEngine from 'bootstrap/js/src/dom/selector-engine'\n\nimport ProgressDonut from './progress-donut'\n\nconst NAME = 'upload'\nconst DATA_KEY = 'bs.upload'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_DRAG = `drag`\nconst EVENT_DRAG_START = `dragstart`\nconst EVENT_DRAG_END = `dragend`\nconst EVENT_DRAG_OVER = `dragover`\nconst EVENT_DRAG_ENTER = `dragenter`\nconst EVENT_DRAG_LEAVE = `dragleave`\nconst EVENT_DROP = `drop`\n\nconst CLASS_NAME_SUCCESS = 'success'\nconst CLASS_NAME_DRAGOVER = 'dragover'\nconst CLASS_NAME_LOADING = 'loading'\n\nconst SELECTOR_FORM = '[data-bs-upload-dragdrop]'\nconst SELECTOR_DONUT = '[data-bs-progress-donut]'\n\nclass UploadDragDrop extends BaseComponent {\n constructor(element) {\n super(element)\n\n const donutElement = SelectorEngine.findOne(SELECTOR_DONUT, this._element)\n if (donutElement) {\n this._donut = ProgressDonut.getOrCreateInstance(donutElement)\n }\n\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n progress(value) {\n this._donut.set(value)\n }\n\n start() {\n this.reset()\n this._element.classList.add(CLASS_NAME_LOADING)\n }\n\n success() {\n this._element.classList.remove(CLASS_NAME_LOADING)\n this._element.classList.add(CLASS_NAME_SUCCESS)\n }\n\n reset() {\n this._element.classList.remove(CLASS_NAME_LOADING)\n this._element.classList.remove(CLASS_NAME_SUCCESS)\n this._donut.set(0)\n }\n\n dispose() {\n this._donut.dispose()\n\n super.dispose()\n }\n\n // Private\n _bindEvents() {\n EventHandler.on(this._element, EVENT_DRAG, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_START, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_END, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_OVER, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_ENTER, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_LEAVE, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DROP, (evt) => this._preventEvent(evt))\n\n EventHandler.on(this._element, EVENT_DRAG_OVER, () => this._dropIn())\n EventHandler.on(this._element, EVENT_DRAG_ENTER, () => this._dropIn())\n EventHandler.on(this._element, EVENT_DRAG_LEAVE, () => this._dropOut())\n EventHandler.on(this._element, EVENT_DRAG_END, () => this._dropOut())\n EventHandler.on(this._element, EVENT_DROP, () => this._dropOut())\n\n EventHandler.on(this._element, EVENT_DROP, () => this._drop())\n }\n _preventEvent(evt) {\n evt.preventDefault()\n evt.stopPropagation()\n }\n\n _dropIn() {\n if (!this._isSuccess()) {\n this._element.classList.add(CLASS_NAME_DRAGOVER)\n }\n }\n _dropOut() {\n if (!this._isSuccess()) {\n this._element.classList.remove(CLASS_NAME_DRAGOVER)\n }\n }\n _drop() {\n if (!this._isSuccess()) {\n this.start()\n }\n }\n\n _isSuccess() {\n return this._element.classList.contains(CLASS_NAME_SUCCESS)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n/*SelectorEngine.find(SELECTOR_FORM).forEach((form) => {\n UploadDragDrop.getOrCreateInstance(form)\n})*/\n\nconst createInput = (element) => {\n let found = element.matches && element.matches(SELECTOR_FORM) ? element : element.closest ? element.closest(SELECTOR_FORM) : null\n if (found) {\n UploadDragDrop.getOrCreateInstance(found)\n }\n return null\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('dragenter', function (evt) {\n createInput(evt.target)\n })\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM + ' label', function () {\n createInput(this)\n })\n}\n\nexport default UploadDragDrop\n"],"names":[],"mappings":";;;;;AAOA,MAAM,IAAI,GAAG;AACb,MAAM,QAAQ,GAAG;AACjB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC/B,MAAM,YAAY,GAAG;;AAErB,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,YAAY,CAAC;;AAE9D,MAAM,UAAU,GAAG,CAAC,IAAI;AACxB,MAAM,gBAAgB,GAAG,CAAC,SAAS;AACnC,MAAM,cAAc,GAAG,CAAC,OAAO;AAC/B,MAAM,eAAe,GAAG,CAAC,QAAQ;AACjC,MAAM,gBAAgB,GAAG,CAAC,SAAS;AACnC,MAAM,gBAAgB,GAAG,CAAC,SAAS;AACnC,MAAM,UAAU,GAAG,CAAC,IAAI;;AAExB,MAAM,kBAAkB,GAAG;AAC3B,MAAM,mBAAmB,GAAG;AAC5B,MAAM,kBAAkB,GAAG;;AAE3B,MAAM,aAAa,GAAG;AACtB,MAAM,cAAc,GAAG;;AAEvB,MAAM,cAAc,SAAS,aAAa,CAAC;AAC3C,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,KAAK,CAAC,OAAO;;AAEjB,IAAI,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ;AAC7E,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC,YAAY;AAClE;;AAEA,IAAI,IAAI,CAAC,WAAW;AACpB;;AAEA;;AAEA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,OAAO;AACX;;AAEA;AACA,EAAE,QAAQ,CAAC,KAAK,EAAE;AAClB,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;AACzB;;AAEA,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,KAAK;AACd,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB;AAClD;;AAEA,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB;AACrD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB;AAClD;;AAEA,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB;AACrD,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB;AACrD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB;;AAEA,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;;AAEvB,IAAI,KAAK,CAAC,OAAO;AACjB;;AAEA;AACA,EAAE,WAAW,GAAG;AAChB,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AAC/E,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACrF,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACnF,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACpF,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACrF,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACrF,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;;AAE/E,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE;AACxE,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE;AACzE,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE;AAC1E,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE;AACxE,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE;;AAEpE,IAAI,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,KAAK,EAAE;AACjE;AACA,EAAE,aAAa,CAAC,GAAG,EAAE;AACrB,IAAI,GAAG,CAAC,cAAc;AACtB,IAAI,GAAG,CAAC,eAAe;AACvB;;AAEA,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB;AACrD;AACA;AACA,EAAE,QAAQ,GAAG;AACb,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAmB;AACxD;AACA;AACA,EAAE,KAAK,GAAG;AACV,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AAC5B,MAAM,IAAI,CAAC,KAAK;AAChB;AACA;;AAEA,EAAE,UAAU,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,WAAW,GAAG,CAAC,OAAO,KAAK;AACjC,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG;AAC/H,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,cAAc,CAAC,mBAAmB,CAAC,KAAK;AAC5C;AACA,EAAE,OAAO;AACT;;AAEA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACrC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,GAAG,EAAE;AACxD,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM;AAC1B,GAAG;AACH,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,aAAa,GAAG,QAAQ,EAAE,YAAY;AACxF,IAAI,WAAW,CAAC,IAAI;AACpB,GAAG;AACH;;;;"}
1
+ {"version":3,"file":"upload-dragdrop.js","sources":["../../src/js/plugins/upload-dragdrop.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 EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\nimport ProgressDonut from './progress-donut'\n\nconst NAME = 'upload'\nconst DATA_KEY = 'bs.upload'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst EVENT_DRAG = `drag`\nconst EVENT_DRAG_START = `dragstart`\nconst EVENT_DRAG_END = `dragend`\nconst EVENT_DRAG_OVER = `dragover`\nconst EVENT_DRAG_ENTER = `dragenter`\nconst EVENT_DRAG_LEAVE = `dragleave`\nconst EVENT_DROP = `drop`\n\nconst CLASS_NAME_SUCCESS = 'success'\nconst CLASS_NAME_DRAGOVER = 'dragover'\nconst CLASS_NAME_LOADING = 'loading'\n\nconst SELECTOR_FORM = '[data-bs-upload-dragdrop]'\nconst SELECTOR_DONUT = '[data-bs-progress-donut]'\n\nclass UploadDragDrop extends BaseComponent {\n constructor(element) {\n super(element)\n\n const donutElement = SelectorEngine.findOne(SELECTOR_DONUT, this._element)\n if (donutElement) {\n this._donut = ProgressDonut.getOrCreateInstance(donutElement)\n }\n\n this._bindEvents()\n }\n\n // Getters\n\n static get NAME() {\n return NAME\n }\n\n // Public\n progress(value) {\n this._donut.set(value)\n }\n\n start() {\n this.reset()\n this._element.classList.add(CLASS_NAME_LOADING)\n }\n\n success() {\n this._element.classList.remove(CLASS_NAME_LOADING)\n this._element.classList.add(CLASS_NAME_SUCCESS)\n }\n\n reset() {\n this._element.classList.remove(CLASS_NAME_LOADING)\n this._element.classList.remove(CLASS_NAME_SUCCESS)\n this._donut.set(0)\n }\n\n dispose() {\n this._donut.dispose()\n\n super.dispose()\n }\n\n // Private\n _bindEvents() {\n EventHandler.on(this._element, EVENT_DRAG, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_START, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_END, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_OVER, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_ENTER, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DRAG_LEAVE, (evt) => this._preventEvent(evt))\n EventHandler.on(this._element, EVENT_DROP, (evt) => this._preventEvent(evt))\n\n EventHandler.on(this._element, EVENT_DRAG_OVER, () => this._dropIn())\n EventHandler.on(this._element, EVENT_DRAG_ENTER, () => this._dropIn())\n EventHandler.on(this._element, EVENT_DRAG_LEAVE, () => this._dropOut())\n EventHandler.on(this._element, EVENT_DRAG_END, () => this._dropOut())\n EventHandler.on(this._element, EVENT_DROP, () => this._dropOut())\n\n EventHandler.on(this._element, EVENT_DROP, () => this._drop())\n }\n _preventEvent(evt) {\n evt.preventDefault()\n evt.stopPropagation()\n }\n\n _dropIn() {\n if (!this._isSuccess()) {\n this._element.classList.add(CLASS_NAME_DRAGOVER)\n }\n }\n _dropOut() {\n if (!this._isSuccess()) {\n this._element.classList.remove(CLASS_NAME_DRAGOVER)\n }\n }\n _drop() {\n if (!this._isSuccess()) {\n this.start()\n }\n }\n\n _isSuccess() {\n return this._element.classList.contains(CLASS_NAME_SUCCESS)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n/*SelectorEngine.find(SELECTOR_FORM).forEach((form) => {\n UploadDragDrop.getOrCreateInstance(form)\n})*/\n\nconst createInput = (element) => {\n let found = element.matches && element.matches(SELECTOR_FORM) ? element : element.closest ? element.closest(SELECTOR_FORM) : null\n if (found) {\n UploadDragDrop.getOrCreateInstance(found)\n }\n return null\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n document.addEventListener('dragenter', function (evt) {\n createInput(evt.target)\n })\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM + ' label', function () {\n createInput(this)\n })\n}\n\nexport default UploadDragDrop\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ import EventHandler from '../dom/event-handler.js';
2
+ import { execute, reflow, getElement, executeAfterTransition } from './index.js';
3
+ import Config from './config.js';
4
+
5
+ /**
6
+ * --------------------------------------------------------------------------
7
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
8
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
9
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
10
+ * This a fork of Bootstrap: Initial license and original file name below
11
+ * Bootstrap (v5.2.3): util/backdrop.js
12
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
13
+ * --------------------------------------------------------------------------
14
+ */
15
+
16
+
17
+ /**
18
+ * Constants
19
+ */
20
+
21
+ const NAME = 'backdrop';
22
+ const CLASS_NAME_FADE = 'fade';
23
+ const CLASS_NAME_SHOW = 'show';
24
+ const EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`;
25
+
26
+ const Default = {
27
+ className: 'modal-backdrop',
28
+ clickCallback: null,
29
+ isAnimated: false,
30
+ isVisible: true, // if false, we use the backdrop helper without adding any element to the dom
31
+ rootElement: 'body', // give the choice to place backdrop under different elements
32
+ };
33
+
34
+ const DefaultType = {
35
+ className: 'string',
36
+ clickCallback: '(function|null)',
37
+ isAnimated: 'boolean',
38
+ isVisible: 'boolean',
39
+ rootElement: '(element|string)',
40
+ };
41
+
42
+ /**
43
+ * Class definition
44
+ */
45
+
46
+ class Backdrop extends Config {
47
+ constructor(config) {
48
+ super();
49
+ this._config = this._getConfig(config);
50
+ this._isAppended = false;
51
+ this._element = null;
52
+ }
53
+
54
+ // Getters
55
+ static get Default() {
56
+ return Default
57
+ }
58
+
59
+ static get DefaultType() {
60
+ return DefaultType
61
+ }
62
+
63
+ static get NAME() {
64
+ return NAME
65
+ }
66
+
67
+ // Public
68
+ show(callback) {
69
+ if (!this._config.isVisible) {
70
+ execute(callback);
71
+ return
72
+ }
73
+
74
+ this._append();
75
+
76
+ const element = this._getElement();
77
+ if (this._config.isAnimated) {
78
+ reflow(element);
79
+ }
80
+
81
+ element.classList.add(CLASS_NAME_SHOW);
82
+
83
+ this._emulateAnimation(() => {
84
+ execute(callback);
85
+ });
86
+ }
87
+
88
+ hide(callback) {
89
+ if (!this._config.isVisible) {
90
+ execute(callback);
91
+ return
92
+ }
93
+
94
+ this._getElement().classList.remove(CLASS_NAME_SHOW);
95
+
96
+ this._emulateAnimation(() => {
97
+ this.dispose();
98
+ execute(callback);
99
+ });
100
+ }
101
+
102
+ dispose() {
103
+ if (!this._isAppended) {
104
+ return
105
+ }
106
+
107
+ EventHandler.off(this._element, EVENT_MOUSEDOWN);
108
+
109
+ this._element.remove();
110
+ this._isAppended = false;
111
+ }
112
+
113
+ // Private
114
+ _getElement() {
115
+ if (!this._element) {
116
+ const backdrop = document.createElement('div');
117
+ backdrop.className = this._config.className;
118
+ if (this._config.isAnimated) {
119
+ backdrop.classList.add(CLASS_NAME_FADE);
120
+ }
121
+
122
+ this._element = backdrop;
123
+ }
124
+
125
+ return this._element
126
+ }
127
+
128
+ _configAfterMerge(config) {
129
+ // use getElement() with the default "body" to get a fresh Element on each instantiation
130
+ config.rootElement = getElement(config.rootElement);
131
+ return config
132
+ }
133
+
134
+ _append() {
135
+ if (this._isAppended) {
136
+ return
137
+ }
138
+
139
+ const element = this._getElement();
140
+ this._config.rootElement.append(element);
141
+
142
+ EventHandler.on(element, EVENT_MOUSEDOWN, () => {
143
+ execute(this._config.clickCallback);
144
+ });
145
+
146
+ this._isAppended = true;
147
+ }
148
+
149
+ _emulateAnimation(callback) {
150
+ executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
151
+ }
152
+ }
153
+
154
+ export { Backdrop as default };
155
+ //# sourceMappingURL=backdrop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backdrop.js","sources":["../../../src/js/plugins/util/backdrop.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 a fork of Bootstrap: Initial license and original file name below\n * Bootstrap (v5.2.3): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { execute, executeAfterTransition, getElement, reflow } from './index'\nimport Config from './config'\n\n/**\n * Constants\n */\n\nconst NAME = 'backdrop'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME}`\n\nconst Default = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true, // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body', // give the choice to place backdrop under different elements\n}\n\nconst DefaultType = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)',\n}\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super()\n this._config = this._getConfig(config)\n this._isAppended = false\n this._element = null\n }\n\n // Getters\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get NAME() {\n return NAME\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._append()\n\n const element = this._getElement()\n if (this._config.isAnimated) {\n reflow(element)\n }\n\n element.classList.add(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n execute(callback)\n })\n }\n\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback)\n return\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW)\n\n this._emulateAnimation(() => {\n this.dispose()\n execute(callback)\n })\n }\n\n dispose() {\n if (!this._isAppended) {\n return\n }\n\n EventHandler.off(this._element, EVENT_MOUSEDOWN)\n\n this._element.remove()\n this._isAppended = false\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div')\n backdrop.className = this._config.className\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE)\n }\n\n this._element = backdrop\n }\n\n return this._element\n }\n\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement)\n return config\n }\n\n _append() {\n if (this._isAppended) {\n return\n }\n\n const element = this._getElement()\n this._config.rootElement.append(element)\n\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback)\n })\n\n this._isAppended = true\n }\n\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated)\n }\n}\n\nexport default Backdrop\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import EventHandler from '../dom/event-handler.js';
2
+ import { isDisabled, getElementFromSelector } from './index.js';
3
+
4
+ /**
5
+ * --------------------------------------------------------------------------
6
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
7
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
8
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
9
+ * This a fork of Bootstrap: Initial license and original file name below
10
+ * Bootstrap (v5.2.3): util/component-functions.js
11
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
12
+ * --------------------------------------------------------------------------
13
+ */
14
+
15
+
16
+ const enableDismissTrigger = (component, method = 'hide') => {
17
+ const clickEvent = `click.dismiss${component.EVENT_KEY}`;
18
+ const name = component.NAME;
19
+
20
+ EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) {
21
+ if (['A', 'AREA'].includes(this.tagName)) {
22
+ event.preventDefault();
23
+ }
24
+
25
+ if (isDisabled(this)) {
26
+ return
27
+ }
28
+
29
+ const target = getElementFromSelector(this) || this.closest(`.${name}`);
30
+ const instance = component.getOrCreateInstance(target);
31
+
32
+ // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method
33
+ instance[method]();
34
+ });
35
+ };
36
+
37
+ export { enableDismissTrigger };
38
+ //# sourceMappingURL=component-functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-functions.js","sources":["../../../src/js/plugins/util/component-functions.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 a fork of Bootstrap: Initial license and original file name below\n * Bootstrap (v5.2.3): util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport EventHandler from '../dom/event-handler'\nimport { getElementFromSelector, isDisabled } from './index'\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`\n const name = component.NAME\n\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault()\n }\n\n if (isDisabled(this)) {\n return\n }\n\n const target = getElementFromSelector(this) || this.closest(`.${name}`)\n const instance = component.getOrCreateInstance(target)\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]()\n })\n}\n\nexport { enableDismissTrigger }\n"],"names":[],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAKK,MAAC,oBAAoB,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK;AAC7D,EAAE,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC;AACzD,EAAE,MAAM,IAAI,GAAG,SAAS,CAAC;;AAEzB,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,KAAK,EAAE;AACxF,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC9C,MAAM,KAAK,CAAC,cAAc;AAC1B;;AAEA,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;AAC1B,MAAM;AACN;;AAEA,IAAI,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1E,IAAI,MAAM,QAAQ,GAAG,SAAS,CAAC,mBAAmB,CAAC,MAAM;;AAEzD;AACA,IAAI,QAAQ,CAAC,MAAM,CAAC;AACpB,GAAG;AACH;;;;"}
@@ -0,0 +1,70 @@
1
+ import { isElement, toType } from './index.js';
2
+ import Manipulator from '../dom/manipulator.js';
3
+
4
+ /**
5
+ * --------------------------------------------------------------------------
6
+ * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)
7
+ * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS
8
+ * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)
9
+ * This a fork of Bootstrap: Initial license and original file name below
10
+ * Bootstrap (v5.2.3): util/config.js
11
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
12
+ * --------------------------------------------------------------------------
13
+ */
14
+
15
+
16
+ /**
17
+ * Class definition
18
+ */
19
+
20
+ class Config {
21
+ // Getters
22
+ static get Default() {
23
+ return {}
24
+ }
25
+
26
+ static get DefaultType() {
27
+ return {}
28
+ }
29
+
30
+ static get NAME() {
31
+ throw new Error('You have to implement the static method "NAME", for each component!')
32
+ }
33
+
34
+ _getConfig(config) {
35
+ config = this._mergeConfigObj(config);
36
+ config = this._configAfterMerge(config);
37
+ this._typeCheckConfig(config);
38
+ return config
39
+ }
40
+
41
+ _configAfterMerge(config) {
42
+ return config
43
+ }
44
+
45
+ _mergeConfigObj(config, element) {
46
+ const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse
47
+
48
+ return {
49
+ ...this.constructor.Default,
50
+ ...(typeof jsonConfig === 'object' ? jsonConfig : {}),
51
+ ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),
52
+ ...(typeof config === 'object' ? config : {}),
53
+ }
54
+ }
55
+
56
+ _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
57
+ for (const property of Object.keys(configTypes)) {
58
+ const expectedTypes = configTypes[property];
59
+ const value = config[property];
60
+ const valueType = isElement(value) ? 'element' : toType(value);
61
+
62
+ if (!new RegExp(expectedTypes).test(valueType)) {
63
+ throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`)
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ export { Config as default };
70
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sources":["../../../src/js/plugins/util/config.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 a fork of Bootstrap: Initial license and original file name below\n * Bootstrap (v5.2.3): util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { isElement, toType } from './index'\nimport Manipulator from '../dom/manipulator'\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {}\n }\n\n static get DefaultType() {\n return {}\n }\n\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!')\n }\n\n _getConfig(config) {\n config = this._mergeConfigObj(config)\n config = this._configAfterMerge(config)\n this._typeCheckConfig(config)\n return config\n }\n\n _configAfterMerge(config) {\n return config\n }\n\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {} // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {}),\n }\n }\n\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const property of Object.keys(configTypes)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = isElement(value) ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`)\n }\n }\n }\n}\n\nexport default Config\n"],"names":[],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAKA;AACA;AACA;;AAEA,MAAM,MAAM,CAAC;AACb;AACA,EAAE,WAAW,OAAO,GAAG;AACvB,IAAI,OAAO;AACX;;AAEA,EAAE,WAAW,WAAW,GAAG;AAC3B,IAAI,OAAO;AACX;;AAEA,EAAE,WAAW,IAAI,GAAG;AACpB,IAAI,MAAM,IAAI,KAAK,CAAC,qEAAqE;AACzF;;AAEA,EAAE,UAAU,CAAC,MAAM,EAAE;AACrB,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM;AACxC,IAAI,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM;AAC1C,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM;AAChC,IAAI,OAAO;AACX;;AAEA,EAAE,iBAAiB,CAAC,MAAM,EAAE;AAC5B,IAAI,OAAO;AACX;;AAEA,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;AACnC,IAAI,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,GAAE;;AAEhG,IAAI,OAAO;AACX,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO;AACjC,MAAM,IAAI,OAAO,UAAU,KAAK,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAC;AAC3D,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3E,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC;AACnD;AACA;;AAEA,EAAE,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AACvE,IAAI,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACrD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ;AAChD,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ;AACnC,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,KAAK;;AAEnE,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACtD,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC,qBAAqB,EAAE,aAAa,CAAC,EAAE,CAAC;AAC7J;AACA;AACA;AACA;;;;"}
@@ -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
  const preferencesMap = { ck3: {} };
2
10
 
3
11
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.js","sources":["../../../src/js/plugins/util/cookies.js"],"sourcesContent":["const preferencesMap = { ck3: {} }\n\n/*\n Possible choices:\n false => Accept once\n true => Accept always\n*/\nconst rememberChoice = (service, remember) => {\n preferencesMap.ck3[service] = remember\n localStorage.setItem('bs-ck3', JSON.stringify(preferencesMap.ck3))\n}\n\nconst isChoiceRemembered = (service) => {\n preferencesMap.ck3 = JSON.parse(localStorage.getItem('bs-ck3') || '{}')\n return preferencesMap.ck3[service] || false\n}\n\nconst clearAllRememberedChoices = () => {\n localStorage.removeItem('bs-ck3')\n}\n\nconst cookies = {\n rememberChoice,\n isChoiceRemembered,\n clearAllRememberedChoices,\n}\n\nexport { cookies }\n"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,EAAE;;AAEhC;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;AAC9C,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;AAChC,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC;AACnE;;AAEA,MAAM,kBAAkB,GAAG,CAAC,OAAO,KAAK;AACxC,EAAE,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI;AACxE,EAAE,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AACxC;;AAEA,MAAM,yBAAyB,GAAG,MAAM;AACxC,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ;AAClC;;AAEK,MAAC,OAAO,GAAG;AAChB,EAAE,cAAc;AAChB,EAAE,kBAAkB;AACpB,EAAE,yBAAyB;AAC3B;;;;"}
1
+ {"version":3,"file":"cookies.js","sources":["../../../src/js/plugins/util/cookies.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\nconst preferencesMap = { ck3: {} }\n\n/*\n Possible choices:\n false => Accept once\n true => Accept always\n*/\nconst rememberChoice = (service, remember) => {\n preferencesMap.ck3[service] = remember\n localStorage.setItem('bs-ck3', JSON.stringify(preferencesMap.ck3))\n}\n\nconst isChoiceRemembered = (service) => {\n preferencesMap.ck3 = JSON.parse(localStorage.getItem('bs-ck3') || '{}')\n return preferencesMap.ck3[service] || false\n}\n\nconst clearAllRememberedChoices = () => {\n localStorage.removeItem('bs-ck3')\n}\n\nconst cookies = {\n rememberChoice,\n isChoiceRemembered,\n clearAllRememberedChoices,\n}\n\nexport { cookies }\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,EAAE;;AAEhC;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;AAC9C,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG;AAChC,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC;AACnE;;AAEA,MAAM,kBAAkB,GAAG,CAAC,OAAO,KAAK;AACxC,EAAE,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI;AACxE,EAAE,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI;AACxC;;AAEA,MAAM,yBAAyB,GAAG,MAAM;AACxC,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ;AAClC;;AAEK,MAAC,OAAO,GAAG;AAChB,EAAE,cAAc;AAChB,EAAE,kBAAkB;AACpB,EAAE,yBAAyB;AAC3B;;;;"}
@@ -1,7 +1,4 @@
1
1
  const MEDIA_MOBILE = '(max-width: 991px)';
2
- /*const MEDIA_TABLET = ''
3
- const MEDIA_PHONE = ''
4
- const MEDIA_DESKTOP = ''*/
5
2
 
6
3
  const isScreenMobile = () => {
7
4
  if (typeof window !== 'undefined') {
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sources":["../../../src/js/plugins/util/device.js"],"sourcesContent":["const MEDIA_MOBILE = '(max-width: 991px)'\n/*const MEDIA_TABLET = ''\nconst MEDIA_PHONE = ''\nconst MEDIA_DESKTOP = ''*/\n\nconst isScreenMobile = () => {\n if (typeof window !== 'undefined') {\n return window.matchMedia(MEDIA_MOBILE).matches\n }\n}\n\nexport { isScreenMobile }\n"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG;AACrB;AACA;AACA;;AAEK,MAAC,cAAc,GAAG,MAAM;AAC7B,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACrC,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC3C;AACA;;;;"}
1
+ {"version":3,"file":"device.js","sources":["../../../src/js/plugins/util/device.js"],"sourcesContent":["const MEDIA_MOBILE = '(max-width: 991px)'\n\nconst isScreenMobile = () => {\n if (typeof window !== 'undefined') {\n return window.matchMedia(MEDIA_MOBILE).matches\n }\n}\n\nexport { isScreenMobile }\n"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG;;AAEhB,MAAC,cAAc,GAAG,MAAM;AAC7B,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACrC,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC3C;AACA;;;;"}
@@ -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
  /**
2
10
  * get the element index in a array of elements
3
11
  * @param {Object} target - the target element to find
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sources":["../../../src/js/plugins/util/dom.js"],"sourcesContent":["/**\n * get the element index in a array of elements\n * @param {Object} target - the target element to find\n * @param {array} list - the elements list\n * @returns {int} the element index\n */\nexport const getElementIndex = (target, list) => {\n let foundIdx = null\n list.forEach((element, idx) => {\n if (element === target) {\n foundIdx = idx\n }\n })\n return foundIdx\n}\n\n/**\n * set focus on a simbling\n * @param {*} currentElement - the current focused element\n * @param {*} simblings - list of simblings\n * @param {Object} config - isDirectionTop, isLimit, loop\n */\nexport const focusSimbling = (currentElement, simblings, config) => {\n config = {\n isDirectionTop: false,\n isLimit: false,\n loop: false,\n ...(typeof config === 'object' ? config : {}),\n }\n const currIdx = getElementIndex(currentElement, simblings)\n\n let found = null\n if (config.isLimit && config.isDirectionTop && currIdx > 0) {\n //get first element\n found = simblings[0]\n } else if (config.isLimit && currIdx < simblings.length - 1) {\n //get last element\n found = simblings[simblings.length - 1]\n } else if (config.isDirectionTop) {\n //get prev element\n if (!config.loop && currIdx === 0) {\n return\n }\n found = simblings[currIdx === 0 ? simblings.length - 1 : currIdx - 1]\n } else {\n //get next element\n if (!config.loop && currIdx === simblings.length - 1) {\n return\n }\n found = simblings[currIdx === simblings.length - 1 ? 0 : currIdx + 1]\n }\n\n if (found) {\n found.focus()\n }\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,eAAe,GAAG,CAAC,MAAM,EAAE,IAAI,KAAK;AACjD,EAAE,IAAI,QAAQ,GAAG;AACjB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK;AACjC,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE;AAC5B,MAAM,QAAQ,GAAG;AACjB;AACA,GAAG;AACH,EAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,aAAa,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK;AACpE,EAAE,MAAM,GAAG;AACX,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC;AACjD;AACA,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,cAAc,EAAE,SAAS;;AAE3D,EAAE,IAAI,KAAK,GAAG;AACd,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,OAAO,GAAG,CAAC,EAAE;AAC9D;AACA,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC;AACvB,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/D;AACA,IAAI,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;AAC1C,GAAG,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE;AACpC;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,EAAE;AACvC,MAAM;AACN;AACA,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;AACxE,GAAG,MAAM;AACT;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1D,MAAM;AACN;AACA,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;AACxE;;AAEA,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,KAAK,CAAC,KAAK;AACf;AACA;;;;"}
1
+ {"version":3,"file":"dom.js","sources":["../../../src/js/plugins/util/dom.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/**\n * get the element index in a array of elements\n * @param {Object} target - the target element to find\n * @param {array} list - the elements list\n * @returns {int} the element index\n */\nexport const getElementIndex = (target, list) => {\n let foundIdx = null\n list.forEach((element, idx) => {\n if (element === target) {\n foundIdx = idx\n }\n })\n return foundIdx\n}\n\n/**\n * set focus on a simbling\n * @param {*} currentElement - the current focused element\n * @param {*} simblings - list of simblings\n * @param {Object} config - isDirectionTop, isLimit, loop\n */\nexport const focusSimbling = (currentElement, simblings, config) => {\n config = {\n isDirectionTop: false,\n isLimit: false,\n loop: false,\n ...(typeof config === 'object' ? config : {}),\n }\n const currIdx = getElementIndex(currentElement, simblings)\n\n let found = null\n if (config.isLimit && config.isDirectionTop && currIdx > 0) {\n //get first element\n found = simblings[0]\n } else if (config.isLimit && currIdx < simblings.length - 1) {\n //get last element\n found = simblings[simblings.length - 1]\n } else if (config.isDirectionTop) {\n //get prev element\n if (!config.loop && currIdx === 0) {\n return\n }\n found = simblings[currIdx === 0 ? simblings.length - 1 : currIdx - 1]\n } else {\n //get next element\n if (!config.loop && currIdx === simblings.length - 1) {\n return\n }\n found = simblings[currIdx === simblings.length - 1 ? 0 : currIdx + 1]\n }\n\n if (found) {\n found.focus()\n }\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,eAAe,GAAG,CAAC,MAAM,EAAE,IAAI,KAAK;AACjD,EAAE,IAAI,QAAQ,GAAG;AACjB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK;AACjC,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE;AAC5B,MAAM,QAAQ,GAAG;AACjB;AACA,GAAG;AACH,EAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,aAAa,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK;AACpE,EAAE,MAAM,GAAG;AACX,IAAI,cAAc,EAAE,KAAK;AACzB,IAAI,OAAO,EAAE,KAAK;AAClB,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC;AACjD;AACA,EAAE,MAAM,OAAO,GAAG,eAAe,CAAC,cAAc,EAAE,SAAS;;AAE3D,EAAE,IAAI,KAAK,GAAG;AACd,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,cAAc,IAAI,OAAO,GAAG,CAAC,EAAE;AAC9D;AACA,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC;AACvB,GAAG,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/D;AACA,IAAI,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;AAC1C,GAAG,MAAM,IAAI,MAAM,CAAC,cAAc,EAAE;AACpC;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,EAAE;AACvC,MAAM;AACN;AACA,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,KAAK,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;AACxE,GAAG,MAAM;AACT;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1D,MAAM;AACN;AACA,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC;AACxE;;AAEA,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,KAAK,CAAC,KAAK;AACf;AACA;;;;"}