@studiometa/ui 1.0.0-alpha.1 → 1.0.0-alpha.3

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 (229) hide show
  1. package/atoms/AnchorScrollTo/AnchorScrollTo.d.ts +3 -3
  2. package/atoms/AnchorScrollTo/AnchorScrollTo.js +1 -3
  3. package/atoms/AnchorScrollTo/AnchorScrollTo.js.map +2 -2
  4. package/atoms/Data/DataBind.d.ts +1 -1
  5. package/atoms/Data/DataBind.js +9 -2
  6. package/atoms/Data/DataBind.js.map +2 -2
  7. package/atoms/Data/DataComputed.js +1 -1
  8. package/atoms/Data/DataComputed.js.map +2 -2
  9. package/atoms/Data/DataModel.js +1 -1
  10. package/atoms/Data/DataModel.js.map +2 -2
  11. package/atoms/LazyInclude/LazyInclude.d.ts +3 -1
  12. package/atoms/LazyInclude/LazyInclude.js +1 -1
  13. package/atoms/LazyInclude/LazyInclude.js.map +2 -2
  14. package/molecules/Accordion/AccordionCore.d.ts +6 -2
  15. package/molecules/Accordion/AccordionCore.js +2 -2
  16. package/molecules/Accordion/AccordionCore.js.map +2 -2
  17. package/molecules/AnchorNav/AnchorNav.d.ts +6 -2
  18. package/molecules/AnchorNav/AnchorNav.js +4 -4
  19. package/molecules/AnchorNav/AnchorNav.js.map +2 -2
  20. package/molecules/Menu/Menu.d.ts +11 -4
  21. package/molecules/Menu/Menu.js +7 -9
  22. package/molecules/Menu/Menu.js.map +2 -2
  23. package/molecules/Menu/MenuBtn.d.ts +9 -3
  24. package/molecules/Menu/MenuBtn.js +3 -3
  25. package/molecules/Menu/MenuBtn.js.map +2 -2
  26. package/molecules/Slider/Slider.d.ts +6 -2
  27. package/molecules/Slider/Slider.js +2 -2
  28. package/molecules/Slider/Slider.js.map +2 -2
  29. package/molecules/Slider/SliderDots.d.ts +4 -1
  30. package/molecules/Slider/SliderDots.js +1 -1
  31. package/molecules/Slider/SliderDots.js.map +2 -2
  32. package/molecules/Slider/SliderDrag.d.ts +3 -1
  33. package/molecules/Slider/SliderDrag.js +1 -1
  34. package/molecules/Slider/SliderDrag.js.map +2 -2
  35. package/molecules/Sticky/Sticky.d.ts +3 -1
  36. package/molecules/Sticky/Sticky.js +1 -1
  37. package/molecules/Sticky/Sticky.js.map +2 -2
  38. package/molecules/Tabs/Tabs.d.ts +4 -1
  39. package/molecules/Tabs/Tabs.js +1 -1
  40. package/molecules/Tabs/Tabs.js.map +2 -2
  41. package/molecules/index.d.ts +2 -3
  42. package/molecules/index.js +2 -3
  43. package/molecules/index.js.map +2 -2
  44. package/organisms/Frame/Frame.d.ts +11 -3
  45. package/organisms/Frame/Frame.js +14 -16
  46. package/organisms/Frame/Frame.js.map +2 -2
  47. package/package.json +2 -2
  48. package/atoms/Action/Action.cjs +0 -115
  49. package/atoms/Action/Action.cjs.map +0 -7
  50. package/atoms/Action/Target.cjs +0 -35
  51. package/atoms/Action/Target.cjs.map +0 -7
  52. package/atoms/Action/index.cjs +0 -22
  53. package/atoms/Action/index.cjs.map +0 -7
  54. package/atoms/AnchorScrollTo/AnchorScrollTo.cjs +0 -52
  55. package/atoms/AnchorScrollTo/AnchorScrollTo.cjs.map +0 -7
  56. package/atoms/AnchorScrollTo/index.cjs +0 -21
  57. package/atoms/AnchorScrollTo/index.cjs.map +0 -7
  58. package/atoms/CircularMarquee/CircularMarquee.cjs +0 -69
  59. package/atoms/CircularMarquee/CircularMarquee.cjs.map +0 -7
  60. package/atoms/CircularMarquee/index.cjs +0 -21
  61. package/atoms/CircularMarquee/index.cjs.map +0 -7
  62. package/atoms/Cursor/Cursor.cjs +0 -137
  63. package/atoms/Cursor/Cursor.cjs.map +0 -7
  64. package/atoms/Cursor/index.cjs +0 -21
  65. package/atoms/Cursor/index.cjs.map +0 -7
  66. package/atoms/Data/DataBind.cjs +0 -124
  67. package/atoms/Data/DataBind.cjs.map +0 -7
  68. package/atoms/Data/DataComputed.cjs +0 -49
  69. package/atoms/Data/DataComputed.cjs.map +0 -7
  70. package/atoms/Data/DataEffect.cjs +0 -47
  71. package/atoms/Data/DataEffect.cjs.map +0 -7
  72. package/atoms/Data/DataModel.cjs +0 -48
  73. package/atoms/Data/DataModel.cjs.map +0 -7
  74. package/atoms/Data/index.cjs +0 -24
  75. package/atoms/Data/index.cjs.map +0 -7
  76. package/atoms/Data/utils.cjs +0 -46
  77. package/atoms/Data/utils.cjs.map +0 -7
  78. package/atoms/Figure/Figure.cjs +0 -105
  79. package/atoms/Figure/Figure.cjs.map +0 -7
  80. package/atoms/Figure/FigureTwicpics.cjs +0 -123
  81. package/atoms/Figure/FigureTwicpics.cjs.map +0 -7
  82. package/atoms/Figure/index.cjs +0 -22
  83. package/atoms/Figure/index.cjs.map +0 -7
  84. package/atoms/FigureVideo/FigureVideo.cjs +0 -132
  85. package/atoms/FigureVideo/FigureVideo.cjs.map +0 -7
  86. package/atoms/FigureVideo/FigureVideoTwicpics.cjs +0 -153
  87. package/atoms/FigureVideo/FigureVideoTwicpics.cjs.map +0 -7
  88. package/atoms/FigureVideo/index.cjs +0 -22
  89. package/atoms/FigureVideo/index.cjs.map +0 -7
  90. package/atoms/LargeText/LargeText.cjs +0 -109
  91. package/atoms/LargeText/LargeText.cjs.map +0 -7
  92. package/atoms/LargeText/index.cjs +0 -21
  93. package/atoms/LargeText/index.cjs.map +0 -7
  94. package/atoms/LazyInclude/LazyInclude.cjs +0 -78
  95. package/atoms/LazyInclude/LazyInclude.cjs.map +0 -7
  96. package/atoms/LazyInclude/index.cjs +0 -21
  97. package/atoms/LazyInclude/index.cjs.map +0 -7
  98. package/atoms/Prefetch/AbstractPrefetch.cjs +0 -86
  99. package/atoms/Prefetch/AbstractPrefetch.cjs.map +0 -7
  100. package/atoms/Prefetch/PrefetchWhenOver.cjs +0 -42
  101. package/atoms/Prefetch/PrefetchWhenOver.cjs.map +0 -7
  102. package/atoms/Prefetch/PrefetchWhenVisible.cjs +0 -43
  103. package/atoms/Prefetch/PrefetchWhenVisible.cjs.map +0 -7
  104. package/atoms/Prefetch/index.cjs +0 -23
  105. package/atoms/Prefetch/index.cjs.map +0 -7
  106. package/atoms/ScrollAnimation/AbstractScrollAnimation.cjs +0 -95
  107. package/atoms/ScrollAnimation/AbstractScrollAnimation.cjs.map +0 -7
  108. package/atoms/ScrollAnimation/ScrollAnimation.cjs +0 -44
  109. package/atoms/ScrollAnimation/ScrollAnimation.cjs.map +0 -7
  110. package/atoms/ScrollAnimation/ScrollAnimationChild.cjs +0 -84
  111. package/atoms/ScrollAnimation/ScrollAnimationChild.cjs.map +0 -7
  112. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.cjs +0 -37
  113. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.cjs.map +0 -7
  114. package/atoms/ScrollAnimation/ScrollAnimationParent.cjs +0 -50
  115. package/atoms/ScrollAnimation/ScrollAnimationParent.cjs.map +0 -7
  116. package/atoms/ScrollAnimation/ScrollAnimationWithEase.cjs +0 -37
  117. package/atoms/ScrollAnimation/ScrollAnimationWithEase.cjs.map +0 -7
  118. package/atoms/ScrollAnimation/animationScrollWithEase.cjs +0 -59
  119. package/atoms/ScrollAnimation/animationScrollWithEase.cjs.map +0 -7
  120. package/atoms/ScrollAnimation/index.cjs +0 -27
  121. package/atoms/ScrollAnimation/index.cjs.map +0 -7
  122. package/atoms/ScrollReveal/ScrollReveal.cjs +0 -81
  123. package/atoms/ScrollReveal/ScrollReveal.cjs.map +0 -7
  124. package/atoms/ScrollReveal/index.cjs +0 -21
  125. package/atoms/ScrollReveal/index.cjs.map +0 -7
  126. package/atoms/index.cjs +0 -32
  127. package/atoms/index.cjs.map +0 -7
  128. package/decorators/index.cjs +0 -22
  129. package/decorators/index.cjs.map +0 -7
  130. package/decorators/withDeprecation.cjs +0 -47
  131. package/decorators/withDeprecation.cjs.map +0 -7
  132. package/decorators/withTransition.cjs +0 -86
  133. package/decorators/withTransition.cjs.map +0 -7
  134. package/index.cjs +0 -25
  135. package/index.cjs.map +0 -7
  136. package/molecules/Accordion/Accordion.cjs +0 -36
  137. package/molecules/Accordion/Accordion.cjs.map +0 -7
  138. package/molecules/Accordion/AccordionCore.cjs +0 -58
  139. package/molecules/Accordion/AccordionCore.cjs.map +0 -7
  140. package/molecules/Accordion/AccordionItem.cjs +0 -206
  141. package/molecules/Accordion/AccordionItem.cjs.map +0 -7
  142. package/molecules/Accordion/index.cjs +0 -22
  143. package/molecules/Accordion/index.cjs.map +0 -7
  144. package/molecules/AnchorNav/AnchorNav.cjs +0 -63
  145. package/molecules/AnchorNav/AnchorNav.cjs.map +0 -7
  146. package/molecules/AnchorNav/AnchorNavLink.cjs +0 -40
  147. package/molecules/AnchorNav/AnchorNavLink.cjs.map +0 -7
  148. package/molecules/AnchorNav/AnchorNavTarget.cjs +0 -35
  149. package/molecules/AnchorNav/AnchorNavTarget.cjs.map +0 -7
  150. package/molecules/AnchorNav/index.cjs +0 -23
  151. package/molecules/AnchorNav/index.cjs.map +0 -7
  152. package/molecules/Menu/Menu.cjs +0 -177
  153. package/molecules/Menu/Menu.cjs.map +0 -7
  154. package/molecules/Menu/MenuBtn.cjs +0 -66
  155. package/molecules/Menu/MenuBtn.cjs.map +0 -7
  156. package/molecules/Menu/MenuList.cjs +0 -165
  157. package/molecules/Menu/MenuList.cjs.map +0 -7
  158. package/molecules/Menu/index.cjs +0 -23
  159. package/molecules/Menu/index.cjs.map +0 -7
  160. package/molecules/Modal/Modal.cjs +0 -219
  161. package/molecules/Modal/Modal.cjs.map +0 -7
  162. package/molecules/Modal/ModalWithTransition.cjs +0 -69
  163. package/molecules/Modal/ModalWithTransition.cjs.map +0 -7
  164. package/molecules/Modal/index.cjs +0 -22
  165. package/molecules/Modal/index.cjs.map +0 -7
  166. package/molecules/Panel/Panel.cjs +0 -137
  167. package/molecules/Panel/Panel.cjs.map +0 -7
  168. package/molecules/Panel/index.cjs +0 -21
  169. package/molecules/Panel/index.cjs.map +0 -7
  170. package/molecules/Slider/AbstractSliderChild.cjs +0 -88
  171. package/molecules/Slider/AbstractSliderChild.cjs.map +0 -7
  172. package/molecules/Slider/Slider.cjs +0 -404
  173. package/molecules/Slider/Slider.cjs.map +0 -7
  174. package/molecules/Slider/SliderBtn.cjs +0 -71
  175. package/molecules/Slider/SliderBtn.cjs.map +0 -7
  176. package/molecules/Slider/SliderCount.cjs +0 -44
  177. package/molecules/Slider/SliderCount.cjs.map +0 -7
  178. package/molecules/Slider/SliderDots.cjs +0 -64
  179. package/molecules/Slider/SliderDots.cjs.map +0 -7
  180. package/molecules/Slider/SliderDrag.cjs +0 -66
  181. package/molecules/Slider/SliderDrag.cjs.map +0 -7
  182. package/molecules/Slider/SliderItem.cjs +0 -177
  183. package/molecules/Slider/SliderItem.cjs.map +0 -7
  184. package/molecules/Slider/SliderProgress.cjs +0 -49
  185. package/molecules/Slider/SliderProgress.cjs.map +0 -7
  186. package/molecules/Slider/index.cjs +0 -28
  187. package/molecules/Slider/index.cjs.map +0 -7
  188. package/molecules/Sticky/Sticky.cjs +0 -177
  189. package/molecules/Sticky/Sticky.cjs.map +0 -7
  190. package/molecules/Sticky/index.cjs +0 -21
  191. package/molecules/Sticky/index.cjs.map +0 -7
  192. package/molecules/TableOfContent/TableOfContent.cjs +0 -72
  193. package/molecules/TableOfContent/TableOfContent.cjs.map +0 -7
  194. package/molecules/TableOfContent/TableOfContentAnchor.cjs +0 -76
  195. package/molecules/TableOfContent/TableOfContentAnchor.cjs.map +0 -7
  196. package/molecules/TableOfContent/index.cjs +0 -22
  197. package/molecules/TableOfContent/index.cjs.map +0 -7
  198. package/molecules/Tabs/Tabs.cjs +0 -153
  199. package/molecules/Tabs/Tabs.cjs.map +0 -7
  200. package/molecules/Tabs/index.cjs +0 -21
  201. package/molecules/Tabs/index.cjs.map +0 -7
  202. package/molecules/index.cjs +0 -30
  203. package/molecules/index.cjs.map +0 -7
  204. package/organisms/Frame/Frame.cjs +0 -220
  205. package/organisms/Frame/Frame.cjs.map +0 -7
  206. package/organisms/Frame/FrameAnchor.cjs +0 -41
  207. package/organisms/Frame/FrameAnchor.cjs.map +0 -7
  208. package/organisms/Frame/FrameForm.cjs +0 -41
  209. package/organisms/Frame/FrameForm.cjs.map +0 -7
  210. package/organisms/Frame/FrameTarget.cjs +0 -114
  211. package/organisms/Frame/FrameTarget.cjs.map +0 -7
  212. package/organisms/Frame/index.cjs +0 -24
  213. package/organisms/Frame/index.cjs.map +0 -7
  214. package/organisms/index.cjs +0 -21
  215. package/organisms/index.cjs.map +0 -7
  216. package/primitives/Draggable/Draggable.cjs +0 -65
  217. package/primitives/Draggable/Draggable.cjs.map +0 -7
  218. package/primitives/Draggable/index.cjs +0 -21
  219. package/primitives/Draggable/index.cjs.map +0 -7
  220. package/primitives/Sentinel/Sentinel.cjs +0 -35
  221. package/primitives/Sentinel/Sentinel.cjs.map +0 -7
  222. package/primitives/Sentinel/index.cjs +0 -21
  223. package/primitives/Sentinel/index.cjs.map +0 -7
  224. package/primitives/Transition/Transition.cjs +0 -36
  225. package/primitives/Transition/Transition.cjs.map +0 -7
  226. package/primitives/Transition/index.cjs +0 -21
  227. package/primitives/Transition/index.cjs.map +0 -7
  228. package/primitives/index.cjs +0 -23
  229. package/primitives/index.cjs.map +0 -7
