@videojs/html 0.1.0-preview.2 → 0.1.0-preview.4

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 (127) hide show
  1. package/README.md +2 -2
  2. package/dist/button-D1DWjsQu.js +57 -0
  3. package/dist/button-D1DWjsQu.js.map +1 -0
  4. package/dist/component-factory-DeAN6cjC.js +47 -0
  5. package/dist/component-factory-DeAN6cjC.js.map +1 -0
  6. package/dist/current-time-display-C3qndGf5.js +47 -0
  7. package/dist/current-time-display-C3qndGf5.js.map +1 -0
  8. package/dist/custom-element-3bDlB2XO.js +10 -0
  9. package/dist/custom-element-3bDlB2XO.js.map +1 -0
  10. package/dist/define/index.d.ts +12 -0
  11. package/dist/define/index.js +27 -0
  12. package/dist/define/media-container.d.ts +1 -0
  13. package/dist/define/media-container.js +3 -0
  14. package/dist/define/media-current-time-display.d.ts +1 -0
  15. package/dist/define/media-current-time-display.js +4 -0
  16. package/dist/define/media-duration-display.d.ts +1 -0
  17. package/dist/define/media-duration-display.js +4 -0
  18. package/dist/define/media-fullscreen-button.d.ts +1 -0
  19. package/dist/define/media-fullscreen-button.js +5 -0
  20. package/dist/define/media-mute-button.d.ts +1 -0
  21. package/dist/define/media-mute-button.js +5 -0
  22. package/dist/define/media-play-button.d.ts +1 -0
  23. package/dist/define/media-play-button.js +5 -0
  24. package/dist/define/media-popover.d.ts +1 -0
  25. package/dist/define/media-popover.js +3 -0
  26. package/dist/define/media-preview-time-display.d.ts +1 -0
  27. package/dist/define/media-preview-time-display.js +4 -0
  28. package/dist/define/media-provider.d.ts +1 -0
  29. package/dist/define/media-provider.js +3 -0
  30. package/dist/define/media-time-slider.d.ts +1 -0
  31. package/dist/define/media-time-slider.js +4 -0
  32. package/dist/define/media-tooltip.d.ts +1 -0
  33. package/dist/define/media-tooltip.js +3 -0
  34. package/dist/define/media-volume-slider.d.ts +1 -0
  35. package/dist/define/media-volume-slider.js +4 -0
  36. package/dist/duration-display-JOPp3bdU.js +49 -0
  37. package/dist/duration-display-JOPp3bdU.js.map +1 -0
  38. package/dist/fullscreen-button-CGO2UJjs.js +48 -0
  39. package/dist/fullscreen-button-CGO2UJjs.js.map +1 -0
  40. package/dist/{icons-YlVTDFdV.js → icons-CuxuONCk.js} +59 -48
  41. package/dist/icons-CuxuONCk.js.map +1 -0
  42. package/dist/icons.d.ts +1 -2
  43. package/dist/icons.js +2 -3
  44. package/dist/index-LKrIp3Oo.d.ts +1 -0
  45. package/dist/index.d.ts +172 -4
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +16 -9
  48. package/dist/media-container-BGEXSi9g.js +8 -0
  49. package/dist/media-container-BGEXSi9g.js.map +1 -0
  50. package/dist/media-container-C0MUzkJ_.js +83 -0
  51. package/dist/media-container-C0MUzkJ_.js.map +1 -0
  52. package/dist/media-container-DPnFjmtK.d.ts +1 -0
  53. package/dist/media-current-time-display-B-4Cp845.js +8 -0
  54. package/dist/media-current-time-display-B-4Cp845.js.map +1 -0
  55. package/dist/media-current-time-display-Cd0rPAuj.d.ts +1 -0
  56. package/dist/media-duration-display-BLMr7VHo.js +8 -0
  57. package/dist/media-duration-display-BLMr7VHo.js.map +1 -0
  58. package/dist/media-duration-display-qvm6YX-q.d.ts +1 -0
  59. package/dist/media-fullscreen-button-BgUK3lgu.d.ts +1 -0
  60. package/dist/media-fullscreen-button-Dcflbt54.js +8 -0
  61. package/dist/media-fullscreen-button-Dcflbt54.js.map +1 -0
  62. package/dist/media-mute-button-BOVhZ3aP.js +8 -0
  63. package/dist/media-mute-button-BOVhZ3aP.js.map +1 -0
  64. package/dist/media-mute-button-NVJF2EEW.d.ts +1 -0
  65. package/dist/media-play-button-CLj-hkwn.js +8 -0
  66. package/dist/media-play-button-CLj-hkwn.js.map +1 -0
  67. package/dist/media-play-button-oq8yDlxe.d.ts +1 -0
  68. package/dist/media-popover-BtJmPv0E.d.ts +1 -0
  69. package/dist/media-popover-F4M4Tq4z.js +8 -0
  70. package/dist/media-popover-F4M4Tq4z.js.map +1 -0
  71. package/dist/media-preview-time-display-4YX5Rics.d.ts +1 -0
  72. package/dist/media-preview-time-display-DAiMgLPX.js +8 -0
  73. package/dist/media-preview-time-display-DAiMgLPX.js.map +1 -0
  74. package/dist/media-provider-CyoL0bCx.js +17 -0
  75. package/dist/media-provider-CyoL0bCx.js.map +1 -0
  76. package/dist/media-provider-D7P2TLXG.d.ts +1 -0
  77. package/dist/media-provider-D_GL2_DN.js +8 -0
  78. package/dist/media-provider-D_GL2_DN.js.map +1 -0
  79. package/dist/media-skin-Di3vSHvS.d.ts +11 -0
  80. package/dist/media-skin-Di3vSHvS.d.ts.map +1 -0
  81. package/dist/media-skin-mHWwUPg3.js +36 -0
  82. package/dist/media-skin-mHWwUPg3.js.map +1 -0
  83. package/dist/media-time-slider-Bp2qnwsW.js +12 -0
  84. package/dist/media-time-slider-Bp2qnwsW.js.map +1 -0
  85. package/dist/media-time-slider-DvMnfYXZ.d.ts +1 -0
  86. package/dist/media-tooltip-BqV17mdM.d.ts +1 -0
  87. package/dist/media-tooltip-ClcVafMb.js +14 -0
  88. package/dist/media-tooltip-ClcVafMb.js.map +1 -0
  89. package/dist/media-volume-slider-CKSxmdQv.js +11 -0
  90. package/dist/media-volume-slider-CKSxmdQv.js.map +1 -0
  91. package/dist/media-volume-slider-DP47VLVi.d.ts +1 -0
  92. package/dist/mute-button-vW2sLqqY.js +50 -0
  93. package/dist/mute-button-vW2sLqqY.js.map +1 -0
  94. package/dist/play-button-aVb0g10G.js +44 -0
  95. package/dist/play-button-aVb0g10G.js.map +1 -0
  96. package/dist/popover-Dc0hyhwB.js +187 -0
  97. package/dist/popover-Dc0hyhwB.js.map +1 -0
  98. package/dist/preview-time-display-Dax0FQ2X.js +44 -0
  99. package/dist/preview-time-display-Dax0FQ2X.js.map +1 -0
  100. package/dist/skins/frosted.d.ts +23 -0
  101. package/dist/skins/frosted.d.ts.map +1 -0
  102. package/dist/skins/frosted.js +144 -0
  103. package/dist/skins/frosted.js.map +1 -0
  104. package/dist/skins/minimal.d.ts +23 -0
  105. package/dist/skins/minimal.d.ts.map +1 -0
  106. package/dist/skins/minimal.js +149 -0
  107. package/dist/skins/minimal.js.map +1 -0
  108. package/dist/time-slider-CA1GMs6A.js +201 -0
  109. package/dist/time-slider-CA1GMs6A.js.map +1 -0
  110. package/dist/tooltip-54fBUUpb.js +296 -0
  111. package/dist/tooltip-54fBUUpb.js.map +1 -0
  112. package/dist/volume-slider-guD8gqpi.js +206 -0
  113. package/dist/volume-slider-guD8gqpi.js.map +1 -0
  114. package/package.json +16 -7
  115. package/dist/chunk-Bp6m_JJh.js +0 -13
  116. package/dist/icons-YlVTDFdV.js.map +0 -1
  117. package/dist/index-BtSCzZKn.d.ts +0 -62
  118. package/dist/index-BtSCzZKn.d.ts.map +0 -1
  119. package/dist/index.js.map +0 -1
  120. package/dist/media-skin-BlXPC9wG.js +0 -1458
  121. package/dist/media-skin-BlXPC9wG.js.map +0 -1
  122. package/dist/media-skin-CbuyuCb-.d.ts +0 -208
  123. package/dist/media-skin-CbuyuCb-.d.ts.map +0 -1
  124. package/dist/skins/default.d.ts +0 -12
  125. package/dist/skins/default.d.ts.map +0 -1
  126. package/dist/skins/default.js +0 -424
  127. package/dist/skins/default.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ import { t as MuteButtonElement } from "./mute-button-vW2sLqqY.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-mute-button.ts
