2020-02-10 14:50:57 +01:00
"use strict" ;
2013-02-20 21:53:15 +01:00
/ * *
2013-04-13 21:00:13 +02:00
* EGroupware eTemplate2 - JS widget class for an iframe
2013-02-20 21:53:15 +01:00
*
* @ license http : //opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @ package etemplate
* @ subpackage api
* @ link http : //www.egroupware.org
* @ author Nathan Gray
* @ copyright Nathan Gray 2013
* /
2020-02-10 14:50:57 +01:00
var _ _extends = ( this && this . _ _extends ) || ( function ( ) {
var extendStatics = function ( d , b ) {
extendStatics = Object . setPrototypeOf ||
( { _ _proto _ _ : [ ] } instanceof Array && function ( d , b ) { d . _ _proto _ _ = b ; } ) ||
function ( d , b ) { for ( var p in b ) if ( b . hasOwnProperty ( p ) ) d [ p ] = b [ p ] ; } ;
return extendStatics ( d , b ) ;
} ;
return function ( d , b ) {
extendStatics ( d , b ) ;
function _ _ ( ) { this . constructor = d ; }
d . prototype = b === null ? Object . create ( b ) : ( _ _ . prototype = b . prototype , new _ _ ( ) ) ;
} ;
} ) ( ) ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
2013-02-20 21:53:15 +01:00
/ * e g w : u s e s
et2 _core _valueWidget ;
* /
2020-02-10 14:50:57 +01:00
var et2 _core _valueWidget _1 = require ( "./et2_core_valueWidget" ) ;
var et2 _core _widget _1 = require ( "./et2_core_widget" ) ;
var et2 _core _inheritance _1 = require ( "./et2_core_inheritance" ) ;
2013-04-13 21:00:13 +02:00
/ * *
* @ augments et2 _valueWidget
* /
2020-02-10 14:50:57 +01:00
var et2 _iframe = /** @class */ ( function ( _super ) {
_ _extends ( et2 _iframe , _super ) ;
/ * *
* Constructor
*
* @ memberOf et2 _iframe
* /
function et2 _iframe ( _parent , _attrs , _child ) {
var _this =
// Call the inherited constructor
_super . call ( this , _parent , _attrs , et2 _core _inheritance _1 . ClassWithAttributes . extendAttributes ( et2 _iframe . _attributes , _child || { } ) ) || this ;
_this . htmlNode = null ;
// Allow no child widgets
_this . supportedWidgetClasses = [ ] ;
_this . htmlNode = jQuery ( document . createElement ( "iframe" ) ) ;
if ( _this . options . label ) {
_this . htmlNode . append ( '<span class="et2_label">' + _this . options . label + '</span>' ) ;
}
if ( _this . options . fullscreen ) {
_this . htmlNode . attr ( 'allowfullscreen' , 1 ) ;
}
_this . setDOMNode ( _this . htmlNode [ 0 ] ) ;
return _this ;
}
/ * *
* Set name of iframe ( to be used as target for links )
*
* @ param _name
* /
et2 _iframe . prototype . set _name = function ( _name ) {
this . options . name = _name ;
this . htmlNode . attr ( 'name' , _name ) ;
} ;
2020-04-29 12:29:35 +02:00
et2 _iframe . prototype . set _allow = function ( _allow ) {
this . options . allow = _allow ;
this . htmlNode . attr ( 'allow' , _allow ) ;
} ;
2020-02-10 14:50:57 +01:00
/ * *
* Make it look like part of the containing document
*
* @ param _seamless boolean
* /
et2 _iframe . prototype . set _seamless = function ( _seamless ) {
this . options . seamless = _seamless ;
this . htmlNode . attr ( "seamless" , _seamless ) ;
} ;
et2 _iframe . prototype . set _value = function ( _value ) {
if ( typeof _value == "undefined" )
_value = "" ;
if ( _value . trim ( ) . indexOf ( "http" ) == 0 || _value . indexOf ( 'about:' ) == 0 || _value [ 0 ] == '/' ) {
// Value is a URL
this . set _src ( _value ) ;
}
else {
// Value is content
this . set _srcdoc ( _value ) ;
}
} ;
/ * *
* Set the URL for the iframe
*
* Sets the src attribute to the given value
*
* @ param _value String URL
* /
et2 _iframe . prototype . set _src = function ( _value ) {
if ( _value . trim ( ) != "" ) {
if ( _value . trim ( ) == 'about:blank' ) {
this . htmlNode . attr ( "src" , _value ) ;
}
else {
// Load the new page, but display a loader
var loader _1 = jQuery ( '<div class="et2_iframe loading"/>' ) ;
this . htmlNode
. before ( loader _1 ) ;
window . setTimeout ( jQuery . proxy ( function ( ) {
this . htmlNode . attr ( "src" , _value )
. one ( 'load' , function ( ) {
loader _1 . remove ( ) ;
} ) ;
} , this ) , 0 ) ;
}
}
} ;
/ * *
* Sets the content of the iframe
*
* Sets the srcdoc attribute to the given value
*
* @ param _value String Content of a document
* /
et2 _iframe . prototype . set _srcdoc = function ( _value ) {
this . htmlNode . attr ( "srcdoc" , _value ) ;
} ;
et2 _iframe . _attributes = {
'label' : {
'default' : "" ,
description : "The label is displayed by default in front (for radiobuttons behind) each widget (if not empty). If you want to specify a different position, use a '%s' in the label, which gets replaced by the widget itself. Eg. '%s Name' to have the label Name behind a checkbox. The label can contain variables, as descript for name. If the label starts with a '@' it is replaced by the value of the content-array at this index (with the '@'-removed and after expanding the variables)." ,
ignore : false ,
name : "Label" ,
translate : true ,
type : "string"
} ,
"needed" : {
"ignore" : true
} ,
"seamless" : {
name : "Seamless" ,
'default' : true ,
description : "Specifies that the iframe should be rendered in a manner that makes it appear to be part of the containing document" ,
translate : false ,
type : "boolean"
} ,
"name" : {
name : "Name" ,
"default" : "" ,
description : "Specifies name of frame, to be used as target for links" ,
type : "string"
} ,
fullscreen : {
name : "Fullscreen" ,
"default" : false ,
description : "Make the iframe compatible to be a fullscreen video player mode" ,
type : "boolean"
} ,
src : {
name : "Source" ,
"default" : "" ,
description : "Specifies URL for the iframe" ,
type : "string"
2020-04-29 12:29:35 +02:00
} ,
allow : {
name : "Allow" ,
"default" : "" ,
description : "Specifies list of allow features, e.g. camera" ,
type : "string"
2020-02-10 14:50:57 +01:00
}
} ;
return et2 _iframe ;
} ( et2 _core _valueWidget _1 . et2 _valueWidget ) ) ;
et2 _core _widget _1 . et2 _register _widget ( et2 _iframe , [ "iframe" ] ) ;
//# sourceMappingURL=et2_widget_iframe.js.map