Yiannis Stergiou aa6520daac
Frontent dev env (#247)
* Added frontend development files/environment

* More items-categories related removals

* Improvements in pages templates (inc. static pages)

* Improvements in video player

* Added empty home page message + cta

* Updates in media, playlist and management pages

* Improvements in material icons font loading

* Replaced media & playlists links in frontend dev-env

* frontend package version update

* chnaged frontend dev url port

* static files update

* Changed default position of theme switcher

* enabled frontend docker container
2021-07-11 18:01:34 +03:00

193 lines
5.1 KiB
JavaScript
Executable File

import {
generateControlBarComponents,
controlBarComponentsStructs,
generateCornerLayersComponents,
generateActionsAnimationsComponents,
generateLoadingSpinnerComponent,
generateTouchControlComponents
} from './functions-helpers';
export function setControlBarComponents(pluginInstncRef, options, player) {
if ( isDefined( options ) && isDefined( options.controlBar ) ) {
generateControlBarComponents(pluginInstncRef)( controlBarComponentsStructs(pluginInstncRef, options), player.getChild('controlBar') );
}
}
export function setCornerLayersComponents(pluginInstncRef, options) {
if ( isDefined( options ) ) {
generateCornerLayersComponents(pluginInstncRef, options);
}
}
export function setActionsAnimationsComponents(pluginInstncRef) {
generateActionsAnimationsComponents(pluginInstncRef);
}
export function replaceLoadingSpinnerComponent(pluginInstncRef) {
generateLoadingSpinnerComponent(pluginInstncRef);
}
export function setTouchControlComponents(pluginInstncRef, options) {
generateTouchControlComponents(pluginInstncRef, options);
}
export function removeClassname(el, cls) {
if (el.classList) {
el.classList.remove(cls);
} else {
el.className = el.className.replace(new RegExp('(^|\\b)' + cls.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
}
}
export function addClassname(el, cls) {
if (el.classList) {
el.classList.add(cls);
} else {
el.className += ' ' + cls;
}
}
export function centralizeBoxPosition(vw, vh, vr, pw, ph, pr) {
const ret = {};
const videoRatio = isDefined( vr ) && ! isNull( vr ) ? vr : vw / vh,
playerRatio = isDefined( pr ) && ! isNull( pr ) ? pr : pw / ph,
playerVerticalOrientation = 1 > playerRatio,
videoVerticalOrientation = 1 > videoRatio;
if (!playerVerticalOrientation) {
if (!videoVerticalOrientation) {
// Both ARE NOT "vertical";
if (videoRatio > playerRatio) {
if (vw >= pw) {
ret.w = pw;
ret.h = ret.w / videoRatio;
} else {
ret.w = vw;
ret.h = vh;
}
} else {
ret.h = vw >= pw ? ph : (vh >= ph ? ph : vh);
ret.w = ret.h * videoRatio;
}
} else {
// Video IS "vertical" and player IS NOT "vertical";
if (vh >= ph) {
ret.h = ph;
ret.w = ret.h * videoRatio;
} else {
ret.w = vw;
ret.h = vh;
}
}
} else if (!videoVerticalOrientation) {
// Player IS "vertical" and video IS NOT "vertical";
if (vw >= pw) {
ret.w = pw;
ret.h = ret.w / videoRatio;
} else {
ret.w = vw;
ret.h = vh;
}
} else {
// Both ARE "vertical";
if (videoRatio > playerRatio) {
if (vw >= pw) {
ret.w = pw;
ret.h = ret.w / videoRatio;
} else {
ret.w = vw;
ret.h = vh;
}
} else if (vw >= pw) {
ret.h = ph;
ret.w = ret.h * videoRatio;
} else if (vh >= ph) {
ret.h = ph;
ret.w = ret.h * videoRatio;
} else {
ret.w = vw;
ret.h = vh;
}
}
ret.t = (ph - ret.h) / 2;
ret.l = (pw - ret.w) / 2;
return ret;
}
export function isBoolean(v){
return "boolean" === typeof v || v instanceof Boolean;
}
export function isString(v){
return "string" === typeof v || v instanceof String;
}
export function isDefined(v){
return void 0 != v;
}
export function isNull(v){
return null === v;
}
export function isArray(v){
return ! Array.isArray ? '[object Array]' === Object.prototype.toString.call(v) : Array.isArray(v);
}
export function ifBooleanElse(bol, els){
return isBoolean(bol) ? bol : els;
}
export function applyCssTransform(elem, val){
val = val.replace(/ /g,""); // Remove all blank characters, otherwise doesn't work in IE.
elem.style.transform = val;
elem.style.msTransform = val;
elem.style.MozTransform = val;
elem.style.WebkitTransform = val;
elem.style.OTransform = val;
}
function browserSupports_csstransforms() {
var i, v, b = document.body || document.documentElement, s = b.style, p = 'transition';
if ( 'string' === typeof s[p] ) {
return true;
}
v = ['Moz', 'webkit', 'Webkit', 'Khtml', 'O', 'ms'];
p = p.charAt(0).toUpperCase() + p.substr(1);
i=0;
while(i<v.length){
if ( 'string' === typeof s[v[i]+p] ) {
return true;
}
i+=1;
}
return false;
}
export function browserSupports(type){
switch(type){
case 'csstransforms':
return browserSupports_csstransforms();
}
return null;
}