5
+ defineCustomElement("media-mute-button", MuteButtonElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=media-mute-button-BOVhZ3aP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-mute-button-BOVhZ3aP.js","names":[],"sources":["../src/define/media-mute-button.ts"],"sourcesContent":["import { MuteButtonElement } from '@/elements/mute-button';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-mute-button', MuteButtonElement);\n"],"mappings":";;;;AAGA,oBAAoB,qBAAqB,kBAAkB"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,8 @@
1
+ import { t as PlayButtonElement } from "./play-button-aVb0g10G.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-play-button.ts
5
+ defineCustomElement("media-play-button", PlayButtonElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=media-play-button-CLj-hkwn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-play-button-CLj-hkwn.js","names":[],"sources":["../src/define/media-play-button.ts"],"sourcesContent":["import { PlayButtonElement } from '@/elements/play-button';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-play-button', PlayButtonElement);\n"],"mappings":";;;;AAGA,oBAAoB,qBAAqB,kBAAkB"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,8 @@
1
+ import { t as PopoverElement } from "./popover-Dc0hyhwB.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-popover.ts
5
+ defineCustomElement("media-popover", PopoverElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=media-popover-F4M4Tq4z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-popover-F4M4Tq4z.js","names":[],"sources":["../src/define/media-popover.ts"],"sourcesContent":["import { PopoverElement } from '@/elements/popover';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-popover', PopoverElement);\n"],"mappings":";;;;AAGA,oBAAoB,iBAAiB,eAAe"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,8 @@
1
+ import { t as PreviewTimeDisplayElement } from "./preview-time-display-Dax0FQ2X.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-preview-time-display.ts
5
+ defineCustomElement("media-preview-time-display", PreviewTimeDisplayElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=media-preview-time-display-DAiMgLPX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-preview-time-display-DAiMgLPX.js","names":[],"sources":["../src/define/media-preview-time-display.ts"],"sourcesContent":["import { PreviewTimeDisplayElement } from '@/elements/preview-time-display';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-preview-time-display', PreviewTimeDisplayElement);\n"],"mappings":";;;;AAGA,oBAAoB,8BAA8B,0BAA0B"}
@@ -0,0 +1,17 @@
1
+ import { createMediaStore } from "@videojs/core/store";
2
+ import { ProviderMixin } from "@open-wc/context-protocol";
3
+
4
+ //#region src/media/media-provider.ts
5
+ const ProviderHTMLElement = ProviderMixin(HTMLElement);
6
+ var MediaProviderElement = class extends ProviderHTMLElement {
7
+ constructor(..._args) {
8
+ super(..._args);
9
+ this.contexts = { mediaStore: () => {
10
+ return createMediaStore();
11
+ } };
12
+ }
13
+ };
14
+
15
+ //#endregion
16
+ export { MediaProviderElement as t };
17
+ //# sourceMappingURL=media-provider-CyoL0bCx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-provider-CyoL0bCx.js","names":["ProviderHTMLElement: Constructor<CustomElement & HTMLElement>"],"sources":["../src/media/media-provider.ts"],"sourcesContent":["import type { Constructor, CustomElement } from '@open-wc/context-protocol';\nimport type { MediaStore } from '@videojs/core/store';\n\nimport { ProviderMixin } from '@open-wc/context-protocol';\nimport { createMediaStore } from '@videojs/core/store';\n\nconst ProviderHTMLElement: Constructor<CustomElement & HTMLElement> = ProviderMixin(HTMLElement);\n\nexport class MediaProviderElement extends ProviderHTMLElement {\n contexts = {\n mediaStore: (): MediaStore => {\n return createMediaStore();\n },\n };\n}\n"],"mappings":";;;;AAMA,MAAMA,sBAAgE,cAAc,YAAY;AAEhG,IAAa,uBAAb,cAA0C,oBAAoB;;;kBACjD,EACT,kBAA8B;AAC5B,UAAO,kBAAkB;KAE5B"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,8 @@
1
+ import { t as MediaProviderElement } from "./media-provider-CyoL0bCx.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-provider.ts
5
+ defineCustomElement("media-provider", MediaProviderElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=media-provider-D_GL2_DN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-provider-D_GL2_DN.js","names":[],"sources":["../src/define/media-provider.ts"],"sourcesContent":["import { MediaProviderElement } from '@/media/media-provider';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-provider', MediaProviderElement);\n"],"mappings":";;;;AAGA,oBAAoB,kBAAkB,qBAAqB"}
@@ -0,0 +1,11 @@
1
+ //#region src/media/media-skin.d.ts
2
+ declare class MediaSkinElement extends HTMLElement {
3
+ static shadowRootOptions: {
4
+ mode: ShadowRootMode;
5
+ };
6
+ static getTemplateHTML: () => string;
7
+ constructor();
8
+ }
9
+ //#endregion
10
+ export { MediaSkinElement as t };
11
+ //# sourceMappingURL=media-skin-Di3vSHvS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-skin-Di3vSHvS.d.ts","names":[],"sources":["../src/media/media-skin.ts"],"sourcesContent":[],"mappings":";AAiBa,cAAA,gBAAA,SAAyB,WAAA,CAAA;;UACS"}
@@ -0,0 +1,36 @@
1
+ //#region src/media/media-skin.ts
2
+ function getTemplateHTML() {
3
+ return `
4
+ <style>
5
+ :host {
6
+ display: block;
7
+ }
8
+
9
+ media-container {
10
+ display: block;
11
+ width: 100%;
12
+ height: 100%;
13
+ }
14
+ </style>
15
+ <slot></slot>
16
+ `;
17
+ }
18
+ var MediaSkinElement = class extends HTMLElement {
19
+ static {
20
+ this.shadowRootOptions = { mode: "open" };
21
+ }
22
+ static {
23
+ this.getTemplateHTML = getTemplateHTML;
24
+ }
25
+ constructor() {
26
+ super();
27
+ if (!this.shadowRoot) {
28
+ this.attachShadow(this.constructor.shadowRootOptions);
29
+ this.shadowRoot.innerHTML = this.constructor.getTemplateHTML();
30
+ }
31
+ }
32
+ };
33
+
34
+ //#endregion
35
+ export { MediaSkinElement as t };
36
+ //# sourceMappingURL=media-skin-mHWwUPg3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-skin-mHWwUPg3.js","names":[],"sources":["../src/media/media-skin.ts"],"sourcesContent":["export function getTemplateHTML() {\n return /* html */ `\n <style>\n :host {\n display: block;\n }\n\n media-container {\n display: block;\n width: 100%;\n height: 100%;\n }\n </style>\n <slot></slot>\n `;\n}\n\nexport class MediaSkinElement extends HTMLElement {\n static shadowRootOptions = { mode: 'open' as ShadowRootMode };\n static getTemplateHTML: () => string = getTemplateHTML;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof MediaSkinElement).shadowRootOptions);\n this.shadowRoot!.innerHTML = (this.constructor as typeof MediaSkinElement).getTemplateHTML();\n }\n }\n}\n"],"mappings":";AAAA,SAAgB,kBAAkB;AAChC,QAAkB;;;;;;;;;;;;;;;AAgBpB,IAAa,mBAAb,cAAsC,YAAY;;2BACrB,EAAE,MAAM,QAA0B;;;yBACtB;;CAEvC,cAAc;AACZ,SAAO;AAEP,MAAI,CAAC,KAAK,YAAY;AACpB,QAAK,aAAc,KAAK,YAAwC,kBAAkB;AAClF,QAAK,WAAY,YAAa,KAAK,YAAwC,iBAAiB"}
@@ -0,0 +1,12 @@
1
+ import { a as TimeSliderThumbElement, i as TimeSliderRootElement, n as TimeSliderPointerElement, o as TimeSliderTrackElement, r as TimeSliderProgressElement } from "./time-slider-CA1GMs6A.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-time-slider.ts
5
+ defineCustomElement("media-time-slider", TimeSliderRootElement);
6
+ defineCustomElement("media-time-slider-track", TimeSliderTrackElement);
7
+ defineCustomElement("media-time-slider-progress", TimeSliderProgressElement);
8
+ defineCustomElement("media-time-slider-pointer", TimeSliderPointerElement);
9
+ defineCustomElement("media-time-slider-thumb", TimeSliderThumbElement);
10
+
11
+ //#endregion
12
+ //# sourceMappingURL=media-time-slider-Bp2qnwsW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-time-slider-Bp2qnwsW.js","names":[],"sources":["../src/define/media-time-slider.ts"],"sourcesContent":["import { TimeSliderPointerElement, TimeSliderProgressElement, TimeSliderRootElement, TimeSliderThumbElement, TimeSliderTrackElement } from '@/elements/time-slider';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-time-slider', TimeSliderRootElement);\ndefineCustomElement('media-time-slider-track', TimeSliderTrackElement);\ndefineCustomElement('media-time-slider-progress', TimeSliderProgressElement);\ndefineCustomElement('media-time-slider-pointer', TimeSliderPointerElement);\ndefineCustomElement('media-time-slider-thumb', TimeSliderThumbElement);\n"],"mappings":";;;;AAGA,oBAAoB,qBAAqB,sBAAsB;AAC/D,oBAAoB,2BAA2B,uBAAuB;AACtE,oBAAoB,8BAA8B,0BAA0B;AAC5E,oBAAoB,6BAA6B,yBAAyB;AAC1E,oBAAoB,2BAA2B,uBAAuB"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,14 @@
1
+ import { a as TooltipPositionerElement, i as TooltipPortalElement, o as TooltipRootElement, r as TooltipPopupElement, s as TooltipTriggerElement, t as TooltipArrowElement } from "./tooltip-54fBUUpb.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-tooltip.ts
5
+ defineCustomElement("media-tooltip", TooltipRootElement);
6
+ defineCustomElement("media-tooltip-trigger", TooltipTriggerElement);
7
+ defineCustomElement("media-tooltip-portal", TooltipPortalElement);
8
+ defineCustomElement("media-tooltip-positioner", TooltipPositionerElement);
9
+ defineCustomElement("media-tooltip-portal", TooltipPortalElement);
10
+ defineCustomElement("media-tooltip-popup", TooltipPopupElement);
11
+ defineCustomElement("media-tooltip-arrow", TooltipArrowElement);
12
+
13
+ //#endregion
14
+ //# sourceMappingURL=media-tooltip-ClcVafMb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-tooltip-ClcVafMb.js","names":[],"sources":["../src/define/media-tooltip.ts"],"sourcesContent":["import { TooltipArrowElement, TooltipPopupElement, TooltipPortalElement, TooltipPositionerElement, TooltipRootElement, TooltipTriggerElement } from '@/elements/tooltip';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-tooltip', TooltipRootElement);\ndefineCustomElement('media-tooltip-trigger', TooltipTriggerElement);\ndefineCustomElement('media-tooltip-portal', TooltipPortalElement);\ndefineCustomElement('media-tooltip-positioner', TooltipPositionerElement);\ndefineCustomElement('media-tooltip-portal', TooltipPortalElement);\ndefineCustomElement('media-tooltip-popup', TooltipPopupElement);\ndefineCustomElement('media-tooltip-arrow', TooltipArrowElement);\n"],"mappings":";;;;AAGA,oBAAoB,iBAAiB,mBAAmB;AACxD,oBAAoB,yBAAyB,sBAAsB;AACnE,oBAAoB,wBAAwB,qBAAqB;AACjE,oBAAoB,4BAA4B,yBAAyB;AACzE,oBAAoB,wBAAwB,qBAAqB;AACjE,oBAAoB,uBAAuB,oBAAoB;AAC/D,oBAAoB,uBAAuB,oBAAoB"}
@@ -0,0 +1,11 @@
1
+ import { a as VolumeSliderTrackElement, i as VolumeSliderThumbElement, n as VolumeSliderIndicatorElement, r as VolumeSliderRootElement } from "./volume-slider-guD8gqpi.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-volume-slider.ts
5
+ defineCustomElement("media-volume-slider", VolumeSliderRootElement);
6
+ defineCustomElement("media-volume-slider-track", VolumeSliderTrackElement);
7
+ defineCustomElement("media-volume-slider-indicator", VolumeSliderIndicatorElement);
8
+ defineCustomElement("media-volume-slider-thumb", VolumeSliderThumbElement);
9
+
10
+ //#endregion
11
+ //# sourceMappingURL=media-volume-slider-CKSxmdQv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-volume-slider-CKSxmdQv.js","names":[],"sources":["../src/define/media-volume-slider.ts"],"sourcesContent":["import { VolumeSliderIndicatorElement, VolumeSliderRootElement, VolumeSliderThumbElement, VolumeSliderTrackElement } from '@/elements/volume-slider';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-volume-slider', VolumeSliderRootElement);\ndefineCustomElement('media-volume-slider-track', VolumeSliderTrackElement);\ndefineCustomElement('media-volume-slider-indicator', VolumeSliderIndicatorElement);\ndefineCustomElement('media-volume-slider-thumb', VolumeSliderThumbElement);\n"],"mappings":";;;;AAGA,oBAAoB,uBAAuB,wBAAwB;AACnE,oBAAoB,6BAA6B,yBAAyB;AAC1E,oBAAoB,iCAAiC,6BAA6B;AAClF,oBAAoB,6BAA6B,yBAAyB"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,50 @@
1
+ import { t as toConnectedHTMLComponent } from "./component-factory-DeAN6cjC.js";
2
+ import { t as ButtonElement } from "./button-D1DWjsQu.js";
3
+ import { muteButtonStateDefinition } from "@videojs/core/store";
4
+ import { setAttributes } from "@videojs/utils/dom";
5
+
6
+ //#region src/elements/mute-button.ts
7
+ var MuteButton = class extends ButtonElement {
8
+ handleEvent(event) {
9
+ super.handleEvent(event);
10
+ const { type } = event;
11
+ const state = this._state;
12
+ if (state) {
13
+ if (type === "click") if (state.volumeLevel === "off") state.requestUnmute();
14
+ else state.requestMute();
15
+ }
16
+ }
17
+ get muted() {
18
+ return this._state?.muted ?? false;
19
+ }
20
+ get volumeLevel() {
21
+ return this._state?.volumeLevel ?? "high";
22
+ }
23
+ _update(props, state) {
24
+ this._state = state;
25
+ /** @TODO Follow up with React vs. W.C. data-* attributes discrepancies (CJP) */
26
+ setAttributes(this, props);
27
+ }
28
+ };
29
+ const getMuteButtonState = {
30
+ keys: muteButtonStateDefinition.keys,
31
+ transform: (rawState, mediaStore) => ({
32
+ ...muteButtonStateDefinition.stateTransform(rawState),
33
+ ...muteButtonStateDefinition.createRequestMethods(mediaStore.dispatch)
34
+ })
35
+ };
36
+ const getMuteButtonProps = (state, _element) => {
37
+ return {
38
+ "data-muted": state.muted,
39
+ "data-volume-level": state.volumeLevel,
40
+ role: "button",
41
+ tabindex: "0",
42
+ "aria-label": state.muted ? "unmute" : "mute",
43
+ "data-tooltip": state.muted ? "Unmute" : "Mute"
44
+ };
45
+ };
46
+ const MuteButtonElement = toConnectedHTMLComponent(MuteButton, getMuteButtonState, getMuteButtonProps, "MuteButton");
47
+
48
+ //#endregion
49
+ export { MuteButtonElement as t };
50
+ //# sourceMappingURL=mute-button-vW2sLqqY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mute-button-vW2sLqqY.js","names":["getMuteButtonState: StateHook<{\n muted: boolean;\n volumeLevel: string;\n}>","getMuteButtonProps: PropsHook<{\n muted: boolean;\n volumeLevel: string;\n}>","MuteButtonElement: ConnectedComponentConstructor<MuteButtonState>"],"sources":["../src/elements/mute-button.ts"],"sourcesContent":["import type { MuteButtonState } from '@videojs/core/store';\nimport type { ConnectedComponentConstructor, PropsHook, StateHook } from '../utils/component-factory';\n\nimport { muteButtonStateDefinition } from '@videojs/core/store';\n\nimport { setAttributes } from '@videojs/utils/dom';\nimport { toConnectedHTMLComponent } from '../utils/component-factory';\nimport { ButtonElement } from './button';\n\nexport class MuteButton extends ButtonElement {\n _state:\n | {\n muted: boolean;\n volumeLevel: string;\n requestMute: () => void;\n requestUnmute: () => void;\n }\n | undefined;\n\n handleEvent(event: Event): void {\n super.handleEvent(event);\n\n const { type } = event;\n const state = this._state;\n\n if (state) {\n if (type === 'click') {\n if (state.volumeLevel === 'off') {\n state.requestUnmute();\n } else {\n state.requestMute();\n }\n }\n }\n }\n\n get muted(): boolean {\n return this._state?.muted ?? false;\n }\n\n get volumeLevel(): string {\n return this._state?.volumeLevel ?? 'high';\n }\n\n _update(props: any, state: any): void {\n this._state = state;\n /** @TODO Follow up with React vs. W.C. data-* attributes discrepancies (CJP) */\n setAttributes(this, props);\n }\n}\n\nexport const getMuteButtonState: StateHook<{\n muted: boolean;\n volumeLevel: string;\n}> = {\n keys: muteButtonStateDefinition.keys,\n transform: (rawState, mediaStore) => ({\n ...muteButtonStateDefinition.stateTransform(rawState),\n ...muteButtonStateDefinition.createRequestMethods(mediaStore.dispatch),\n }),\n};\n\nexport const getMuteButtonProps: PropsHook<{\n muted: boolean;\n volumeLevel: string;\n}> = (state, _element) => {\n const baseProps: Record<string, any> = {\n /** data attributes/props */\n 'data-muted': state.muted,\n 'data-volume-level': state.volumeLevel,\n /** @TODO Need another state provider in core for i18n (CJP) */\n /** aria attributes/props */\n role: 'button',\n tabindex: '0',\n 'aria-label': state.muted ? 'unmute' : 'mute',\n /** tooltip */\n 'data-tooltip': state.muted ? 'Unmute' : 'Mute',\n /** @TODO Figure out how we want to handle attr overrides (e.g. aria-label) (CJP) */\n /** external props spread last to allow for overriding */\n // ...props,\n };\n\n return baseProps;\n};\n\nexport const MuteButtonElement: ConnectedComponentConstructor<MuteButtonState> = toConnectedHTMLComponent(\n MuteButton,\n getMuteButtonState,\n getMuteButtonProps,\n 'MuteButton',\n);\n"],"mappings":";;;;;;AASA,IAAa,aAAb,cAAgC,cAAc;CAU5C,YAAY,OAAoB;AAC9B,QAAM,YAAY,MAAM;EAExB,MAAM,EAAE,SAAS;EACjB,MAAM,QAAQ,KAAK;AAEnB,MAAI,OACF;OAAI,SAAS,QACX,KAAI,MAAM,gBAAgB,MACxB,OAAM,eAAe;OAErB,OAAM,aAAa;;;CAM3B,IAAI,QAAiB;AACnB,SAAO,KAAK,QAAQ,SAAS;;CAG/B,IAAI,cAAsB;AACxB,SAAO,KAAK,QAAQ,eAAe;;CAGrC,QAAQ,OAAY,OAAkB;AACpC,OAAK,SAAS;;AAEd,gBAAc,MAAM,MAAM;;;AAI9B,MAAaA,qBAGR;CACH,MAAM,0BAA0B;CAChC,YAAY,UAAU,gBAAgB;EACpC,GAAG,0BAA0B,eAAe,SAAS;EACrD,GAAG,0BAA0B,qBAAqB,WAAW,SAAS;EACvE;CACF;AAED,MAAaC,sBAGP,OAAO,aAAa;AAiBxB,QAhBuC;EAErC,cAAc,MAAM;EACpB,qBAAqB,MAAM;EAG3B,MAAM;EACN,UAAU;EACV,cAAc,MAAM,QAAQ,WAAW;EAEvC,gBAAgB,MAAM,QAAQ,WAAW;EAI1C;;AAKH,MAAaC,oBAAoE,yBAC/E,YACA,oBACA,oBACA,aACD"}
@@ -0,0 +1,44 @@
1
+ import { t as toConnectedHTMLComponent } from "./component-factory-DeAN6cjC.js";
2
+ import { t as ButtonElement } from "./button-D1DWjsQu.js";
3
+ import { playButtonStateDefinition } from "@videojs/core/store";
4
+ import { setAttributes } from "@videojs/utils/dom";
5
+
6
+ //#region src/elements/play-button.ts
7
+ var PlayButton = class extends ButtonElement {
8
+ handleEvent(event) {
9
+ super.handleEvent(event);
10
+ const { type } = event;
11
+ const state = this._state;
12
+ if (state && type === "click") if (state.paused) state.requestPlay();
13
+ else state.requestPause();
14
+ }
15
+ get paused() {
16
+ return this._state?.paused ?? true;
17
+ }
18
+ _update(props, state, _mediaStore) {
19
+ this._state = state;
20
+ /** @TODO Follow up with React vs. W.C. data-* attributes discrepancies (CJP) */
21
+ setAttributes(this, props);
22
+ }
23
+ };
24
+ const getPlayButtonState = {
25
+ keys: playButtonStateDefinition.keys,
26
+ transform: (rawState, mediaStore) => ({
27
+ ...playButtonStateDefinition.stateTransform(rawState),
28
+ ...playButtonStateDefinition.createRequestMethods(mediaStore.dispatch)
29
+ })
30
+ };
31
+ const getPlayButtonProps = (state, _element) => {
32
+ return {
33
+ "data-paused": state.paused,
34
+ role: "button",
35
+ tabindex: "0",
36
+ "aria-label": state.paused ? "play" : "pause",
37
+ "data-tooltip": state.paused ? "Play" : "Pause"
38
+ };
39
+ };
40
+ const PlayButtonElement = toConnectedHTMLComponent(PlayButton, getPlayButtonState, getPlayButtonProps, "PlayButton");
41
+
42
+ //#endregion
43
+ export { PlayButtonElement as t };
44
+ //# sourceMappingURL=play-button-aVb0g10G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"play-button-aVb0g10G.js","names":["getPlayButtonState: StateHook<{ paused: boolean }>","getPlayButtonProps: PropsHook<{ paused: boolean }>","PlayButtonElement: ConnectedComponentConstructor<PlayButtonState>"],"sources":["../src/elements/play-button.ts"],"sourcesContent":["import type { PlayButtonState } from '@videojs/core/store';\nimport type { ConnectedComponentConstructor, PropsHook, StateHook } from '../utils/component-factory';\n\nimport { playButtonStateDefinition } from '@videojs/core/store';\n\nimport { setAttributes } from '@videojs/utils/dom';\nimport { toConnectedHTMLComponent } from '../utils/component-factory';\nimport { ButtonElement } from './button';\n\nexport class PlayButton extends ButtonElement {\n _state: { paused: boolean; requestPlay: () => void; requestPause: () => void } | undefined;\n\n handleEvent(event: Event): void {\n super.handleEvent(event);\n\n const { type } = event;\n const state = this._state;\n if (state && type === 'click') {\n if (state.paused) {\n state.requestPlay();\n } else {\n state.requestPause();\n }\n }\n }\n\n get paused(): boolean {\n return this._state?.paused ?? true;\n }\n\n _update(props: any, state: any, _mediaStore?: any): void {\n this._state = state;\n /** @TODO Follow up with React vs. W.C. data-* attributes discrepancies (CJP) */\n setAttributes(this, props);\n }\n}\n\nexport const getPlayButtonState: StateHook<{ paused: boolean }> = {\n keys: playButtonStateDefinition.keys,\n transform: (rawState, mediaStore) => ({\n ...playButtonStateDefinition.stateTransform(rawState),\n ...playButtonStateDefinition.createRequestMethods(mediaStore.dispatch),\n }),\n};\n\nexport const getPlayButtonProps: PropsHook<{ paused: boolean }> = (state, _element) => {\n const baseProps: Record<string, any> = {\n /** data attributes/props */\n 'data-paused': state.paused,\n /** @TODO Need another state provider in core for i18n (CJP) */\n /** aria attributes/props */\n role: 'button',\n tabindex: '0',\n 'aria-label': state.paused ? 'play' : 'pause',\n /** tooltip */\n 'data-tooltip': state.paused ? 'Play' : 'Pause',\n /** @TODO Figure out how we want to handle attr overrides (e.g. aria-label) (CJP) */\n /** external props spread last to allow for overriding */\n // ...props,\n };\n\n return baseProps;\n};\n\nexport const PlayButtonElement: ConnectedComponentConstructor<PlayButtonState> = toConnectedHTMLComponent(\n PlayButton,\n getPlayButtonState,\n getPlayButtonProps,\n 'PlayButton',\n);\n"],"mappings":";;;;;;AASA,IAAa,aAAb,cAAgC,cAAc;CAG5C,YAAY,OAAoB;AAC9B,QAAM,YAAY,MAAM;EAExB,MAAM,EAAE,SAAS;EACjB,MAAM,QAAQ,KAAK;AACnB,MAAI,SAAS,SAAS,QACpB,KAAI,MAAM,OACR,OAAM,aAAa;MAEnB,OAAM,cAAc;;CAK1B,IAAI,SAAkB;AACpB,SAAO,KAAK,QAAQ,UAAU;;CAGhC,QAAQ,OAAY,OAAY,aAAyB;AACvD,OAAK,SAAS;;AAEd,gBAAc,MAAM,MAAM;;;AAI9B,MAAaA,qBAAqD;CAChE,MAAM,0BAA0B;CAChC,YAAY,UAAU,gBAAgB;EACpC,GAAG,0BAA0B,eAAe,SAAS;EACrD,GAAG,0BAA0B,qBAAqB,WAAW,SAAS;EACvE;CACF;AAED,MAAaC,sBAAsD,OAAO,aAAa;AAgBrF,QAfuC;EAErC,eAAe,MAAM;EAGrB,MAAM;EACN,UAAU;EACV,cAAc,MAAM,SAAS,SAAS;EAEtC,gBAAgB,MAAM,SAAS,SAAS;EAIzC;;AAKH,MAAaC,oBAAoE,yBAC/E,YACA,oBACA,oBACA,aACD"}
@@ -0,0 +1,187 @@
1
+ import { contains, getDocument, getDocumentOrShadowRoot, safePolygon } from "@videojs/utils/dom";
2
+ import { autoUpdate, computePosition, flip, offset, shift } from "@floating-ui/dom";
3
+
4
+ //#region src/elements/popover.ts
5
+ var PopoverElement = class extends HTMLElement {
6
+ #open = false;
7
+ #transitionStatus = "initial";
8
+ #hoverTimeout = null;
9
+ #cleanup = null;
10
+ #abortController = null;
11
+ #floatingContext = null;
12
+ connectedCallback() {
13
+ this.#abortController ??= new AbortController();
14
+ const { signal } = this.#abortController;
15
+ const trigger = this.#triggerElement;
16
+ if (trigger) {
17
+ if (globalThis.matchMedia?.("(hover: hover)")?.matches) {
18
+ trigger.addEventListener("pointerenter", this, { signal });
19
+ trigger.addEventListener("pointerleave", this, { signal });
20
+ }
21
+ trigger.addEventListener("focusin", this, { signal });
22
+ trigger.addEventListener("focusout", this, { signal });
23
+ }
24
+ this.addEventListener("pointerenter", this, { signal });
25
+ this.addEventListener("focusout", this, { signal });
26
+ }
27
+ disconnectedCallback() {
28
+ this.#clearHoverTimeout();
29
+ this.#cleanup?.();
30
+ this.#abortController?.abort();
31
+ this.#abortController = null;
32
+ }
33
+ handleEvent(event) {
34
+ switch (event.type) {
35
+ case "pointerenter":
36
+ this.#handlePointerEnter(event);
37
+ break;
38
+ case "pointerleave":
39
+ this.#handlePointerLeave(event);
40
+ break;
41
+ case "pointermove":
42
+ this.#handlePointerMove(event);
43
+ break;
44
+ case "focusin":
45
+ this.#handleFocusIn(event);
46
+ break;
47
+ case "focusout":
48
+ this.#handleFocusOut(event);
49
+ break;
50
+ default: break;
51
+ }
52
+ }
53
+ static get observedAttributes() {
54
+ return [
55
+ "open-on-hover",
56
+ "delay",
57
+ "close-delay",
58
+ "side",
59
+ "side-offset"
60
+ ];
61
+ }
62
+ get openOnHover() {
63
+ return this.hasAttribute("open-on-hover");
64
+ }
65
+ get delay() {
66
+ return Number.parseInt(this.getAttribute("delay") ?? "0", 10);
67
+ }
68
+ get closeDelay() {
69
+ return Number.parseInt(this.getAttribute("close-delay") ?? "0", 10);
70
+ }
71
+ get side() {
72
+ return this.getAttribute("side");
73
+ }
74
+ get sideOffset() {
75
+ return Number.parseInt(this.getAttribute("side-offset") ?? "0", 10);
76
+ }
77
+ get #triggerElement() {
78
+ return getDocumentOrShadowRoot(this)?.querySelector(`[popovertarget="${this.id}"]`);
79
+ }
80
+ #setOpen(open) {
81
+ if (this.#open === open) return;
82
+ this.#open = open;
83
+ if (open) {
84
+ this.#setupFloating();
85
+ this.#transitionStatus = "initial";
86
+ this.#updateVisibility();
87
+ this.showPopover();
88
+ requestAnimationFrame(() => {
89
+ this.#transitionStatus = "open";
90
+ this.#updateVisibility();
91
+ });
92
+ } else {
93
+ this.#transitionStatus = "close";
94
+ this.#updateVisibility();
95
+ const transitions = this.getAnimations().filter((anim) => anim instanceof CSSTransition);
96
+ if (transitions.length > 0) Promise.all(transitions.map((t) => t.finished)).then(() => this.hidePopover()).catch(() => this.hidePopover());
97
+ else this.hidePopover();
98
+ }
99
+ }
100
+ #updateVisibility() {
101
+ this.toggleAttribute("data-starting-style", this.#transitionStatus === "initial");
102
+ this.toggleAttribute("data-open", this.#transitionStatus === "initial" || this.#transitionStatus === "open");
103
+ this.toggleAttribute("data-ending-style", this.#transitionStatus === "close" || this.#transitionStatus === "unmounted");
104
+ this.toggleAttribute("data-closed", this.#transitionStatus === "close" || this.#transitionStatus === "unmounted");
105
+ }
106
+ #setupFloating() {
107
+ const trigger = this.#triggerElement;
108
+ if (!trigger) return;
109
+ const placement = this.side ?? "top";
110
+ const sideOffset = this.sideOffset;
111
+ const updatePosition = () => {
112
+ computePosition(trigger, this, {
113
+ placement,
114
+ middleware: [
115
+ offset(sideOffset),
116
+ flip(),
117
+ shift()
118
+ ],
119
+ strategy: "fixed"
120
+ }).then((data) => {
121
+ this.#floatingContext = {
122
+ ...data,
123
+ elements: {
124
+ domReference: trigger,
125
+ floating: this
126
+ }
127
+ };
128
+ Object.assign(this.style, {
129
+ left: `${data.x}px`,
130
+ top: `${data.y}px`
131
+ });
132
+ });
133
+ };
134
+ updatePosition();
135
+ this.#cleanup = autoUpdate(trigger, this, updatePosition);
136
+ }
137
+ #clearHoverTimeout() {
138
+ if (this.#hoverTimeout) {
139
+ globalThis.clearTimeout(this.#hoverTimeout);
140
+ this.#hoverTimeout = null;
141
+ }
142
+ }
143
+ #handlePointerEnter(event) {
144
+ if (!this.openOnHover) return;
145
+ this.#clearHoverTimeout();
146
+ if (event.currentTarget === this) this.#addPointerMoveListener();
147
+ if (this.#open) return;
148
+ this.#hoverTimeout = globalThis.setTimeout(() => {
149
+ this.#setOpen(true);
150
+ }, this.delay);
151
+ }
152
+ #handlePointerLeave(_event) {
153
+ this.#addPointerMoveListener();
154
+ }
155
+ #addPointerMoveListener() {
156
+ if (!globalThis.matchMedia?.("(hover: hover)")?.matches) return;
157
+ const { signal } = this.#abortController;
158
+ getDocument(this).documentElement.addEventListener("pointermove", this, { signal });
159
+ }
160
+ #handlePointerMove(event) {
161
+ if (!this.openOnHover || !this.#floatingContext) return;
162
+ safePolygon({ blockPointerEvents: true })({
163
+ ...this.#floatingContext,
164
+ x: event.clientX,
165
+ y: event.clientY,
166
+ onClose: () => {
167
+ getDocument(this).documentElement.removeEventListener("pointermove", this);
168
+ this.#clearHoverTimeout();
169
+ this.#hoverTimeout = globalThis.setTimeout(() => {
170
+ this.#setOpen(false);
171
+ }, this.closeDelay);
172
+ }
173
+ })(event);
174
+ }
175
+ #handleFocusIn(_event) {
176
+ this.#setOpen(true);
177
+ }
178
+ #handleFocusOut(event) {
179
+ const relatedTarget = event.relatedTarget;
180
+ if (relatedTarget && contains(this, relatedTarget)) return;
181
+ this.#setOpen(false);
182
+ }
183
+ };
184
+
185
+ //#endregion
186
+ export { PopoverElement as t };
187
+ //# sourceMappingURL=popover-Dc0hyhwB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-Dc0hyhwB.js","names":["#abortController","#triggerElement","#clearHoverTimeout","#cleanup","#handlePointerEnter","#handlePointerLeave","#handlePointerMove","#handleFocusIn","#handleFocusOut","#open","#setupFloating","#transitionStatus","#updateVisibility","#floatingContext","#hoverTimeout","#addPointerMoveListener","#setOpen"],"sources":["../src/elements/popover.ts"],"sourcesContent":["import type { ComputePositionReturn } from '@floating-ui/core';\nimport type { Placement } from '@floating-ui/dom';\nimport { autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom';\nimport { contains, getDocument, getDocumentOrShadowRoot, safePolygon } from '@videojs/utils/dom';\n\ntype Prettify<T> = {\n [K in keyof T]: T[K];\n};\n\ntype FloatingContext = Prettify<ComputePositionReturn> & {\n elements: {\n domReference: HTMLElement;\n floating: HTMLElement;\n };\n};\n\nexport class PopoverElement extends HTMLElement {\n #open = false;\n #transitionStatus: 'initial' | 'open' | 'close' | 'unmounted' = 'initial';\n #hoverTimeout: ReturnType<typeof setTimeout> | null = null;\n #cleanup: (() => void) | null = null;\n #abortController: AbortController | null = null;\n #floatingContext: FloatingContext | null = null;\n\n connectedCallback(): void {\n this.#abortController ??= new AbortController();\n const { signal } = this.#abortController;\n\n const trigger = this.#triggerElement as HTMLElement;\n if (trigger) {\n if (globalThis.matchMedia?.('(hover: hover)')?.matches) {\n trigger.addEventListener('pointerenter', this, { signal });\n trigger.addEventListener('pointerleave', this, { signal });\n }\n\n trigger.addEventListener('focusin', this, { signal });\n trigger.addEventListener('focusout', this, { signal });\n }\n\n this.addEventListener('pointerenter', this, { signal });\n this.addEventListener('focusout', this, { signal });\n }\n\n disconnectedCallback(): void {\n this.#clearHoverTimeout();\n this.#cleanup?.();\n\n this.#abortController?.abort();\n this.#abortController = null;\n }\n\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'pointerenter':\n this.#handlePointerEnter(event as PointerEvent);\n break;\n case 'pointerleave':\n this.#handlePointerLeave(event as PointerEvent);\n break;\n case 'pointermove':\n this.#handlePointerMove(event as PointerEvent);\n break;\n case 'focusin':\n this.#handleFocusIn(event as FocusEvent);\n break;\n case 'focusout':\n this.#handleFocusOut(event as FocusEvent);\n break;\n default:\n break;\n }\n }\n\n static get observedAttributes(): string[] {\n return ['open-on-hover', 'delay', 'close-delay', 'side', 'side-offset'];\n }\n\n get openOnHover(): boolean {\n return this.hasAttribute('open-on-hover');\n }\n\n get delay(): number {\n return Number.parseInt(this.getAttribute('delay') ?? '0', 10);\n }\n\n get closeDelay(): number {\n return Number.parseInt(this.getAttribute('close-delay') ?? '0', 10);\n }\n\n get side(): Placement {\n return this.getAttribute('side') as Placement;\n }\n\n get sideOffset(): number {\n return Number.parseInt(this.getAttribute('side-offset') ?? '0', 10);\n }\n\n get #triggerElement(): HTMLElement | null {\n return getDocumentOrShadowRoot(this)?.querySelector(`[popovertarget=\"${this.id}\"]`) as HTMLElement | null;\n }\n\n #setOpen(open: boolean): void {\n if (this.#open === open) return;\n\n this.#open = open;\n\n if (open) {\n this.#setupFloating();\n\n this.#transitionStatus = 'initial';\n this.#updateVisibility();\n\n this.showPopover();\n\n requestAnimationFrame(() => {\n this.#transitionStatus = 'open';\n this.#updateVisibility();\n });\n } else {\n this.#transitionStatus = 'close';\n this.#updateVisibility();\n\n const transitions = this.getAnimations().filter(anim => anim instanceof CSSTransition);\n if (transitions.length > 0) {\n Promise.all(transitions.map(t => t.finished))\n .then(() => this.hidePopover())\n .catch(() => this.hidePopover());\n } else {\n this.hidePopover();\n }\n }\n }\n\n #updateVisibility(): void {\n this.toggleAttribute('data-starting-style', this.#transitionStatus === 'initial');\n this.toggleAttribute('data-open', this.#transitionStatus === 'initial' || this.#transitionStatus === 'open');\n this.toggleAttribute('data-ending-style', this.#transitionStatus === 'close' || this.#transitionStatus === 'unmounted');\n this.toggleAttribute('data-closed', this.#transitionStatus === 'close' || this.#transitionStatus === 'unmounted');\n }\n\n #setupFloating(): void {\n const trigger = this.#triggerElement as HTMLElement;\n if (!trigger) return;\n\n const placement = this.side ?? 'top';\n const sideOffset = this.sideOffset;\n\n const updatePosition = () => {\n computePosition(trigger, this, {\n placement,\n middleware: [offset(sideOffset), flip(), shift()],\n strategy: 'fixed',\n }).then((data: ComputePositionReturn) => {\n this.#floatingContext = {\n ...data,\n elements: {\n domReference: trigger,\n floating: this,\n },\n };\n\n Object.assign(this.style, {\n left: `${data.x}px`,\n top: `${data.y}px`,\n });\n });\n };\n\n updatePosition();\n this.#cleanup = autoUpdate(trigger, this, updatePosition);\n }\n\n #clearHoverTimeout(): void {\n if (this.#hoverTimeout) {\n globalThis.clearTimeout(this.#hoverTimeout);\n this.#hoverTimeout = null;\n }\n }\n\n #handlePointerEnter(event: PointerEvent): void {\n if (!this.openOnHover) return;\n\n this.#clearHoverTimeout();\n\n if (event.currentTarget === this) {\n this.#addPointerMoveListener();\n }\n\n if (this.#open) {\n return;\n }\n\n this.#hoverTimeout = globalThis.setTimeout(() => {\n this.#setOpen(true);\n }, this.delay);\n }\n\n #handlePointerLeave(_event: PointerEvent): void {\n this.#addPointerMoveListener();\n }\n\n #addPointerMoveListener(): void {\n if (!globalThis.matchMedia?.('(hover: hover)')?.matches) return;\n\n const { signal } = this.#abortController as AbortController;\n getDocument(this).documentElement.addEventListener('pointermove', this, { signal });\n }\n\n #handlePointerMove(event: PointerEvent): void {\n if (!this.openOnHover || !this.#floatingContext) return;\n\n const close = safePolygon({ blockPointerEvents: true })({\n ...this.#floatingContext,\n x: event.clientX,\n y: event.clientY,\n onClose: () => {\n getDocument(this).documentElement.removeEventListener('pointermove', this);\n\n this.#clearHoverTimeout();\n this.#hoverTimeout = globalThis.setTimeout(() => {\n this.#setOpen(false);\n }, this.closeDelay);\n },\n });\n close(event);\n }\n\n #handleFocusIn(_event: FocusEvent): void {\n this.#setOpen(true);\n }\n\n #handleFocusOut(event: FocusEvent): void {\n const relatedTarget = event.relatedTarget as HTMLElement;\n if (relatedTarget && contains(this, relatedTarget)) return;\n\n this.#setOpen(false);\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { t as toConnectedHTMLComponent } from "./component-factory-DeAN6cjC.js";
2
+ import { previewTimeDisplayStateDefinition } from "@videojs/core/store";
3
+ import { formatDisplayTime } from "@videojs/utils";
4
+
5
+ //#region src/elements/preview-time-display.ts
6
+ var PreviewTimeDisplay = class extends HTMLElement {
7
+ static {
8
+ this.shadowRootOptions = { mode: "open" };
9
+ }
10
+ static {
11
+ this.observedAttributes = ["show-remaining"];
12
+ }
13
+ constructor() {
14
+ super();
15
+ if (!this.shadowRoot) this.attachShadow(this.constructor.shadowRootOptions);
16
+ }
17
+ get previewTime() {
18
+ return this._state?.previewTime ?? 0;
19
+ }
20
+ get showRemaining() {
21
+ return this.hasAttribute("show-remaining");
22
+ }
23
+ attributeChangedCallback(name, _oldValue, _newValue) {
24
+ if (name === "show-remaining" && this._state) this._update({}, this._state);
25
+ }
26
+ _update(_props, state) {
27
+ this._state = state;
28
+ /** @TODO Should this live here or elsewhere? (CJP) */
29
+ const timeLabel = formatDisplayTime(state.previewTime);
30
+ if (this.shadowRoot) this.shadowRoot.textContent = timeLabel;
31
+ }
32
+ };
33
+ const usePreviewTimeDisplayState = {
34
+ keys: [...previewTimeDisplayStateDefinition.keys],
35
+ transform: (rawState, _mediaStore) => ({ ...previewTimeDisplayStateDefinition.stateTransform(rawState) })
36
+ };
37
+ const getPreviewTimeDisplayProps = (_state, _element) => {
38
+ return {};
39
+ };
40
+ const PreviewTimeDisplayElement = toConnectedHTMLComponent(PreviewTimeDisplay, usePreviewTimeDisplayState, getPreviewTimeDisplayProps, "PreviewTimeDisplay");
41
+
42
+ //#endregion
43
+ export { PreviewTimeDisplayElement as t };
44
+ //# sourceMappingURL=preview-time-display-Dax0FQ2X.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-time-display-Dax0FQ2X.js","names":["usePreviewTimeDisplayState: StateHook<{\n previewTime: number | undefined;\n}>","getPreviewTimeDisplayProps: PropsHook<{\n previewTime: number | undefined;\n}>","PreviewTimeDisplayElement: ConnectedComponentConstructor<PreviewTimeDisplayState>"],"sources":["../src/elements/preview-time-display.ts"],"sourcesContent":["import type { PreviewTimeDisplayState } from '@videojs/core/store';\nimport type { ConnectedComponentConstructor, PropsHook, StateHook } from '../utils/component-factory';\n\nimport { previewTimeDisplayStateDefinition } from '@videojs/core/store';\n\nimport { formatDisplayTime } from '@videojs/utils';\nimport { toConnectedHTMLComponent } from '../utils/component-factory';\n\nexport class PreviewTimeDisplay extends HTMLElement {\n static shadowRootOptions = {\n mode: 'open' as ShadowRootMode,\n };\n\n static observedAttributes: string[] = ['show-remaining'];\n\n _state:\n | {\n previewTime: number | undefined;\n }\n | undefined;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof PreviewTimeDisplay).shadowRootOptions);\n }\n }\n\n get previewTime(): number {\n return this._state?.previewTime ?? 0;\n }\n\n get showRemaining(): boolean {\n return this.hasAttribute('show-remaining');\n }\n\n attributeChangedCallback(name: string, _oldValue: string | null, _newValue: string | null): void {\n if (name === 'show-remaining' && this._state) {\n // Re-render with current state when show-remaining attribute changes\n this._update({}, this._state);\n }\n }\n\n _update(_props: any, state: any): void {\n this._state = state;\n\n /** @TODO Should this live here or elsewhere? (CJP) */\n const timeLabel = formatDisplayTime(state.previewTime);\n\n if (this.shadowRoot) {\n this.shadowRoot.textContent = timeLabel;\n }\n }\n}\n\nexport const usePreviewTimeDisplayState: StateHook<{\n previewTime: number | undefined;\n}> = {\n keys: [...previewTimeDisplayStateDefinition.keys],\n transform: (rawState, _mediaStore) => ({\n ...previewTimeDisplayStateDefinition.stateTransform(rawState),\n // Preview time display is read-only, so no request methods needed\n }),\n};\n\nexport const getPreviewTimeDisplayProps: PropsHook<{\n previewTime: number | undefined;\n}> = (_state, _element) => {\n const baseProps: Record<string, any> = {};\n return baseProps;\n};\n\nexport const PreviewTimeDisplayElement: ConnectedComponentConstructor<PreviewTimeDisplayState> = toConnectedHTMLComponent(\n PreviewTimeDisplay,\n usePreviewTimeDisplayState,\n getPreviewTimeDisplayProps,\n 'PreviewTimeDisplay',\n);\n"],"mappings":";;;;;AAQA,IAAa,qBAAb,cAAwC,YAAY;;2BACvB,EACzB,MAAM,QACP;;;4BAEqC,CAAC,iBAAiB;;CAQxD,cAAc;AACZ,SAAO;AAEP,MAAI,CAAC,KAAK,WACR,MAAK,aAAc,KAAK,YAA0C,kBAAkB;;CAIxF,IAAI,cAAsB;AACxB,SAAO,KAAK,QAAQ,eAAe;;CAGrC,IAAI,gBAAyB;AAC3B,SAAO,KAAK,aAAa,iBAAiB;;CAG5C,yBAAyB,MAAc,WAA0B,WAAgC;AAC/F,MAAI,SAAS,oBAAoB,KAAK,OAEpC,MAAK,QAAQ,EAAE,EAAE,KAAK,OAAO;;CAIjC,QAAQ,QAAa,OAAkB;AACrC,OAAK,SAAS;;EAGd,MAAM,YAAY,kBAAkB,MAAM,YAAY;AAEtD,MAAI,KAAK,WACP,MAAK,WAAW,cAAc;;;AAKpC,MAAaA,6BAER;CACH,MAAM,CAAC,GAAG,kCAAkC,KAAK;CACjD,YAAY,UAAU,iBAAiB,EACrC,GAAG,kCAAkC,eAAe,SAAS,EAE9D;CACF;AAED,MAAaC,8BAEP,QAAQ,aAAa;AAEzB,QADuC,EAAE;;AAI3C,MAAaC,4BAAoF,yBAC/F,oBACA,4BACA,4BACA,qBACD"}