@studiometa/ui 1.0.0-alpha.0 → 1.0.0-alpha.2

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 (192) hide show
  1. package/README.md +6 -4
  2. package/atoms/Data/DataBind.d.ts +1 -1
  3. package/atoms/Data/DataBind.js +12 -5
  4. package/atoms/Data/DataBind.js.map +2 -2
  5. package/atoms/Data/DataComputed.js +1 -1
  6. package/atoms/Data/DataComputed.js.map +2 -2
  7. package/atoms/Data/DataModel.d.ts +1 -0
  8. package/atoms/Data/DataModel.js +13 -3
  9. package/atoms/Data/DataModel.js.map +2 -2
  10. package/package.json +1 -1
  11. package/atoms/Action/Action.cjs +0 -115
  12. package/atoms/Action/Action.cjs.map +0 -7
  13. package/atoms/Action/Target.cjs +0 -35
  14. package/atoms/Action/Target.cjs.map +0 -7
  15. package/atoms/Action/index.cjs +0 -22
  16. package/atoms/Action/index.cjs.map +0 -7
  17. package/atoms/AnchorScrollTo/AnchorScrollTo.cjs +0 -52
  18. package/atoms/AnchorScrollTo/AnchorScrollTo.cjs.map +0 -7
  19. package/atoms/AnchorScrollTo/index.cjs +0 -21
  20. package/atoms/AnchorScrollTo/index.cjs.map +0 -7
  21. package/atoms/CircularMarquee/CircularMarquee.cjs +0 -69
  22. package/atoms/CircularMarquee/CircularMarquee.cjs.map +0 -7
  23. package/atoms/CircularMarquee/index.cjs +0 -21
  24. package/atoms/CircularMarquee/index.cjs.map +0 -7
  25. package/atoms/Cursor/Cursor.cjs +0 -137
  26. package/atoms/Cursor/Cursor.cjs.map +0 -7
  27. package/atoms/Cursor/index.cjs +0 -21
  28. package/atoms/Cursor/index.cjs.map +0 -7
  29. package/atoms/Data/DataBind.cjs +0 -124
  30. package/atoms/Data/DataBind.cjs.map +0 -7
  31. package/atoms/Data/DataComputed.cjs +0 -49
  32. package/atoms/Data/DataComputed.cjs.map +0 -7
  33. package/atoms/Data/DataEffect.cjs +0 -47
  34. package/atoms/Data/DataEffect.cjs.map +0 -7
  35. package/atoms/Data/DataModel.cjs +0 -38
  36. package/atoms/Data/DataModel.cjs.map +0 -7
  37. package/atoms/Data/index.cjs +0 -24
  38. package/atoms/Data/index.cjs.map +0 -7
  39. package/atoms/Data/utils.cjs +0 -46
  40. package/atoms/Data/utils.cjs.map +0 -7
  41. package/atoms/Figure/Figure.cjs +0 -105
  42. package/atoms/Figure/Figure.cjs.map +0 -7
  43. package/atoms/Figure/FigureTwicpics.cjs +0 -123
  44. package/atoms/Figure/FigureTwicpics.cjs.map +0 -7
  45. package/atoms/Figure/index.cjs +0 -22
  46. package/atoms/Figure/index.cjs.map +0 -7
  47. package/atoms/FigureVideo/FigureVideo.cjs +0 -132
  48. package/atoms/FigureVideo/FigureVideo.cjs.map +0 -7
  49. package/atoms/FigureVideo/FigureVideoTwicpics.cjs +0 -153
  50. package/atoms/FigureVideo/FigureVideoTwicpics.cjs.map +0 -7
  51. package/atoms/FigureVideo/index.cjs +0 -22
  52. package/atoms/FigureVideo/index.cjs.map +0 -7
  53. package/atoms/LargeText/LargeText.cjs +0 -109
  54. package/atoms/LargeText/LargeText.cjs.map +0 -7
  55. package/atoms/LargeText/index.cjs +0 -21
  56. package/atoms/LargeText/index.cjs.map +0 -7
  57. package/atoms/LazyInclude/LazyInclude.cjs +0 -78
  58. package/atoms/LazyInclude/LazyInclude.cjs.map +0 -7
  59. package/atoms/LazyInclude/index.cjs +0 -21
  60. package/atoms/LazyInclude/index.cjs.map +0 -7
  61. package/atoms/Prefetch/AbstractPrefetch.cjs +0 -86
  62. package/atoms/Prefetch/AbstractPrefetch.cjs.map +0 -7
  63. package/atoms/Prefetch/PrefetchWhenOver.cjs +0 -42
  64. package/atoms/Prefetch/PrefetchWhenOver.cjs.map +0 -7
  65. package/atoms/Prefetch/PrefetchWhenVisible.cjs +0 -43
  66. package/atoms/Prefetch/PrefetchWhenVisible.cjs.map +0 -7
  67. package/atoms/Prefetch/index.cjs +0 -23
  68. package/atoms/Prefetch/index.cjs.map +0 -7
  69. package/atoms/ScrollAnimation/AbstractScrollAnimation.cjs +0 -95
  70. package/atoms/ScrollAnimation/AbstractScrollAnimation.cjs.map +0 -7
  71. package/atoms/ScrollAnimation/ScrollAnimation.cjs +0 -44
  72. package/atoms/ScrollAnimation/ScrollAnimation.cjs.map +0 -7
  73. package/atoms/ScrollAnimation/ScrollAnimationChild.cjs +0 -84
  74. package/atoms/ScrollAnimation/ScrollAnimationChild.cjs.map +0 -7
  75. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.cjs +0 -37
  76. package/atoms/ScrollAnimation/ScrollAnimationChildWithEase.cjs.map +0 -7
  77. package/atoms/ScrollAnimation/ScrollAnimationParent.cjs +0 -50
  78. package/atoms/ScrollAnimation/ScrollAnimationParent.cjs.map +0 -7
  79. package/atoms/ScrollAnimation/ScrollAnimationWithEase.cjs +0 -37
  80. package/atoms/ScrollAnimation/ScrollAnimationWithEase.cjs.map +0 -7
  81. package/atoms/ScrollAnimation/animationScrollWithEase.cjs +0 -59
  82. package/atoms/ScrollAnimation/animationScrollWithEase.cjs.map +0 -7
  83. package/atoms/ScrollAnimation/index.cjs +0 -27
  84. package/atoms/ScrollAnimation/index.cjs.map +0 -7
  85. package/atoms/ScrollReveal/ScrollReveal.cjs +0 -81
  86. package/atoms/ScrollReveal/ScrollReveal.cjs.map +0 -7
  87. package/atoms/ScrollReveal/index.cjs +0 -21
  88. package/atoms/ScrollReveal/index.cjs.map +0 -7
  89. package/atoms/index.cjs +0 -32
  90. package/atoms/index.cjs.map +0 -7
  91. package/decorators/index.cjs +0 -22
  92. package/decorators/index.cjs.map +0 -7
  93. package/decorators/withDeprecation.cjs +0 -47
  94. package/decorators/withDeprecation.cjs.map +0 -7
  95. package/decorators/withTransition.cjs +0 -86
  96. package/decorators/withTransition.cjs.map +0 -7
  97. package/index.cjs +0 -25
  98. package/index.cjs.map +0 -7
  99. package/molecules/Accordion/Accordion.cjs +0 -36
  100. package/molecules/Accordion/Accordion.cjs.map +0 -7
  101. package/molecules/Accordion/AccordionCore.cjs +0 -58
  102. package/molecules/Accordion/AccordionCore.cjs.map +0 -7
  103. package/molecules/Accordion/AccordionItem.cjs +0 -206
  104. package/molecules/Accordion/AccordionItem.cjs.map +0 -7
  105. package/molecules/Accordion/index.cjs +0 -22
  106. package/molecules/Accordion/index.cjs.map +0 -7
  107. package/molecules/AnchorNav/AnchorNav.cjs +0 -63
  108. package/molecules/AnchorNav/AnchorNav.cjs.map +0 -7
  109. package/molecules/AnchorNav/AnchorNavLink.cjs +0 -40
  110. package/molecules/AnchorNav/AnchorNavLink.cjs.map +0 -7
  111. package/molecules/AnchorNav/AnchorNavTarget.cjs +0 -35
  112. package/molecules/AnchorNav/AnchorNavTarget.cjs.map +0 -7
  113. package/molecules/AnchorNav/index.cjs +0 -23
  114. package/molecules/AnchorNav/index.cjs.map +0 -7
  115. package/molecules/Menu/Menu.cjs +0 -177
  116. package/molecules/Menu/Menu.cjs.map +0 -7
  117. package/molecules/Menu/MenuBtn.cjs +0 -66
  118. package/molecules/Menu/MenuBtn.cjs.map +0 -7
  119. package/molecules/Menu/MenuList.cjs +0 -165
  120. package/molecules/Menu/MenuList.cjs.map +0 -7
  121. package/molecules/Menu/index.cjs +0 -23
  122. package/molecules/Menu/index.cjs.map +0 -7
  123. package/molecules/Modal/Modal.cjs +0 -219
  124. package/molecules/Modal/Modal.cjs.map +0 -7
  125. package/molecules/Modal/ModalWithTransition.cjs +0 -69
  126. package/molecules/Modal/ModalWithTransition.cjs.map +0 -7
  127. package/molecules/Modal/index.cjs +0 -22
  128. package/molecules/Modal/index.cjs.map +0 -7
  129. package/molecules/Panel/Panel.cjs +0 -137
  130. package/molecules/Panel/Panel.cjs.map +0 -7
  131. package/molecules/Panel/index.cjs +0 -21
  132. package/molecules/Panel/index.cjs.map +0 -7
  133. package/molecules/Slider/AbstractSliderChild.cjs +0 -88
  134. package/molecules/Slider/AbstractSliderChild.cjs.map +0 -7
  135. package/molecules/Slider/Slider.cjs +0 -404
  136. package/molecules/Slider/Slider.cjs.map +0 -7
  137. package/molecules/Slider/SliderBtn.cjs +0 -71
  138. package/molecules/Slider/SliderBtn.cjs.map +0 -7
  139. package/molecules/Slider/SliderCount.cjs +0 -44
  140. package/molecules/Slider/SliderCount.cjs.map +0 -7
  141. package/molecules/Slider/SliderDots.cjs +0 -64
  142. package/molecules/Slider/SliderDots.cjs.map +0 -7
  143. package/molecules/Slider/SliderDrag.cjs +0 -66
  144. package/molecules/Slider/SliderDrag.cjs.map +0 -7
  145. package/molecules/Slider/SliderItem.cjs +0 -177
  146. package/molecules/Slider/SliderItem.cjs.map +0 -7
  147. package/molecules/Slider/SliderProgress.cjs +0 -49
  148. package/molecules/Slider/SliderProgress.cjs.map +0 -7
  149. package/molecules/Slider/index.cjs +0 -28
  150. package/molecules/Slider/index.cjs.map +0 -7
  151. package/molecules/Sticky/Sticky.cjs +0 -177
  152. package/molecules/Sticky/Sticky.cjs.map +0 -7
  153. package/molecules/Sticky/index.cjs +0 -21
  154. package/molecules/Sticky/index.cjs.map +0 -7
  155. package/molecules/TableOfContent/TableOfContent.cjs +0 -72
  156. package/molecules/TableOfContent/TableOfContent.cjs.map +0 -7
  157. package/molecules/TableOfContent/TableOfContentAnchor.cjs +0 -76
  158. package/molecules/TableOfContent/TableOfContentAnchor.cjs.map +0 -7
  159. package/molecules/TableOfContent/index.cjs +0 -22
  160. package/molecules/TableOfContent/index.cjs.map +0 -7
  161. package/molecules/Tabs/Tabs.cjs +0 -153
  162. package/molecules/Tabs/Tabs.cjs.map +0 -7
  163. package/molecules/Tabs/index.cjs +0 -21
  164. package/molecules/Tabs/index.cjs.map +0 -7
  165. package/molecules/index.cjs +0 -30
  166. package/molecules/index.cjs.map +0 -7
  167. package/organisms/Frame/Frame.cjs +0 -220
  168. package/organisms/Frame/Frame.cjs.map +0 -7
  169. package/organisms/Frame/FrameAnchor.cjs +0 -41
  170. package/organisms/Frame/FrameAnchor.cjs.map +0 -7
  171. package/organisms/Frame/FrameForm.cjs +0 -41
  172. package/organisms/Frame/FrameForm.cjs.map +0 -7
  173. package/organisms/Frame/FrameTarget.cjs +0 -114
  174. package/organisms/Frame/FrameTarget.cjs.map +0 -7
  175. package/organisms/Frame/index.cjs +0 -24
  176. package/organisms/Frame/index.cjs.map +0 -7
  177. package/organisms/index.cjs +0 -21
  178. package/organisms/index.cjs.map +0 -7
  179. package/primitives/Draggable/Draggable.cjs +0 -65
  180. package/primitives/Draggable/Draggable.cjs.map +0 -7
  181. package/primitives/Draggable/index.cjs +0 -21
  182. package/primitives/Draggable/index.cjs.map +0 -7
  183. package/primitives/Sentinel/Sentinel.cjs +0 -35
  184. package/primitives/Sentinel/Sentinel.cjs.map +0 -7
  185. package/primitives/Sentinel/index.cjs +0 -21
  186. package/primitives/Sentinel/index.cjs.map +0 -7
  187. package/primitives/Transition/Transition.cjs +0 -36
  188. package/primitives/Transition/Transition.cjs.map +0 -7
  189. package/primitives/Transition/index.cjs +0 -21
  190. package/primitives/Transition/index.cjs.map +0 -7
  191. package/primitives/index.cjs +0 -23
  192. package/primitives/index.cjs.map +0 -7
