UNPKG

@doodad-js/widgets

Version:
2 lines 4.4 kB
// Copyright 2015-2018 Claude Petit, licensed under Apache License version 2.0 "use strict";exports.add=function add(modules){modules=(modules||{});modules['Doodad.Widgets.Client']={version:'1.1.1a',dependencies:['Doodad.Widgets',],create:function create(root,_options,_shared){const doodad=root.Doodad,widgets=doodad.Widgets,types=doodad.Types,tools=doodad.Tools,client=doodad.Client,io=doodad.IO,clientIO=client.IO,ioMixIns=io.MixIns,mixIns=doodad.MixIns,widgetsMixIns=widgets.MixIns;widgetsMixIns.REGISTER(doodad.MIX_IN(widgetsMixIns.AttributesBase.$extend({$TYPE_NAME:'Attributes',$TYPE_UUID:'' +'dc8f0693-eb5e-4e0f-b9d9-2a6fea69b3bc',applyAttributes:doodad.PROTECTED(function applyAttributes(cssClassNames,elements){if(client.isElement(elements)){elements=[elements]};if(root.DD_ASSERT){root.DD_ASSERT(types.isArrayLike(elements),"Invalid elements array.");root.DD_ASSERT(tools.every(elements,client.isElement),"Invalid elements array.")};const attributes=this.getAttributes(cssClassNames),keys=types.keys(attributes),keysLen=keys.length,elementsLen=elements.length;for(let i=0;i<keysLen;i++){const name=keys[i];const val=attributes[name];for(let j=0;j<elementsLen;j++){if(types.has(elements,j)){if(types.isNothing(val)){elements[j].removeAttribute(name)}else{elements[j].setAttribute(name,val)}}}}}),})));widgetsMixIns.REGISTER(doodad.MIX_IN(widgetsMixIns.Attributes.$extend(widgetsMixIns.IdentitiesBase,{$TYPE_NAME:'Identities',$TYPE_UUID:'' +'3a1b1584-4a11-4861-ba05-781ccc90d3c6',applyIdentity:doodad.PROTECTED(function applyIdentity(cssClassNames,elements){if(client.isElement(elements)){elements=[elements]};if(root.DD_ASSERT){root.DD_ASSERT(types.isArrayLike(elements),"Invalid elements array.");root.DD_ASSERT(tools.every(elements,client.isElement),"Invalid elements array.")};const attributes=this.getAttributes(cssClassNames),elementsLen=elements.length;for(let i=0;i<elementsLen;i++){if(types.has(elements,i)){const element=elements[i];if(types.isNothing(attributes.id)){element.removeAttribute('id')}else{element.setAttribute('id',attributes.id)};if(types.isNothing(attributes.name)){element.removeAttribute('name')}else{element.setAttribute('name',attributes.name)};if(types.isNothing(attributes['class'])){element.removeAttribute('class')}else{element.setAttribute('class',attributes['class'])}}}}),})));widgetsMixIns.REGISTER(doodad.MIX_IN(widgetsMixIns.Attributes.$extend(widgetsMixIns.StylesBase,{$TYPE_NAME:'Styles',$TYPE_UUID:'' +'aefec003-2d37-49c8-9109-e75ccb40ca8b',applyStyles:doodad.PROTECTED(function applyStyles(cssClassNames,elements){if(client.isElement(elements)){elements=[elements]};if(root.DD_ASSERT){root.DD_ASSERT(types.isArrayLike(elements),"Invalid elements array.");root.DD_ASSERT(tools.every(elements,client.isElement),"Invalid elements array.")};const styles=this.getStyles(cssClassNames),keys=types.keys(styles),keysLen=keys.length,elementsLen=elements.length;for(let i=0;i<keysLen;i++){const name=keys[i];let val=styles[name];if(types.isNothing(val)){val=null}else if(types.isFunction(val.toString)){val=val.toString()};for(let j=0;j<elementsLen;j++){if(types.has(elements,j)){elements[j].style[name]=val}}}}),})));widgetsMixIns.REGISTER(doodad.MIX_IN(widgetsMixIns.RenderBase.$extend({$TYPE_NAME:'Render',$TYPE_UUID:'' +'1d8beadf-87f1-47ec-87b0-a35d9447f960',acquire:doodad.OVERRIDE(doodad.CALL_FIRST(function acquire(){if(types._instanceof(this,clientIO.DomOutputStream)){this._super()}else{this.overrideSuper()}})),release:doodad.OVERRIDE(doodad.CALL_FIRST(function release(){if(types._instanceof(this,clientIO.DomOutputStream)){this._super()}else{this.overrideSuper()}})),})));widgetsMixIns.REGISTER(doodad.MIX_IN(doodad.Class.$extend(widgetsMixIns.Render,{$TYPE_NAME:'Widget',$TYPE_UUID:'' +'8bc7e34d-60d2-4e89-b280-8c7168d01ff2',})));widgetsMixIns.REGISTER(doodad.MIX_IN(widgetsMixIns.Widget.$extend(widgetsMixIns.Attributes,widgetsMixIns.Identities,widgetsMixIns.Styles,mixIns.JsEvents,{$TYPE_NAME:'HtmlWidget',$TYPE_UUID:'' +'a1889ed1-4375-4f89-be5e-9218b6a3fdc5',})));widgets.REGISTER(doodad.BASE(io.TextOutputStream.$extend(ioMixIns.TextTransformableOut,widgetsMixIns.Widget,{$TYPE_NAME:'Widget',$TYPE_UUID:'' +'c7f9d45c-36b2-43f7-9c22-a3b80d146073',})));widgets.REGISTER(doodad.BASE(clientIO.DomOutputStream.$extend(widgetsMixIns.HtmlWidget,{$TYPE_NAME:'HtmlWidget',$TYPE_UUID:'' +'d4eed2f0-f444-43e8-816d-2afa7cae8b58',})))},};return modules};