@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
@@ -1,219 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/ui/molecules/Modal/Modal.ts
20
- var Modal_exports = {};
21
- __export(Modal_exports, {
22
- Modal: () => Modal
23
- });
24
- module.exports = __toCommonJS(Modal_exports);
25
- var import_js_toolkit = require("@studiometa/js-toolkit");
26
- var import_utils = require("@studiometa/js-toolkit/utils");
27
- var Modal = class extends import_js_toolkit.Base {
28
- /**
29
- * Config.
30
- */
31
- static config = {
32
- name: "Modal",
33
- refs: ["close[]", "container", "content", "modal", "open[]", "overlay"],
34
- emits: ["open", "close"],
35
- options: {
36
- move: String,
37
- autofocus: { type: String, default: "[autofocus]" },
38
- styles: {
39
- type: Object,
40
- default: () => ({
41
- modal: {
42
- closed: {
43
- opacity: "0",
44
- pointerEvents: "none",
45
- visibility: "hidden"
46
- }
47
- }
48
- })
49
- },
50
- scrollLock: {
51
- type: Boolean,
52
- default: true
53
- }
54
- }
55
- };
56
- /**
57
- * Wether the modal is open or not.
58
- */
59
- isOpen = false;
60
- /**
61
- * @private
62
- */
63
- __refsBackup;
64
- /**
65
- * @private
66
- */
67
- __refModalPlaceholder;
68
- /**
69
- * @private
70
- */
71
- __refModalParentBackup;
72
- /**
73
- * @private
74
- */
75
- __refModalUnbindGetRefFilter;
76
- /**
77
- * Open the modal on click on the `open` ref.
78
- */
79
- get onOpenClick() {
80
- return this.open;
81
- }
82
- /**
83
- * Close the modal on click on the `close` ref.
84
- */
85
- get onCloseClick() {
86
- return this.close;
87
- }
88
- /**
89
- * Close the modal on click on the `overlay` ref.
90
- * @returns {Function} The component's `close` method.
91
- */
92
- get onOverlayClick() {
93
- return this.close;
94
- }
95
- /**
96
- * Initialize the component's behaviours.
97
- */
98
- mounted() {
99
- this.isOpen = false;
100
- this.close();
101
- if (this.$options.move) {
102
- const target = document.querySelector(this.$options.move) || document.body;
103
- this.__refsBackup = this.$refs;
104
- this.__refModalPlaceholder = document.createComment("");
105
- this.__refModalParentBackup = this.$refs.modal.parentElement || this.$el;
106
- this.__refModalParentBackup.insertBefore(this.__refModalPlaceholder, this.$refs.modal);
107
- target.append(this.$refs.modal);
108
- }
109
- }
110
- /**
111
- * Add the moved refs to `this.$refs` when using the `move` options.
112
- */
113
- get $refs() {
114
- const $refs = super.$refs;
115
- if (this.$options.move && this.__refsBackup) {
116
- Object.entries(this.__refsBackup).forEach(([key, ref]) => {
117
- if (!$refs[key]) {
118
- $refs[key] = ref;
119
- }
120
- });
121
- }
122
- return $refs;
123
- }
124
- /**
125
- * Unbind all events on destroy.
126
- */
127
- destroyed() {
128
- this.close();
129
- if (this.$options.move && this.__refModalParentBackup) {
130
- this.__refModalParentBackup.insertBefore(this.$refs.modal, this.__refModalPlaceholder);
131
- this.__refModalPlaceholder.remove();
132
- delete this.__refModalPlaceholder;
133
- delete this.__refModalParentBackup;
134
- }
135
- return this;
136
- }
137
- /**
138
- * Close the modal on `ESC` and trap the tabulation.
139
- */
140
- keyed({ event, isUp, isDown, ESC }) {
141
- if (!this.isOpen) {
142
- return;
143
- }
144
- if (isDown) {
145
- (0, import_utils.trapFocus)(this.$refs.modal, event);
146
- }
147
- if (ESC && isUp) {
148
- this.close();
149
- }
150
- }
151
- /**
152
- * Open the modal.
153
- */
154
- async open() {
155
- if (this.isOpen) {
156
- return Promise.resolve();
157
- }
158
- this.$refs.modal.setAttribute("aria-hidden", "false");
159
- if (this.$options.scrollLock) {
160
- document.documentElement.style.overflow = "hidden";
161
- }
162
- this.isOpen = true;
163
- this.$emit("open");
164
- const refs = this.$refs;
165
- return Promise.all(
166
- Object.entries(this.$options.styles).map(
167
- ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => (0, import_utils.transition)(
168
- refs[refName],
169
- {
170
- from: closed,
171
- active,
172
- to: open
173
- },
174
- "keep"
175
- )
176
- )
177
- ).then(() => {
178
- if (this.$options.autofocus && this.$refs.modal.querySelector(this.$options.autofocus)) {
179
- (0, import_utils.saveActiveElement)();
180
- const autofocusElement = this.$refs.modal.querySelector(
181
- this.$options.autofocus
182
- );
183
- autofocusElement.focus();
184
- }
185
- return Promise.resolve();
186
- });
187
- }
188
- /**
189
- * Close the modal.
190
- */
191
- async close() {
192
- if (!this.isOpen) {
193
- return Promise.resolve();
194
- }
195
- this.$refs.modal.setAttribute("aria-hidden", "true");
196
- if (this.$options.scrollLock) {
197
- document.documentElement.style.overflow = "";
198
- }
199
- this.isOpen = false;
200
- (0, import_utils.untrapFocus)();
201
- this.$emit("close");
202
- const refs = this.$refs;
203
- return Promise.all(
204
- Object.entries(this.$options.styles).map(
205
- ([refName, { open, active, closed } = { open: "", active: "", closed: "" }]) => (0, import_utils.transition)(
206
- refs[refName],
207
- {
208
- from: open,
209
- active,
210
- to: closed
211
- },
212
- "keep"
213
- )
214
- )
215
- ).then(() => Promise.resolve());
216
- }
217
- };
218
- if (module.exports.default) module.exports = module.exports.default;
219
- //# sourceMappingURL=Modal.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Modal/Modal.ts"],
4
- "sourcesContent": ["import { Base, KeyServiceProps } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport {\n transition,\n trapFocus as trap,\n untrapFocus as untrap,\n saveActiveElement,\n} from '@studiometa/js-toolkit/utils';\n\ntype ModalStates = Partial<\n Record<'open' | 'active' | 'closed', string | Partial<CSSStyleDeclaration>>\n>;\n// eslint-disable-next-line no-use-before-define\ntype ModalStylesOption = Partial<Record<keyof ModalProps['$refs'], ModalStates>>;\n\nexport interface ModalProps extends BaseProps {\n $refs: {\n close: HTMLElement[];\n container: HTMLElement;\n content: HTMLElement;\n modal: HTMLElement;\n open: HTMLElement[];\n overlay: HTMLElement;\n };\n $options: {\n /**\n * A selector where to move the modal to.\n */\n move: string;\n /**\n * A selector for the element to set the focus to when the modal opens.\n */\n autofocus: string;\n /**\n * Lock or allow scroll in the documentElement.\n */\n scrollLock: boolean;\n /**\n * The styles for the different state of the modal.\n */\n styles: ModalStylesOption;\n };\n}\n\n/**\n * Modal class.\n */\nexport class Modal<T extends BaseProps = BaseProps> extends Base<T & ModalProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Modal',\n refs: ['close[]', 'container', 'content', 'modal', 'open[]', 'overlay'],\n emits: ['open', 'close'],\n options: {\n move: String,\n autofocus: { type: String, default: '[autofocus]' },\n styles: {\n type: Object,\n default: (): ModalStylesOption => ({\n modal: {\n closed: {\n opacity: '0',\n pointerEvents: 'none',\n visibility: 'hidden',\n },\n },\n }),\n },\n scrollLock: {\n type: Boolean,\n default: true,\n },\n },\n };\n\n /**\n * Wether the modal is open or not.\n */\n isOpen = false;\n\n /**\n * @private\n */\n __refsBackup: (T & ModalProps)['$refs'];\n\n /**\n * @private\n */\n __refModalPlaceholder: Comment;\n\n /**\n * @private\n */\n __refModalParentBackup: HTMLElement;\n\n /**\n * @private\n */\n __refModalUnbindGetRefFilter: () => void;\n\n /**\n * Open the modal on click on the `open` ref.\n */\n get onOpenClick() {\n return this.open;\n }\n\n /**\n * Close the modal on click on the `close` ref.\n */\n get onCloseClick() {\n return this.close;\n }\n\n /**\n * Close the modal on click on the `overlay` ref.\n * @returns {Function} The component's `close` method.\n */\n get onOverlayClick() {\n return this.close;\n }\n\n /**\n * Initialize the component's behaviours.\n */\n mounted() {\n this.isOpen = false;\n this.close();\n\n if (this.$options.move) {\n const target = document.querySelector(this.$options.move) || document.body;\n\n this.__refsBackup = this.$refs;\n this.__refModalPlaceholder = document.createComment('');\n this.__refModalParentBackup = this.$refs.modal.parentElement || this.$el;\n this.__refModalParentBackup.insertBefore(this.__refModalPlaceholder, this.$refs.modal);\n\n target.append(this.$refs.modal);\n }\n }\n\n /**\n * Add the moved refs to `this.$refs` when using the `move` options.\n */\n get $refs() {\n const $refs = super.$refs;\n\n if (this.$options.move && this.__refsBackup) {\n Object.entries(this.__refsBackup).forEach(([key, ref]) => {\n if (!$refs[key]) {\n // @ts-ignore\n $refs[key] = ref;\n }\n });\n }\n\n return $refs;\n }\n\n /**\n * Unbind all events on destroy.\n */\n destroyed() {\n this.close();\n\n if (this.$options.move && this.__refModalParentBackup) {\n this.__refModalParentBackup.insertBefore(this.$refs.modal, this.__refModalPlaceholder);\n this.__refModalPlaceholder.remove();\n delete this.__refModalPlaceholder;\n delete this.__refModalParentBackup;\n }\n\n return this;\n }\n\n /**\n * Close the modal on `ESC` and trap the tabulation.\n */\n keyed({ event, isUp, isDown, ESC }: KeyServiceProps) {\n if (!this.isOpen) {\n return;\n }\n\n if (isDown) {\n trap(this.$refs.modal, event);\n }\n\n if (ESC && isUp) {\n this.close();\n }\n }\n\n /**\n * Open the modal.\n */\n async open() {\n if (this.isOpen) {\n return Promise.resolve();\n }\n\n this.$refs.modal.setAttribute('aria-hidden', 'false');\n\n if (this.$options.scrollLock) {\n document.documentElement.style.overflow = 'hidden';\n }\n\n this.isOpen = true;\n this.$emit('open');\n\n /** @type {ModalRefs} */\n const refs = this.$refs;\n\n return Promise.all(\n Object.entries(this.$options.styles).map(\n ([refName, { open, active, closed } = { open: '', active: '', closed: '' }]) =>\n transition(\n refs[refName],\n {\n from: closed,\n active,\n to: open,\n },\n 'keep',\n ),\n ),\n ).then(() => {\n if (this.$options.autofocus && this.$refs.modal.querySelector(this.$options.autofocus)) {\n saveActiveElement();\n const autofocusElement = this.$refs.modal.querySelector(\n this.$options.autofocus,\n ) as HTMLElement;\n autofocusElement.focus();\n }\n return Promise.resolve();\n });\n }\n\n /**\n * Close the modal.\n */\n async close() {\n if (!this.isOpen) {\n return Promise.resolve();\n }\n\n this.$refs.modal.setAttribute('aria-hidden', 'true');\n\n if (this.$options.scrollLock) {\n document.documentElement.style.overflow = '';\n }\n\n this.isOpen = false;\n untrap();\n this.$emit('close');\n\n const refs = this.$refs;\n\n return Promise.all(\n Object.entries(this.$options.styles).map(\n ([refName, { open, active, closed } = { open: '', active: '', closed: '' }]) =>\n transition(\n refs[refName],\n {\n from: open,\n active,\n to: closed,\n },\n 'keep',\n ),\n ),\n ).then(() => Promise.resolve());\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["trap", "untrap"]
7
- }
@@ -1,69 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/ui/molecules/Modal/ModalWithTransition.ts
20
- var ModalWithTransition_exports = {};
21
- __export(ModalWithTransition_exports, {
22
- ModalWithTransition: () => ModalWithTransition
23
- });
24
- module.exports = __toCommonJS(ModalWithTransition_exports);
25
- var import_Modal = require("./Modal.cjs");
26
- var ModalWithTransition = class extends import_Modal.Modal {
27
- /**
28
- * Modal options.
29
- */
30
- static config = {
31
- name: "ModalWithTransition",
32
- options: {
33
- styles: {
34
- type: Object,
35
- /**
36
- * @returns {ModalStylesOption}
37
- */
38
- default: () => ({
39
- modal: {
40
- closed: {
41
- opacity: "0",
42
- pointerEvents: "none"
43
- },
44
- active: "transition duration-500 ease-out-expo"
45
- },
46
- overlay: {
47
- closed: "opacity-0",
48
- active: "transition duration-500 ease-out-expo"
49
- },
50
- container: {
51
- closed: "transform scale-95 opacity-0",
52
- active: "transition duration-500 ease-out-expo"
53
- }
54
- })
55
- }
56
- }
57
- };
58
- open() {
59
- this.$refs.modal.style.visibility = "";
60
- return super.open();
61
- }
62
- async close() {
63
- await super.close();
64
- this.$refs.modal.style.visibility = "hidden";
65
- return Promise.resolve();
66
- }
67
- };
68
- if (module.exports.default) module.exports = module.exports.default;
69
- //# sourceMappingURL=ModalWithTransition.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Modal/ModalWithTransition.ts"],
4
- "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { Modal } from './Modal.js';\n\n/**\n * ModalWithTransition class.\n */\nexport class ModalWithTransition<T extends BaseProps = BaseProps> extends Modal<T> {\n /**\n * Modal options.\n */\n static config: BaseConfig = {\n name: 'ModalWithTransition',\n options: {\n styles: {\n type: Object,\n /**\n * @returns {ModalStylesOption}\n */\n default: () => ({\n modal: {\n closed: {\n opacity: '0',\n pointerEvents: 'none',\n },\n active: 'transition duration-500 ease-out-expo',\n },\n overlay: {\n closed: 'opacity-0',\n active: 'transition duration-500 ease-out-expo',\n },\n container: {\n closed: 'transform scale-95 opacity-0',\n active: 'transition duration-500 ease-out-expo',\n },\n }),\n },\n },\n };\n\n open() {\n this.$refs.modal.style.visibility = '';\n return super.open();\n }\n\n async close() {\n await super.close();\n this.$refs.modal.style.visibility = 'hidden';\n return Promise.resolve();\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAsB;AAKf,IAAM,sBAAN,cAAmE,mBAAS;AAAA;AAAA;AAAA;AAAA,EAIjF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,QAAQ;AAAA,QACN,MAAM;AAAA;AAAA;AAAA;AAAA,QAIN,SAAS,OAAO;AAAA,UACd,OAAO;AAAA,YACL,QAAQ;AAAA,cACN,SAAS;AAAA,cACT,eAAe;AAAA,YACjB;AAAA,YACA,QAAQ;AAAA,UACV;AAAA,UACA,SAAS;AAAA,YACP,QAAQ;AAAA,YACR,QAAQ;AAAA,UACV;AAAA,UACA,WAAW;AAAA,YACT,QAAQ;AAAA,YACR,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO;AACL,SAAK,MAAM,MAAM,MAAM,aAAa;AACpC,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EAEA,MAAM,QAAQ;AACZ,UAAM,MAAM,MAAM;AAClB,SAAK,MAAM,MAAM,MAAM,aAAa;AACpC,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;",
6
- "names": []
7
- }
@@ -1,22 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
-
16
- // packages/ui/molecules/Modal/index.ts
17
- var Modal_exports = {};
18
- module.exports = __toCommonJS(Modal_exports);
19
- __reExport(Modal_exports, require("./Modal.cjs"), module.exports);
20
- __reExport(Modal_exports, require("./ModalWithTransition.cjs"), module.exports);
21
- if (module.exports.default) module.exports = module.exports.default;
22
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Modal/index.ts"],
4
- "sourcesContent": ["export * from './Modal.js';\nexport * from './ModalWithTransition.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,wBAAd;AACA,0BAAc,sCADd;",
6
- "names": []
7
- }
@@ -1,137 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/ui/molecules/Panel/Panel.ts
20
- var Panel_exports = {};
21
- __export(Panel_exports, {
22
- Panel: () => Panel
23
- });
24
- module.exports = __toCommonJS(Panel_exports);
25
- var import_utils = require("@studiometa/js-toolkit/utils");
26
- var import_Modal = require("../Modal/index.cjs");
27
- var DEFAULT_POSITION = "left";
28
- var Panel = class _Panel extends import_Modal.Modal {
29
- /**
30
- * Config.
31
- */
32
- static config = {
33
- name: "Panel",
34
- options: {
35
- position: {
36
- type: String,
37
- default: DEFAULT_POSITION
38
- }
39
- }
40
- };
41
- static translateClasses = {
42
- top: "-translate-y-full",
43
- right: "translate-x-full",
44
- bottom: "translate-y-full",
45
- left: "-translate-x-full"
46
- };
47
- isClosing = false;
48
- /**
49
- * Get the translation class.
50
- * @returns {string}
51
- */
52
- get translateClass() {
53
- return _Panel.translateClasses[this.$options.position] ?? _Panel.translateClasses[DEFAULT_POSITION];
54
- }
55
- get containerOffset() {
56
- const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = this.$refs.container;
57
- const store = {
58
- top: {
59
- translateY: (offsetTop + offsetHeight) * -1
60
- },
61
- right: {
62
- translateX: window.innerWidth - offsetLeft + offsetWidth * 2
63
- },
64
- bottom: {
65
- translateY: window.innerHeight - offsetTop + offsetHeight * 2
66
- },
67
- left: {
68
- translateX: (offsetLeft + offsetWidth) * -1
69
- }
70
- };
71
- return (0, import_utils.matrix)(store[this.$options.position]);
72
- }
73
- /**
74
- * Animate before opening.
75
- * @this {PanelInterface}
76
- * @returns {Promise<void>}
77
- */
78
- async open() {
79
- if (this.isOpen) {
80
- return Promise.resolve();
81
- }
82
- this.$refs.modal.classList.remove("pointer-events-none");
83
- (0, import_utils.transition)(
84
- this.$refs.container,
85
- {
86
- from: {
87
- transform: this.containerOffset
88
- },
89
- to: {
90
- transform: "none"
91
- }
92
- },
93
- "keep"
94
- );
95
- (0, import_utils.transition)(this.$refs.overlay, {
96
- from: "opacity-0"
97
- });
98
- return super.open();
99
- }
100
- /**
101
- * Animate before closing.
102
- * @this {PanelInterface}
103
- * @returns {Promise<void>}
104
- */
105
- async close() {
106
- if (!this.isOpen || this.isClosing) {
107
- return Promise.resolve();
108
- }
109
- this.isClosing = true;
110
- this.$refs.modal.classList.add("pointer-events-none");
111
- await Promise.all([
112
- (0, import_utils.transition)(
113
- this.$refs.container,
114
- {
115
- from: {
116
- transform: "none"
117
- },
118
- to: {
119
- transform: this.containerOffset
120
- }
121
- },
122
- "keep"
123
- ),
124
- (0, import_utils.transition)(
125
- this.$refs.overlay,
126
- {
127
- to: "opacity-0"
128
- },
129
- "keep"
130
- )
131
- ]);
132
- this.isClosing = false;
133
- return super.close();
134
- }
135
- };
136
- if (module.exports.default) module.exports = module.exports.default;
137
- //# sourceMappingURL=Panel.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Panel/Panel.ts"],
4
- "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { transition, matrix } from '@studiometa/js-toolkit/utils';\nimport { Modal } from '../Modal/index.js';\n\nexport interface PanelProps extends BaseProps {\n $options: {\n position: 'top' | 'right' | 'bottom' | 'left';\n };\n}\n\nconst DEFAULT_POSITION = 'left';\n\n/**\n * Panel class.\n */\nexport class Panel<T extends BaseProps = BaseProps> extends Modal<T & PanelProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Panel',\n options: {\n position: {\n type: String,\n default: DEFAULT_POSITION,\n },\n },\n };\n\n static translateClasses = {\n top: '-translate-y-full',\n right: 'translate-x-full',\n bottom: 'translate-y-full',\n left: '-translate-x-full',\n };\n\n isClosing = false;\n\n /**\n * Get the translation class.\n * @returns {string}\n */\n get translateClass() {\n return (\n Panel.translateClasses[this.$options.position] ?? Panel.translateClasses[DEFAULT_POSITION]\n );\n }\n\n get containerOffset() {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = this.$refs.container;\n\n const store = {\n top: {\n translateY: (offsetTop + offsetHeight) * -1,\n },\n right: {\n translateX: window.innerWidth - offsetLeft + offsetWidth * 2,\n },\n bottom: {\n translateY: window.innerHeight - offsetTop + offsetHeight * 2,\n },\n left: {\n translateX: (offsetLeft + offsetWidth) * -1,\n },\n };\n\n return matrix(store[this.$options.position]);\n }\n\n /**\n * Animate before opening.\n * @this {PanelInterface}\n * @returns {Promise<void>}\n */\n async open() {\n if (this.isOpen) {\n return Promise.resolve();\n }\n\n this.$refs.modal.classList.remove('pointer-events-none');\n transition(\n this.$refs.container,\n {\n from: {\n transform: this.containerOffset,\n },\n to: {\n transform: 'none',\n },\n },\n 'keep',\n );\n transition(this.$refs.overlay, {\n from: 'opacity-0',\n });\n\n return super.open();\n }\n\n /**\n * Animate before closing.\n * @this {PanelInterface}\n * @returns {Promise<void>}\n */\n async close() {\n if (!this.isOpen || this.isClosing) {\n return Promise.resolve();\n }\n\n this.isClosing = true;\n\n this.$refs.modal.classList.add('pointer-events-none');\n await Promise.all([\n transition(\n this.$refs.container,\n {\n from: {\n transform: 'none',\n },\n to: {\n transform: this.containerOffset,\n },\n },\n 'keep',\n ),\n transition(\n this.$refs.overlay,\n {\n to: 'opacity-0',\n },\n 'keep',\n ),\n ]);\n\n this.isClosing = false;\n\n return super.close();\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAmC;AACnC,mBAAsB;AAQtB,IAAM,mBAAmB;AAKlB,IAAM,QAAN,MAAM,eAA+C,mBAAsB;AAAA;AAAA;AAAA;AAAA,EAIhF,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,SAAS;AAAA,MACP,UAAU;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,mBAAmB;AAAA,IACxB,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AAAA,EAEA,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,EAMZ,IAAI,iBAAiB;AACnB,WACE,OAAM,iBAAiB,KAAK,SAAS,QAAQ,KAAK,OAAM,iBAAiB,gBAAgB;AAAA,EAE7F;AAAA,EAEA,IAAI,kBAAkB;AACpB,UAAM,EAAE,WAAW,YAAY,aAAa,aAAa,IAAI,KAAK,MAAM;AAExE,UAAM,QAAQ;AAAA,MACZ,KAAK;AAAA,QACH,aAAa,YAAY,gBAAgB;AAAA,MAC3C;AAAA,MACA,OAAO;AAAA,QACL,YAAY,OAAO,aAAa,aAAa,cAAc;AAAA,MAC7D;AAAA,MACA,QAAQ;AAAA,QACN,YAAY,OAAO,cAAc,YAAY,eAAe;AAAA,MAC9D;AAAA,MACA,MAAM;AAAA,QACJ,aAAa,aAAa,eAAe;AAAA,MAC3C;AAAA,IACF;AAEA,eAAO,qBAAO,MAAM,KAAK,SAAS,QAAQ,CAAC;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,OAAO;AACX,QAAI,KAAK,QAAQ;AACf,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAEA,SAAK,MAAM,MAAM,UAAU,OAAO,qBAAqB;AACvD;AAAA,MACE,KAAK,MAAM;AAAA,MACX;AAAA,QACE,MAAM;AAAA,UACJ,WAAW,KAAK;AAAA,QAClB;AAAA,QACA,IAAI;AAAA,UACF,WAAW;AAAA,QACb;AAAA,MACF;AAAA,MACA;AAAA,IACF;AACA,iCAAW,KAAK,MAAM,SAAS;AAAA,MAC7B,MAAM;AAAA,IACR,CAAC;AAED,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,QAAQ;AACZ,QAAI,CAAC,KAAK,UAAU,KAAK,WAAW;AAClC,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAEA,SAAK,YAAY;AAEjB,SAAK,MAAM,MAAM,UAAU,IAAI,qBAAqB;AACpD,UAAM,QAAQ,IAAI;AAAA,UAChB;AAAA,QACE,KAAK,MAAM;AAAA,QACX;AAAA,UACE,MAAM;AAAA,YACJ,WAAW;AAAA,UACb;AAAA,UACA,IAAI;AAAA,YACF,WAAW,KAAK;AAAA,UAClB;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,UACA;AAAA,QACE,KAAK,MAAM;AAAA,QACX;AAAA,UACE,IAAI;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,YAAY;AAEjB,WAAO,MAAM,MAAM;AAAA,EACrB;AACF;",
6
- "names": []
7
- }
@@ -1,21 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __copyProps = (to, from, except, desc) => {
6
- if (from && typeof from === "object" || typeof from === "function") {
7
- for (let key of __getOwnPropNames(from))
8
- if (!__hasOwnProp.call(to, key) && key !== except)
9
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
- }
11
- return to;
12
- };
13
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
-
16
- // packages/ui/molecules/Panel/index.ts
17
- var Panel_exports = {};
18
- module.exports = __toCommonJS(Panel_exports);
19
- __reExport(Panel_exports, require("./Panel.cjs"), module.exports);
20
- if (module.exports.default) module.exports = module.exports.default;
21
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Panel/index.ts"],
4
- "sourcesContent": ["export * from './Panel.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,wBAAd;",
6
- "names": []
7
- }
@@ -1,88 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
- var __copyProps = (to, from, except, desc) => {
10
- if (from && typeof from === "object" || typeof from === "function") {
11
- for (let key of __getOwnPropNames(from))
12
- if (!__hasOwnProp.call(to, key) && key !== except)
13
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
- }
15
- return to;
16
- };
17
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // packages/ui/molecules/Slider/AbstractSliderChild.ts
20
- var AbstractSliderChild_exports = {};
21
- __export(AbstractSliderChild_exports, {
22
- AbstractSliderChild: () => AbstractSliderChild
23
- });
24
- module.exports = __toCommonJS(AbstractSliderChild_exports);
25
- var import_js_toolkit = require("@studiometa/js-toolkit");
26
- var import_utils = require("@studiometa/js-toolkit/utils");
27
- var import_Slider = require("./Slider.cjs");
28
- var AbstractSliderChild = class extends import_js_toolkit.Base {
29
- /**
30
- * Config.
31
- */
32
- static config = {
33
- name: "AbstractSliderChild"
34
- };
35
- /**
36
- * Listen to the `goto` event of the parent on mount.
37
- */
38
- mounted() {
39
- if (!(this.$parent instanceof import_Slider.Slider)) {
40
- throw new Error(
41
- `The \`${this.$options.name}\` component must be a direct child of a \`Slider\` component.`
42
- );
43
- }
44
- this.$parent.$on("index", this);
45
- }
46
- /**
47
- * Trigger update on resize.
48
- */
49
- resized() {
50
- (0, import_utils.nextFrame)(() => {
51
- this.update(this.$parent.currentIndex);
52
- });
53
- }
54
- /**
55
- * Remove the event listener.
56
- */
57
- destroyed() {
58
- this.$parent.$off("index", this);
59
- }
60
- /**
61
- * Dispatch event.
62
- * @param {CustomEvent} event
63
- * @returns {void}
64
- */
65
- handleEvent(event) {
66
- if (event.type === "index") {
67
- import_utils.domScheduler.read(() => {
68
- const callback = this.update(event.detail[0]);
69
- if ((0, import_utils.isFunction)(callback)) {
70
- import_utils.domScheduler.write(() => {
71
- callback();
72
- });
73
- }
74
- });
75
- }
76
- }
77
- // eslint-disable-next-line jsdoc/require-returns-check
78
- /**
79
- * Update the child component with the given index.
80
- * @param {number} index The new active index.
81
- * @returns {void|(()=>void)}
82
- */
83
- update(index) {
84
- throw new Error(`The \`AbstractSliderChild.update(${index})\` method must be implemented.`);
85
- }
86
- };
87
- if (module.exports.default) module.exports = module.exports.default;
88
- //# sourceMappingURL=AbstractSliderChild.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Slider/AbstractSliderChild.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig, BaseInterface } from '@studiometa/js-toolkit';\nimport { nextFrame, domScheduler, isFunction } from '@studiometa/js-toolkit/utils';\nimport { Slider } from './Slider.js';\n\nexport interface AbstractSliderChildProps extends BaseProps {\n $parent: Slider;\n}\n\n/**\n * AbstractSliderChild class.\n */\nexport class AbstractSliderChild<T extends BaseProps = BaseProps>\n extends Base<T & AbstractSliderChildProps>\n implements BaseInterface\n{\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'AbstractSliderChild',\n };\n\n /**\n * Listen to the `goto` event of the parent on mount.\n */\n mounted() {\n if (!(this.$parent instanceof Slider)) {\n throw new Error(\n `The \\`${this.$options.name}\\` component must be a direct child of a \\`Slider\\` component.`,\n );\n }\n\n this.$parent.$on('index', this);\n }\n\n /**\n * Trigger update on resize.\n */\n resized() {\n nextFrame(() => {\n this.update(this.$parent.currentIndex);\n });\n }\n\n /**\n * Remove the event listener.\n */\n destroyed() {\n this.$parent.$off('index', this);\n }\n\n /**\n * Dispatch event.\n * @param {CustomEvent} event\n * @returns {void}\n */\n handleEvent(event) {\n if (event.type === 'index') {\n domScheduler.read(() => {\n const callback = this.update(event.detail[0]);\n if (isFunction(callback)) {\n domScheduler.write(() => {\n // @ts-ignore\n callback();\n });\n }\n });\n }\n }\n\n // eslint-disable-next-line jsdoc/require-returns-check\n /**\n * Update the child component with the given index.\n * @param {number} index The new active index.\n * @returns {void|(()=>void)}\n */\n update(index): void | (() => void) {\n throw new Error(`The \\`AbstractSliderChild.update(${index})\\` method must be implemented.`);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAqB;AAErB,mBAAoD;AACpD,oBAAuB;AAShB,IAAM,sBAAN,cACG,uBAEV;AAAA;AAAA;AAAA;AAAA,EAIE,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACR,QAAI,EAAE,KAAK,mBAAmB,uBAAS;AACrC,YAAM,IAAI;AAAA,QACR,SAAS,KAAK,SAAS,IAAI;AAAA,MAC7B;AAAA,IACF;AAEA,SAAK,QAAQ,IAAI,SAAS,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACR,gCAAU,MAAM;AACd,WAAK,OAAO,KAAK,QAAQ,YAAY;AAAA,IACvC,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY;AACV,SAAK,QAAQ,KAAK,SAAS,IAAI;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,YAAY,OAAO;AACjB,QAAI,MAAM,SAAS,SAAS;AAC1B,gCAAa,KAAK,MAAM;AACtB,cAAM,WAAW,KAAK,OAAO,MAAM,OAAO,CAAC,CAAC;AAC5C,gBAAI,yBAAW,QAAQ,GAAG;AACxB,oCAAa,MAAM,MAAM;AAEvB,qBAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,OAA4B;AACjC,UAAM,IAAI,MAAM,oCAAoC,KAAK,iCAAiC;AAAA,EAC5F;AACF;",
6
- "names": []
7
- }