@@ -1,72 +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/TableOfContent/TableOfContent.ts
20
- var TableOfContent_exports = {};
21
- __export(TableOfContent_exports, {
22
- TableOfContent: () => TableOfContent
23
- });
24
- module.exports = __toCommonJS(TableOfContent_exports);
25
- var import_js_toolkit = require("@studiometa/js-toolkit");
26
- var import_TableOfContentAnchor = require("./TableOfContentAnchor.cjs");
27
- var import_withDeprecation = require("../../decorators/withDeprecation.cjs");
28
- var TableOfContent = class extends (0, import_withDeprecation.withDeprecation)(import_js_toolkit.Base) {
29
- /**
30
- * Config.
31
- */
32
- static config = {
33
- name: "TableOfContent",
34
- refs: ["itemTemplate", "list"],
35
- components: {
36
- TableOfContentAnchor: import_TableOfContentAnchor.TableOfContentAnchor
37
- },
38
- options: {
39
- contentSelector: String,
40
- withTemplate: Boolean
41
- }
42
- };
43
- /**
44
- * Generate anchors on mount and update the component to instantiate the
45
- * `TableOfContentAnchor` components.
46
- */
47
- mounted() {
48
- if (this.$options.withTemplate) {
49
- this.generateAnchors();
50
- this.$update();
51
- }
52
- }
53
- /**
54
- * Generate all anchors.
55
- * @todo Read anchor template from a ref?
56
- * @todo Better API to easily override the template function, maybe a `render` function?
57
- */
58
- generateAnchors() {
59
- document.querySelectorAll(this.$options.contentSelector).forEach((section) => {
60
- const tpl = document.createElement("div");
61
- tpl.innerHTML = this.$refs.itemTemplate.innerHTML;
62
- const li = tpl.querySelector("li");
63
- const anchor = li.querySelector("a");
64
- anchor.href = `#${section.id}`;
65
- anchor.innerHTML = section.textContent;
66
- anchor.dataset.component = "TableOfContentAnchor";
67
- this.$refs.list.append(li);
68
- });
69
- }
70
- };
71
- if (module.exports.default) module.exports = module.exports.default;
72
- //# sourceMappingURL=TableOfContent.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/molecules/TableOfContent/TableOfContent.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { TableOfContentAnchor } from './TableOfContentAnchor.js';\nimport { withDeprecation } from '../../decorators/withDeprecation.js';\n\nexport interface TableOfContentProps extends BaseProps {\n $refs: {\n itemTemplate: HTMLTemplateElement;\n list: HTMLUListElement;\n };\n $options: {\n contentSelector: string;\n withTemplate: boolean;\n };\n $children: {\n TableOfContentAnchor: TableOfContentAnchor[];\n };\n}\n\n/**\n * TableOfContent class.\n * @deprecated\n */\nexport class TableOfContent<T extends BaseProps = BaseProps> extends withDeprecation(Base)<\n T & TableOfContentProps\n> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'TableOfContent',\n refs: ['itemTemplate', 'list'],\n components: {\n TableOfContentAnchor,\n },\n options: {\n contentSelector: String,\n withTemplate: Boolean,\n },\n };\n\n /**\n * Generate anchors on mount and update the component to instantiate the\n * `TableOfContentAnchor` components.\n */\n mounted() {\n if (this.$options.withTemplate) {\n this.generateAnchors();\n this.$update();\n }\n }\n\n /**\n * Generate all anchors.\n * @todo Read anchor template from a ref?\n * @todo Better API to easily override the template function, maybe a `render` function?\n */\n generateAnchors() {\n document.querySelectorAll(this.$options.contentSelector).forEach((section) => {\n const tpl = document.createElement('div');\n tpl.innerHTML = this.$refs.itemTemplate.innerHTML;\n const li = tpl.querySelector('li');\n const anchor = li.querySelector('a');\n anchor.href = `#${section.id}`;\n anchor.innerHTML = section.textContent;\n anchor.dataset.component = 'TableOfContentAnchor';\n this.$refs.list.append(li);\n });\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAqB;AAErB,kCAAqC;AACrC,6BAAgC;AAoBzB,IAAM,iBAAN,kBAA8D,wCAAgB,sBAAI,EAEvF;AAAA;AAAA;AAAA;AAAA,EAIA,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,MAAM,CAAC,gBAAgB,MAAM;AAAA,IAC7B,YAAY;AAAA,MACV;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,iBAAiB;AAAA,MACjB,cAAc;AAAA,IAChB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU;AACR,QAAI,KAAK,SAAS,cAAc;AAC9B,WAAK,gBAAgB;AACrB,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,kBAAkB;AAChB,aAAS,iBAAiB,KAAK,SAAS,eAAe,EAAE,QAAQ,CAAC,YAAY;AAC5E,YAAM,MAAM,SAAS,cAAc,KAAK;AACxC,UAAI,YAAY,KAAK,MAAM,aAAa;AACxC,YAAM,KAAK,IAAI,cAAc,IAAI;AACjC,YAAM,SAAS,GAAG,cAAc,GAAG;AACnC,aAAO,OAAO,IAAI,QAAQ,EAAE;AAC5B,aAAO,YAAY,QAAQ;AAC3B,aAAO,QAAQ,YAAY;AAC3B,WAAK,MAAM,KAAK,OAAO,EAAE;AAAA,IAC3B,CAAC;AAAA,EACH;AACF;",
6
- "names": []
7
- }
@@ -1,76 +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/TableOfContent/TableOfContentAnchor.ts
20
- var TableOfContentAnchor_exports = {};
21
- __export(TableOfContentAnchor_exports, {
22
- TableOfContentAnchor: () => TableOfContentAnchor
23
- });
24
- module.exports = __toCommonJS(TableOfContentAnchor_exports);
25
- var import_atoms = require("../../atoms/index.cjs");
26
- var import_withDeprecation = require("../../decorators/withDeprecation.cjs");
27
- var TableOfContentAnchor = class extends (0, import_withDeprecation.withDeprecation)(
28
- import_atoms.AnchorScrollTo
29
- ) {
30
- /**
31
- * Config.
32
- */
33
- static config = {
34
- name: "TableOfContentAnchor",
35
- emits: ["should-activate"],
36
- options: {
37
- activeClass: {
38
- type: String,
39
- default: "is-active"
40
- }
41
- }
42
- };
43
- /**
44
- * Observer.
45
- * @private
46
- */
47
- __observer;
48
- /**
49
- * Get the sentinel.
50
- */
51
- get sentinel() {
52
- return document.querySelector(this.targetSelector);
53
- }
54
- /**
55
- * Init observer on mount.
56
- */
57
- mounted() {
58
- if (!this.sentinel) {
59
- return;
60
- }
61
- this.__observer = new IntersectionObserver(([entry]) => {
62
- const shouldActivate = entry.isIntersecting && entry.boundingClientRect.y < 100 && entry.boundingClientRect.y > -100;
63
- this.$el.classList.toggle(this.$options.activeClass, shouldActivate);
64
- this.$emit("should-activate", shouldActivate);
65
- });
66
- this.__observer.observe(this.sentinel);
67
- }
68
- /**
69
- * Destroy observer on destroy.
70
- */
71
- destroyed() {
72
- this.__observer.disconnect();
73
- }
74
- };
75
- if (module.exports.default) module.exports = module.exports.default;
76
- //# sourceMappingURL=TableOfContentAnchor.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/molecules/TableOfContent/TableOfContentAnchor.ts"],
4
- "sourcesContent": ["import type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { AnchorScrollTo } from '../../atoms/index.js';\nimport { withDeprecation } from '../../decorators/withDeprecation.js';\n\nexport interface TableOfContentAnchorProps extends BaseProps {\n $options: {\n activeClass: string;\n };\n}\n\n/**\n * TableOfContentAnchor class.\n * @deprecated\n */\nexport class TableOfContentAnchor<T extends BaseProps = BaseProps> extends withDeprecation<AnchorScrollTo>(\n AnchorScrollTo,\n)<T & TableOfContentAnchorProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'TableOfContentAnchor',\n emits: ['should-activate'],\n options: {\n activeClass: {\n type: String,\n default: 'is-active',\n },\n },\n };\n\n /**\n * Observer.\n * @private\n */\n __observer: IntersectionObserver;\n\n /**\n * Get the sentinel.\n */\n get sentinel(): HTMLElement {\n return document.querySelector(this.targetSelector) as HTMLElement;\n }\n\n /**\n * Init observer on mount.\n */\n mounted() {\n if (!this.sentinel) {\n return;\n }\n\n this.__observer = new IntersectionObserver(([entry]) => {\n const shouldActivate =\n entry.isIntersecting &&\n entry.boundingClientRect.y < 100 &&\n entry.boundingClientRect.y > -100;\n this.$el.classList.toggle(this.$options.activeClass, shouldActivate);\n this.$emit('should-activate', shouldActivate);\n });\n\n this.__observer.observe(this.sentinel);\n }\n\n /**\n * Destroy observer on destroy.\n */\n destroyed() {\n this.__observer.disconnect();\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAA+B;AAC/B,6BAAgC;AAYzB,IAAM,uBAAN,kBAAoE;AAAA,EACzE;AACF,EAAiC;AAAA;AAAA;AAAA;AAAA,EAI/B,OAAO,SAAqB;AAAA,IAC1B,MAAM;AAAA,IACN,OAAO,CAAC,iBAAiB;AAAA,IACzB,SAAS;AAAA,MACP,aAAa;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAwB;AAC1B,WAAO,SAAS,cAAc,KAAK,cAAc;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU;AACR,QAAI,CAAC,KAAK,UAAU;AAClB;AAAA,IACF;AAEA,SAAK,aAAa,IAAI,qBAAqB,CAAC,CAAC,KAAK,MAAM;AACtD,YAAM,iBACJ,MAAM,kBACN,MAAM,mBAAmB,IAAI,OAC7B,MAAM,mBAAmB,IAAI;AAC/B,WAAK,IAAI,UAAU,OAAO,KAAK,SAAS,aAAa,cAAc;AACnE,WAAK,MAAM,mBAAmB,cAAc;AAAA,IAC9C,CAAC;AAED,SAAK,WAAW,QAAQ,KAAK,QAAQ;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY;AACV,SAAK,WAAW,WAAW;AAAA,EAC7B;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/TableOfContent/index.ts
17
- var TableOfContent_exports = {};
18
- module.exports = __toCommonJS(TableOfContent_exports);
19
- __reExport(TableOfContent_exports, require("./TableOfContent.cjs"), module.exports);
20
- __reExport(TableOfContent_exports, require("./TableOfContentAnchor.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/TableOfContent/index.ts"],
4
- "sourcesContent": ["export * from './TableOfContent.js';\nexport * from './TableOfContentAnchor.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,mCAAc,iCAAd;AACA,mCAAc,uCADd;",
6
- "names": []
7
- }
@@ -1,153 +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/Tabs/Tabs.ts
20
- var Tabs_exports = {};
21
- __export(Tabs_exports, {
22
- Tabs: () => Tabs
23
- });
24
- module.exports = __toCommonJS(Tabs_exports);
25
- var import_js_toolkit = require("@studiometa/js-toolkit");
26
- var import_utils = require("@studiometa/js-toolkit/utils");
27
- var Tabs = class extends import_js_toolkit.Base {
28
- /**
29
- * Config.
30
- */
31
- static config = {
32
- name: "Tabs",
33
- refs: ["btn[]", "content[]"],
34
- emits: ["enable", "disable"],
35
- options: {
36
- styles: {
37
- type: Object,
38
- default: () => ({
39
- content: {
40
- closed: {
41
- position: "absolute",
42
- opacity: "0",
43
- pointerEvents: "none",
44
- visibility: "hidden"
45
- }
46
- }
47
- }),
48
- merge: true
49
- }
50
- }
51
- };
52
- items;
53
- /**
54
- * Initialize the component's behaviours.
55
- * @returns {void}
56
- */
57
- mounted() {
58
- this.items = this.$refs.btn.map((btn, index) => {
59
- const id = `${this.$id}-${index}`;
60
- const content = this.$refs.content[index];
61
- btn.setAttribute("id", id);
62
- content.setAttribute("aria-labelledby", id);
63
- const item = { btn, content, isEnabled: index > 0 };
64
- if (index > 0) {
65
- this.disableItem(item);
66
- } else {
67
- this.enableItem(item);
68
- }
69
- return item;
70
- });
71
- }
72
- /**
73
- * Switch tab on button click.
74
- */
75
- onBtnClick(event, index) {
76
- this.items.forEach((item, i) => {
77
- if (i !== index) {
78
- this.disableItem(item);
79
- }
80
- });
81
- this.enableItem(this.items[index]);
82
- }
83
- /**
84
- * Enable the given tab and its associated content.
85
- */
86
- async enableItem(item) {
87
- if (!item || item.isEnabled) {
88
- return Promise.resolve(this);
89
- }
90
- item.isEnabled = true;
91
- const { btn, content } = item;
92
- const btnStyles = this.$options.styles.btn || {};
93
- const contentStyles = this.$options.styles.content || {};
94
- content.setAttribute("aria-hidden", "false");
95
- this.$emit("enable", item);
96
- return Promise.all([
97
- (0, import_utils.transition)(
98
- btn,
99
- {
100
- from: btnStyles.closed,
101
- active: btnStyles.active,
102
- to: btnStyles.open
103
- },
104
- "keep"
105
- ),
106
- (0, import_utils.transition)(
107
- content,
108
- {
109
- from: contentStyles.closed,
110
- active: contentStyles.active,
111
- to: contentStyles.open
112
- },
113
- "keep"
114
- )
115
- ]).then(() => Promise.resolve(this));
116
- }
117
- /**
118
- * Disable the given tab and its associated content.
119
- */
120
- async disableItem(item) {
121
- if (!item || !item.isEnabled) {
122
- return Promise.resolve(this);
123
- }
124
- item.isEnabled = false;
125
- const { btn, content } = item;
126
- const btnStyles = this.$options.styles.btn || {};
127
- const contentStyles = this.$options.styles.content || {};
128
- content.setAttribute("aria-hidden", "true");
129
- this.$emit("disable", item);
130
- return Promise.all([
131
- (0, import_utils.transition)(
132
- btn,
133
- {
134
- from: btnStyles.open,
135
- active: btnStyles.active,
136
- to: btnStyles.closed
137
- },
138
- "keep"
139
- ),
140
- (0, import_utils.transition)(
141
- content,
142
- {
143
- from: contentStyles.open,
144
- active: contentStyles.active,
145
- to: contentStyles.closed
146
- },
147
- "keep"
148
- )
149
- ]).then(() => Promise.resolve(this));
150
- }
151
- };
152
- if (module.exports.default) module.exports = module.exports.default;
153
- //# sourceMappingURL=Tabs.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/ui/molecules/Tabs/Tabs.ts"],
4
- "sourcesContent": ["import { Base } from '@studiometa/js-toolkit';\nimport type { BaseProps, BaseConfig } from '@studiometa/js-toolkit';\nimport { transition } from '@studiometa/js-toolkit/utils';\n\ntype TabItem = {\n btn: HTMLElement;\n content: HTMLElement;\n isEnabled: boolean;\n};\n\ntype TabsStates = Partial<\n Record<'open' | 'active' | 'closed', string | Partial<CSSStyleDeclaration>>\n>;\n// eslint-disable-next-line no-use-before-define\ntype TabsStylesOption = Partial<Record<keyof TabsProps['$refs'], TabsStates>>;\n\nexport interface TabsProps extends BaseProps {\n $options: {\n styles: TabsStylesOption;\n };\n $refs: {\n btn: HTMLElement[];\n content: HTMLElement[];\n };\n}\n\n/**\n * Tabs class.\n */\nexport class Tabs<T extends BaseProps = BaseProps> extends Base<T & TabsProps> {\n /**\n * Config.\n */\n static config: BaseConfig = {\n name: 'Tabs',\n refs: ['btn[]', 'content[]'],\n emits: ['enable', 'disable'],\n options: {\n styles: {\n type: Object,\n default: (): TabsStylesOption => ({\n content: {\n closed: {\n position: 'absolute',\n opacity: '0',\n pointerEvents: 'none',\n visibility: 'hidden',\n },\n },\n }),\n merge: true,\n },\n },\n };\n\n items: TabItem[];\n\n /**\n * Initialize the component's behaviours.\n * @returns {void}\n */\n mounted() {\n this.items = this.$refs.btn.map((btn, index) => {\n const id = `${this.$id}-${index}`;\n const content = this.$refs.content[index];\n btn.setAttribute('id', id);\n content.setAttribute('aria-labelledby', id);\n\n const item = { btn, content, isEnabled: index > 0 };\n if (index > 0) {\n this.disableItem(item);\n } else {\n this.enableItem(item);\n }\n return item;\n });\n }\n\n /**\n * Switch tab on button click.\n */\n onBtnClick(event: MouseEvent, index: number) {\n this.items.forEach((item, i) => {\n if (i !== index) {\n this.disableItem(item);\n }\n });\n\n this.enableItem(this.items[index]);\n }\n\n /**\n * Enable the given tab and its associated content.\n */\n async enableItem(item: TabItem): Promise<this> {\n if (!item || item.isEnabled) {\n return Promise.resolve(this);\n }\n\n item.isEnabled = true;\n const { btn, content } = item;\n const btnStyles = this.$options.styles.btn || {};\n const contentStyles = this.$options.styles.content || {};\n\n content.setAttribute('aria-hidden', 'false');\n this.$emit('enable', item);\n\n return Promise.all([\n transition(\n btn,\n {\n from: btnStyles.closed,\n active: btnStyles.active,\n to: btnStyles.open,\n },\n 'keep',\n ),\n transition(\n content,\n {\n from: contentStyles.closed,\n active: contentStyles.active,\n to: contentStyles.open,\n },\n 'keep',\n ),\n ]).then(() => Promise.resolve(this));\n }\n\n /**\n * Disable the given tab and its associated content.\n */\n async disableItem(item: TabItem): Promise<this> {\n if (!item || !item.isEnabled) {\n return Promise.resolve(this);\n }\n\n item.isEnabled = false;\n const { btn, content } = item;\n const btnStyles = this.$options.styles.btn || {};\n const contentStyles = this.$options.styles.content || {};\n\n content.setAttribute('aria-hidden', 'true');\n this.$emit('disable', item);\n\n return Promise.all([\n transition(\n btn,\n {\n from: btnStyles.open,\n active: btnStyles.active,\n to: btnStyles.closed,\n },\n 'keep',\n ),\n transition(\n content,\n {\n from: contentStyles.open,\n active: contentStyles.active,\n to: contentStyles.closed,\n },\n 'keep',\n ),\n ]).then(() => Promise.resolve(this));\n }\n}\n"],
5
- "mappings": "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",
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/Tabs/index.ts
17
- var Tabs_exports = {};
18
- module.exports = __toCommonJS(Tabs_exports);
19
- __reExport(Tabs_exports, require("./Tabs.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/Tabs/index.ts"],
4
- "sourcesContent": ["export * from './Tabs.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,yBAAc,uBAAd;",
6
- "names": []
7
- }
@@ -1,30 +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/index.ts
17
- var molecules_exports = {};
18
- module.exports = __toCommonJS(molecules_exports);
19
- __reExport(molecules_exports, require("./Accordion/Accordion.cjs"), module.exports);
20
- __reExport(molecules_exports, require("./Accordion/AccordionItem.cjs"), module.exports);
21
- __reExport(molecules_exports, require("./Menu/index.cjs"), module.exports);
22
- __reExport(molecules_exports, require("./Slider/index.cjs"), module.exports);
23
- __reExport(molecules_exports, require("./Sticky/Sticky.cjs"), module.exports);
24
- __reExport(molecules_exports, require("./AnchorNav/index.cjs"), module.exports);
25
- __reExport(molecules_exports, require("./TableOfContent/index.cjs"), module.exports);
26
- __reExport(molecules_exports, require("./Tabs/index.cjs"), module.exports);
27
- __reExport(molecules_exports, require("./Modal/index.cjs"), module.exports);
28
- __reExport(molecules_exports, require("./Panel/index.cjs"), module.exports);
29
- if (module.exports.default) module.exports = module.exports.default;
30
- //# sourceMappingURL=index.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../packages/ui/molecules/index.ts"],
4
- "sourcesContent": ["export * from './Accordion/Accordion.js';\nexport * from './Accordion/AccordionItem.js';\nexport * from './Menu/index.js';\nexport * from './Slider/index.js';\nexport * from './Sticky/Sticky.js';\nexport * from './AnchorNav/index.js';\nexport * from './TableOfContent/index.js';\nexport * from './Tabs/index.js';\nexport * from './Modal/index.js';\nexport * from './Panel/index.js';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,8BAAc,sCAAd;AACA,8BAAc,0CADd;AAEA,8BAAc,6BAFd;AAGA,8BAAc,+BAHd;AAIA,8BAAc,gCAJd;AAKA,8BAAc,kCALd;AAMA,8BAAc,uCANd;AAOA,8BAAc,6BAPd;AAQA,8BAAc,8BARd;AASA,8BAAc,8BATd;",
6
- "names": []
7
- }
@@ -1,220 +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/organisms/Frame/Frame.ts
20
- var Frame_exports = {};
21
- __export(Frame_exports, {
22
- Frame: () => Frame
23
- });
24
- module.exports = __toCommonJS(Frame_exports);
25
- var import_js_toolkit = require("@studiometa/js-toolkit");
26
- var import_utils = require("@studiometa/js-toolkit/utils");
27
- var import_FrameAnchor = require("./FrameAnchor.cjs");
28
- var import_FrameForm = require("./FrameForm.cjs");
29
- var import_FrameTarget = require("./FrameTarget.cjs");
30
- function getScrollPosition() {
31
- return {
32
- left: window.pageXOffset,
33
- top: window.pageYOffset
34
- };
35
- }
36
- var cache = /* @__PURE__ */ new Map();
37
- var Frame = class _Frame extends import_js_toolkit.Base {
38
- /**
39
- * Config.
40
- */
41
- static config = {
42
- name: "Frame",
43
- emits: [
44
- "before-fetch",
45
- "after-fetch",
46
- "before-leave",
47
- "after-leave",
48
- "before-content",
49
- "after-content",
50
- "before-enter",
51
- "after-enter"
52
- ],
53
- components: {
54
- FrameAnchor: import_FrameAnchor.FrameAnchor,
55
- FrameForm: import_FrameForm.FrameForm,
56
- FrameTarget: import_FrameTarget.FrameTarget,
57
- Frame: _Frame
58
- },
59
- options: {
60
- history: Boolean
61
- }
62
- };
63
- /**
64
- * Get uniq id.
65
- */
66
- get id() {
67
- return this.$el.id;
68
- }
69
- /**
70
- * Get direct `FrameTarget` children.
71
- */
72
- get directChildrenFrameTarget() {
73
- return (0, import_js_toolkit.getDirectChildren)(this, "Frame", "FrameTarget");
74
- }
75
- /**
76
- * Prevent scroll top on unload.
77
- */
78
- onWindowUnload() {
79
- const { history } = window;
80
- if (!history.state) {
81
- return;
82
- }
83
- history.replaceState(
84
- {
85
- ...history.state,
86
- scroll: getScrollPosition()
87
- },
88
- ""
89
- );
90
- }
91
- /**
92
- * Go to the previous URL on `popstate` event.
93
- */
94
- onWindowPopstate(event) {
95
- this.goTo(window.location.href, null, event.state);
96
- }
97
- /**
98
- * Prevent click on `FrameAnchor`.
99
- */
100
- onFrameAnchorClick(index, event) {
101
- if (!(0, import_js_toolkit.isDirectChild)(this, "Frame", "FrameAnchor", this.$children.FrameAnchor[index])) {
102
- return;
103
- }
104
- this.$log("onAFrameClick", index, event);
105
- event.preventDefault();
106
- const anchor = this.$children.FrameAnchor[index];
107
- if (anchor.href === window.location.href) {
108
- return;
109
- }
110
- this.goTo(anchor.href);
111
- }
112
- /**
113
- * Prevent submit on forms.
114
- */
115
- onFrameFormSubmit(index, event) {
116
- if (!(0, import_js_toolkit.isDirectChild)(this, "Frame", "FrameForm", this.$children.FrameForm[index])) {
117
- return;
118
- }
119
- this.$log("onFrameFormFrameSubmit", index, event);
120
- event.preventDefault();
121
- const form = this.$children.FrameForm[index];
122
- const url = new URL(form.action);
123
- if (form.$el.method === "get") {
124
- url.search = new URLSearchParams(new FormData(form.$el)).toString();
125
- this.goTo(url.toString());
126
- }
127
- if (form.$el.method === "post") {
128
- this.goTo(url.toString(), new FormData(form.$el));
129
- }
130
- }
131
- /**
132
- * Parge an HTML string into a DOM object.
133
- */
134
- parseHTML(string = "") {
135
- return new DOMParser().parseFromString(string, "text/html");
136
- }
137
- /**
138
- * Go to the given url.
139
- */
140
- async goTo(url, formData = null, scroll = null) {
141
- this.$log("goTo", url);
142
- const parsedUrl = new URL(url);
143
- if (parsedUrl.origin !== window.location.origin) {
144
- throw new Error("Cross origin request are not allowed.");
145
- }
146
- this.$emit("before-fetch", url);
147
- const content = await this.fetch(url, formData);
148
- const doc = this.parseHTML(content);
149
- const el = doc.querySelector(`#${this.id}`);
150
- const newFrame = new _Frame(el);
151
- newFrame.$children.registerAll();
152
- this.$emit("after-fetch", url, content);
153
- this.$emit("before-leave");
154
- await Promise.all(this.directChildrenFrameTarget.map((target) => target.leave()));
155
- this.$emit("after-leave");
156
- this.$emit("before-content");
157
- this.directChildrenFrameTarget.map(
158
- (target, index) => target.updateContent(newFrame.directChildrenFrameTarget[index])
159
- );
160
- if (this.$options.history && formData === null) {
161
- document.title = doc.title;
162
- (0, import_utils.historyPush)({ path: parsedUrl.pathname, search: parsedUrl.searchParams });
163
- }
164
- if (scroll) {
165
- document.scrollingElement.scrollTop = scroll.top;
166
- document.scrollingElement.scrollLeft = scroll.left;
167
- }
168
- await (0, import_utils.nextFrame)();
169
- this.$root.$update();
170
- await (0, import_utils.nextFrame)();
171
- this.$emit("after-content");
172
- this.$emit("before-enter");
173
- await Promise.all(this.directChildrenFrameTarget.map((target) => target.enter()));
174
- this.$emit("after-enter");
175
- }
176
- /**
177
- * Fetch the given url.
178
- */
179
- async fetch(url, formData = null) {
180
- if (formData) {
181
- const promise2 = fetch(url, {
182
- method: "post",
183
- body: formData
184
- }).then((response) => response.text());
185
- const content = await promise2;
186
- return content;
187
- }
188
- const cached = cache.get(url);
189
- if (cached) {
190
- if (cached.status === "pending") {
191
- return cached.promise;
192
- }
193
- return cached.content;
194
- }
195
- const promise = fetch(url).then((response) => response.text());
196
- try {
197
- cache.set(url, {
198
- promise,
199
- status: "pending",
200
- content: void 0
201
- });
202
- const content = await promise;
203
- cache.set(url, {
204
- promise,
205
- status: "resolved",
206
- content
207
- });
208
- return content;
209
- } catch (err) {
210
- cache.set(url, {
211
- promise,
212
- status: "error",
213
- content: err
214
- });
215
- return err;
216
- }
217
- }
218
- };
219
- if (module.exports.default) module.exports = module.exports.default;
220
- //# sourceMappingURL=Frame.cjs.map