Georg Fischer e1fcddaca7 fix typo
2015-12-31 16:54:56 +01:00

107 lines
2.5 KiB
JavaScript

/*global define*/
define(
[ 'util/dom', 'util/localizetext' ],
function ( domHelper, loc ) {
var svgEls = [ 'g', 'svg', 'rect' ];
var svgNameSpace = 'http://www.w3.org/2000/svg';
function createEl ( elementStr, cssClasses, parentEl ) {
var hasNameSpace = svgEls.indexOf( elementStr ) !== -1;
var el = hasNameSpace ? document.createElementNS( svgNameSpace, elementStr ) : document.createElement( elementStr );
if ( hasNameSpace ) {
document.createElementNS( 'http://www.w3.org/2000/svg', 'rect' );
}
cssClasses = typeof cssClasses === 'string' ? [ ].concat( cssClasses.split( ' ' ) ) : cssClasses;
if ( Array.isArray( cssClasses ) ) {
cssClasses.forEach( function ( cssClass ) {
el.classList.add( cssClass );
} );
}
if ( parentEl && parentEl.appendChild ) {
parentEl.appendChild( el );
}
return el;
}
function createButton ( content, title, cssClasses, parentEl, onClick ) {
var btnEl = createEl( 'button', cssClasses, parentEl );
if ( typeof content === 'string' ) {
// btnEl.textContent = content;
loc( btnEl, 'textContent', content );
} else {
if ( domHelper.isElement( content ) ) {
btnEl.appendChild( content );
}
}
// btnEl.title = title;
loc( btnEl, 'title', title );
if ( typeof onClick === 'function' ) {
btnEl.addEventListener( 'click', onClick );
}
return btnEl;
}
function createLink ( content, title, href, target, cssClasses, parentEl ) {
var linkEl = createEl( 'a', cssClasses, parentEl );
if ( typeof content === 'string' ) {
// linkEl.textContent = content;
loc( linkEl, 'textContent', content );
} else {
if ( domHelper.isElement( content ) ) {
linkEl.appendChild( content );
}
}
if ( title ) {
// linkEl.title = title;
loc( linkEl, 'title', title );
}
if ( href ) {
linkEl.href = href;
}
if ( target ) {
linkEl.target = target;
}
return linkEl;
}
function createLabel ( content, forId, cssClasses, parentEl ) {
var labelEl = createEl( 'label', cssClasses, parentEl );
if ( typeof content === 'string' ) {
// labelEl.textContent = content;
loc( labelEl, 'textContent', content );
} else {
if ( domHelper.isElement( content ) ) {
labelEl.appendChild( content );
}
}
if ( forId ) {
labelEl.setAttribute( 'for', forId );
}
return labelEl;
}
return {
createEl: createEl,
createButton: createButton,
createLink: createLink,
createLabel: createLabel
}
}
);