@@ -15,8 +15,8 @@ export declare class AnchorScrollTo<T extends BaseProps = BaseProps> extends Bas
15
15
  get targetSelector(): string;
16
16
  /**
17
17
  * Scroll to the target selector on click.
18
- * @param {MouseEvent} event
19
- * @returns {void}
20
18
  */
21
- onClick(event: any): void;
19
+ onClick({ event }: {
20
+ event: MouseEvent;
21
+ }): void;
22
22
  }
@@ -13,10 +13,8 @@ class AnchorScrollTo extends Base {
13
13
  }
14
14
  /**
15
15
  * Scroll to the target selector on click.
16
- * @param {MouseEvent} event
17
- * @returns {void}
18
16
  */
19
- onClick(event) {
17
+ onClick({ event }) {
20
18
  try {
21
19
  scrollTo(this.targetSelector);
22
20
  event.preventDefault();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/atoms/AnchorScrollTo/AnchorScrollTo.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { scrollTo } from '@studiometa/js-toolkit/utils';\n\nexport interface AnchorScrollToProps extends BaseProps {\n $el: HTMLAnchorElement;\n}\n\n/**\n * AncorScrollTo class.\n */\nexport class AnchorScrollTo<T extends BaseProps = BaseProps> extends Base<AnchorScrollToProps & T> {\n static config: BaseConfig = {\n name: 'AnchorScrollTo',\n };\n\n /**\n * Get the target selector.\n * @returns {string}\n */\n get targetSelector() {\n return this.$el.hash;\n }\n\n /**\n * Scroll to the target selector on click.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onClick(event) {\n try {\n scrollTo(this.targetSelector);\n event.preventDefault();\n } catch {\n // Silence is golden.\n }\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,gBAAgB;AASlB,MAAM,uBAAwD,KAA8B;AAAA,EACjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,iBAAiB;AACnB,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,OAAO;AACb,QAAI;AACF,eAAS,KAAK,cAAc;AAC5B,YAAM,eAAe;AAAA,IACvB,QAAQ;AAAA,IAER;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { scrollTo } from '@studiometa/js-toolkit/utils';\n\nexport interface AnchorScrollToProps extends BaseProps {\n $el: HTMLAnchorElement;\n}\n\n/**\n * AncorScrollTo class.\n */\nexport class AnchorScrollTo<T extends BaseProps = BaseProps> extends Base<AnchorScrollToProps & T> {\n static config: BaseConfig = {\n name: 'AnchorScrollTo',\n };\n\n /**\n * Get the target selector.\n * @returns {string}\n */\n get targetSelector() {\n return this.$el.hash;\n }\n\n /**\n * Scroll to the target selector on click.\n */\n onClick({ event }: { event: MouseEvent }) {\n try {\n scrollTo(this.targetSelector);\n event.preventDefault();\n } catch {\n // Silence is golden.\n }\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,gBAAgB;AASlB,MAAM,uBAAwD,KAA8B;AAAA,EACjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,iBAAiB;AACnB,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,EAAE,MAAM,GAA0B;AACxC,QAAI;AACF,eAAS,KAAK,cAAc;AAC5B,YAAM,eAAe;AAAA,IACvB,QAAQ;AAAA,IAER;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -17,7 +17,7 @@ export declare class DataBind<T extends BaseProps = BaseProps> extends Base<Data
17
17
  get value(): any;
18
18
  set value(value: any);
19
19
  get(): any;
20
- set(value: boolean | string | string[]): void;
20
+ set(value: boolean | string | string[], dispatch?: boolean): void;
21
21
  mounted(): void;
22
22
  destroyed(): void;
23
23
  }
@@ -69,8 +69,15 @@ class DataBind extends Base {
69
69
  }
70
70
  return target[this.prop];
71
71
  }
72
- set(value) {
73
- const { target, multiple } = this;
72
+ set(value, dispatch = true) {
73
+ const { target, multiple, relatedInstances } = this;
74
+ if (dispatch) {
75
+ for (const instance of relatedInstances) {
76
+ if (instance !== this && instance.value !== value) {
77
+ instance.set(value, false);
78
+ }
79
+ }
80
+ }
74
81
  if (isSelect(target)) {
75
82
  for (const option of target.options) {
76
83
  option.selected = multiple && isArray(value) ? value.includes(option.value) : option.value === value;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/atoms/Data/DataBind.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { isArray } from '@studiometa/js-toolkit/utils';\nimport { isInput, isCheckbox, isSelect } from './utils.js';\n\nconst instances = new Map<string, Set<DataBind>>();\n\nexport interface DataBindProps extends BaseProps {\n $options: {\n prop: string;\n name: string;\n };\n}\n\nexport class DataBind<T extends BaseProps = BaseProps> extends Base<DataBindProps & T> {\n static config: BaseConfig = {\n name: 'DataBind',\n options: {\n prop: String,\n name: String,\n },\n };\n\n get relatedInstances() {\n const { name } = this.$options;\n\n if (!instances.has(name)) {\n instances.set(name, new Set());\n }\n\n return instances.get(name);\n }\n\n get multiple() {\n return this.$options.name.endsWith('[]');\n }\n\n get target() {\n return this.$el;\n }\n\n get prop() {\n if (this.$options.prop) {\n return this.$options.prop;\n }\n\n const { target } = this;\n if (target instanceof HTMLInputElement) {\n return 'value';\n }\n\n return 'textContent';\n }\n\n get value() {\n return this.get();\n }\n\n set value(value) {\n this.set(value);\n }\n\n get() {\n const { target, multiple } = this;\n\n if (isSelect(target)) {\n if (multiple) {\n const values = [];\n for (const option of target.options) {\n if (option.selected) {\n values.push(option.value);\n }\n }\n\n return values;\n }\n\n const option = target.options.item(target.selectedIndex);\n return option.value;\n }\n\n if (isCheckbox(target)) {\n if (multiple) {\n const values = new Set();\n for (const instance of this.relatedInstances) {\n if (isCheckbox(instance.target) && instance.target.checked) {\n values.add(instance.target.value);\n }\n }\n return Array.from(values);\n } else {\n return target.checked;\n }\n }\n\n return target[this.prop];\n }\n\n set(value: boolean | string | string[]) {\n const { target, multiple } = this;\n\n if (isSelect(target)) {\n for (const option of target.options) {\n option.selected =\n multiple && isArray(value) ? value.includes(option.value) : option.value === value;\n }\n return;\n }\n\n if (isInput(target)) {\n switch (target.type) {\n case 'radio':\n target.checked = target.value === value;\n return;\n case 'checkbox':\n target.checked =\n multiple && isArray(value) ? value.includes(target.value) : Boolean(value);\n return;\n }\n }\n\n target[this.prop] = value;\n }\n\n mounted() {\n this.relatedInstances.add(this);\n }\n\n destroyed() {\n this.relatedInstances.delete(this);\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,eAAe;AACxB,SAAS,SAAS,YAAY,gBAAgB;AAE9C,MAAM,YAAY,oBAAI,IAA2B;AAS1C,MAAM,iBAAkD,KAAwB;AAAA,EACrF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,IAAI,mBAAmB;AACrB,UAAM,EAAE,KAAK,IAAI,KAAK;AAEtB,QAAI,CAAC,UAAU,IAAI,IAAI,GAAG;AACxB,gBAAU,IAAI,MAAM,oBAAI,IAAI,CAAC;AAAA,IAC/B;AAEA,WAAO,UAAU,IAAI,IAAI;AAAA,EAC3B;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,SAAS,KAAK,SAAS,IAAI;AAAA,EACzC;AAAA,EAEA,IAAI,SAAS;AACX,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,OAAO;AACT,QAAI,KAAK,SAAS,MAAM;AACtB,aAAO,KAAK,SAAS;AAAA,IACvB;AAEA,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,kBAAkB,kBAAkB;AACtC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,QAAQ;AACV,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA,EAEA,IAAI,MAAM,OAAO;AACf,SAAK,IAAI,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM;AACJ,UAAM,EAAE,QAAQ,SAAS,IAAI;AAE7B,QAAI,SAAS,MAAM,GAAG;AACpB,UAAI,UAAU;AACZ,cAAM,SAAS,CAAC;AAChB,mBAAWA,WAAU,OAAO,SAAS;AACnC,cAAIA,QAAO,UAAU;AACnB,mBAAO,KAAKA,QAAO,KAAK;AAAA,UAC1B;AAAA,QACF;AAEA,eAAO;AAAA,MACT;AAEA,YAAM,SAAS,OAAO,QAAQ,KAAK,OAAO,aAAa;AACvD,aAAO,OAAO;AAAA,IAChB;AAEA,QAAI,WAAW,MAAM,GAAG;AACtB,UAAI,UAAU;AACZ,cAAM,SAAS,oBAAI,IAAI;AACvB,mBAAW,YAAY,KAAK,kBAAkB;AAC5C,cAAI,WAAW,SAAS,MAAM,KAAK,SAAS,OAAO,SAAS;AAC1D,mBAAO,IAAI,SAAS,OAAO,KAAK;AAAA,UAClC;AAAA,QACF;AACA,eAAO,MAAM,KAAK,MAAM;AAAA,MAC1B,OAAO;AACL,eAAO,OAAO;AAAA,MAChB;AAAA,IACF;AAEA,WAAO,OAAO,KAAK,IAAI;AAAA,EACzB;AAAA,EAEA,IAAI,OAAoC;AACtC,UAAM,EAAE,QAAQ,SAAS,IAAI;AAE7B,QAAI,SAAS,MAAM,GAAG;AACpB,iBAAW,UAAU,OAAO,SAAS;AACnC,eAAO,WACL,YAAY,QAAQ,KAAK,IAAI,MAAM,SAAS,OAAO,KAAK,IAAI,OAAO,UAAU;AAAA,MACjF;AACA;AAAA,IACF;AAEA,QAAI,QAAQ,MAAM,GAAG;AACnB,cAAQ,OAAO,MAAM;AAAA,QACnB,KAAK;AACH,iBAAO,UAAU,OAAO,UAAU;AAClC;AAAA,QACF,KAAK;AACH,iBAAO,UACL,YAAY,QAAQ,KAAK,IAAI,MAAM,SAAS,OAAO,KAAK,IAAI,QAAQ,KAAK;AAC3E;AAAA,MACJ;AAAA,IACF;AAEA,WAAO,KAAK,IAAI,IAAI;AAAA,EACtB;AAAA,EAEA,UAAU;AACR,SAAK,iBAAiB,IAAI,IAAI;AAAA,EAChC;AAAA,EAEA,YAAY;AACV,SAAK,iBAAiB,OAAO,IAAI;AAAA,EACnC;AACF;",
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { isArray } from '@studiometa/js-toolkit/utils';\nimport { isInput, isCheckbox, isSelect } from './utils.js';\n\nconst instances = new Map<string, Set<DataBind>>();\n\nexport interface DataBindProps extends BaseProps {\n $options: {\n prop: string;\n name: string;\n };\n}\n\nexport class DataBind<T extends BaseProps = BaseProps> extends Base<DataBindProps & T> {\n static config: BaseConfig = {\n name: 'DataBind',\n options: {\n prop: String,\n name: String,\n },\n };\n\n get relatedInstances() {\n const { name } = this.$options;\n\n if (!instances.has(name)) {\n instances.set(name, new Set());\n }\n\n return instances.get(name);\n }\n\n get multiple() {\n return this.$options.name.endsWith('[]');\n }\n\n get target() {\n return this.$el;\n }\n\n get prop() {\n if (this.$options.prop) {\n return this.$options.prop;\n }\n\n const { target } = this;\n if (target instanceof HTMLInputElement) {\n return 'value';\n }\n\n return 'textContent';\n }\n\n get value() {\n return this.get();\n }\n\n set value(value) {\n this.set(value);\n }\n\n get() {\n const { target, multiple } = this;\n\n if (isSelect(target)) {\n if (multiple) {\n const values = [];\n // @ts-ignore\n for (const option of target.options) {\n if (option.selected) {\n values.push(option.value);\n }\n }\n\n return values;\n }\n\n const option = target.options.item(target.selectedIndex);\n return option.value;\n }\n\n if (isCheckbox(target)) {\n if (multiple) {\n const values = new Set();\n for (const instance of this.relatedInstances) {\n if (isCheckbox(instance.target) && instance.target.checked) {\n values.add(instance.target.value);\n }\n }\n return Array.from(values);\n } else {\n return target.checked;\n }\n }\n\n return target[this.prop];\n }\n\n set(value: boolean | string | string[], dispatch = true) {\n const { target, multiple, relatedInstances } = this;\n\n if (dispatch) {\n for (const instance of relatedInstances) {\n if (instance !== this && instance.value !== value) {\n instance.set(value, false);\n }\n }\n }\n\n if (isSelect(target)) {\n // @ts-ignore\n for (const option of target.options) {\n option.selected =\n multiple && isArray(value) ? value.includes(option.value) : option.value === value;\n }\n return;\n }\n\n if (isInput(target)) {\n switch (target.type) {\n case 'radio':\n target.checked = target.value === value;\n return;\n case 'checkbox':\n target.checked =\n multiple && isArray(value) ? value.includes(target.value) : Boolean(value);\n return;\n }\n }\n\n target[this.prop] = value;\n }\n\n mounted() {\n this.relatedInstances.add(this);\n }\n\n destroyed() {\n this.relatedInstances.delete(this);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["option"]
7
7
  }
@@ -19,7 +19,7 @@ class DataComputed extends DataBind {
19
19
  } catch (error) {
20
20
  console.error("Failed", error);
21
21
  }
22
- super.set(newValue);
22
+ super.set(newValue, false);
23
23
  }
24
24
  }
25
25
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/atoms/Data/DataComputed.ts"],
4
- "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { isDefined } from '@studiometa/js-toolkit/utils';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { getCallback } from './utils.js';\n\nexport interface DataComputedProps extends DataBindProps {\n $options: {\n compute: string;\n } & DataBindProps['$options'];\n}\n\nconst callbacks = new Map<string, Function>();\n\nexport class DataComputed<T extends BaseProps = BaseProps> extends DataBind<DataComputedProps & T> {\n static config: BaseConfig = {\n name: 'DataComputed',\n options: {\n compute: String,\n },\n };\n\n get compute() {\n const { name, compute } = this.$options;\n return getCallback(name, `return ${compute};`);\n }\n\n set(value: boolean | string | string[]) {\n let newValue = value;\n\n try {\n newValue = this.compute(value, this.target);\n } catch (error) {\n // @todo better handling of errors?\n console.error('Failed', error);\n }\n\n super.set(newValue);\n }\n}\n"],
5
- "mappings": "AAEA,SAAS,gBAAgB;AAEzB,SAAS,mBAAmB;AAQ5B,MAAM,YAAY,oBAAI,IAAsB;AAErC,MAAM,qBAAsD,SAAgC;AAAA,EACjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,IAAI,UAAU;AACZ,UAAM,EAAE,MAAM,QAAQ,IAAI,KAAK;AAC/B,WAAO,YAAY,MAAM,UAAU,OAAO,GAAG;AAAA,EAC/C;AAAA,EAEA,IAAI,OAAoC;AACtC,QAAI,WAAW;AAEf,QAAI;AACF,iBAAW,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,IAC5C,SAAS,OAAO;AAEd,cAAQ,MAAM,UAAU,KAAK;AAAA,IAC/B;AAEA,UAAM,IAAI,QAAQ;AAAA,EACpB;AACF;",
4
+ "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { isDefined } from '@studiometa/js-toolkit/utils';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { getCallback } from './utils.js';\n\nexport interface DataComputedProps extends DataBindProps {\n $options: {\n compute: string;\n } & DataBindProps['$options'];\n}\n\nconst callbacks = new Map<string, Function>();\n\nexport class DataComputed<T extends BaseProps = BaseProps> extends DataBind<DataComputedProps & T> {\n static config: BaseConfig = {\n name: 'DataComputed',\n options: {\n compute: String,\n },\n };\n\n get compute() {\n const { name, compute } = this.$options;\n return getCallback(name, `return ${compute};`);\n }\n\n set(value: boolean | string | string[]) {\n let newValue = value;\n\n try {\n newValue = this.compute(value, this.target);\n } catch (error) {\n // @todo better handling of errors?\n console.error('Failed', error);\n }\n\n super.set(newValue, false);\n }\n}\n"],
5
+ "mappings": "AAEA,SAAS,gBAAgB;AAEzB,SAAS,mBAAmB;AAQ5B,MAAM,YAAY,oBAAI,IAAsB;AAErC,MAAM,qBAAsD,SAAgC;AAAA,EACjG,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,IAAI,UAAU;AACZ,UAAM,EAAE,MAAM,QAAQ,IAAI,KAAK;AAC/B,WAAO,YAAY,MAAM,UAAU,OAAO,GAAG;AAAA,EAC/C;AAAA,EAEA,IAAI,OAAoC;AACtC,QAAI,WAAW;AAEf,QAAI;AACF,iBAAW,KAAK,QAAQ,OAAO,KAAK,MAAM;AAAA,IAC5C,SAAS,OAAO;AAEd,cAAQ,MAAM,UAAU,KAAK;AAAA,IAC/B;AAEA,UAAM,IAAI,UAAU,KAAK;AAAA,EAC3B;AACF;",
6
6
  "names": []
7
7
  }
@@ -13,7 +13,7 @@ class DataModel extends DataBind {
13
13
  value = Array.from(set);
14
14
  }
15
15
  for (const instance of this.relatedInstances) {
16
- instance.set(value);
16
+ instance.set(value, false);
17
17
  }
18
18
  }
19
19
  onInput() {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/atoms/Data/DataModel.ts"],
4
- "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { isCheckbox } from './utils.js';\n\nexport interface DataModelProps extends DataBindProps {}\n\nexport class DataModel<T extends BaseProps = BaseProps> extends DataBind<DataModelProps & T> {\n static config: BaseConfig = {\n name: 'DataModel',\n };\n\n dispatch() {\n const { target, multiple } = this;\n let value = this.get();\n\n if (multiple && isCheckbox(target) && !target.checked) {\n const set = new Set(value);\n set.delete(target.value);\n value = Array.from(set);\n }\n\n for (const instance of this.relatedInstances) {\n instance.set(value);\n }\n }\n\n onInput() {\n this.dispatch();\n }\n}\n"],
5
- "mappings": "AACA,SAAS,gBAAgB;AAEzB,SAAS,kBAAkB;AAIpB,MAAM,kBAAmD,SAA6B;AAAA,EAC3F,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA,EAEA,WAAW;AACT,UAAM,EAAE,QAAQ,SAAS,IAAI;AAC7B,QAAI,QAAQ,KAAK,IAAI;AAErB,QAAI,YAAY,WAAW,MAAM,KAAK,CAAC,OAAO,SAAS;AACrD,YAAM,MAAM,IAAI,IAAI,KAAK;AACzB,UAAI,OAAO,OAAO,KAAK;AACvB,cAAQ,MAAM,KAAK,GAAG;AAAA,IACxB;AAEA,eAAW,YAAY,KAAK,kBAAkB;AAC5C,eAAS,IAAI,KAAK;AAAA,IACpB;AAAA,EACF;AAAA,EAEA,UAAU;AACR,SAAK,SAAS;AAAA,EAChB;AACF;",
4
+ "sourcesContent": ["import type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport { DataBind } from './DataBind.js';\nimport type { DataBindProps } from './DataBind.js';\nimport { isCheckbox } from './utils.js';\n\nexport interface DataModelProps extends DataBindProps {}\n\nexport class DataModel<T extends BaseProps = BaseProps> extends DataBind<DataModelProps & T> {\n static config: BaseConfig = {\n name: 'DataModel',\n };\n\n dispatch() {\n const { target, multiple } = this;\n let value = this.get();\n\n if (multiple && isCheckbox(target) && !target.checked) {\n const set = new Set(value);\n set.delete(target.value);\n value = Array.from(set);\n }\n\n for (const instance of this.relatedInstances) {\n instance.set(value, false);\n }\n }\n\n onInput() {\n this.dispatch();\n }\n}\n"],
5
+ "mappings": "AACA,SAAS,gBAAgB;AAEzB,SAAS,kBAAkB;AAIpB,MAAM,kBAAmD,SAA6B;AAAA,EAC3F,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA,EAEA,WAAW;AACT,UAAM,EAAE,QAAQ,SAAS,IAAI;AAC7B,QAAI,QAAQ,KAAK,IAAI;AAErB,QAAI,YAAY,WAAW,MAAM,KAAK,CAAC,OAAO,SAAS;AACrD,YAAM,MAAM,IAAI,IAAI,KAAK;AACzB,UAAI,OAAO,OAAO,KAAK;AACvB,cAAQ,MAAM,KAAK,GAAG;AAAA,IACxB;AAEA,eAAW,YAAY,KAAK,kBAAkB;AAC5C,eAAS,IAAI,OAAO,KAAK;AAAA,IAC3B;AAAA,EACF;AAAA,EAEA,UAAU;AACR,SAAK,SAAS;AAAA,EAChB;AACF;",
6
6
  "names": []
7
7
  }
@@ -33,7 +33,9 @@ export declare class LazyInclude<T extends BaseProps = BaseProps> extends Base<T
33
33
  /**
34
34
  * Set content.
35
35
  */
36
- onContent(content: string): void;
36
+ onContent({ args: [content] }: {
37
+ args: [string];
38
+ }): void;
37
39
  /**
38
40
  * Set error.
39
41
  */
@@ -31,7 +31,7 @@ class LazyInclude extends Base {
31
31
  /**
32
32
  * Set content.
33
33
  */
34
- onContent(content) {
34
+ onContent({ args: [content] }) {
35
35
  this.$refs.loading.style.display = "none";
36
36
  this.$el.innerHTML = content;
37
37
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/atoms/LazyInclude/LazyInclude.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseInterface } from '@studiometa/js-toolkit';\n\nexport interface LazyIncludeProps extends BaseProps {\n $refs: {\n loading: HTMLElement;\n error: HTMLElement;\n };\n $options: {\n src: string;\n terminateOnLoad: boolean;\n };\n}\n\n/**\n * LazyInclude class.\n */\nexport class LazyInclude<T extends BaseProps = BaseProps>\n extends Base<T & LazyIncludeProps>\n implements BaseInterface\n{\n /**\n * Config.\n */\n static config = {\n name: 'LazyInclude',\n refs: ['loading', 'error'],\n emits: ['content', 'error', 'always'],\n options: {\n src: String,\n terminateOnLoad: Boolean,\n },\n };\n\n /**\n * Load the lazy content on mount.\n */\n mounted() {\n if (!this.$options.src) {\n this.$log('The `src` option is missing. Define it with the `data-option-src` attribute');\n return;\n }\n\n fetch(this.$options.src)\n .then((response) => response.text())\n .then((content) => {\n this.$emit('content', content);\n })\n .catch((error) => {\n this.$emit('error', error);\n })\n .finally(() => {\n this.$emit('always');\n });\n }\n\n /**\n * Set content.\n */\n onContent(content: string) {\n this.$refs.loading.style.display = 'none';\n this.$el.innerHTML = content;\n }\n\n /**\n * Set error.\n */\n onError() {\n this.$refs.error.style.display = 'block';\n }\n\n /**\n * Always.\n */\n onAlways() {\n if (this.$options.terminateOnLoad) {\n this.$terminate();\n }\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY;AAiBd,MAAM,oBACH,KAEV;AAAA;AAAA;AAAA;AAAA,EAIE,OAAO,SAAS;AAAA,IACd,MAAM;AAAA,IACN,MAAM,CAAC,WAAW,OAAO;AAAA,IACzB,OAAO,CAAC,WAAW,SAAS,QAAQ;AAAA,IACpC,SAAS;AAAA,MACP,KAAK;AAAA,MACL,iBAAiB;AAAA,IACnB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACR,QAAI,CAAC,KAAK,SAAS,KAAK;AACtB,WAAK,KAAK,6EAA6E;AACvF;AAAA,IACF;AAEA,UAAM,KAAK,SAAS,GAAG,EACpB,KAAK,CAAC,aAAa,SAAS,KAAK,CAAC,EAClC,KAAK,CAAC,YAAY;AACjB,WAAK,MAAM,WAAW,OAAO;AAAA,IAC/B,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,WAAK,MAAM,SAAS,KAAK;AAAA,IAC3B,CAAC,EACA,QAAQ,MAAM;AACb,WAAK,MAAM,QAAQ;AAAA,IACrB,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,SAAiB;AACzB,SAAK,MAAM,QAAQ,MAAM,UAAU;AACnC,SAAK,IAAI,YAAY;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACR,SAAK,MAAM,MAAM,MAAM,UAAU;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW;AACT,QAAI,KAAK,SAAS,iBAAiB;AACjC,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseInterface } from '@studiometa/js-toolkit';\n\nexport interface LazyIncludeProps extends BaseProps {\n $refs: {\n loading: HTMLElement;\n error: HTMLElement;\n };\n $options: {\n src: string;\n terminateOnLoad: boolean;\n };\n}\n\n/**\n * LazyInclude class.\n */\nexport class LazyInclude<T extends BaseProps = BaseProps>\n extends Base<T & LazyIncludeProps>\n implements BaseInterface\n{\n /**\n * Config.\n */\n static config = {\n name: 'LazyInclude',\n refs: ['loading', 'error'],\n emits: ['content', 'error', 'always'],\n options: {\n src: String,\n terminateOnLoad: Boolean,\n },\n };\n\n /**\n * Load the lazy content on mount.\n */\n mounted() {\n if (!this.$options.src) {\n this.$log('The `src` option is missing. Define it with the `data-option-src` attribute');\n return;\n }\n\n fetch(this.$options.src)\n .then((response) => response.text())\n .then((content) => {\n this.$emit('content', content);\n })\n .catch((error) => {\n this.$emit('error', error);\n })\n .finally(() => {\n this.$emit('always');\n });\n }\n\n /**\n * Set content.\n */\n onContent({ args: [content] }: { args: [string] }) {\n this.$refs.loading.style.display = 'none';\n this.$el.innerHTML = content;\n }\n\n /**\n * Set error.\n */\n onError() {\n this.$refs.error.style.display = 'block';\n }\n\n /**\n * Always.\n */\n onAlways() {\n if (this.$options.terminateOnLoad) {\n this.$terminate();\n }\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAiBd,MAAM,oBACH,KAEV;AAAA;AAAA;AAAA;AAAA,EAIE,OAAO,SAAS;AAAA,IACd,MAAM;AAAA,IACN,MAAM,CAAC,WAAW,OAAO;AAAA,IACzB,OAAO,CAAC,WAAW,SAAS,QAAQ;AAAA,IACpC,SAAS;AAAA,MACP,KAAK;AAAA,MACL,iBAAiB;AAAA,IACnB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACR,QAAI,CAAC,KAAK,SAAS,KAAK;AACtB,WAAK,KAAK,6EAA6E;AACvF;AAAA,IACF;AAEA,UAAM,KAAK,SAAS,GAAG,EACpB,KAAK,CAAC,aAAa,SAAS,KAAK,CAAC,EAClC,KAAK,CAAC,YAAY;AACjB,WAAK,MAAM,WAAW,OAAO;AAAA,IAC/B,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,WAAK,MAAM,SAAS,KAAK;AAAA,IAC3B,CAAC,EACA,QAAQ,MAAM;AACb,WAAK,MAAM,QAAQ;AAAA,IACrB,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,GAAuB;AACjD,SAAK,MAAM,QAAQ,MAAM,UAAU;AACnC,SAAK,IAAI,YAAY;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACR,SAAK,MAAM,MAAM,MAAM,UAAU;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW;AACT,QAAI,KAAK,SAAS,iBAAiB;AACjC,WAAK,WAAW;AAAA,IAClB;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -25,9 +25,13 @@ export declare class AccordionCore<T extends BaseProps = BaseProps> extends Base
25
25
  /**
26
26
  * Synchronize close on open.
27
27
  */
28
- onAccordionItemOpen(index: number): void;
28
+ onAccordionItemOpen({ index }: {
29
+ index: number;
30
+ }): void;
29
31
  /**
30
32
  * Emit close event.
31
33
  */
32
- onAccordionItemClose(index: number): void;
34
+ onAccordionItemClose({ index }: {
35
+ index: number;
36
+ }): void;
33
37
  }
@@ -17,7 +17,7 @@ class AccordionCore extends Base {
17
17
  /**
18
18
  * Synchronize close on open.
19
19
  */
20
- onAccordionItemOpen(index) {
20
+ onAccordionItemOpen({ index }) {
21
21
  this.$emit("open", this.$children.AccordionItem[index], index);
22
22
  if (this.$options.autoclose) {
23
23
  this.$children.AccordionItem.filter((el, i) => index !== i).forEach((item) => item.close());
@@ -26,7 +26,7 @@ class AccordionCore extends Base {
26
26
  /**
27
27
  * Emit close event.
28
28
  */
29
- onAccordionItemClose(index) {
29
+ onAccordionItemClose({ index }) {
30
30
  this.$emit("close", this.$children.AccordionItem[index], index);
31
31
  }
32
32
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/molecules/Accordion/AccordionCore.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport type { AccordionItem, AccordionItemProps } from './AccordionItem';\n\nexport interface AccordionProps extends BaseProps {\n $refs: {\n btn: HTMLElement[];\n content: HTMLElement[];\n };\n $options: {\n autoclose: boolean;\n item: AccordionItemProps['$options'];\n };\n $children: {\n AccordionItem: AccordionItem[];\n };\n}\n\n/**\n * Accordion class.\n */\nexport class AccordionCore<T extends BaseProps = BaseProps> extends Base<T & AccordionProps> {\n /**\n * Accordion config.\n */\n static config: BaseConfig = {\n name: 'Accordion',\n emits: ['open', 'close'],\n options: {\n autoclose: Boolean,\n item: {\n type: Object,\n default: (): Partial<AccordionItemProps['$options']> => ({}),\n },\n },\n };\n\n /**\n * Synchronize close on open.\n */\n onAccordionItemOpen(index: number) {\n this.$emit('open', this.$children.AccordionItem[index], index);\n if (this.$options.autoclose) {\n this.$children.AccordionItem.filter((el, i) => index !== i).forEach((item) => item.close());\n }\n }\n\n /**\n * Emit close event.\n */\n onAccordionItemClose(index: number) {\n this.$emit('close', this.$children.AccordionItem[index], index);\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY;AAqBd,MAAM,sBAAuD,KAAyB;AAAA;AAAA;AAAA;AAAA,EAI3F,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,OAAO,CAAC,QAAQ,OAAO;AAAA,IACvB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,MAAM;AAAA,QACJ,MAAM;AAAA,QACN,SAAS,OAAgD,CAAC;AAAA,MAC5D;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,OAAe;AACjC,SAAK,MAAM,QAAQ,KAAK,UAAU,cAAc,KAAK,GAAG,KAAK;AAC7D,QAAI,KAAK,SAAS,WAAW;AAC3B,WAAK,UAAU,cAAc,OAAO,CAAC,IAAI,MAAM,UAAU,CAAC,EAAE,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC;AAAA,IAC5F;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,OAAe;AAClC,SAAK,MAAM,SAAS,KAAK,UAAU,cAAc,KAAK,GAAG,KAAK;AAAA,EAChE;AACF;",
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\nimport type { AccordionItem, AccordionItemProps } from './AccordionItem';\n\nexport interface AccordionProps extends BaseProps {\n $refs: {\n btn: HTMLElement[];\n content: HTMLElement[];\n };\n $options: {\n autoclose: boolean;\n item: AccordionItemProps['$options'];\n };\n $children: {\n AccordionItem: AccordionItem[];\n };\n}\n\n/**\n * Accordion class.\n */\nexport class AccordionCore<T extends BaseProps = BaseProps> extends Base<T & AccordionProps> {\n /**\n * Accordion config.\n */\n static config: BaseConfig = {\n name: 'Accordion',\n emits: ['open', 'close'],\n options: {\n autoclose: Boolean,\n item: {\n type: Object,\n default: (): Partial<AccordionItemProps['$options']> => ({}),\n },\n },\n };\n\n /**\n * Synchronize close on open.\n */\n onAccordionItemOpen({ index }: { index: number }) {\n this.$emit('open', this.$children.AccordionItem[index], index);\n if (this.$options.autoclose) {\n this.$children.AccordionItem.filter((el, i) => index !== i).forEach((item) => item.close());\n }\n }\n\n /**\n * Emit close event.\n */\n onAccordionItemClose({ index }: { index: number }) {\n this.$emit('close', this.$children.AccordionItem[index], index);\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAqBd,MAAM,sBAAuD,KAAyB;AAAA;AAAA;AAAA;AAAA,EAI3F,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,OAAO,CAAC,QAAQ,OAAO;AAAA,IACvB,SAAS;AAAA,MACP,WAAW;AAAA,MACX,MAAM;AAAA,QACJ,MAAM;AAAA,QACN,SAAS,OAAgD,CAAC;AAAA,MAC5D;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,EAAE,MAAM,GAAsB;AAChD,SAAK,MAAM,QAAQ,KAAK,UAAU,cAAc,KAAK,GAAG,KAAK;AAC7D,QAAI,KAAK,SAAS,WAAW;AAC3B,WAAK,UAAU,cAAc,OAAO,CAAC,IAAI,MAAM,UAAU,CAAC,EAAE,QAAQ,CAAC,SAAS,KAAK,MAAM,CAAC;AAAA,IAC5F;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,EAAE,MAAM,GAAsB;AACjD,SAAK,MAAM,SAAS,KAAK,UAAU,cAAc,KAAK,GAAG,KAAK;AAAA,EAChE;AACF;",
6
6
  "names": []
7
7
  }
@@ -16,9 +16,13 @@ export declare class AnchorNav<T extends BaseProps = BaseProps> extends Base<T &
16
16
  /**
17
17
  * Listen to the AnchorNavTarget that is mounted
18
18
  */
19
- onAnchorNavTargetMounted(index: any): void;
19
+ onAnchorNavTargetMounted({ target }: {
20
+ target: AnchorNavTarget;
21
+ }): void;
20
22
  /**
21
23
  * Listen to the AnchorNavTarget that is destroyed
22
24
  */
23
- onAnchorNavTargetDestroyed(index: any): void;
25
+ onAnchorNavTargetDestroyed({ target }: {
26
+ target: AnchorNavTarget;
27
+ }): void;
24
28
  }
@@ -15,8 +15,8 @@ class AnchorNav extends Base {
15
15
  /**
16
16
  * Listen to the AnchorNavTarget that is mounted
17
17
  */
18
- onAnchorNavTargetMounted(index) {
19
- const { id } = this.$children.AnchorNavTarget[index].$el;
18
+ onAnchorNavTargetMounted({ target }) {
19
+ const { id } = target.$el;
20
20
  this.$children.AnchorNavLink.forEach((anchorNavLink) => {
21
21
  if (id === anchorNavLink.targetId) {
22
22
  anchorNavLink.enter();
@@ -26,8 +26,8 @@ class AnchorNav extends Base {
26
26
  /**
27
27
  * Listen to the AnchorNavTarget that is destroyed
28
28
  */
29
- onAnchorNavTargetDestroyed(index) {
30
- const { id } = this.$children.AnchorNavTarget[index].$el;
29
+ onAnchorNavTargetDestroyed({ target }) {
30
+ const { id } = target.$el;
31
31
  this.$children.AnchorNavLink.forEach((anchorNavLink) => {
32
32
  if (id === anchorNavLink.targetId) {
33
33
  anchorNavLink.leave();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/molecules/AnchorNav/AnchorNav.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { AnchorNavLink } from './AnchorNavLink.js';\nimport { AnchorNavTarget } from './AnchorNavTarget.js';\n\nexport interface AnchorNavProps extends BaseProps {\n $children: {\n AnchorNavLink: AnchorNavLink[];\n AnchorNavTarget: AnchorNavTarget[];\n };\n}\n\nexport class AnchorNav<T extends BaseProps = BaseProps> extends Base<T & AnchorNavProps> {\n /**\n * Config\n */\n static config: BaseConfig = {\n name: 'AnchorNav',\n components: {\n AnchorNavLink,\n AnchorNavTarget,\n },\n };\n\n /**\n * Listen to the AnchorNavTarget that is mounted\n */\n onAnchorNavTargetMounted(index) {\n const { id } = this.$children.AnchorNavTarget[index].$el;\n this.$children.AnchorNavLink.forEach((anchorNavLink) => {\n if (id === anchorNavLink.targetId) {\n anchorNavLink.enter();\n }\n });\n }\n\n /**\n * Listen to the AnchorNavTarget that is destroyed\n */\n onAnchorNavTargetDestroyed(index) {\n const { id } = this.$children.AnchorNavTarget[index].$el;\n this.$children.AnchorNavLink.forEach((anchorNavLink) => {\n if (id === anchorNavLink.targetId) {\n anchorNavLink.leave();\n }\n });\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AASzB,MAAM,kBAAmD,KAAyB;AAAA;AAAA;AAAA;AAAA,EAIvF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,YAAY;AAAA,MACV;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,yBAAyB,OAAO;AAC9B,UAAM,EAAE,GAAG,IAAI,KAAK,UAAU,gBAAgB,KAAK,EAAE;AACrD,SAAK,UAAU,cAAc,QAAQ,CAAC,kBAAkB;AACtD,UAAI,OAAO,cAAc,UAAU;AACjC,sBAAc,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,2BAA2B,OAAO;AAChC,UAAM,EAAE,GAAG,IAAI,KAAK,UAAU,gBAAgB,KAAK,EAAE;AACrD,SAAK,UAAU,cAAc,QAAQ,CAAC,kBAAkB;AACtD,UAAI,OAAO,cAAc,UAAU;AACjC,sBAAc,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { AnchorNavLink } from './AnchorNavLink.js';\nimport { AnchorNavTarget } from './AnchorNavTarget.js';\n\nexport interface AnchorNavProps extends BaseProps {\n $children: {\n AnchorNavLink: AnchorNavLink[];\n AnchorNavTarget: AnchorNavTarget[];\n };\n}\n\nexport class AnchorNav<T extends BaseProps = BaseProps> extends Base<T & AnchorNavProps> {\n /**\n * Config\n */\n static config: BaseConfig = {\n name: 'AnchorNav',\n components: {\n AnchorNavLink,\n AnchorNavTarget,\n },\n };\n\n /**\n * Listen to the AnchorNavTarget that is mounted\n */\n onAnchorNavTargetMounted({ target }: { target: AnchorNavTarget }) {\n const { id } = target.$el;\n this.$children.AnchorNavLink.forEach((anchorNavLink) => {\n if (id === anchorNavLink.targetId) {\n anchorNavLink.enter();\n }\n });\n }\n\n /**\n * Listen to the AnchorNavTarget that is destroyed\n */\n onAnchorNavTargetDestroyed({ target }: { target: AnchorNavTarget }) {\n const { id } = target.$el;\n this.$children.AnchorNavLink.forEach((anchorNavLink) => {\n if (id === anchorNavLink.targetId) {\n anchorNavLink.leave();\n }\n });\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AASzB,MAAM,kBAAmD,KAAyB;AAAA;AAAA;AAAA;AAAA,EAIvF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,YAAY;AAAA,MACV;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,yBAAyB,EAAE,OAAO,GAAgC;AAChE,UAAM,EAAE,GAAG,IAAI,OAAO;AACtB,SAAK,UAAU,cAAc,QAAQ,CAAC,kBAAkB;AACtD,UAAI,OAAO,cAAc,UAAU;AACjC,sBAAc,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,2BAA2B,EAAE,OAAO,GAAgC;AAClE,UAAM,EAAE,GAAG,IAAI,OAAO;AACtB,SAAK,UAAU,cAAc,QAAQ,CAAC,kBAAkB;AACtD,UAAI,OAAO,cAAc,UAAU;AACjC,sBAAc,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
6
6
  "names": []
7
7
  }
@@ -40,7 +40,7 @@ export declare class Menu<T extends BaseProps = BaseProps> extends Base<T & Menu
40
40
  * Set attributes on mounted, destroy the component if it is missing required
41
41
  * child components.
42
42
  */
43
- mounted(): void;
43
+ mounted(): Promise<this>;
44
44
  /**
45
45
  * Keyboard management.
46
46
  */
@@ -48,11 +48,16 @@ export declare class Menu<T extends BaseProps = BaseProps> extends Base<T & Menu
48
48
  /**
49
49
  * Toggle menu items on button click.
50
50
  */
51
- onMenuBtnClick(index: number, event: MouseEvent): void;
51
+ onMenuBtnClick({ event, target }: {
52
+ event: MouseEvent;
53
+ target: MenuBtn;
54
+ }): void;
52
55
  /**
53
56
  * Open menu items on button mouse enter.
54
57
  */
55
- onMenuBtnMouseenter(index: number): void;
58
+ onMenuBtnMouseenter({ target }: {
59
+ target: MenuBtn;
60
+ }): void;
56
61
  /**
57
62
  * Close menu items on button mouse leave.
58
63
  */
@@ -64,7 +69,9 @@ export declare class Menu<T extends BaseProps = BaseProps> extends Base<T & Menu
64
69
  /**
65
70
  * Close other non-parent menu items on menu items open.
66
71
  */
67
- onMenuListItemsOpen(index: number): void;
72
+ onMenuListItemsOpen({ target }: {
73
+ target: MenuList;
74
+ }): void;
68
75
  /**
69
76
  * Close the menu.
70
77
  */
@@ -51,8 +51,7 @@ class Menu extends Base {
51
51
  */
52
52
  mounted() {
53
53
  if (!this.menuBtn || !this.menuList) {
54
- this.$destroy();
55
- return;
54
+ return this.$destroy();
56
55
  }
57
56
  this.menuBtn.$el.setAttribute("aria-controls", this.$id);
58
57
  this.menuList.$el.setAttribute("id", this.$id);
@@ -79,8 +78,8 @@ class Menu extends Base {
79
78
  /**
80
79
  * Toggle menu items on button click.
81
80
  */
82
- onMenuBtnClick(index, event) {
83
- if (isDirectChild(this, "Menu", "MenuBtn", this.$children.MenuBtn[index]) && this.shouldReactOnClick) {
81
+ onMenuBtnClick({ event, target }) {
82
+ if (isDirectChild(this, "Menu", "MenuBtn", target) && this.shouldReactOnClick) {
84
83
  event.preventDefault();
85
84
  this.toggle();
86
85
  }
@@ -88,8 +87,8 @@ class Menu extends Base {
88
87
  /**
89
88
  * Open menu items on button mouse enter.
90
89
  */
91
- onMenuBtnMouseenter(index) {
92
- if (this.$children.MenuBtn[index] === this.menuBtn && !this.shouldReactOnClick) {
90
+ onMenuBtnMouseenter({ target }) {
91
+ if (target === this.menuBtn && !this.shouldReactOnClick) {
93
92
  this.open();
94
93
  }
95
94
  }
@@ -122,10 +121,9 @@ class Menu extends Base {
122
121
  /**
123
122
  * Close other non-parent menu items on menu items open.
124
123
  */
125
- onMenuListItemsOpen(index) {
126
- const targetMenu = this.$children.MenuList[index];
124
+ onMenuListItemsOpen({ target }) {
127
125
  this.$children.MenuList.forEach((menuItem) => {
128
- if (!menuItem.$el.contains(targetMenu.$el)) {
126
+ if (!menuItem.$el.contains(target.$el)) {
129
127
  menuItem.close();
130
128
  }
131
129
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/molecules/Menu/Menu.ts"],
4
- "sourcesContent": ["import { Base, isDirectChild, getDirectChildren } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps, KeyServiceProps } from '@studiometa/js-toolkit';\nimport { nextTick } from '@studiometa/js-toolkit/utils';\nimport { MenuBtn } from './MenuBtn.js';\nimport { MenuList } from './MenuList.js';\n\nexport interface MenuProps extends BaseProps {\n $children: {\n // eslint-disable-next-line no-use-before-define\n Menu: Menu[];\n MenutBtn: MenuBtn[];\n MenuList: MenuList[];\n };\n $options: {\n mode: 'click' | 'hover';\n };\n}\n\n/**\n * Menu class.\n */\nexport class Menu<T extends BaseProps = BaseProps> extends Base<T & MenuProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Menu',\n components: {\n MenuBtn,\n MenuList,\n Menu,\n },\n options: {\n mode: {\n type: String,\n default: 'click', // or 'hover'\n },\n },\n };\n\n /**\n * Get the first `MenuList` instance.\n */\n get menuList(): MenuList {\n return getDirectChildren<MenuList>(this, 'Menu', 'MenuList')[0];\n }\n\n /**\n * Get the first `MenuBtn` instance.\n */\n get menuBtn(): MenuBtn {\n return getDirectChildren<MenuBtn>(this, 'Menu', 'MenuBtn')[0];\n }\n\n /**\n * Test which mode to use.\n */\n get shouldReactOnClick(): boolean {\n return this.$options.mode === 'click';\n }\n\n /**\n * Wether the button or the items are hovered.\n */\n get isHover(): boolean {\n return this.menuBtn.isHover || this.menuList.isHover;\n }\n\n /**\n * Set attributes on mounted, destroy the component if it is missing required\n * child components.\n */\n mounted() {\n if (!this.menuBtn || !this.menuList) {\n this.$destroy();\n return;\n }\n\n this.menuBtn.$el.setAttribute('aria-controls', this.$id);\n this.menuList.$el.setAttribute('id', this.$id);\n this.menuList.close();\n }\n\n /**\n * Keyboard management.\n */\n keyed({ ENTER, ESC, isUp }: KeyServiceProps) {\n if (!isUp) {\n return;\n }\n\n if (ESC) {\n this.close();\n return;\n }\n\n if (!this.shouldReactOnClick) {\n const hasFocusElementWithin = document.activeElement === this.menuBtn.$el;\n\n if (ENTER && hasFocusElementWithin) {\n this.toggle();\n }\n }\n }\n\n /**\n * Toggle menu items on button click.\n */\n onMenuBtnClick(index: number, event: MouseEvent) {\n if (\n isDirectChild(this, 'Menu', 'MenuBtn', this.$children.MenuBtn[index]) &&\n this.shouldReactOnClick\n ) {\n event.preventDefault();\n this.toggle();\n }\n }\n\n /**\n * Open menu items on button mouse enter.\n */\n onMenuBtnMouseenter(index: number) {\n if (this.$children.MenuBtn[index] === this.menuBtn && !this.shouldReactOnClick) {\n this.open();\n }\n }\n\n /**\n * Close menu items on button mouse leave.\n */\n onMenuBtnMouseleave() {\n if (this.shouldReactOnClick) {\n return;\n }\n\n nextTick(() => {\n if (!this.isHover) {\n this.close();\n }\n });\n }\n\n /**\n * Close menu items on button mouse leave.\n */\n onMenuListMouseleave() {\n if (this.shouldReactOnClick) {\n return;\n }\n\n nextTick(() => {\n if (!this.isHover) {\n this.close();\n }\n });\n }\n\n /**\n * Close other non-parent menu items on menu items open.\n */\n onMenuListItemsOpen(index: number) {\n const targetMenu = this.$children.MenuList[index];\n this.$children.MenuList.forEach((menuItem) => {\n if (!menuItem.$el.contains(targetMenu.$el)) {\n menuItem.close();\n }\n });\n }\n\n /**\n * Close the menu.\n */\n close() {\n this.menuList.close();\n }\n\n /**\n * Open the menu.\n */\n open() {\n this.menuList.open();\n }\n\n /**\n * Toggle the menu.\n */\n toggle() {\n this.menuList.toggle();\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Base, isDirectChild, getDirectChildren } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps, KeyServiceProps } from '@studiometa/js-toolkit';\nimport { nextTick } from '@studiometa/js-toolkit/utils';\nimport { MenuBtn } from './MenuBtn.js';\nimport { MenuList } from './MenuList.js';\n\nexport interface MenuProps extends BaseProps {\n $children: {\n // eslint-disable-next-line no-use-before-define\n Menu: Menu[];\n MenutBtn: MenuBtn[];\n MenuList: MenuList[];\n };\n $options: {\n mode: 'click' | 'hover';\n };\n}\n\n/**\n * Menu class.\n */\nexport class Menu<T extends BaseProps = BaseProps> extends Base<T & MenuProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Menu',\n components: {\n MenuBtn,\n MenuList,\n Menu,\n },\n options: {\n mode: {\n type: String,\n default: 'click', // or 'hover'\n },\n },\n };\n\n /**\n * Get the first `MenuList` instance.\n */\n get menuList(): MenuList {\n return getDirectChildren<MenuList>(this, 'Menu', 'MenuList')[0];\n }\n\n /**\n * Get the first `MenuBtn` instance.\n */\n get menuBtn(): MenuBtn {\n return getDirectChildren<MenuBtn>(this, 'Menu', 'MenuBtn')[0];\n }\n\n /**\n * Test which mode to use.\n */\n get shouldReactOnClick(): boolean {\n return this.$options.mode === 'click';\n }\n\n /**\n * Wether the button or the items are hovered.\n */\n get isHover(): boolean {\n return this.menuBtn.isHover || this.menuList.isHover;\n }\n\n /**\n * Set attributes on mounted, destroy the component if it is missing required\n * child components.\n */\n mounted() {\n if (!this.menuBtn || !this.menuList) {\n return this.$destroy();\n }\n\n this.menuBtn.$el.setAttribute('aria-controls', this.$id);\n this.menuList.$el.setAttribute('id', this.$id);\n this.menuList.close();\n }\n\n /**\n * Keyboard management.\n */\n keyed({ ENTER, ESC, isUp }: KeyServiceProps) {\n if (!isUp) {\n return;\n }\n\n if (ESC) {\n this.close();\n return;\n }\n\n if (!this.shouldReactOnClick) {\n const hasFocusElementWithin = document.activeElement === this.menuBtn.$el;\n\n if (ENTER && hasFocusElementWithin) {\n this.toggle();\n }\n }\n }\n\n /**\n * Toggle menu items on button click.\n */\n onMenuBtnClick({ event, target }: { event: MouseEvent; target: MenuBtn }) {\n if (isDirectChild(this, 'Menu', 'MenuBtn', target) && this.shouldReactOnClick) {\n event.preventDefault();\n this.toggle();\n }\n }\n\n /**\n * Open menu items on button mouse enter.\n */\n onMenuBtnMouseenter({ target }: { target: MenuBtn }) {\n if (target === this.menuBtn && !this.shouldReactOnClick) {\n this.open();\n }\n }\n\n /**\n * Close menu items on button mouse leave.\n */\n onMenuBtnMouseleave() {\n if (this.shouldReactOnClick) {\n return;\n }\n\n nextTick(() => {\n if (!this.isHover) {\n this.close();\n }\n });\n }\n\n /**\n * Close menu items on button mouse leave.\n */\n onMenuListMouseleave() {\n if (this.shouldReactOnClick) {\n return;\n }\n\n nextTick(() => {\n if (!this.isHover) {\n this.close();\n }\n });\n }\n\n /**\n * Close other non-parent menu items on menu items open.\n */\n onMenuListItemsOpen({ target }: { target: MenuList }) {\n this.$children.MenuList.forEach((menuItem) => {\n if (!menuItem.$el.contains(target.$el)) {\n menuItem.close();\n }\n });\n }\n\n /**\n * Close the menu.\n */\n close() {\n this.menuList.close();\n }\n\n /**\n * Open the menu.\n */\n open() {\n this.menuList.open();\n }\n\n /**\n * Toggle the menu.\n */\n toggle() {\n this.menuList.toggle();\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -18,17 +18,23 @@ export declare class MenuBtn<T extends BaseProps = BaseProps> extends Base<T> {
18
18
  * @param {MouseEvent} event
19
19
  * @returns {void}
20
20
  */
21
- onClick(event: any): void;
21
+ onClick({ event }: {
22
+ event: MouseEvent;
23
+ }): void;
22
24
  /**
23
25
  * Dispatch the mouseenter event.
24
26
  * @param {MouseEvent} event
25
27
  * @returns {void}
26
28
  */
27
- onMouseenter(event: any): void;
29
+ onMouseenter({ event }: {
30
+ event: MouseEvent;
31
+ }): void;
28
32
  /**
29
33
  * Dispatch the mouseleave event.
30
34
  * @param {MouseEvent} event
31
35
  * @returns {void}
32
36
  */
33
- onMouseleave(event: any): void;
37
+ onMouseleave({ event }: {
38
+ event: MouseEvent;
39
+ }): void;
34
40
  }
@@ -16,7 +16,7 @@ class MenuBtn extends Base {
16
16
  * @param {MouseEvent} event
17
17
  * @returns {void}
18
18
  */
19
- onClick(event) {
19
+ onClick({ event }) {
20
20
  event.stopPropagation();
21
21
  }
22
22
  /**
@@ -24,7 +24,7 @@ class MenuBtn extends Base {
24
24
  * @param {MouseEvent} event
25
25
  * @returns {void}
26
26
  */
27
- onMouseenter(event) {
27
+ onMouseenter({ event }) {
28
28
  this.isHover = true;
29
29
  event.stopPropagation();
30
30
  }
@@ -33,7 +33,7 @@ class MenuBtn extends Base {
33
33
  * @param {MouseEvent} event
34
34
  * @returns {void}
35
35
  */
36
- onMouseleave(event) {
36
+ onMouseleave({ event }) {
37
37
  this.isHover = false;
38
38
  event.stopPropagation();
39
39
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/ui/molecules/Menu/MenuBtn.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\n\n/**\n * MenuBtn class.\n */\nexport class MenuBtn<T extends BaseProps = BaseProps> extends Base<T> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'MenuBtn',\n };\n\n /**\n * Wether the button is hovered or not.\n * @type {boolean}\n */\n isHover = false;\n\n /**\n * Dispatch the click event.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onClick(event) {\n event.stopPropagation();\n }\n\n /**\n * Dispatch the mouseenter event.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onMouseenter(event) {\n this.isHover = true;\n event.stopPropagation();\n }\n\n /**\n * Dispatch the mouseleave event.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onMouseleave(event) {\n this.isHover = false;\n event.stopPropagation();\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,YAAY;AAMd,MAAM,gBAAiD,KAAQ;AAAA;AAAA;AAAA;AAAA,EAIpE,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOV,QAAQ,OAAO;AACb,UAAM,gBAAgB;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,OAAO;AAClB,SAAK,UAAU;AACf,UAAM,gBAAgB;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,OAAO;AAClB,SAAK,UAAU;AACf,UAAM,gBAAgB;AAAA,EACxB;AACF;",
4
+ "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseConfig, BaseProps } from '@studiometa/js-toolkit';\n\n/**\n * MenuBtn class.\n */\nexport class MenuBtn<T extends BaseProps = BaseProps> extends Base<T> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'MenuBtn',\n };\n\n /**\n * Wether the button is hovered or not.\n * @type {boolean}\n */\n isHover = false;\n\n /**\n * Dispatch the click event.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onClick({ event }: { event: MouseEvent }) {\n event.stopPropagation();\n }\n\n /**\n * Dispatch the mouseenter event.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onMouseenter({ event }: { event: MouseEvent }) {\n this.isHover = true;\n event.stopPropagation();\n }\n\n /**\n * Dispatch the mouseleave event.\n * @param {MouseEvent} event\n * @returns {void}\n */\n onMouseleave({ event }: { event: MouseEvent }) {\n this.isHover = false;\n event.stopPropagation();\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,YAAY;AAMd,MAAM,gBAAiD,KAAQ;AAAA;AAAA;AAAA;AAAA,EAIpE,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOV,QAAQ,EAAE,MAAM,GAA0B;AACxC,UAAM,gBAAgB;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,EAAE,MAAM,GAA0B;AAC7C,SAAK,UAAU;AACf,UAAM,gBAAgB;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,EAAE,MAAM,GAA0B;AAC7C,SAAK,UAAU;AACf,UAAM,gBAAgB;AAAA,EACxB;AACF;",
6
6
  "names": []
7
7
  }
@@ -132,11 +132,15 @@ export declare class Slider<T extends BaseProps = BaseProps> extends Base<T & Sl
132
132
  /**
133
133
  * Listen to the Draggable `drag` event.
134
134
  */
135
- onSliderDragDrag(props: DragServiceProps): void;
135
+ onSliderDragDrag({ args: [props] }: {
136
+ args: [DragServiceProps];
137
+ }): void;
136
138
  /**
137
139
  * Listen to the Draggable `drop` event and find the new active slide.
138
140
  */
139
- onSliderDragDrop(props: DragServiceProps): void;
141
+ onSliderDragDrop({ args: [props] }: {
142
+ args: [DragServiceProps];
143
+ }): void;
140
144
  /**
141
145
  * Enable focus.
142
146
  */
@@ -250,7 +250,7 @@ class Slider extends Base {
250
250
  /**
251
251
  * Listen to the Draggable `drag` event.
252
252
  */
253
- onSliderDragDrag(props) {
253
+ onSliderDragDrag({ args: [props] }) {
254
254
  if (Math.abs(props.delta.y) > Math.abs(props.delta.x)) {
255
255
  return;
256
256
  }
@@ -262,7 +262,7 @@ class Slider extends Base {
262
262
  /**
263
263
  * Listen to the Draggable `drop` event and find the new active slide.
264
264
  */
265
- onSliderDragDrop(props) {
265
+ onSliderDragDrop({ args: [props] }) {
266
266
  if (!this.__isDragging) {
267
267
  return;
268
268
  }