@streamscloud/embeddable 2.1.1 → 2.1.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 (322) hide show
  1. package/dist/core/continuation-token.d.ts +10 -0
  2. package/dist/core/continuation-token.js +32 -0
  3. package/dist/core/cursor-result.d.ts +9 -0
  4. package/dist/core/cursor-result.js +1 -0
  5. package/dist/core/data-loaders/cursor-data-loader.svelte.d.ts +14 -0
  6. package/dist/core/data-loaders/cursor-data-loader.svelte.js +35 -0
  7. package/dist/core/data-loaders/data-loader.d.ts +4 -0
  8. package/dist/core/data-loaders/data-loader.js +1 -0
  9. package/dist/core/data-loaders/index.d.ts +2 -0
  10. package/dist/core/data-loaders/index.js +1 -0
  11. package/dist/core/deferred.d.ts +6 -0
  12. package/dist/core/deferred.js +13 -0
  13. package/dist/core/enums.d.ts +33 -0
  14. package/dist/core/enums.js +39 -0
  15. package/dist/core/graphql.d.ts +1 -0
  16. package/dist/core/graphql.js +10 -0
  17. package/dist/core/media/image-helper.d.ts +10 -0
  18. package/dist/core/media/image-helper.js +30 -0
  19. package/dist/core/media/images-size-detector.service.d.ts +6 -0
  20. package/dist/core/media/images-size-detector.service.js +15 -0
  21. package/dist/core/media/index.d.ts +4 -0
  22. package/dist/core/media/index.js +4 -0
  23. package/dist/core/media/media-item-url.service.d.ts +2 -0
  24. package/dist/core/media/media-item-url.service.js +3 -0
  25. package/dist/core/media/types.d.ts +13 -0
  26. package/dist/core/media/types.js +1 -0
  27. package/dist/core/toastr.d.ts +1 -0
  28. package/dist/core/toastr.js +26 -0
  29. package/dist/core/transitions/index.d.ts +1 -0
  30. package/dist/core/transitions/index.js +1 -0
  31. package/dist/core/transitions/slide-horizontally.d.ts +7 -0
  32. package/dist/core/transitions/slide-horizontally.js +55 -0
  33. package/dist/core/utils/array-helper.d.ts +23 -0
  34. package/dist/core/utils/array-helper.js +148 -0
  35. package/dist/core/utils/date-helper.d.ts +29 -0
  36. package/dist/core/utils/date-helper.js +146 -0
  37. package/dist/core/utils/dom-helper.d.ts +12 -0
  38. package/dist/core/utils/dom-helper.js +76 -0
  39. package/dist/core/utils/html-helper.d.ts +40 -0
  40. package/dist/core/utils/html-helper.js +97 -0
  41. package/dist/core/utils/index.d.ts +3 -0
  42. package/dist/core/utils/index.js +3 -0
  43. package/dist/core/utils/number-helper.d.ts +6 -0
  44. package/dist/core/utils/number-helper.js +28 -0
  45. package/dist/core/utils/string-generator.d.ts +2 -0
  46. package/dist/core/utils/string-generator.js +15 -0
  47. package/dist/core/utils/string-helper.d.ts +10 -0
  48. package/dist/core/utils/string-helper.js +53 -0
  49. package/dist/core/utils/url-helper.d.ts +3 -0
  50. package/dist/core/utils/url-helper.js +13 -0
  51. package/dist/core/utils/utils.d.ts +28 -0
  52. package/dist/core/utils/utils.js +100 -0
  53. package/dist/index.d.ts +2 -0
  54. package/dist/index.js +2 -0
  55. package/dist/products/price-helper.d.ts +4 -0
  56. package/dist/products/price-helper.js +47 -0
  57. package/dist/short-videos/short-video-viewer/cmp.ad.svelte +74 -0
  58. package/dist/short-videos/short-video-viewer/cmp.ad.svelte.d.ts +7 -0
  59. package/dist/short-videos/short-video-viewer/cmp.attachments-inline.svelte +70 -0
  60. package/dist/short-videos/short-video-viewer/cmp.attachments-inline.svelte.d.ts +7 -0
  61. package/dist/short-videos/short-video-viewer/cmp.attachments.svelte +68 -0
  62. package/dist/short-videos/short-video-viewer/cmp.attachments.svelte.d.ts +12 -0
  63. package/dist/short-videos/short-video-viewer/cmp.product.svelte +168 -0
  64. package/dist/short-videos/short-video-viewer/cmp.product.svelte.d.ts +13 -0
  65. package/dist/short-videos/short-video-viewer/cmp.short-video-details.svelte +124 -0
  66. package/dist/short-videos/short-video-viewer/cmp.short-video-details.svelte.d.ts +13 -0
  67. package/dist/short-videos/short-video-viewer/cmp.short-video-heading.svelte +86 -0
  68. package/dist/short-videos/short-video-viewer/cmp.short-video-heading.svelte.d.ts +9 -0
  69. package/dist/short-videos/short-video-viewer/cmp.short-video-viewer.svelte +133 -0
  70. package/dist/short-videos/short-video-viewer/cmp.short-video-viewer.svelte.d.ts +15 -0
  71. package/dist/short-videos/short-video-viewer/description.svelte +46 -0
  72. package/dist/short-videos/short-video-viewer/description.svelte.d.ts +9 -0
  73. package/dist/short-videos/short-video-viewer/index.d.ts +9 -0
  74. package/dist/short-videos/short-video-viewer/index.js +6 -0
  75. package/dist/short-videos/short-video-viewer/mapper.d.ts +3 -0
  76. package/dist/short-videos/short-video-viewer/mapper.js +56 -0
  77. package/dist/short-videos/short-video-viewer/operations.generated.d.ts +56 -0
  78. package/dist/short-videos/short-video-viewer/operations.generated.js +151 -0
  79. package/dist/short-videos/short-video-viewer/operations.graphql +53 -0
  80. package/dist/short-videos/short-video-viewer/short-video-attachments-localization.svelte.d.ts +12 -0
  81. package/dist/short-videos/short-video-viewer/short-video-attachments-localization.svelte.js +10 -0
  82. package/dist/short-videos/short-video-viewer/short-video-details-localization.svelte.d.ts +13 -0
  83. package/dist/short-videos/short-video-viewer/short-video-details-localization.svelte.js +10 -0
  84. package/dist/short-videos/short-video-viewer/short-video-product-localization.svelte.d.ts +7 -0
  85. package/dist/short-videos/short-video-viewer/short-video-product-localization.svelte.js +11 -0
  86. package/dist/short-videos/short-video-viewer/short-video-viewer-localization.svelte.d.ts +13 -0
  87. package/dist/short-videos/short-video-viewer/short-video-viewer-localization.svelte.js +10 -0
  88. package/dist/short-videos/short-video-viewer/types.d.ts +40 -0
  89. package/dist/short-videos/short-video-viewer/types.js +1 -0
  90. package/dist/short-videos/short-video-viewer/ui-manager.svelte.d.ts +12 -0
  91. package/dist/short-videos/short-video-viewer/ui-manager.svelte.js +26 -0
  92. package/dist/short-videos/short-videos-player/action-button.svelte +38 -0
  93. package/dist/short-videos/short-videos-player/action-button.svelte.d.ts +10 -0
  94. package/dist/short-videos/short-videos-player/cmp.short-videos-player.svelte +91 -0
  95. package/dist/short-videos/short-videos-player/cmp.short-videos-player.svelte.d.ts +13 -0
  96. package/dist/short-videos/short-videos-player/controls.svelte +222 -0
  97. package/dist/short-videos/short-videos-player/controls.svelte.d.ts +15 -0
  98. package/dist/short-videos/short-videos-player/index.d.ts +31 -0
  99. package/dist/short-videos/short-videos-player/index.js +40 -0
  100. package/dist/short-videos/short-videos-player/short-videos-player-localization.svelte.d.ts +8 -0
  101. package/dist/short-videos/short-videos-player/short-videos-player-localization.svelte.js +6 -0
  102. package/dist/short-videos/short-videos-player/ui-manager.svelte.d.ts +16 -0
  103. package/dist/short-videos/short-videos-player/ui-manager.svelte.js +25 -0
  104. package/dist/streams/layout/cmp.layout.svelte +34 -0
  105. package/dist/streams/layout/cmp.layout.svelte.d.ts +9 -0
  106. package/dist/streams/layout/cmp.slot-content.svelte +77 -0
  107. package/dist/streams/layout/cmp.slot-content.svelte.d.ts +13 -0
  108. package/dist/streams/layout/cmp.slot.svelte +26 -0
  109. package/dist/streams/layout/cmp.slot.svelte.d.ts +9 -0
  110. package/dist/streams/layout/component.d.ts +6 -0
  111. package/dist/streams/layout/component.js +1 -0
  112. package/dist/streams/layout/css-values.d.ts +10 -0
  113. package/dist/streams/layout/css-values.js +1 -0
  114. package/dist/streams/layout/element-views/cmp.container-stream-element.svelte +16 -0
  115. package/dist/streams/layout/element-views/cmp.container-stream-element.svelte.d.ts +11 -0
  116. package/dist/streams/layout/element-views/cmp.image-ref-stream-element.svelte +38 -0
  117. package/dist/streams/layout/element-views/cmp.image-ref-stream-element.svelte.d.ts +9 -0
  118. package/dist/streams/layout/element-views/cmp.images-stream-element.svelte +30 -0
  119. package/dist/streams/layout/element-views/cmp.images-stream-element.svelte.d.ts +9 -0
  120. package/dist/streams/layout/element-views/cmp.price-stream-element.svelte +97 -0
  121. package/dist/streams/layout/element-views/cmp.price-stream-element.svelte.d.ts +11 -0
  122. package/dist/streams/layout/element-views/cmp.short-video-stream-element.svelte +6 -0
  123. package/dist/streams/layout/element-views/cmp.short-video-stream-element.svelte.d.ts +10 -0
  124. package/dist/streams/layout/element-views/cmp.spacer-stream-element.svelte +45 -0
  125. package/dist/streams/layout/element-views/cmp.spacer-stream-element.svelte.d.ts +9 -0
  126. package/dist/streams/layout/element-views/cmp.stream-element.svelte +68 -0
  127. package/dist/streams/layout/element-views/cmp.stream-element.svelte.d.ts +16 -0
  128. package/dist/streams/layout/element-views/cmp.text-ref-stream-element.svelte +23 -0
  129. package/dist/streams/layout/element-views/cmp.text-ref-stream-element.svelte.d.ts +9 -0
  130. package/dist/streams/layout/element-views/cmp.text-stream-element.svelte +8 -0
  131. package/dist/streams/layout/element-views/cmp.text-stream-element.svelte.d.ts +7 -0
  132. package/dist/streams/layout/element-views/data-by-key-accessor.d.ts +3 -0
  133. package/dist/streams/layout/element-views/data-by-key-accessor.js +55 -0
  134. package/dist/streams/layout/element-views/index.d.ts +11 -0
  135. package/dist/streams/layout/element-views/index.js +9 -0
  136. package/dist/streams/layout/element-views/price-stream-element-localization.svelte.d.ts +9 -0
  137. package/dist/streams/layout/element-views/price-stream-element-localization.svelte.js +8 -0
  138. package/dist/streams/layout/element-views/stream-element-localization.svelte.d.ts +8 -0
  139. package/dist/streams/layout/element-views/stream-element-localization.svelte.js +6 -0
  140. package/dist/streams/layout/elements.d.ts +51 -0
  141. package/dist/streams/layout/elements.js +1 -0
  142. package/dist/streams/layout/enums.d.ts +45 -0
  143. package/dist/streams/layout/enums.js +54 -0
  144. package/dist/streams/layout/index.d.ts +19 -0
  145. package/dist/streams/layout/index.js +15 -0
  146. package/dist/streams/layout/layout.d.ts +13 -0
  147. package/dist/streams/layout/layout.js +1 -0
  148. package/dist/streams/layout/models/index.d.ts +6 -0
  149. package/dist/streams/layout/models/index.js +1 -0
  150. package/dist/streams/layout/models/mapper.d.ts +3 -0
  151. package/dist/streams/layout/models/mapper.js +62 -0
  152. package/dist/streams/layout/models/stream-layout-blob-model.d.ts +4 -0
  153. package/dist/streams/layout/models/stream-layout-blob-model.js +1 -0
  154. package/dist/streams/layout/models/stream-layout-media-item-model.d.ts +6 -0
  155. package/dist/streams/layout/models/stream-layout-media-item-model.js +1 -0
  156. package/dist/streams/layout/models/stream-layout-post-header-model.d.ts +11 -0
  157. package/dist/streams/layout/models/stream-layout-post-header-model.js +1 -0
  158. package/dist/streams/layout/models/stream-layout-product-model.d.ts +19 -0
  159. package/dist/streams/layout/models/stream-layout-product-model.js +1 -0
  160. package/dist/streams/layout/models/stream-layout-short-video-model.d.ts +31 -0
  161. package/dist/streams/layout/models/stream-layout-short-video-model.js +1 -0
  162. package/dist/streams/layout/serializer.d.ts +3 -0
  163. package/dist/streams/layout/serializer.js +6 -0
  164. package/dist/streams/layout/slot-data-input.d.ts +14 -0
  165. package/dist/streams/layout/slot-data-input.js +1 -0
  166. package/dist/streams/layout/slot-data.d.ts +18 -0
  167. package/dist/streams/layout/slot-data.js +1 -0
  168. package/dist/streams/layout/slot.d.ts +16 -0
  169. package/dist/streams/layout/slot.js +1 -0
  170. package/dist/streams/layout/styles-transformer.d.ts +13 -0
  171. package/dist/streams/layout/styles-transformer.js +140 -0
  172. package/dist/streams/layout/styles.d.ts +43 -0
  173. package/dist/streams/layout/styles.js +1 -0
  174. package/dist/streams/layout/type-guards.d.ts +8 -0
  175. package/dist/streams/layout/type-guards.js +21 -0
  176. package/dist/streams/stream-page-viewer/cmp.stream-page-viewer.svelte +13 -0
  177. package/dist/streams/stream-page-viewer/cmp.stream-page-viewer.svelte.d.ts +11 -0
  178. package/dist/streams/stream-page-viewer/index.d.ts +2 -0
  179. package/dist/streams/stream-page-viewer/index.js +1 -0
  180. package/dist/streams/stream-page-viewer/mapper.d.ts +3 -0
  181. package/dist/streams/stream-page-viewer/mapper.js +22 -0
  182. package/dist/streams/stream-page-viewer/operations.generated.d.ts +10 -0
  183. package/dist/streams/stream-page-viewer/operations.generated.js +27 -0
  184. package/dist/streams/stream-page-viewer/operations.graphql +8 -0
  185. package/dist/streams/stream-page-viewer/stream-page-viewer-localization.svelte.d.ts +13 -0
  186. package/dist/streams/stream-page-viewer/stream-page-viewer-localization.svelte.js +10 -0
  187. package/dist/streams/stream-page-viewer/types.d.ts +18 -0
  188. package/dist/streams/stream-page-viewer/types.js +1 -0
  189. package/dist/streams/stream-player/action-button.svelte +38 -0
  190. package/dist/streams/stream-player/action-button.svelte.d.ts +10 -0
  191. package/dist/streams/stream-player/cmp.stream-player.svelte +164 -0
  192. package/dist/streams/stream-player/cmp.stream-player.svelte.d.ts +19 -0
  193. package/dist/streams/stream-player/controls.svelte +236 -0
  194. package/dist/streams/stream-player/controls.svelte.d.ts +15 -0
  195. package/dist/streams/stream-player/index.d.ts +37 -0
  196. package/dist/streams/stream-player/index.js +50 -0
  197. package/dist/streams/stream-player/mapper.d.ts +3 -0
  198. package/dist/streams/stream-player/mapper.js +15 -0
  199. package/dist/streams/stream-player/operations.generated.d.ts +65 -0
  200. package/dist/streams/stream-player/operations.generated.js +196 -0
  201. package/dist/streams/stream-player/operations.graphql +35 -0
  202. package/dist/streams/stream-player/stream-overview.svelte +239 -0
  203. package/dist/streams/stream-player/stream-overview.svelte.d.ts +17 -0
  204. package/dist/streams/stream-player/stream-player-buffer.svelte.d.ts +25 -0
  205. package/dist/streams/stream-player/stream-player-buffer.svelte.js +84 -0
  206. package/dist/streams/stream-player/stream-player-localization.svelte.d.ts +12 -0
  207. package/dist/streams/stream-player/stream-player-localization.svelte.js +10 -0
  208. package/dist/streams/stream-player/types.d.ts +12 -0
  209. package/dist/streams/stream-player/types.js +1 -0
  210. package/dist/streams/stream-player/ui-manager.svelte.d.ts +17 -0
  211. package/dist/streams/stream-player/ui-manager.svelte.js +26 -0
  212. package/dist/ui/button/cmp.button.svelte +10 -0
  213. package/dist/ui/button/cmp.button.svelte.d.ts +16 -0
  214. package/dist/ui/button/index.d.ts +2 -0
  215. package/dist/ui/button/index.js +2 -0
  216. package/dist/ui/button/resources/button-base.svelte +84 -0
  217. package/dist/ui/button/resources/button-base.svelte.d.ts +13 -0
  218. package/dist/ui/button/resources/button-theme.svelte +204 -0
  219. package/dist/ui/button/resources/button-theme.svelte.d.ts +10 -0
  220. package/dist/ui/button/resources/button-types.d.ts +21 -0
  221. package/dist/ui/button/resources/button-types.js +23 -0
  222. package/dist/ui/dynamic-component/cmp.dynamic-component.svelte +5 -0
  223. package/dist/ui/dynamic-component/cmp.dynamic-component.svelte.d.ts +7 -0
  224. package/dist/ui/dynamic-component/index.d.ts +2 -0
  225. package/dist/ui/dynamic-component/index.js +2 -0
  226. package/dist/ui/dynamic-component/types.svelte.d.ts +11 -0
  227. package/dist/ui/dynamic-component/types.svelte.js +13 -0
  228. package/dist/ui/icon/cmp.icon.svelte +113 -0
  229. package/dist/ui/icon/cmp.icon.svelte.d.ts +8 -0
  230. package/dist/ui/icon/index.d.ts +2 -0
  231. package/dist/ui/icon/index.js +2 -0
  232. package/dist/ui/icon/types.d.ts +9 -0
  233. package/dist/ui/icon/types.js +10 -0
  234. package/dist/ui/image/cmp.image-round.svelte +41 -0
  235. package/dist/ui/image/cmp.image-round.svelte.d.ts +11 -0
  236. package/dist/ui/image/cmp.image-rounded.svelte +71 -0
  237. package/dist/ui/image/cmp.image-rounded.svelte.d.ts +11 -0
  238. package/dist/ui/image/cmp.image-stub.svelte +34 -0
  239. package/dist/ui/image/cmp.image-stub.svelte.d.ts +18 -0
  240. package/dist/ui/image/cmp.image.svelte +82 -0
  241. package/dist/ui/image/cmp.image.svelte.d.ts +13 -0
  242. package/dist/ui/image/image-state.d.ts +6 -0
  243. package/dist/ui/image/image-state.js +17 -0
  244. package/dist/ui/image/index.d.ts +4 -0
  245. package/dist/ui/image/index.js +4 -0
  246. package/dist/ui/infinite-scrolling/cmp.infinite-scrolling.svelte +84 -0
  247. package/dist/ui/infinite-scrolling/cmp.infinite-scrolling.svelte.d.ts +11 -0
  248. package/dist/ui/infinite-scrolling/index.d.ts +1 -0
  249. package/dist/ui/infinite-scrolling/index.js +1 -0
  250. package/dist/ui/line-clamp/cmp.line-clamp.svelte +89 -0
  251. package/dist/ui/line-clamp/cmp.line-clamp.svelte.d.ts +12 -0
  252. package/dist/ui/line-clamp/index.d.ts +2 -0
  253. package/dist/ui/line-clamp/index.js +2 -0
  254. package/dist/ui/line-clamp/line-clamp-localization.svelte.d.ts +9 -0
  255. package/dist/ui/line-clamp/line-clamp-localization.svelte.js +15 -0
  256. package/dist/ui/line-clamp/line-clamp-types.d.ts +3 -0
  257. package/dist/ui/line-clamp/line-clamp-types.js +1 -0
  258. package/dist/ui/line-clamp/line-clamp-utils.d.ts +8 -0
  259. package/dist/ui/line-clamp/line-clamp-utils.js +33 -0
  260. package/dist/ui/loading/cmp.loading.svelte +97 -0
  261. package/dist/ui/loading/cmp.loading.svelte.d.ts +9 -0
  262. package/dist/ui/loading/index.d.ts +1 -0
  263. package/dist/ui/loading/index.js +1 -0
  264. package/dist/ui/media-item-view/cmp.media-item-view.svelte +91 -0
  265. package/dist/ui/media-item-view/cmp.media-item-view.svelte.d.ts +13 -0
  266. package/dist/ui/media-item-view/index.d.ts +1 -0
  267. package/dist/ui/media-item-view/index.js +1 -0
  268. package/dist/ui/media-items-gallery/cmp.media-items-gallery.svelte +278 -0
  269. package/dist/ui/media-items-gallery/cmp.media-items-gallery.svelte.d.ts +13 -0
  270. package/dist/ui/media-items-gallery/index.d.ts +1 -0
  271. package/dist/ui/media-items-gallery/index.js +1 -0
  272. package/dist/ui/media-items-gallery/types.d.ts +12 -0
  273. package/dist/ui/media-items-gallery/types.js +35 -0
  274. package/dist/ui/media-playback/index.d.ts +2 -0
  275. package/dist/ui/media-playback/index.js +2 -0
  276. package/dist/ui/media-playback/playback-manager.svelte.d.ts +25 -0
  277. package/dist/ui/media-playback/playback-manager.svelte.js +62 -0
  278. package/dist/ui/media-playback/volume-manager.svelte.d.ts +10 -0
  279. package/dist/ui/media-playback/volume-manager.svelte.js +27 -0
  280. package/dist/ui/player/cmp.player-slider.svelte +161 -0
  281. package/dist/ui/player/cmp.player-slider.svelte.d.ts +33 -0
  282. package/dist/ui/player/index.d.ts +4 -0
  283. package/dist/ui/player/index.js +3 -0
  284. package/dist/ui/player/player-buffer.svelte.d.ts +28 -0
  285. package/dist/ui/player/player-buffer.svelte.js +64 -0
  286. package/dist/ui/player/prevent-slider-scroll.d.ts +5 -0
  287. package/dist/ui/player/prevent-slider-scroll.js +11 -0
  288. package/dist/ui/player/types.d.ts +14 -0
  289. package/dist/ui/player/types.js +1 -0
  290. package/dist/ui/progress/cmp.progress.svelte +37 -0
  291. package/dist/ui/progress/cmp.progress.svelte.d.ts +6 -0
  292. package/dist/ui/progress/index.d.ts +1 -0
  293. package/dist/ui/progress/index.js +1 -0
  294. package/dist/ui/proportional-container/cmp.proportional-container.svelte +39 -0
  295. package/dist/ui/proportional-container/cmp.proportional-container.svelte.d.ts +8 -0
  296. package/dist/ui/proportional-container/index.d.ts +1 -0
  297. package/dist/ui/proportional-container/index.js +1 -0
  298. package/dist/ui/seek-bar/cmp.seek-bar.svelte +63 -0
  299. package/dist/ui/seek-bar/cmp.seek-bar.svelte.d.ts +12 -0
  300. package/dist/ui/seek-bar/index.d.ts +1 -0
  301. package/dist/ui/seek-bar/index.js +1 -0
  302. package/dist/ui/shadow-dom/_normalize.scss +350 -0
  303. package/dist/ui/shadow-dom/_reset.scss +189 -0
  304. package/dist/ui/shadow-dom/index.d.ts +1 -0
  305. package/dist/ui/shadow-dom/index.js +1 -0
  306. package/dist/ui/shadow-dom/shadow-host.d.ts +11 -0
  307. package/dist/ui/shadow-dom/shadow-host.js +45 -0
  308. package/dist/ui/spotlight-layout/cmp.spotlight-layout.svelte +120 -0
  309. package/dist/ui/spotlight-layout/cmp.spotlight-layout.svelte.d.ts +18 -0
  310. package/dist/ui/spotlight-layout/index.d.ts +1 -0
  311. package/dist/ui/spotlight-layout/index.js +1 -0
  312. package/dist/ui/time-ago/cmp.time-ago.svelte +69 -0
  313. package/dist/ui/time-ago/cmp.time-ago.svelte.d.ts +9 -0
  314. package/dist/ui/time-ago/index.d.ts +2 -0
  315. package/dist/ui/time-ago/index.js +1 -0
  316. package/dist/ui/time-ago/time-ago-localization.svelte.d.ts +21 -0
  317. package/dist/ui/time-ago/time-ago-localization.svelte.js +39 -0
  318. package/dist/ui/video/cmp.video.svelte +377 -0
  319. package/dist/ui/video/cmp.video.svelte.d.ts +24 -0
  320. package/dist/ui/video/index.d.ts +1 -0
  321. package/dist/ui/video/index.js +1 -0
  322. package/package.json +1 -1
