@iamproperty/components 3.4.6 → 3.5.0

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 (304) hide show
  1. package/assets/bootstrap/LICENSE +22 -0
  2. package/assets/bootstrap/README.md +246 -0
  3. package/assets/bootstrap/js/src/alert.js +87 -0
  4. package/assets/bootstrap/js/src/base-component.js +85 -0
  5. package/assets/bootstrap/js/src/button.js +72 -0
  6. package/assets/bootstrap/js/src/carousel.js +475 -0
  7. package/assets/bootstrap/js/src/collapse.js +302 -0
  8. package/assets/bootstrap/js/src/dom/data.js +55 -0
  9. package/assets/bootstrap/js/src/dom/event-handler.js +320 -0
  10. package/assets/bootstrap/js/src/dom/manipulator.js +71 -0
  11. package/assets/bootstrap/js/src/dom/selector-engine.js +83 -0
  12. package/assets/bootstrap/js/src/dropdown.js +454 -0
  13. package/assets/bootstrap/js/src/modal.js +377 -0
  14. package/assets/bootstrap/js/src/offcanvas.js +283 -0
  15. package/assets/bootstrap/js/src/popover.js +97 -0
  16. package/assets/bootstrap/js/src/scrollspy.js +294 -0
  17. package/assets/bootstrap/js/src/tab.js +305 -0
  18. package/assets/bootstrap/js/src/toast.js +225 -0
  19. package/assets/bootstrap/js/src/tooltip.js +633 -0
  20. package/assets/bootstrap/js/src/util/backdrop.js +149 -0
  21. package/assets/bootstrap/js/src/util/component-functions.js +34 -0
  22. package/assets/bootstrap/js/src/util/config.js +66 -0
  23. package/assets/bootstrap/js/src/util/focustrap.js +115 -0
  24. package/assets/bootstrap/js/src/util/index.js +336 -0
  25. package/assets/bootstrap/js/src/util/sanitizer.js +118 -0
  26. package/assets/bootstrap/js/src/util/scrollbar.js +114 -0
  27. package/assets/bootstrap/js/src/util/swipe.js +146 -0
  28. package/assets/bootstrap/js/src/util/template-factory.js +160 -0
  29. package/assets/bootstrap/package.json +181 -0
  30. package/assets/bootstrap/scss/_accordion.scss +149 -0
  31. package/assets/bootstrap/scss/_alert.scss +71 -0
  32. package/assets/bootstrap/scss/_badge.scss +38 -0
  33. package/assets/bootstrap/scss/_breadcrumb.scss +40 -0
  34. package/assets/bootstrap/scss/_button-group.scss +142 -0
  35. package/assets/bootstrap/scss/_buttons.scss +207 -0
  36. package/assets/bootstrap/scss/_card.scss +234 -0
  37. package/assets/bootstrap/scss/_carousel.scss +226 -0
  38. package/assets/bootstrap/scss/_close.scss +40 -0
  39. package/assets/bootstrap/scss/_containers.scss +41 -0
  40. package/assets/bootstrap/scss/_dropdown.scss +249 -0
  41. package/assets/bootstrap/scss/_forms.scss +9 -0
  42. package/assets/bootstrap/scss/_functions.scss +302 -0
  43. package/assets/bootstrap/scss/_grid.scss +33 -0
  44. package/assets/bootstrap/scss/_helpers.scss +10 -0
  45. package/assets/bootstrap/scss/_images.scss +42 -0
  46. package/assets/bootstrap/scss/_list-group.scss +192 -0
  47. package/assets/bootstrap/scss/_maps.scss +54 -0
  48. package/assets/bootstrap/scss/_mixins.scss +43 -0
  49. package/assets/bootstrap/scss/_modal.scss +237 -0
  50. package/assets/bootstrap/scss/_nav.scss +172 -0
  51. package/assets/bootstrap/scss/_navbar.scss +278 -0
  52. package/assets/bootstrap/scss/_offcanvas.scss +144 -0
  53. package/assets/bootstrap/scss/_pagination.scss +109 -0
  54. package/assets/bootstrap/scss/_placeholders.scss +51 -0
  55. package/assets/bootstrap/scss/_popover.scss +196 -0
  56. package/assets/bootstrap/scss/_progress.scss +59 -0
  57. package/assets/bootstrap/scss/_reboot.scss +610 -0
  58. package/assets/bootstrap/scss/_root.scss +73 -0
  59. package/assets/bootstrap/scss/_spinners.scss +85 -0
  60. package/assets/bootstrap/scss/_tables.scss +164 -0
  61. package/assets/bootstrap/scss/_toasts.scss +73 -0
  62. package/assets/bootstrap/scss/_tooltip.scss +120 -0
  63. package/assets/bootstrap/scss/_transitions.scss +27 -0
  64. package/assets/bootstrap/scss/_type.scss +106 -0
  65. package/assets/bootstrap/scss/_utilities.scss +647 -0
  66. package/assets/bootstrap/scss/_variables.scss +1634 -0
  67. package/assets/bootstrap/scss/bootstrap-grid.scss +64 -0
  68. package/assets/bootstrap/scss/bootstrap-reboot.scss +9 -0
  69. package/assets/bootstrap/scss/bootstrap-utilities.scss +18 -0
  70. package/assets/bootstrap/scss/bootstrap.scss +51 -0
  71. package/assets/bootstrap/scss/forms/_floating-labels.scss +75 -0
  72. package/assets/bootstrap/scss/forms/_form-check.scss +175 -0
  73. package/assets/bootstrap/scss/forms/_form-control.scss +194 -0
  74. package/assets/bootstrap/scss/forms/_form-range.scss +91 -0
  75. package/assets/bootstrap/scss/forms/_form-select.scss +71 -0
  76. package/assets/bootstrap/scss/forms/_form-text.scss +11 -0
  77. package/assets/bootstrap/scss/forms/_input-group.scss +132 -0
  78. package/assets/bootstrap/scss/forms/_labels.scss +36 -0
  79. package/assets/bootstrap/scss/forms/_validation.scss +12 -0
  80. package/assets/bootstrap/scss/helpers/_clearfix.scss +3 -0
  81. package/assets/bootstrap/scss/helpers/_color-bg.scss +10 -0
  82. package/assets/bootstrap/scss/helpers/_colored-links.scss +12 -0
  83. package/assets/bootstrap/scss/helpers/_position.scss +36 -0
  84. package/assets/bootstrap/scss/helpers/_ratio.scss +26 -0
  85. package/assets/bootstrap/scss/helpers/_stacks.scss +15 -0
  86. package/assets/bootstrap/scss/helpers/_stretched-link.scss +15 -0
  87. package/assets/bootstrap/scss/helpers/_text-truncation.scss +7 -0
  88. package/assets/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
  89. package/assets/bootstrap/scss/helpers/_vr.scss +8 -0
  90. package/assets/bootstrap/scss/mixins/_alert.scss +15 -0
  91. package/assets/bootstrap/scss/mixins/_backdrop.scss +14 -0
  92. package/assets/bootstrap/scss/mixins/_banner.scss +9 -0
  93. package/assets/bootstrap/scss/mixins/_border-radius.scss +78 -0
  94. package/assets/bootstrap/scss/mixins/_box-shadow.scss +18 -0
  95. package/assets/bootstrap/scss/mixins/_breakpoints.scss +127 -0
  96. package/assets/bootstrap/scss/mixins/_buttons.scss +70 -0
  97. package/assets/bootstrap/scss/mixins/_caret.scss +64 -0
  98. package/assets/bootstrap/scss/mixins/_clearfix.scss +9 -0
  99. package/assets/bootstrap/scss/mixins/_color-scheme.scss +7 -0
  100. package/assets/bootstrap/scss/mixins/_container.scss +11 -0
  101. package/assets/bootstrap/scss/mixins/_deprecate.scss +10 -0
  102. package/assets/bootstrap/scss/mixins/_forms.scss +152 -0
  103. package/assets/bootstrap/scss/mixins/_gradients.scss +47 -0
  104. package/assets/bootstrap/scss/mixins/_grid.scss +151 -0
  105. package/assets/bootstrap/scss/mixins/_image.scss +16 -0
  106. package/assets/bootstrap/scss/mixins/_list-group.scss +24 -0
  107. package/assets/bootstrap/scss/mixins/_lists.scss +7 -0
  108. package/assets/bootstrap/scss/mixins/_pagination.scss +10 -0
  109. package/assets/bootstrap/scss/mixins/_reset-text.scss +17 -0
  110. package/assets/bootstrap/scss/mixins/_resize.scss +6 -0
  111. package/assets/bootstrap/scss/mixins/_table-variants.scss +24 -0
  112. package/assets/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  113. package/assets/bootstrap/scss/mixins/_transition.scss +26 -0
  114. package/assets/bootstrap/scss/mixins/_utilities.scss +97 -0
  115. package/assets/bootstrap/scss/mixins/_visually-hidden.scss +29 -0
  116. package/assets/bootstrap/scss/utilities/_api.scss +47 -0
  117. package/assets/bootstrap/scss/vendor/_rfs.scss +354 -0
  118. package/assets/css/components/accordion.css +1 -1
  119. package/assets/css/components/accordion.css.map +1 -1
  120. package/assets/css/components/admin-panel.css +1 -0
  121. package/assets/css/components/admin-panel.css.map +1 -0
  122. package/assets/css/components/alert.css +1 -1
  123. package/assets/css/components/alert.css.map +1 -1
  124. package/assets/css/components/applied-filters.css +1 -0
  125. package/assets/css/components/applied-filters.css.map +1 -0
  126. package/assets/css/components/card.css +1 -1
  127. package/assets/css/components/card.css.map +1 -1
  128. package/assets/css/components/carousel.css +1 -1
  129. package/assets/css/components/carousel.css.map +1 -1
  130. package/assets/css/components/charts.css +1 -1
  131. package/assets/css/components/charts.css.map +1 -1
  132. package/assets/css/components/container.css +1 -1
  133. package/assets/css/components/container.css.map +1 -1
  134. package/assets/css/components/dialog.css +1 -0
  135. package/assets/css/components/dialog.css.map +1 -0
  136. package/assets/css/components/forms.css +1 -1
  137. package/assets/css/components/forms.css.map +1 -1
  138. package/assets/css/components/header.css +1 -1
  139. package/assets/css/components/header.css.map +1 -1
  140. package/assets/css/components/lists.css +1 -1
  141. package/assets/css/components/lists.css.map +1 -1
  142. package/assets/css/components/nav.css +1 -1
  143. package/assets/css/components/nav.css.map +1 -1
  144. package/assets/css/components/pagination.css +1 -0
  145. package/assets/css/components/pagination.css.map +1 -0
  146. package/assets/css/components/property-searchbar.css +1 -1
  147. package/assets/css/components/property-searchbar.css.map +1 -1
  148. package/assets/css/components/stepper.css +1 -1
  149. package/assets/css/components/stepper.css.map +1 -1
  150. package/assets/css/components/table.css +1 -0
  151. package/assets/css/components/table.css.map +1 -0
  152. package/assets/css/components/tabs.css +1 -1
  153. package/assets/css/components/tabs.css.map +1 -1
  154. package/assets/css/components/tooltips.css +1 -1
  155. package/assets/css/components/tooltips.css.map +1 -1
  156. package/assets/css/core.min.css +1 -1
  157. package/assets/css/core.min.css.map +1 -1
  158. package/assets/css/style.min.css +1 -1
  159. package/assets/css/style.min.css.map +1 -1
  160. package/assets/js/bundle.js +18 -11
  161. package/assets/js/components/accordion/accordion.component.js +6 -0
  162. package/assets/js/components/accordion/accordion.component.min.js +3 -3
  163. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  164. package/assets/js/components/applied-filters/applied-filters.component.js +26 -0
  165. package/assets/js/components/card/card.component.js +91 -0
  166. package/assets/js/components/card/card.component.min.js +21 -0
  167. package/assets/js/components/card/card.component.min.js.map +1 -0
  168. package/assets/js/components/filterlist/filterlist.component.js +49 -0
  169. package/assets/js/components/filterlist/filterlist.component.min.js +23 -0
  170. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -0
  171. package/assets/js/components/header/header.component.js +6 -0
  172. package/assets/js/components/header/header.component.min.js +5 -5
  173. package/assets/js/components/header/header.component.min.js.map +1 -1
  174. package/assets/js/components/pagination/pagination.component.js +34 -0
  175. package/assets/js/components/table/table.component.js +108 -0
  176. package/assets/js/components/table/table.component.min.js +24 -0
  177. package/assets/js/components/table/table.component.min.js.map +1 -0
  178. package/assets/js/components/tabs/tabs.component.js +6 -0
  179. package/assets/js/components/tabs/tabs.component.min.js +17 -0
  180. package/assets/js/components/tabs/tabs.component.min.js.map +1 -0
  181. package/assets/js/dynamic.js +7 -18
  182. package/assets/js/dynamic.min.js +2 -53
  183. package/assets/js/dynamic.min.js.map +1 -1
  184. package/assets/js/flat-components.js +27 -9
  185. package/assets/js/modules/applied-filters.js +100 -0
  186. package/assets/js/modules/data-layer.js +45 -0
  187. package/assets/js/modules/filterlist.js +32 -0
  188. package/assets/js/modules/helpers.js +102 -49
  189. package/assets/js/modules/pagination.js +33 -0
  190. package/assets/js/modules/table.js +506 -420
  191. package/assets/js/modules/tabs.js +6 -0
  192. package/assets/js/modules/youtubevideo.js +53 -61
  193. package/assets/js/scripts.bundle.js +77 -62
  194. package/assets/js/scripts.bundle.js.map +1 -1
  195. package/assets/js/scripts.bundle.min.js +2 -2
  196. package/assets/js/scripts.bundle.min.js.map +1 -1
  197. package/assets/js/tests/filterlist.spec.js +22 -0
  198. package/assets/js/tests/pagination.spec.js +15 -0
  199. package/assets/js/tests/table.spec.js +149 -0
  200. package/assets/sass/_components.scss +1 -2
  201. package/assets/sass/_corefiles.scss +20 -19
  202. package/assets/sass/_forms.scss +7 -7
  203. package/assets/sass/_functions/functions.scss +1 -1
  204. package/assets/sass/_functions/mixins.scss +19 -21
  205. package/assets/sass/_functions/utilities.scss +67 -9
  206. package/assets/sass/_functions/variables.scss +109 -55
  207. package/assets/sass/_tests/colours.spec.scss +8 -22
  208. package/assets/sass/components/accordion.scss +13 -0
  209. package/assets/sass/components/admin-panel.scss +106 -0
  210. package/assets/sass/components/alert.scss +22 -0
  211. package/assets/sass/components/applied-filters.scss +65 -0
  212. package/assets/sass/components/card.scss +177 -233
  213. package/assets/sass/components/carousel.scss +72 -0
  214. package/assets/sass/components/charts.scss +41 -1
  215. package/assets/sass/components/container.scss +8 -3
  216. package/assets/sass/components/dialog.scss +208 -0
  217. package/assets/sass/components/forms.scss +37 -5
  218. package/assets/sass/components/lists.scss +29 -0
  219. package/assets/sass/components/nav.scss +6 -2
  220. package/assets/sass/components/pagination.scss +140 -0
  221. package/assets/sass/components/stepper.scss +3 -3
  222. package/assets/sass/components/table.scss +423 -0
  223. package/assets/sass/components/tabs.scss +20 -7
  224. package/assets/sass/components/tooltips.scss +1 -1
  225. package/assets/sass/foundations/buttons.scss +366 -0
  226. package/assets/sass/foundations/icons.scss +1 -1
  227. package/assets/sass/foundations/links.scss +125 -0
  228. package/assets/sass/foundations/media.scss +1 -1
  229. package/assets/sass/foundations/reboot.scss +21 -17
  230. package/assets/sass/foundations/root.scss +9 -29
  231. package/assets/sass/foundations/type.scss +1 -1
  232. package/assets/svg/illustrations/table.svg +165 -0
  233. package/assets/ts/bundle.ts +23 -12
  234. package/assets/ts/components/accordion/accordion.component.ts +7 -0
  235. package/assets/ts/components/applied-filters/README.md +5 -0
  236. package/assets/ts/components/applied-filters/applied-filters.component.ts +33 -0
  237. package/assets/ts/components/card/README.md +22 -0
  238. package/assets/ts/components/card/card.component.ts +117 -0
  239. package/assets/ts/components/filterlist/README.md +17 -0
  240. package/assets/ts/components/filterlist/filterlist.component.ts +60 -0
  241. package/assets/ts/components/header/header.component.ts +8 -0
  242. package/assets/ts/components/pagination/README.md +11 -0
  243. package/assets/ts/components/pagination/pagination.component.ts +45 -0
  244. package/assets/ts/components/table/README.md +23 -0
  245. package/assets/ts/components/table/table.component.ts +133 -0
  246. package/assets/ts/components/tabs/tabs.component.ts +7 -0
  247. package/assets/ts/dynamic.ts +12 -19
  248. package/assets/ts/flat-components.ts +37 -9
  249. package/assets/ts/modules/applied-filters.ts +146 -0
  250. package/assets/ts/modules/data-layer.ts +58 -0
  251. package/assets/ts/modules/filterlist.ts +46 -0
  252. package/assets/ts/modules/helpers.ts +129 -58
  253. package/assets/ts/modules/pagination.ts +44 -0
  254. package/assets/ts/modules/table.ts +598 -433
  255. package/assets/ts/modules/tabs.ts +8 -1
  256. package/assets/ts/modules/youtubevideo.ts +58 -63
  257. package/assets/ts/tests/filterlist.spec.ts +29 -0
  258. package/assets/ts/tests/pagination.spec.ts +21 -0
  259. package/assets/ts/tests/table.spec.ts +194 -0
  260. package/dist/components.es.js +1267 -1295
  261. package/dist/components.umd.js +70 -65
  262. package/dist/style.css +1 -1
  263. package/package.json +8 -5
  264. package/src/components/AppliedFilters/AppliedFilters.vue +20 -0
  265. package/src/components/AppliedFilters/README.md +5 -0
  266. package/src/components/Card/Card.vue +11 -112
  267. package/src/components/Card/README.md +16 -18
  268. package/src/components/Carousel/Carousel.vue +49 -10
  269. package/src/components/Chart/Chart.vue +46 -4
  270. package/src/components/Filterlist/Filterlist.vue +20 -0
  271. package/src/components/Filterlist/README.md +17 -0
  272. package/src/components/Pagination/Pagination.vue +30 -0
  273. package/src/components/Pagination/README.md +11 -0
  274. package/src/components/Table/README.md +29 -44
  275. package/src/components/Table/Table.spec.js +5 -37
  276. package/src/components/Table/Table.vue +16 -91
  277. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +1 -1
  278. package/src/index.js +3 -2
  279. package/assets/css/components/buttons.css +0 -1
  280. package/assets/css/components/buttons.css.map +0 -1
  281. package/assets/css/components/cardDeck.css +0 -1
  282. package/assets/css/components/cardDeck.css.map +0 -1
  283. package/assets/css/components/links.css +0 -1
  284. package/assets/css/components/links.css.map +0 -1
  285. package/assets/css/components/modal.css +0 -1
  286. package/assets/css/components/modal.css.map +0 -1
  287. package/assets/css/components/panel.css +0 -1
  288. package/assets/css/components/panel.css.map +0 -1
  289. package/assets/css/components/tables.css +0 -1
  290. package/assets/css/components/tables.css.map +0 -1
  291. package/assets/js/modules/modal.js +0 -69
  292. package/assets/sass/components/buttons.scss +0 -252
  293. package/assets/sass/components/cardDeck.scss +0 -108
  294. package/assets/sass/components/links.scss +0 -99
  295. package/assets/sass/components/modal.scss +0 -136
  296. package/assets/sass/components/panel.scss +0 -161
  297. package/assets/sass/components/tables.scss +0 -291
  298. package/assets/ts/modules/modal.ts +0 -91
  299. package/src/components/CardDeck/CardDeck.spec.js +0 -99
  300. package/src/components/CardDeck/CardDeck.vue +0 -77
  301. package/src/components/CardDeck/README.md +0 -25
  302. package/src/components/Modal/Modal.spec.js +0 -22
  303. package/src/components/Modal/Modal.vue +0 -43
  304. package/src/components/Modal/README.md +0 -20
