import { DatePipe } from '@angular/common'
+import { SelectChannelItem } from '@app/shared/shared-forms'
import { environment } from '../../environments/environment'
import { AuthService } from '../core/auth'
function populateAsyncUserVideoChannels (
authService: AuthService,
- channel: { id: number, label: string, support?: string, avatarPath?: string, recent?: boolean }[]
+ channel: SelectChannelItem[]
) {
return new Promise(res => {
authService.userInformationLoaded
window.scroll(0, 0)
}
-// Thanks: https://github.com/uupaa/dynamic-import-polyfill
-function importModule (path: string) {
- return new Promise((resolve, reject) => {
- const vector = '$importModule$' + Math.random().toString(32).slice(2)
- const script = document.createElement('script')
-
- const destructor = () => {
- delete window[ vector ]
- script.onerror = null
- script.onload = null
- script.remove()
- URL.revokeObjectURL(script.src)
- script.src = ''
- }
-
- script.defer = true
- script.type = 'module'
-
- script.onerror = () => {
- reject(new Error(`Failed to import: ${path}`))
- destructor()
- }
- script.onload = () => {
- resolve(window[ vector ])
- destructor()
- }
- const absURL = (environment.apiUrl || window.location.origin) + path
- const loader = `import * as m from "${absURL}"; window.${vector} = m;` // export Module
- const blob = new Blob([ loader ], { type: 'text/javascript' })
- script.src = URL.createObjectURL(blob)
-
- document.head.appendChild(script)
- })
-}
-
function isInViewport (el: HTMLElement) {
const bounding = el.getBoundingClientRect()
return (
getAbsoluteEmbedUrl,
objectLineFeedToHtml,
removeElementFromArray,
- importModule,
scrollToTop,
isInViewport,
isXPercentInViewport