@@ -0,0 +1,146 @@
1
+ export class DateHelper {
2
+ static toDate(date, resetTime = false) {
3
+ date = new Date(date);
4
+ if (resetTime) {
5
+ date.setHours(0, 0, 0, 0);
6
+ }
7
+ return date;
8
+ }
9
+ static secondsToTimeRepresentation(seconds, duration) {
10
+ const longerThanHour = Math.floor(duration / 3600) > 0;
11
+ if (!seconds) {
12
+ return longerThanHour ? '0:00:00' : '0:00';
13
+ }
14
+ const hours = Math.floor(seconds / 3600);
15
+ const mins = Math.floor((seconds - hours * 3600) / 60);
16
+ seconds = seconds - hours * 3600 - mins * 60;
17
+ let res = '';
18
+ if (longerThanHour) {
19
+ if (hours) {
20
+ res += `${hours}:`;
21
+ }
22
+ else {
23
+ res += '0:';
24
+ }
25
+ if (mins < 10) {
26
+ res += '0';
27
+ }
28
+ }
29
+ res += `${mins}:`;
30
+ if (seconds < 10) {
31
+ res += '0';
32
+ }
33
+ res += seconds;
34
+ return res;
35
+ }
36
+ static getDate(date) {
37
+ date = DateHelper.toDate(date);
38
+ return date.getDate();
39
+ }
40
+ static getYear(date) {
41
+ date = DateHelper.toDate(date);
42
+ return date.getFullYear();
43
+ }
44
+ static getMonthName(date, locale, short = false) {
45
+ date = DateHelper.toDate(date);
46
+ return date.toLocaleString(locale, { month: short ? 'short' : 'long' });
47
+ }
48
+ static getWeekdayName(date, locale, short = false) {
49
+ date = DateHelper.toDate(date);
50
+ return date.toLocaleString(locale, { weekday: short ? 'short' : 'long' });
51
+ }
52
+ static getMonthRange(date) {
53
+ date = DateHelper.toDate(date);
54
+ const fullYear = date.getFullYear();
55
+ const month = date.getMonth();
56
+ const firstDay = new Date(fullYear, month, 1);
57
+ const lastDay = new Date(fullYear, month + 1, 1);
58
+ lastDay.setMilliseconds(-1);
59
+ return { firstDay, lastDay };
60
+ }
61
+ static daysInMonth(date) {
62
+ date = DateHelper.toDate(date);
63
+ return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
64
+ }
65
+ static getDayOfWeek(date) {
66
+ date = DateHelper.toDate(date);
67
+ const day = date.getDay();
68
+ return day === 0 ? 7 : day;
69
+ }
70
+ static getShiftedDate(date, daysShift) {
71
+ date = DateHelper.toDate(date);
72
+ date.setDate(date.getDate() + daysShift);
73
+ return date;
74
+ }
75
+ static getDateOnlyString(date) {
76
+ if (!date) {
77
+ return null;
78
+ }
79
+ date = DateHelper.toDate(date);
80
+ const year = date.getFullYear();
81
+ const month = date.getMonth() + 1;
82
+ const day = date.getDate();
83
+ return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
84
+ }
85
+ static formatDateRange(startDate, endDate, locale) {
86
+ const startTime = DateHelper.toDate(startDate);
87
+ const endTime = DateHelper.toDate(endDate);
88
+ const startMonthName = DateHelper.getMonthName(startDate, locale).toLocaleLowerCase();
89
+ const endMonthName = DateHelper.getMonthName(endDate, locale).toLocaleLowerCase();
90
+ const isSameDateWithStart = startTime.getDate() === endTime.getDate() && startTime.getMonth() === endTime.getMonth() && startTime.getFullYear() === endTime.getFullYear();
91
+ const isSameMonth = startTime.getMonth() === endTime.getMonth();
92
+ if (isSameDateWithStart) {
93
+ return `${startTime.getDate()}. ${startMonthName}`;
94
+ }
95
+ if (isSameMonth) {
96
+ return `${startTime.getDate()}. –${endTime.getDate()}. ${startMonthName}`;
97
+ }
98
+ return `${startTime.getDate()}. ${startMonthName} – ${endTime.getDate()}. ${endMonthName}`;
99
+ }
100
+ static dateRangeDescriptionString(startDate, endDate, locale) {
101
+ let eventTime;
102
+ const currentDate = new Date();
103
+ const startTime = DateHelper.toDate(startDate);
104
+ const getFormattedDate = (d) => {
105
+ const month = DateHelper.getMonthName(d, locale, false);
106
+ const date = d.getDate();
107
+ const year = d.getFullYear() === currentDate.getFullYear() ? '' : d.getFullYear().toString();
108
+ const dateString = [month, date, year].join(' ');
109
+ return dateString;
110
+ };
111
+ const getFormattedTime = (d) => {
112
+ return `${d.getHours().toString().padStart(2, '0')}:${d.getMinutes().toString().padStart(2, '0')}`;
113
+ };
114
+ const getWeekday = (d) => DateHelper.getWeekdayName(d, locale, false);
115
+ if (!endDate) {
116
+ eventTime = [getWeekday(startTime), getFormattedDate(startTime), getFormattedTime(startTime)].join(' · ');
117
+ }
118
+ else {
119
+ const endTime = DateHelper.toDate(endDate);
120
+ const isSameDateWithStart = startTime.getDate() === endTime.getDate() && startTime.getMonth() === endTime.getMonth() && startTime.getFullYear() === endTime.getFullYear();
121
+ if (isSameDateWithStart) {
122
+ eventTime = [getWeekday(startTime), getFormattedDate(startTime), `${getFormattedTime(startTime)}-${getFormattedTime(endTime)}`].join(' · ');
123
+ }
124
+ else {
125
+ const getFormattedDateWithTime = (d) => [getFormattedDate(d), getFormattedTime(d)].join(' · ');
126
+ eventTime = `${getFormattedDateWithTime(startTime)} - ${getFormattedDateWithTime(endTime)}`;
127
+ }
128
+ }
129
+ return eventTime;
130
+ }
131
+ }
132
+ export class DateFormatOptions {
133
+ static dateTimeFormat = {
134
+ day: '2-digit',
135
+ month: 'short',
136
+ year: 'numeric',
137
+ hour: '2-digit',
138
+ minute: '2-digit',
139
+ hour12: false
140
+ };
141
+ static dateTimeWithoutYearFormat = { day: '2-digit', month: 'short', hour: '2-digit', minute: '2-digit', hour12: false };
142
+ static timeFormat = { hour: '2-digit', minute: '2-digit', hour12: false };
143
+ static dateFormat = { day: '2-digit', month: 'short', year: 'numeric' };
144
+ static dateFormatWithoutYear = { day: '2-digit', month: 'short' };
145
+ static dateFullMonthFormat = { day: '2-digit', month: 'long' };
146
+ }
@@ -0,0 +1,12 @@
1
+ export declare class DomHelper {
2
+ /**
3
+ * Checks whether initial object is located inside specified boundaries
4
+ * @param {HTMLElement} element The initial element
5
+ * @param {HTMLElement[]} boundaryElements Parent elements concerned to be valid boundaries
6
+ * @return {boolean} true if initial element is located inside specified boundaries, otherwise false
7
+ */
8
+ static checkElementOutsideSpecifiedBoundaries(element: Element | EventTarget | null, boundaryElements: Array<Element | EventTarget>): boolean;
9
+ static calsHeightBasedOnRows(element: HTMLElement, rows: number): string;
10
+ static scaleFontSize(el: HTMLElement, text: string, minFontSize?: number, maxFontSize?: number): void;
11
+ private static measureText;
12
+ }
@@ -0,0 +1,76 @@
1
+ export class DomHelper {
2
+ /**
3
+ * Checks whether initial object is located inside specified boundaries
4
+ * @param {HTMLElement} element The initial element
5
+ * @param {HTMLElement[]} boundaryElements Parent elements concerned to be valid boundaries
6
+ * @return {boolean} true if initial element is located inside specified boundaries, otherwise false
7
+ */
8
+ static checkElementOutsideSpecifiedBoundaries(element, boundaryElements) {
9
+ let node = element;
10
+ boundaryElements = boundaryElements || [];
11
+ while (node) {
12
+ if (boundaryElements.includes(node)) {
13
+ return false;
14
+ }
15
+ node = node.parentElement;
16
+ }
17
+ return true;
18
+ }
19
+ static calsHeightBasedOnRows(element, rows) {
20
+ const computed = window.getComputedStyle(element);
21
+ const paddingTop = parseFloat(computed.getPropertyValue('padding-top'));
22
+ const paddingBottom = parseFloat(computed.getPropertyValue('padding-bottom'));
23
+ const lineHeightPx = computed.getPropertyValue('line-height');
24
+ let lineHeight;
25
+ if (lineHeightPx === 'normal') {
26
+ lineHeight = parseFloat(computed.getPropertyValue('font-size')) * 1.2;
27
+ }
28
+ else {
29
+ lineHeight = parseFloat(lineHeightPx);
30
+ }
31
+ const computedHeight = paddingBottom + paddingTop + lineHeight * rows;
32
+ return `${computedHeight}px`;
33
+ }
34
+ static scaleFontSize(el, text, minFontSize = 12, maxFontSize = 150) {
35
+ el.style.fontSize = ``;
36
+ window.setTimeout(() => {
37
+ let fontSize = minFontSize;
38
+ const fontFamily = window.getComputedStyle(el).fontFamily;
39
+ const fontWeight = window.getComputedStyle(el).fontWeight;
40
+ const maxHeight = el.clientHeight;
41
+ const maxWidth = el.clientWidth;
42
+ let attempts = maxFontSize - minFontSize;
43
+ let measured = this.measureText(text, fontSize, fontFamily, fontWeight, maxWidth);
44
+ if (measured.height < maxHeight) {
45
+ let adjusted = false;
46
+ while (measured.height <= maxHeight && measured.width <= maxWidth && attempts > 0) {
47
+ attempts--;
48
+ measured = this.measureText(text, ++fontSize, fontFamily, fontWeight, maxWidth);
49
+ adjusted = true;
50
+ }
51
+ if (adjusted) {
52
+ el.style.fontSize = `${--fontSize}px`;
53
+ }
54
+ }
55
+ });
56
+ }
57
+ static measureText(pText, pFontSize, pFamily, pWeight, width) {
58
+ const tempDiv = document.createElement('div');
59
+ document.body.appendChild(tempDiv);
60
+ tempDiv.style.fontFamily = pFamily;
61
+ tempDiv.style.fontWeight = pWeight;
62
+ tempDiv.style.fontSize = `${pFontSize}px`;
63
+ tempDiv.style.position = 'absolute';
64
+ tempDiv.style.left = '-1000';
65
+ tempDiv.style.top = '-1000';
66
+ tempDiv.style.width = `${width}px`;
67
+ tempDiv.innerHTML = pText;
68
+ const lResult = {
69
+ width: tempDiv.scrollWidth,
70
+ height: tempDiv.clientHeight
71
+ };
72
+ document.body.removeChild(tempDiv);
73
+ tempDiv.remove();
74
+ return lResult;
75
+ }
76
+ }
@@ -0,0 +1,40 @@
1
+ export declare class HtmlHelper {
2
+ static clearSelection(): void;
3
+ static elementFromString(html: string): Element;
4
+ /**
5
+ * Replaces reserved html characters with html entities e.g. '<' with '&lt;'
6
+ */
7
+ static escapeSpecialChars(s: string): string;
8
+ /**
9
+ * Inserts new element into DOM before specified sibling
10
+ * @param newElement Element to be inserted
11
+ * @param siblingElement Anchor element to determine new element position
12
+ * @return Returns nothing
13
+ *
14
+ * Usage
15
+ * DomHelper.insertBefore(siblingElement, newContentField);
16
+ */
17
+ static insertBefore(newElement: Element, siblingElement: Element): void;
18
+ /**
19
+ * Inserts new element into DOM after specified sibling
20
+ * @param newElement Element to be inserted
21
+ * @param siblingElement Anchor element to determine new element position
22
+ * @return Returns nothing
23
+ *
24
+ * Usage
25
+ * DomHelper.insertAfter(siblingElement, newContentField);
26
+ */
27
+ static insertAfter(newElement: Element, siblingElement: Element): void;
28
+ /**
29
+ * Inserts new element into DOM after/before specified sibling
30
+ * @param newElement Element to be inserted
31
+ * @param siblingElement Anchor element to determine new element position
32
+ * @param insertBefore Mark new position
33
+ * @return Returns nothing
34
+ *
35
+ * Usage
36
+ * DomHelper.insert(siblingElement, newContentField, false);
37
+ */
38
+ static insert(newElement: Element, siblingElement: Element, insertBefore?: boolean): void;
39
+ static pasteIntoInput(value: string, element: HTMLInputElement | HTMLTextAreaElement): void;
40
+ }
@@ -0,0 +1,97 @@
1
+ export class HtmlHelper {
2
+ static clearSelection() {
3
+ if (window.getSelection) {
4
+ const selection = window.getSelection();
5
+ if (!selection) {
6
+ return;
7
+ }
8
+ if (selection.empty) {
9
+ // Chrome
10
+ selection.empty();
11
+ }
12
+ else if (selection.removeAllRanges) {
13
+ // Firefox
14
+ selection.removeAllRanges();
15
+ }
16
+ }
17
+ }
18
+ static elementFromString(html) {
19
+ const wrapper = document.createElement('div');
20
+ wrapper.innerHTML = html;
21
+ const result = wrapper.firstElementChild;
22
+ wrapper.remove();
23
+ return result;
24
+ }
25
+ /**
26
+ * Replaces reserved html characters with html entities e.g. '<' with '&lt;'
27
+ */
28
+ static escapeSpecialChars(s) {
29
+ return s.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;').replaceAll('"', '&quot;').replaceAll("'", '&#039;');
30
+ }
31
+ /**
32
+ * Inserts new element into DOM before specified sibling
33
+ * @param newElement Element to be inserted
34
+ * @param siblingElement Anchor element to determine new element position
35
+ * @return Returns nothing
36
+ *
37
+ * Usage
38
+ * DomHelper.insertBefore(siblingElement, newContentField);
39
+ */
40
+ static insertBefore(newElement, siblingElement) {
41
+ siblingElement.parentNode?.insertBefore(newElement, siblingElement);
42
+ }
43
+ /**
44
+ * Inserts new element into DOM after specified sibling
45
+ * @param newElement Element to be inserted
46
+ * @param siblingElement Anchor element to determine new element position
47
+ * @return Returns nothing
48
+ *
49
+ * Usage
50
+ * DomHelper.insertAfter(siblingElement, newContentField);
51
+ */
52
+ static insertAfter(newElement, siblingElement) {
53
+ siblingElement.parentNode?.insertBefore(newElement, siblingElement.nextSibling);
54
+ }
55
+ /**
56
+ * Inserts new element into DOM after/before specified sibling
57
+ * @param newElement Element to be inserted
58
+ * @param siblingElement Anchor element to determine new element position
59
+ * @param insertBefore Mark new position
60
+ * @return Returns nothing
61
+ *
62
+ * Usage
63
+ * DomHelper.insert(siblingElement, newContentField, false);
64
+ */
65
+ static insert(newElement, siblingElement, insertBefore = false) {
66
+ if (insertBefore) {
67
+ HtmlHelper.insertBefore(newElement, siblingElement);
68
+ }
69
+ else {
70
+ HtmlHelper.insertAfter(newElement, siblingElement);
71
+ }
72
+ }
73
+ static pasteIntoInput(value, element) {
74
+ if (element.selectionStart || element.selectionStart === 0) {
75
+ const startPos = element.selectionStart;
76
+ const endPos = element.selectionEnd;
77
+ if (endPos === null) {
78
+ element.value = value;
79
+ }
80
+ else {
81
+ const beforeSelection = element.value.substring(0, startPos);
82
+ const afterSelection = element.value.substring(endPos, element.value.length);
83
+ element.value = `${beforeSelection}${value}${afterSelection}`;
84
+ }
85
+ const newCursor = startPos + value.length;
86
+ element.setSelectionRange(newCursor, newCursor);
87
+ }
88
+ else {
89
+ element.value += value;
90
+ }
91
+ element.dispatchEvent(new Event('input', {
92
+ bubbles: true,
93
+ cancelable: true
94
+ }));
95
+ element.focus();
96
+ }
97
+ }
@@ -0,0 +1,3 @@
1
+ export * from './utils';
2
+ export * from './string-helper';
3
+ export * from './number-helper';
@@ -0,0 +1,3 @@
1
+ export * from './utils';
2
+ export * from './string-helper';
3
+ export * from './number-helper';
@@ -0,0 +1,6 @@
1
+ export declare class NumberHelper {
2
+ static formatNumber: (n: number | string) => string;
3
+ static randomIntFromInterval: (min: number, max: number) => number;
4
+ static quotient: (number: number, denominator: number) => number;
5
+ static remainder: (number: number, denominator: number) => number;
6
+ }
@@ -0,0 +1,28 @@
1
+ export class NumberHelper {
2
+ static formatNumber = (n) => {
3
+ if (!n) {
4
+ return '0';
5
+ }
6
+ if (typeof n === 'string') {
7
+ n = parseInt(n);
8
+ }
9
+ const isNegative = n < 0;
10
+ let modulo = isNegative ? 0 - n : n;
11
+ const output = [];
12
+ for (; modulo >= 1000; modulo = Math.floor(n / 1000)) {
13
+ output.unshift(String(modulo % 1000).padStart(3, '0'));
14
+ }
15
+ output.unshift(modulo);
16
+ return `${isNegative ? '-' : ''}${output.join(' ')}`;
17
+ };
18
+ static randomIntFromInterval = (min, max) => {
19
+ // min and max included
20
+ return Math.floor(Math.random() * (max - min + 1) + min);
21
+ };
22
+ static quotient = (number, denominator) => {
23
+ return Math.floor(number / denominator);
24
+ };
25
+ static remainder = (number, denominator) => {
26
+ return number % denominator;
27
+ };
28
+ }
@@ -0,0 +1,2 @@
1
+ export declare function generateString(length: number): string;
2
+ export declare const randomNanoid: (size?: number) => string;
@@ -0,0 +1,15 @@
1
+ import { nanoid } from 'nanoid';
2
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
3
+ export function generateString(length) {
4
+ let result = '';
5
+ const charactersLength = characters.length;
6
+ let counter = 0;
7
+ while (counter < length) {
8
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
9
+ counter += 1;
10
+ }
11
+ return result;
12
+ }
13
+ export const randomNanoid = (size = 15) => {
14
+ return nanoid(size);
15
+ };
@@ -0,0 +1,10 @@
1
+ export declare class StringHelper {
2
+ static isBlobUrl(val: string | null | undefined): boolean;
3
+ static isEmail(val: string): boolean;
4
+ static isNumeric(n: string): boolean;
5
+ static isUrl(val: string): boolean;
6
+ static toKebabCase(str: string): string;
7
+ static toSnakeCase(str: string): string;
8
+ static truncate(str: string, length: number): string;
9
+ static capitalizeFirstLetter(word: string): string;
10
+ }
@@ -0,0 +1,53 @@
1
+ export class StringHelper {
2
+ static isBlobUrl(val) {
3
+ return !!val && val.startsWith('blob:');
4
+ }
5
+ static isEmail(val) {
6
+ if (!val) {
7
+ return false;
8
+ }
9
+ const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
10
+ return re.test(String(val).toLowerCase());
11
+ }
12
+ static isNumeric(n) {
13
+ const parsed = parseFloat(n);
14
+ return !isNaN(parsed) && isFinite(parsed);
15
+ }
16
+ static isUrl(val) {
17
+ if (!val) {
18
+ return false;
19
+ }
20
+ try {
21
+ const url = new URL(val);
22
+ return (val.startsWith('http://') || val.startsWith('https://')) && url && ['http:', 'https:'].includes(url.protocol);
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ static toKebabCase(str) {
29
+ return (str
30
+ .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
31
+ ?.join('-')
32
+ .toLowerCase() || str);
33
+ }
34
+ static toSnakeCase(str) {
35
+ if (!str) {
36
+ return str;
37
+ }
38
+ return str
39
+ .split(/(?=[A-Z])/)
40
+ .join('_')
41
+ .toLowerCase();
42
+ }
43
+ static truncate(str, length) {
44
+ if (str.length <= length) {
45
+ return str;
46
+ }
47
+ str = str.slice(0, length) + '...';
48
+ return str;
49
+ }
50
+ static capitalizeFirstLetter(word) {
51
+ return word.charAt(0).toUpperCase() + word.slice(1);
52
+ }
53
+ }
@@ -0,0 +1,3 @@
1
+ export declare class UrlHelper {
2
+ static getRootDomain(url: URL | Location): string;
3
+ }
@@ -0,0 +1,13 @@
1
+ export class UrlHelper {
2
+ static getRootDomain(url) {
3
+ let tokens = url.hostname.split('.');
4
+ if (tokens.length <= 2) {
5
+ return url.hostname;
6
+ }
7
+ tokens = tokens.slice(-3);
8
+ if (['co', 'com'].indexOf(tokens[1]) > -1) {
9
+ return tokens.join('.');
10
+ }
11
+ return tokens.slice(-2).join('.');
12
+ }
13
+ }
@@ -0,0 +1,28 @@
1
+ export declare class Utils {
2
+ static assertUnreachable(_x: never): never;
3
+ static clone<T>(value: T): T;
4
+ /**
5
+ * Find the greatest common divisor of 2 numbers
6
+ */
7
+ static gcd(a: number, b: number): number;
8
+ /**
9
+ * Find the least dividend and divisor by given quotient
10
+ */
11
+ static ldd(quotient: number, divisorLimit?: number): {
12
+ dividend: number;
13
+ divisor: number;
14
+ } | null;
15
+ /**
16
+ * Returns a function, that, as long as it continues to be invoked, will not
17
+ * be triggered. The function will be called after it stops being called for
18
+ * N milliseconds.
19
+ */
20
+ static debounce(func: (...args: any[]) => void, wait: number): (...args: unknown[]) => void;
21
+ static throttle<T extends (...args: any[]) => any>(func: T, wait: number): (...args: Parameters<T>) => ReturnType<T>;
22
+ static sleep: (s: number) => Promise<void>;
23
+ static nameof: <T>(name: keyof T) => keyof T;
24
+ static unsubscribe(sub: UnsubscribeMethod | UnsubscribeMethod[]): void;
25
+ static notNullValues(target: object): any[];
26
+ }
27
+ export type Without<T, K> = Pick<T, Exclude<keyof T, K>>;
28
+ export type UnsubscribeMethod = () => void;
@@ -0,0 +1,100 @@
1
+ export class Utils {
2
+ static assertUnreachable(_x) {
3
+ throw new Error("Didn't expect to get here");
4
+ }
5
+ static clone(value) {
6
+ return structuredClone(value);
7
+ }
8
+ /**
9
+ * Find the greatest common divisor of 2 numbers
10
+ */
11
+ static gcd(a, b) {
12
+ a = Math.abs(a);
13
+ b = Math.abs(b);
14
+ if (b > a) {
15
+ const temp = a;
16
+ a = b;
17
+ b = temp;
18
+ }
19
+ while (true) {
20
+ if (b === 0) {
21
+ return a;
22
+ }
23
+ a %= b;
24
+ if (a === 0) {
25
+ return b;
26
+ }
27
+ b %= a;
28
+ }
29
+ }
30
+ /**
31
+ * Find the least dividend and divisor by given quotient
32
+ */
33
+ static ldd(quotient, divisorLimit = 1000000) {
34
+ let divisor = 1;
35
+ while (divisor <= divisorLimit) {
36
+ const dividend = quotient * divisor;
37
+ if (dividend % 1 === 0) {
38
+ return { dividend, divisor };
39
+ }
40
+ divisor++;
41
+ }
42
+ return null;
43
+ }
44
+ /**
45
+ * Returns a function, that, as long as it continues to be invoked, will not
46
+ * be triggered. The function will be called after it stops being called for
47
+ * N milliseconds.
48
+ */
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
+ static debounce(func, wait) {
51
+ let timeout;
52
+ return (...args) => {
53
+ const later = () => {
54
+ func.apply(this, args);
55
+ };
56
+ clearTimeout(timeout);
57
+ timeout = window.setTimeout(later, wait);
58
+ };
59
+ }
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ static throttle(func, wait) {
62
+ // Capture the current time
63
+ let time = Date.now();
64
+ return (...args) => {
65
+ if (time + wait - Date.now() <= 0) {
66
+ time = Date.now();
67
+ // Run the function we've passed to our throttler,
68
+ // and reset the `time` variable (so we can check again).
69
+ return func.apply(this, args);
70
+ }
71
+ return null;
72
+ };
73
+ }
74
+ static sleep = async (s) => {
75
+ await setTimeout(() => {
76
+ return;
77
+ }, s);
78
+ };
79
+ static nameof = (name) => name;
80
+ static unsubscribe(sub) {
81
+ if (!sub) {
82
+ return;
83
+ }
84
+ const unsubscribeSingle = (sub) => {
85
+ if (!sub) {
86
+ return;
87
+ }
88
+ sub();
89
+ };
90
+ if (sub instanceof Array) {
91
+ sub.forEach(unsubscribeSingle);
92
+ }
93
+ else {
94
+ unsubscribeSingle(sub);
95
+ }
96
+ }
97
+ static notNullValues(target) {
98
+ return Object.values(target).filter((x) => !!x);
99
+ }
100
+ }
@@ -0,0 +1,2 @@
1
+ export { type ShortVideoViewerModel } from './short-videos/short-video-viewer';
2
+ export * from './core/enums';
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export {} from './short-videos/short-video-viewer';
2
+ export * from './core/enums';
@@ -0,0 +1,4 @@
1
+ import { Currency } from '../core/enums';
2
+ export declare const toPriceRepresentation: (amount: number, currency: Currency, includeCurrency?: boolean) => string;
3
+ export declare const shouldUseSalePrice: (price: number, salePrice: number | null, effectiveDateFrom: string | null, effectiveDateTo: string | null) => boolean;
4
+ export declare const isSalePriceEffective: (salePrice: number | null, effectiveDateFrom: string | null, effectiveDateTo: string | null) => boolean;