@@ -0,0 +1,302 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v5.2.3): collapse.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ import {
9
+ defineJQueryPlugin,
10
+ getElement,
11
+ getElementFromSelector,
12
+ getSelectorFromElement,
13
+ reflow
14
+ } from './util/index'
15
+ import EventHandler from './dom/event-handler'
16
+ import SelectorEngine from './dom/selector-engine'
17
+ import BaseComponent from './base-component'
18
+
19
+ /**
20
+ * Constants
21
+ */
22
+
23
+ const NAME = 'collapse'
24
+ const DATA_KEY = 'bs.collapse'
25
+ const EVENT_KEY = `.${DATA_KEY}`
26
+ const DATA_API_KEY = '.data-api'
27
+
28
+ const EVENT_SHOW = `show${EVENT_KEY}`
29
+ const EVENT_SHOWN = `shown${EVENT_KEY}`
30
+ const EVENT_HIDE = `hide${EVENT_KEY}`
31
+ const EVENT_HIDDEN = `hidden${EVENT_KEY}`
32
+ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
33
+
34
+ const CLASS_NAME_SHOW = 'show'
35
+ const CLASS_NAME_COLLAPSE = 'collapse'
36
+ const CLASS_NAME_COLLAPSING = 'collapsing'
37
+ const CLASS_NAME_COLLAPSED = 'collapsed'
38
+ const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`
39
+ const CLASS_NAME_HORIZONTAL = 'collapse-horizontal'
40
+
41
+ const WIDTH = 'width'
42
+ const HEIGHT = 'height'
43
+
44
+ const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'
45
+ const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'
46
+
47
+ const Default = {
48
+ parent: null,
49
+ toggle: true
50
+ }
51
+
52
+ const DefaultType = {
53
+ parent: '(null|element)',
54
+ toggle: 'boolean'
55
+ }
56
+
57
+ /**
58
+ * Class definition
59
+ */
60
+
61
+ class Collapse extends BaseComponent {
62
+ constructor(element, config) {
63
+ super(element, config)
64
+
65
+ this._isTransitioning = false
66
+ this._triggerArray = []
67
+
68
+ const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)
69
+
70
+ for (const elem of toggleList) {
71
+ const selector = getSelectorFromElement(elem)
72
+ const filterElement = SelectorEngine.find(selector)
73
+ .filter(foundElement => foundElement === this._element)
74
+
75
+ if (selector !== null && filterElement.length) {
76
+ this._triggerArray.push(elem)
77
+ }
78
+ }
79
+
80
+ this._initializeChildren()
81
+
82
+ if (!this._config.parent) {
83
+ this._addAriaAndCollapsedClass(this._triggerArray, this._isShown())
84
+ }
85
+
86
+ if (this._config.toggle) {
87
+ this.toggle()
88
+ }
89
+ }
90
+
91
+ // Getters
92
+ static get Default() {
93
+ return Default
94
+ }
95
+
96
+ static get DefaultType() {
97
+ return DefaultType
98
+ }
99
+
100
+ static get NAME() {
101
+ return NAME
102
+ }
103
+
104
+ // Public
105
+ toggle() {
106
+ if (this._isShown()) {
107
+ this.hide()
108
+ } else {
109
+ this.show()
110
+ }
111
+ }
112
+
113
+ show() {
114
+ if (this._isTransitioning || this._isShown()) {
115
+ return
116
+ }
117
+
118
+ let activeChildren = []
119
+
120
+ // find active children
121
+ if (this._config.parent) {
122
+ activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)
123
+ .filter(element => element !== this._element)
124
+ .map(element => Collapse.getOrCreateInstance(element, { toggle: false }))
125
+ }
126
+
127
+ if (activeChildren.length && activeChildren[0]._isTransitioning) {
128
+ return
129
+ }
130
+
131
+ const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)
132
+ if (startEvent.defaultPrevented) {
133
+ return
134
+ }
135
+
136
+ for (const activeInstance of activeChildren) {
137
+ activeInstance.hide()
138
+ }
139
+
140
+ const dimension = this._getDimension()
141
+
142
+ this._element.classList.remove(CLASS_NAME_COLLAPSE)
143
+ this._element.classList.add(CLASS_NAME_COLLAPSING)
144
+
145
+ this._element.style[dimension] = 0
146
+
147
+ this._addAriaAndCollapsedClass(this._triggerArray, true)
148
+ this._isTransitioning = true
149
+
150
+ const complete = () => {
151
+ this._isTransitioning = false
152
+
153
+ this._element.classList.remove(CLASS_NAME_COLLAPSING)
154
+ this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)
155
+
156
+ this._element.style[dimension] = ''
157
+
158
+ EventHandler.trigger(this._element, EVENT_SHOWN)
159
+ }
160
+
161
+ const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)
162
+ const scrollSize = `scroll${capitalizedDimension}`
163
+
164
+ this._queueCallback(complete, this._element, true)
165
+ this._element.style[dimension] = `${this._element[scrollSize]}px`
166
+ }
167
+
168
+ hide() {
169
+ if (this._isTransitioning || !this._isShown()) {
170
+ return
171
+ }
172
+
173
+ const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)
174
+ if (startEvent.defaultPrevented) {
175
+ return
176
+ }
177
+
178
+ const dimension = this._getDimension()
179
+
180
+ this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`
181
+
182
+ reflow(this._element)
183
+
184
+ this._element.classList.add(CLASS_NAME_COLLAPSING)
185
+ this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)
186
+
187
+ for (const trigger of this._triggerArray) {
188
+ const element = getElementFromSelector(trigger)
189
+
190
+ if (element && !this._isShown(element)) {
191
+ this._addAriaAndCollapsedClass([trigger], false)
192
+ }
193
+ }
194
+
195
+ this._isTransitioning = true
196
+
197
+ const complete = () => {
198
+ this._isTransitioning = false
199
+ this._element.classList.remove(CLASS_NAME_COLLAPSING)
200
+ this._element.classList.add(CLASS_NAME_COLLAPSE)
201
+ EventHandler.trigger(this._element, EVENT_HIDDEN)
202
+ }
203
+
204
+ this._element.style[dimension] = ''
205
+
206
+ this._queueCallback(complete, this._element, true)
207
+ }
208
+
209
+ _isShown(element = this._element) {
210
+ return element.classList.contains(CLASS_NAME_SHOW)
211
+ }
212
+
213
+ // Private
214
+ _configAfterMerge(config) {
215
+ config.toggle = Boolean(config.toggle) // Coerce string values
216
+ config.parent = getElement(config.parent)
217
+ return config
218
+ }
219
+
220
+ _getDimension() {
221
+ return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT
222
+ }
223
+
224
+ _initializeChildren() {
225
+ if (!this._config.parent) {
226
+ return
227
+ }
228
+
229
+ const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)
230
+
231
+ for (const element of children) {
232
+ const selected = getElementFromSelector(element)
233
+
234
+ if (selected) {
235
+ this._addAriaAndCollapsedClass([element], this._isShown(selected))
236
+ }
237
+ }
238
+ }
239
+
240
+ _getFirstLevelChildren(selector) {
241
+ const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)
242
+ // remove children if greater depth
243
+ return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element))
244
+ }
245
+
246
+ _addAriaAndCollapsedClass(triggerArray, isOpen) {
247
+ if (!triggerArray.length) {
248
+ return
249
+ }
250
+
251
+ for (const element of triggerArray) {
252
+ element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen)
253
+ element.setAttribute('aria-expanded', isOpen)
254
+ }
255
+ }
256
+
257
+ // Static
258
+ static jQueryInterface(config) {
259
+ const _config = {}
260
+ if (typeof config === 'string' && /show|hide/.test(config)) {
261
+ _config.toggle = false
262
+ }
263
+
264
+ return this.each(function () {
265
+ const data = Collapse.getOrCreateInstance(this, _config)
266
+
267
+ if (typeof config === 'string') {
268
+ if (typeof data[config] === 'undefined') {
269
+ throw new TypeError(`No method named "${config}"`)
270
+ }
271
+
272
+ data[config]()
273
+ }
274
+ })
275
+ }
276
+ }
277
+
278
+ /**
279
+ * Data API implementation
280
+ */
281
+
282
+ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
283
+ // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
284
+ if (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {
285
+ event.preventDefault()
286
+ }
287
+
288
+ const selector = getSelectorFromElement(this)
289
+ const selectorElements = SelectorEngine.find(selector)
290
+
291
+ for (const element of selectorElements) {
292
+ Collapse.getOrCreateInstance(element, { toggle: false }).toggle()
293
+ }
294
+ })
295
+
296
+ /**
297
+ * jQuery
298
+ */
299
+
300
+ defineJQueryPlugin(Collapse)
301
+
302
+ export default Collapse
@@ -0,0 +1,55 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v5.2.3): dom/data.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ /**
9
+ * Constants
10
+ */
11
+
12
+ const elementMap = new Map()
13
+
14
+ export default {
15
+ set(element, key, instance) {
16
+ if (!elementMap.has(element)) {
17
+ elementMap.set(element, new Map())
18
+ }
19
+
20
+ const instanceMap = elementMap.get(element)
21
+
22
+ // make it clear we only want one instance per element
23
+ // can be removed later when multiple key/instances are fine to be used
24
+ if (!instanceMap.has(key) && instanceMap.size !== 0) {
25
+ // eslint-disable-next-line no-console
26
+ console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)
27
+ return
28
+ }
29
+
30
+ instanceMap.set(key, instance)
31
+ },
32
+
33
+ get(element, key) {
34
+ if (elementMap.has(element)) {
35
+ return elementMap.get(element).get(key) || null
36
+ }
37
+
38
+ return null
39
+ },
40
+
41
+ remove(element, key) {
42
+ if (!elementMap.has(element)) {
43
+ return
44
+ }
45
+
46
+ const instanceMap = elementMap.get(element)
47
+
48
+ instanceMap.delete(key)
49
+
50
+ // free up element references if there are no instances left for an element
51
+ if (instanceMap.size === 0) {
52
+ elementMap.delete(element)
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,320 @@
1
+ /**
2
+ * --------------------------------------------------------------------------
3
+ * Bootstrap (v5.2.3): dom/event-handler.js
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
+ * --------------------------------------------------------------------------
6
+ */
7
+
8
+ import { getjQuery } from '../util/index'
9
+
10
+ /**
11
+ * Constants
12
+ */
13
+
14
+ const namespaceRegex = /[^.]*(?=\..*)\.|.*/
15
+ const stripNameRegex = /\..*/
16
+ const stripUidRegex = /::\d+$/
17
+ const eventRegistry = {} // Events storage
18
+ let uidEvent = 1
19
+ const customEvents = {
20
+ mouseenter: 'mouseover',
21
+ mouseleave: 'mouseout'
22
+ }
23
+
24
+ const nativeEvents = new Set([
25
+ 'click',
26
+ 'dblclick',
27
+ 'mouseup',
28
+ 'mousedown',
29
+ 'contextmenu',
30
+ 'mousewheel',
31
+ 'DOMMouseScroll',
32
+ 'mouseover',
33
+ 'mouseout',
34
+ 'mousemove',
35
+ 'selectstart',
36
+ 'selectend',
37
+ 'keydown',
38
+ 'keypress',
39
+ 'keyup',
40
+ 'orientationchange',
41
+ 'touchstart',
42
+ 'touchmove',
43
+ 'touchend',
44
+ 'touchcancel',
45
+ 'pointerdown',
46
+ 'pointermove',
47
+ 'pointerup',
48
+ 'pointerleave',
49
+ 'pointercancel',
50
+ 'gesturestart',
51
+ 'gesturechange',
52
+ 'gestureend',
53
+ 'focus',
54
+ 'blur',
55
+ 'change',
56
+ 'reset',
57
+ 'select',
58
+ 'submit',
59
+ 'focusin',
60
+ 'focusout',
61
+ 'load',
62
+ 'unload',
63
+ 'beforeunload',
64
+ 'resize',
65
+ 'move',
66
+ 'DOMContentLoaded',
67
+ 'readystatechange',
68
+ 'error',
69
+ 'abort',
70
+ 'scroll'
71
+ ])
72
+
73
+ /**
74
+ * Private methods
75
+ */
76
+
77
+ function makeEventUid(element, uid) {
78
+ return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++
79
+ }
80
+
81
+ function getElementEvents(element) {
82
+ const uid = makeEventUid(element)
83
+
84
+ element.uidEvent = uid
85
+ eventRegistry[uid] = eventRegistry[uid] || {}
86
+
87
+ return eventRegistry[uid]
88
+ }
89
+
90
+ function bootstrapHandler(element, fn) {
91
+ return function handler(event) {
92
+ hydrateObj(event, { delegateTarget: element })
93
+
94
+ if (handler.oneOff) {
95
+ EventHandler.off(element, event.type, fn)
96
+ }
97
+
98
+ return fn.apply(element, [event])
99
+ }
100
+ }
101
+
102
+ function bootstrapDelegationHandler(element, selector, fn) {
103
+ return function handler(event) {
104
+ const domElements = element.querySelectorAll(selector)
105
+
106
+ for (let { target } = event; target && target !== this; target = target.parentNode) {
107
+ for (const domElement of domElements) {
108
+ if (domElement !== target) {
109
+ continue
110
+ }
111
+
112
+ hydrateObj(event, { delegateTarget: target })
113
+
114
+ if (handler.oneOff) {
115
+ EventHandler.off(element, event.type, selector, fn)
116
+ }
117
+
118
+ return fn.apply(target, [event])
119
+ }
120
+ }
121
+ }
122
+ }
123
+
124
+ function findHandler(events, callable, delegationSelector = null) {
125
+ return Object.values(events)
126
+ .find(event => event.callable === callable && event.delegationSelector === delegationSelector)
127
+ }
128
+
129
+ function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
130
+ const isDelegated = typeof handler === 'string'
131
+ // todo: tooltip passes `false` instead of selector, so we need to check
132
+ const callable = isDelegated ? delegationFunction : (handler || delegationFunction)
133
+ let typeEvent = getTypeEvent(originalTypeEvent)
134
+
135
+ if (!nativeEvents.has(typeEvent)) {
136
+ typeEvent = originalTypeEvent
137
+ }
138
+
139
+ return [isDelegated, callable, typeEvent]
140
+ }
141
+
142
+ function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
143
+ if (typeof originalTypeEvent !== 'string' || !element) {
144
+ return
145
+ }
146
+
147
+ let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)
148
+
149
+ // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
150
+ // this prevents the handler from being dispatched the same way as mouseover or mouseout does
151
+ if (originalTypeEvent in customEvents) {
152
+ const wrapFunction = fn => {
153
+ return function (event) {
154
+ if (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {
155
+ return fn.call(this, event)
156
+ }
157
+ }
158
+ }
159
+
160
+ callable = wrapFunction(callable)
161
+ }
162
+
163
+ const events = getElementEvents(element)
164
+ const handlers = events[typeEvent] || (events[typeEvent] = {})
165
+ const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)
166
+
167
+ if (previousFunction) {
168
+ previousFunction.oneOff = previousFunction.oneOff && oneOff
169
+
170
+ return
171
+ }
172
+
173
+ const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))
174
+ const fn = isDelegated ?
175
+ bootstrapDelegationHandler(element, handler, callable) :
176
+ bootstrapHandler(element, callable)
177
+
178
+ fn.delegationSelector = isDelegated ? handler : null
179
+ fn.callable = callable
180
+ fn.oneOff = oneOff
181
+ fn.uidEvent = uid
182
+ handlers[uid] = fn
183
+
184
+ element.addEventListener(typeEvent, fn, isDelegated)
185
+ }
186
+
187
+ function removeHandler(element, events, typeEvent, handler, delegationSelector) {
188
+ const fn = findHandler(events[typeEvent], handler, delegationSelector)
189
+
190
+ if (!fn) {
191
+ return
192
+ }
193
+
194
+ element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))
195
+ delete events[typeEvent][fn.uidEvent]
196
+ }
197
+
198
+ function removeNamespacedHandlers(element, events, typeEvent, namespace) {
199
+ const storeElementEvent = events[typeEvent] || {}
200
+
201
+ for (const handlerKey of Object.keys(storeElementEvent)) {
202
+ if (handlerKey.includes(namespace)) {
203
+ const event = storeElementEvent[handlerKey]
204
+ removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)
205
+ }
206
+ }
207
+ }
208
+
209
+ function getTypeEvent(event) {
210
+ // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
211
+ event = event.replace(stripNameRegex, '')
212
+ return customEvents[event] || event
213
+ }
214
+
215
+ const EventHandler = {
216
+ on(element, event, handler, delegationFunction) {
217
+ addHandler(element, event, handler, delegationFunction, false)
218
+ },
219
+
220
+ one(element, event, handler, delegationFunction) {
221
+ addHandler(element, event, handler, delegationFunction, true)
222
+ },
223
+
224
+ off(element, originalTypeEvent, handler, delegationFunction) {
225
+ if (typeof originalTypeEvent !== 'string' || !element) {
226
+ return
227
+ }
228
+
229
+ const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)
230
+ const inNamespace = typeEvent !== originalTypeEvent
231
+ const events = getElementEvents(element)
232
+ const storeElementEvent = events[typeEvent] || {}
233
+ const isNamespace = originalTypeEvent.startsWith('.')
234
+
235
+ if (typeof callable !== 'undefined') {
236
+ // Simplest case: handler is passed, remove that listener ONLY.
237
+ if (!Object.keys(storeElementEvent).length) {
238
+ return
239
+ }
240
+
241
+ removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null)
242
+ return
243
+ }
244
+
245
+ if (isNamespace) {
246
+ for (const elementEvent of Object.keys(events)) {
247
+ removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))
248
+ }
249
+ }
250
+
251
+ for (const keyHandlers of Object.keys(storeElementEvent)) {
252
+ const handlerKey = keyHandlers.replace(stripUidRegex, '')
253
+
254
+ if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
255
+ const event = storeElementEvent[keyHandlers]
256
+ removeHandler(element, events, typeEvent, event.callable, event.delegationSelector)
257
+ }
258
+ }
259
+ },
260
+
261
+ trigger(element, event, args) {
262
+ if (typeof event !== 'string' || !element) {
263
+ return null
264
+ }
265
+
266
+ const $ = getjQuery()
267
+ const typeEvent = getTypeEvent(event)
268
+ const inNamespace = event !== typeEvent
269
+
270
+ let jQueryEvent = null
271
+ let bubbles = true
272
+ let nativeDispatch = true
273
+ let defaultPrevented = false
274
+
275
+ if (inNamespace && $) {
276
+ jQueryEvent = $.Event(event, args)
277
+
278
+ $(element).trigger(jQueryEvent)
279
+ bubbles = !jQueryEvent.isPropagationStopped()
280
+ nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()
281
+ defaultPrevented = jQueryEvent.isDefaultPrevented()
282
+ }
283
+
284
+ let evt = new Event(event, { bubbles, cancelable: true })
285
+ evt = hydrateObj(evt, args)
286
+
287
+ if (defaultPrevented) {
288
+ evt.preventDefault()
289
+ }
290
+
291
+ if (nativeDispatch) {
292
+ element.dispatchEvent(evt)
293
+ }
294
+
295
+ if (evt.defaultPrevented && jQueryEvent) {
296
+ jQueryEvent.preventDefault()
297
+ }
298
+
299
+ return evt
300
+ }
301
+ }
302
+
303
+ function hydrateObj(obj, meta) {
304
+ for (const [key, value] of Object.entries(meta || {})) {
305
+ try {
306
+ obj[key] = value
307
+ } catch {
308
+ Object.defineProperty(obj, key, {
309
+ configurable: true,
310
+ get() {
311
+ return value
312
+ }
313
+ })
314
+ }
315
+ }
316
+
317
+ return obj
318
+ }
319
+
320
+ export default EventHandler