{"version":3,"sources":["webpack:///osjsDialogs/webpack/universalModuleDefinition","webpack:///osjsDialogs/webpack/bootstrap","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/createClass.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/get.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/inherits.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///osjsDialogs/node_modules/@babel/runtime/regenerator/index.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/typeof.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///osjsDialogs/node_modules/is-plain-object/index.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///osjsDialogs/node_modules/isobject/index.js","webpack:///osjsDialogs/node_modules/regenerator-runtime/runtime.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/superPropBase.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///osjsDialogs/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///osjsDialogs/node_modules/hyperapp/src/index.js","webpack:///osjsDialogs/node_modules/deepmerge/dist/es.js","webpack:///osjsDialogs/src/components/Element.js","webpack:///osjsDialogs/src/components/Box.js","webpack:///osjsDialogs/src/components/BoxContainer.js","webpack:///osjsDialogs/src/components/BoxStyled.js","webpack:///osjsDialogs/src/components/Icon.js","webpack:///osjsDialogs/src/utils.js","webpack:///osjsDialogs/src/element.js","webpack:///osjsDialogs/src/components/Button.js","webpack:///osjsDialogs/src/components/Progressbar.js","webpack:///osjsDialogs/src/components/Menu.js","webpack:///osjsDialogs/src/components/Toolbar.js","webpack:///osjsDialogs/node_modules/hyperapp-nestable/src/index.js","webpack:///osjsDialogs/src/components/Panes.js","webpack:///osjsDialogs/src/components/ListView.js","webpack:///osjsDialogs/src/components/Tabs.js","webpack:///osjsDialogs/src/components/IconView.js","webpack:///osjsDialogs/src/components/TextField.js","webpack:///osjsDialogs/src/components/TextareaField.js","webpack:///osjsDialogs/src/components/SelectField.js","webpack:///osjsDialogs/src/components/ToggleField.js","webpack:///osjsDialogs/src/components/RangeField.js","webpack:///osjsDialogs/src/components/Expander.js","webpack:///osjsDialogs/src/components/Label.js","webpack:///osjsDialogs/src/contextmenu.js","webpack:///osjsDialogs/src/provider.js","webpack:///osjsDialogs/src/dialog.js","webpack:///osjsDialogs/src/dialogs/alert.js","webpack:///osjsDialogs/src/dialogs/confirm.js","webpack:///osjsDialogs/src/dialogs/prompt.js","webpack:///osjsDialogs/src/dialogs/progress.js","webpack:///osjsDialogs/src/dialogs/color.js","webpack:///osjsDialogs/src/dialogs/font.js","webpack:///osjsDialogs/src/dialogs/file.js","webpack:///osjsDialogs/src/dialogs/choice.js","webpack:///osjsDialogs/src/dialogs/default-application.js","webpack:///osjsDialogs/src/dialogs/custom.js","webpack:///../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///../node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///../node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///../node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///../node_modules/hyperapp/src/index.js","webpack:///../src/components/Element.js","webpack:///../src/components/Box.js","webpack:///../src/components/BoxContainer.js","webpack:///../src/components/BoxStyled.js","webpack:///../node_modules/@babel/runtime/helpers/typeof.js","webpack:///../src/components/Icon.js","webpack:///../node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///../src/utils.js","webpack:///../src/element.js","webpack:///../src/components/Button.js","webpack:///../src/components/Progressbar.js","webpack:///../src/components/Menu.js","webpack:///../src/components/Toolbar.js","webpack:///../src/components/Statusbar.js","webpack:///../src/components/Menubar.js","webpack:///../node_modules/hyperapp-nestable/src/index.js","webpack:///../src/components/Panes.js","webpack:///../src/components/ListView.js","webpack:///../src/components/IconView.js","webpack:///../src/components/Image.js","webpack:///../src/components/Video.js","webpack:///../src/components/Tabs.js","webpack:///../src/components/Iframe.js","webpack:///../src/components/TextField.js","webpack:///../src/components/TextareaField.js","webpack:///../src/components/SelectField.js","webpack:///../src/components/ToggleField.js","webpack:///../src/components/RangeField.js","webpack:///../src/components/Expander.js","webpack:///../src/components/Label.js","webpack:///../node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack:///../node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///../node_modules/@babel/runtime/helpers/createClass.js","webpack:///../node_modules/regenerator-runtime/runtime.js","webpack:///../node_modules/@babel/runtime/regenerator/index.js","webpack:///../src/contextmenu.js","webpack:///../src/provider.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/process/browser.js","webpack:///(webpack)/buildin/global.js"],"names":["root","factory","module","exports","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","instance","Constructor","TypeError","_defineProperties","target","props","length","descriptor","configurable","writable","protoProps","staticProps","superPropBase","_get","receiver","Reflect","base","desc","getOwnPropertyDescriptor","subClass","superClass","constructor","_typeof","assertThisInitialized","self","obj","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","iterator","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arr","isObject","isObjectObject","toString","ctor","prot","len","arr2","Array","arrayLikeToArray","minLen","slice","from","test","arrayWithHoles","iterableToArrayLimit","nonIterableRest","isArray","iter","val","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","method","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","result","__await","unwrapped","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","mark","awrap","async","keys","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_setPrototypeOf","ReferenceError","_i","_s","_e","_arr","_n","_d","attributes","rest","children","node","nodeName","app","actions","view","container","skipRender","map","rootElement","oldNode","recycleElement","element","toLowerCase","childNodes","nodeType","nodeValue","lifecycle","isRecycling","globalState","clone","wiredActions","wireStateToActions","path","action","data","getPartialState","scheduleRender","setPartialState","concat","resolveNode","render","patch","parent","isSvg","newElement","createElement","document","createTextNode","createElementNS","oncreate","appendChild","updateAttribute","insertBefore","removeElement","oldAttributes","cb","onupdate","updateElement","oldKeyed","newKeyed","oldElements","oldChildren","oldKey","getKey","k","newKey","keyedNode","setTimeout","source","out","eventListener","event","currentTarget","events","oldValue","style","cssText","setProperty","addEventListener","removeEventListener","setAttribute","removeAttribute","removeChild","removeChildren","ondestroy","onremove","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","options","deepmerge","defaultArrayMerge","arrayMerge","sourceIsArray","destination","mergeObject","all","array","reduce","e","f","unitValue","boxPropNames","grow","flexGrow","shrink","flexShrink","basis","flexBasis","align","alignItems","justify","justifyContent","padding","margin","Element","givenClassNames","classNames","defaultStyle","h","Box","orientation","BoxContainer","Icon","backgroundImage","filteredProps","filterKeys","doubleTap","timeout","tapped","timer","clearTimeout","ev","createField","oninput","onchange","onkeydown","getValue","cbInput","fieldProps","Button","inner","icon","label","Progressbar","Math","className","width","Menu","id","display","top","String","left","ul","level","child","checked","items","onmouseover","ontouchend","onclick","Toolbar","nestable","tagname","class","wired","v","el","panes","spacers","onmousedown","clientX","clientY","pane","offsetWidth","offsetHeight","index","maxWidth","maxHeight","mousemove","size","diffX","diffY","mouseup","w","flex","a","tapper","sizes","init","setSize","ListView","col","zebra","row","selected","colIcon","ontouchstart","ondblclick","oncontextmenu","createView","listView","newProps","columns","rows","onselect","onactivate","selectedIndex","scrollTop","select","activate","contextmenu","created","setRows","setColumns","setScrollTop","setSelectedIndex","headers","labels","TextField","autocomplete","autocorrect","autocapitalize","spellcheck","TextareaField","SelectField","choices","getChoices","parseValue","JSON","ToggleField","RangeField","active","ative","ontoggle","ContextMenu","core","callback","$element","$root","isActive","visible","menu","position","clamp","newPosition","bottom","currentPosition","right","offY","offX","overflowRight","overflowBottom","clampMenu","_this","onshow","clampTimeout","parentNode","offsetParent","rect","clampSubMenu","show","toggle","box","onclose","hide","validContextMenuTarget","isValid","tagName","dialogCount","destroy","contextmenuApi","_this2","once","Dialog","merge","defaultValue","buttons","sound","title","gravity","resizable","maximizable","minimizable","sessionable","minDimension","height","plain","createOptions","win","calledBack","_","make","translate","defs","ok","positive","close","cancel","yes","no","defaultButtons","assign","defaultButton","opts","on","keyCode","emitCallback","getNegativeButton","focus","focusButton","btn","$content","querySelector","playSound","createButtons","states","emit","b","disabled","console","debug","has","snd","play","found","find","AlertDialog","message","ontop","msg","stack","readonly","placeholder","ConfirmDialog","yesno","PromptDialog","setValue","onenter","getPositiveButton","ProgressDialog","progress","status","setProgress","setStatus","componentToHex","g","parseInt","join","toUpperCase","ColorDialog","hex","rgb","color","replace","canvas","gradient","ctx","getContext","createLinearGradient","addColorStop","fillStyle","fillRect","createPalette","initialState","rangeContainer","min","max","setComponent","updateHex","setColor","getBoundingClientRect","cx","x","cy","y","getImageData","colorFromClick","FontDialog","minSize","maxSize","unit","text","controls","fonts","fontSizes","fill","fontNames","fontStyles","initialActions","setFont","setStyle","indexOf","fontFamily","fontSize","fontWeight","fontStyle","overflow","whiteSpace","FileDialog","filetype","config","filename","mime","isDirectory","split","warn","dimension","getFileIcon","file","startingLocation","str","mount","listview","_readdir","files","humanSize","setButtonState","setMountpoint","setPath","readdir","filter","item","some","RegExp","setFilename","isFile","mountpoints","readOnly","visibility","mounts","isSave","buttonCancel","hasVfs","confirm","modal","exists","ChoiceDialog","current","setCurrent","DefaultApplicationDialog","setLocalState","oldState","newState","setChecked","CustomDialog","valueCallback","styles","dialogWindow","dialog","$el","DialogServiceProvider","registry","alert","prompt","font","choice","defaultApplication","singleton","register","classRef","unset","prop","BoxStyled","src","_defineProperty","preventDefault","defaultProps","abs","Statusbar","MenubarItem","Menubar","_$r","_$p","_$c","_$u","uninit","previousSibling","ceil","Panes","debounceScroll","cols","paneIndex","rowIndex","unshift","hideColumns","onscroll","component","scroll","IconViewEntry","IconView","entries","iconView","setEntries","Image","sources","list","isTrue","Video","poster","loop","muted","autoplay","onloadeddata","onload","Tabs","Iframe","frameborder","textContent","parse","Expander","Label","placement","elementProps","enqueue","rootEntry","require$$0","classList","contains","remove","add","Event","closeable","destroyed","GUIServiceProvider","getElementById","stopPropagation","hit"],"mappings":"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AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,oDAAW;AAChC,cAAc,mBAAO,CAAC,gDAAS;AAC/B,cAAc,mBAAO,CAAC,gDAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC5vDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;;AAEnB;AACA;AACA,QAAQ,UAAU;;AAElB;AACA;;;;;;;;;;;;ACpFA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;ACJA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACvLtC;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C","file":"vendors~osjs.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"osjsDialogs\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"osjsDialogs\"] = factory();\n\telse\n\t\troot[\"osjsDialogs\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var superPropBase = require(\"./superPropBase.js\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export function h(name, attributes) {\n var rest = []\n var children = []\n var length = arguments.length\n\n while (length-- > 2) rest.push(arguments[length])\n\n while (rest.length) {\n var node = rest.pop()\n if (node && node.pop) {\n for (length = node.length; length--; ) {\n rest.push(node[length])\n }\n } else if (node != null && node !== true && node !== false) {\n children.push(node)\n }\n }\n\n return typeof name === \"function\"\n ? name(attributes || {}, children)\n : {\n nodeName: name,\n attributes: attributes || {},\n children: children,\n key: attributes && attributes.key\n }\n}\n\nexport function app(state, actions, view, container) {\n var map = [].map\n var rootElement = (container && container.children[0]) || null\n var oldNode = rootElement && recycleElement(rootElement)\n var lifecycle = []\n var skipRender\n var isRecycling = true\n var globalState = clone(state)\n var wiredActions = wireStateToActions([], globalState, clone(actions))\n\n scheduleRender()\n\n return wiredActions\n\n function recycleElement(element) {\n return {\n nodeName: element.nodeName.toLowerCase(),\n attributes: {},\n children: map.call(element.childNodes, function(element) {\n return element.nodeType === 3 // Node.TEXT_NODE\n ? element.nodeValue\n : recycleElement(element)\n })\n }\n }\n\n function resolveNode(node) {\n return typeof node === \"function\"\n ? resolveNode(node(globalState, wiredActions))\n : node != null\n ? node\n : \"\"\n }\n\n function render() {\n skipRender = !skipRender\n\n var node = resolveNode(view)\n\n if (container && !skipRender) {\n rootElement = patch(container, rootElement, oldNode, (oldNode = node))\n }\n\n isRecycling = false\n\n while (lifecycle.length) lifecycle.pop()()\n }\n\n function scheduleRender() {\n if (!skipRender) {\n skipRender = true\n setTimeout(render)\n }\n }\n\n function clone(target, source) {\n var out = {}\n\n for (var i in target) out[i] = target[i]\n for (var i in source) out[i] = source[i]\n\n return out\n }\n\n function setPartialState(path, value, source) {\n var target = {}\n if (path.length) {\n target[path[0]] =\n path.length > 1\n ? setPartialState(path.slice(1), value, source[path[0]])\n : value\n return clone(source, target)\n }\n return value\n }\n\n function getPartialState(path, source) {\n var i = 0\n while (i < path.length) {\n source = source[path[i++]]\n }\n return source\n }\n\n function wireStateToActions(path, state, actions) {\n for (var key in actions) {\n typeof actions[key] === \"function\"\n ? (function(key, action) {\n actions[key] = function(data) {\n var result = action(data)\n\n if (typeof result === \"function\") {\n result = result(getPartialState(path, globalState), actions)\n }\n\n if (\n result &&\n result !== (state = getPartialState(path, globalState)) &&\n !result.then // !isPromise\n ) {\n scheduleRender(\n (globalState = setPartialState(\n path,\n clone(state, result),\n globalState\n ))\n )\n }\n\n return result\n }\n })(key, actions[key])\n : wireStateToActions(\n path.concat(key),\n (state[key] = clone(state[key])),\n (actions[key] = clone(actions[key]))\n )\n }\n\n return actions\n }\n\n function getKey(node) {\n return node ? node.key : null\n }\n\n function eventListener(event) {\n return event.currentTarget.events[event.type](event)\n }\n\n function updateAttribute(element, name, value, oldValue, isSvg) {\n if (name === \"key\") {\n } else if (name === \"style\") {\n if (typeof value === \"string\") {\n element.style.cssText = value\n } else {\n if (typeof oldValue === \"string\") oldValue = element.style.cssText = \"\"\n for (var i in clone(oldValue, value)) {\n var style = value == null || value[i] == null ? \"\" : value[i]\n if (i[0] === \"-\") {\n element.style.setProperty(i, style)\n } else {\n element.style[i] = style\n }\n }\n }\n } else {\n if (name[0] === \"o\" && name[1] === \"n\") {\n name = name.slice(2)\n\n if (element.events) {\n if (!oldValue) oldValue = element.events[name]\n } else {\n element.events = {}\n }\n\n element.events[name] = value\n\n if (value) {\n if (!oldValue) {\n element.addEventListener(name, eventListener)\n }\n } else {\n element.removeEventListener(name, eventListener)\n }\n } else if (\n name in element &&\n name !== \"list\" &&\n name !== \"type\" &&\n name !== \"draggable\" &&\n name !== \"spellcheck\" &&\n name !== \"translate\" &&\n !isSvg\n ) {\n element[name] = value == null ? \"\" : value\n } else if (value != null && value !== false) {\n element.setAttribute(name, value)\n }\n\n if (value == null || value === false) {\n element.removeAttribute(name)\n }\n }\n }\n\n function createElement(node, isSvg) {\n var element =\n typeof node === \"string\" || typeof node === \"number\"\n ? document.createTextNode(node)\n : (isSvg = isSvg || node.nodeName === \"svg\")\n ? document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n node.nodeName\n )\n : document.createElement(node.nodeName)\n\n var attributes = node.attributes\n if (attributes) {\n if (attributes.oncreate) {\n lifecycle.push(function() {\n attributes.oncreate(element)\n })\n }\n\n for (var i = 0; i < node.children.length; i++) {\n element.appendChild(\n createElement(\n (node.children[i] = resolveNode(node.children[i])),\n isSvg\n )\n )\n }\n\n for (var name in attributes) {\n updateAttribute(element, name, attributes[name], null, isSvg)\n }\n }\n\n return element\n }\n\n function updateElement(element, oldAttributes, attributes, isSvg) {\n for (var name in clone(oldAttributes, attributes)) {\n if (\n attributes[name] !==\n (name === \"value\" || name === \"checked\"\n ? element[name]\n : oldAttributes[name])\n ) {\n updateAttribute(\n element,\n name,\n attributes[name],\n oldAttributes[name],\n isSvg\n )\n }\n }\n\n var cb = isRecycling ? attributes.oncreate : attributes.onupdate\n if (cb) {\n lifecycle.push(function() {\n cb(element, oldAttributes)\n })\n }\n }\n\n function removeChildren(element, node) {\n var attributes = node.attributes\n if (attributes) {\n for (var i = 0; i < node.children.length; i++) {\n removeChildren(element.childNodes[i], node.children[i])\n }\n\n if (attributes.ondestroy) {\n attributes.ondestroy(element)\n }\n }\n return element\n }\n\n function removeElement(parent, element, node) {\n function done() {\n parent.removeChild(removeChildren(element, node))\n }\n\n var cb = node.attributes && node.attributes.onremove\n if (cb) {\n cb(element, done)\n } else {\n done()\n }\n }\n\n function patch(parent, element, oldNode, node, isSvg) {\n if (node === oldNode) {\n } else if (oldNode == null || oldNode.nodeName !== node.nodeName) {\n var newElement = createElement(node, isSvg)\n parent.insertBefore(newElement, element)\n\n if (oldNode != null) {\n removeElement(parent, element, oldNode)\n }\n\n element = newElement\n } else if (oldNode.nodeName == null) {\n element.nodeValue = node\n } else {\n updateElement(\n element,\n oldNode.attributes,\n node.attributes,\n (isSvg = isSvg || node.nodeName === \"svg\")\n )\n\n var oldKeyed = {}\n var newKeyed = {}\n var oldElements = []\n var oldChildren = oldNode.children\n var children = node.children\n\n for (var i = 0; i < oldChildren.length; i++) {\n oldElements[i] = element.childNodes[i]\n\n var oldKey = getKey(oldChildren[i])\n if (oldKey != null) {\n oldKeyed[oldKey] = [oldElements[i], oldChildren[i]]\n }\n }\n\n var i = 0\n var k = 0\n\n while (k < children.length) {\n var oldKey = getKey(oldChildren[i])\n var newKey = getKey((children[k] = resolveNode(children[k])))\n\n if (newKeyed[oldKey]) {\n i++\n continue\n }\n\n if (newKey != null && newKey === getKey(oldChildren[i + 1])) {\n if (oldKey == null) {\n removeElement(element, oldElements[i], oldChildren[i])\n }\n i++\n continue\n }\n\n if (newKey == null || isRecycling) {\n if (oldKey == null) {\n patch(element, oldElements[i], oldChildren[i], children[k], isSvg)\n k++\n }\n i++\n } else {\n var keyedNode = oldKeyed[newKey] || []\n\n if (oldKey === newKey) {\n patch(element, keyedNode[0], keyedNode[1], children[k], isSvg)\n i++\n } else if (keyedNode[0]) {\n patch(\n element,\n element.insertBefore(keyedNode[0], oldElements[i]),\n keyedNode[1],\n children[k],\n isSvg\n )\n } else {\n patch(element, oldElements[i], null, children[k], isSvg)\n }\n\n newKeyed[newKey] = children[k]\n k++\n }\n }\n\n while (i < oldChildren.length) {\n if (getKey(oldChildren[i]) == null) {\n removeElement(element, oldElements[i], oldChildren[i])\n }\n i++\n }\n\n for (var i in oldKeyed) {\n if (!newKeyed[i]) {\n removeElement(element, oldKeyed[i][0], oldKeyed[i][1])\n }\n }\n }\n return element\n }\n}\n","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\n\n/**\n * Elemet Box definition\n * @property {string} [class] Container class name\n * @property {number} [grow] Flexbox grow value\n * @property {number} [shrink] Flexbox shrink value\n * @property {number|string} [basis] Flexbox basis value\n * @property {string} [align] Flexbox alignItems value\n * @property {string} [justify] Flexbox justifyContent value\n * @property {number|string} [padding] Margin\n * @property {number|string} [margin] Margin\n * @property {string} [key] Hyperapp element key\n * @property {Function} [oncreate] Hyperapp oncreate function\n * @property {Function} [onupdate] Hyperapp onupdate function\n * @property {Function} [ondestroy] Hyperapp ondestroy function\n * @typedef BoxProperties\n */\n\nconst unitValue = (value, unset) => typeof value === 'number'\n ? `${value}px`\n : (value === false ? unset : value);\n\nconst boxPropNames = {\n grow: value => ({flexGrow: value}),\n shrink: value => ({flexShrink: value}),\n basis: value => ({flexBasis: unitValue(value, 'auto')}),\n align: value => ({alignItems: value}),\n justify: value => ({justifyContent: value}),\n padding: value => ({margin: unitValue(value, '0')}),\n margin: value => ({margin: unitValue(value, '0')})\n};\n\n/**\n * A generic OS.js GUI container\n * @param {Object} props Properties\n * @param {h[]} children Children\n */\nexport const Element = (props, children = []) => {\n const givenClassNames = props.class instanceof Array\n ? props.class\n : [props.class];\n\n const classNames = [\n 'osjs-gui',\n ...givenClassNames\n ];\n\n if (props.orientation) {\n classNames.push('osjs-gui-' + props.orientation);\n }\n\n const defaultStyle = typeof props.style === 'string'\n ? {}\n : Object.assign({}, props.style || {});\n\n const style = Object.keys(props).reduce((result, prop) => {\n const value = boxPropNames[prop]\n ? boxPropNames[prop](props[prop])\n : undefined;\n\n return Object.assign({}, result, value);\n }, defaultStyle);\n\n return h('div', {\n oncreate: props.oncreate,\n ondestroy: props.ondestroy,\n class: classNames.filter(s => !!s).join(' '),\n style\n }, children);\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A flexbox\n * @param {BoxProperties} props Properties\n * @param {string} [props.orientation='horizontal'] Box orientation\n * @param {h[]} children Children\n */\nexport const Box = (props, children) =>\n h(Element, Object.assign({\n orientation: 'horizontal'\n }, props, {\n class: ['osjs-gui-box', props.class],\n }), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A flexbox container\n * @param {BoxProperties} props Properties\n * @param {string} [props.orientation='vertical'] Box orientation\n * @param {h[]} children Children\n */\nexport const BoxContainer = (props, children) =>\n h(Element, Object.assign({}, props, {\n class: ['osjs-gui-box-container', props.class]\n }), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A styled flexbox container\n * @param {BoxProperties} props Properties\n * @param {h[]} children Children\n */\nexport const BoxStyled = (props, children) =>\n h(Element, Object.assign({}, props, {\n class: ['osjs-gui-box-styled', props.class]\n }), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\n\n/**\n * An icon\n * @param {Object} props Properties\n * @param {string} props.src Icon src\n * @param {string} [props.name] Icon name\n * @param {h[]} children Children\n */\nexport const Icon = (props, children) => {\n const i = props && typeof props === 'object'\n ? props.src\n : props;\n\n const n = props && typeof props === 'object'\n ? props.name\n : undefined;\n\n return h('i', {\n 'data-icon': n,\n class: 'osjs-icon',\n style: {\n backgroundImage: typeof props === 'string' ? `url(${i})` : undefined\n }\n });\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\n/**\n * Filter an object based on keys\n * @param {Object} props Props\n * @param {String[]} filterKeys List of keys to filter\n * @return {Object}\n */\nexport const filteredProps = (props, filterKeys) => {\n const keys = Object.keys(props);\n const filter = k => filterKeys.indexOf(k) === -1;\n\n return keys\n .filter(filter)\n .reduce((result, k) => Object.assign({\n [k]: props[k]\n }, result), {});\n};\n\n/**\n * Creates a double-tap event handler\n * @param {number} [timeout=250] Timeout\n * @return {Function} Handler with => (ev, cb)\n */\nexport const doubleTap = (timeout = 250) => {\n let tapped = false;\n let timer;\n\n return (ev, cb) => {\n timer = clearTimeout(timer);\n timer = setTimeout(() => (tapped = false), timeout);\n\n if (tapped) {\n ev.preventDefault();\n return cb(ev);\n }\n\n tapped = true;\n\n return false;\n };\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\nimport {h} from 'hyperapp';\nimport {filteredProps} from './utils';\nimport {Element} from './components/Element';\n\n/**\n * Creates a new field Element wrapper\n * @param {String} name Field name\n * @param {Object} props Field props\n * @param {Function} cb Callback to create inner element => (props)\n * @param {Function} cb Callback to get value => (event)\n */\nexport const createField = (name, props, defaultProps, cb, cbInput) => {\n const oninput = props.oninput || function() {};\n const onchange = props.onchange || function() {};\n const onkeydown = props.onkeydown || function() {};\n\n const getValue = cbInput || (ev => [ev.target.value]);\n const fieldProps = Object.assign(\n {\n oninput: ev => oninput(ev, ...getValue(ev)),\n onchange: ev => onchange(ev, ...getValue(ev)),\n onkeydown: ev => {\n if (ev.keyCode === 13 && props.onenter) {\n props.onenter(ev, ...getValue(ev));\n }\n onkeydown(ev);\n }\n },\n defaultProps,\n filteredProps(props, ['choices', 'label', 'box', 'oninput', 'onchange'])\n );\n\n return h(Element, Object.assign({}, props.box || {}, {\n class: 'osjs-gui-field osjs-gui-' + name\n }), cb(fieldProps));\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Icon} from './Icon';\nimport {createField} from '../element';\n\n/**\n * A button\n * @param {Object} props Properties\n * @param {string} [props.icon] Icon source\n * @param {string} [props.label] Use this as label instead of children\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Button = (props = {}, children = []) =>\n createField('button', props, {\n }, (fieldProps) => {\n const inner = [];\n if (props.icon) {\n inner.push(h(Icon, props.icon));\n }\n\n if (typeof props.label === 'string') {\n inner.push(h('span', {class: 'osjs-label'}, props.label));\n }\n\n return h('button', fieldProps, [\n ...inner,\n ...children\n ]);\n });\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A progress bar\n * @param {Object} props Properties\n * @param {number} [props.value] The value (percentage)\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Progressbar = (props, children = []) => {\n let value = typeof props.value === 'number'\n ? Math.min(100, Math.max(0, Math.abs(props.value)))\n : 0;\n\n const c = h('div', {class: 'osjs-gui-progressbar-wrapper'}, [\n h('div', {\n className: 'osjs-gui-progressbar-value',\n style: {\n width: String(value) + '%'\n }\n }),\n h('div', {\n className: 'osjs-gui-progressbar-label',\n }, [\n h('span', {}, [\n String(value) + '%'\n ])\n ])\n ]);\n\n return h(Element, Object.assign({}, props.box || {}, {\n class: ['osjs-gui-progressbar', props.class]\n }), [\n c,\n ...children\n ]);\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Icon} from './Icon';\n\nconst ul = (props, children = [], level = 0) => {\n\n const label = child => {\n const children = [];\n\n if (child.type === 'checkbox' || typeof child.checked === 'boolean') {\n children.push(h('span', {\n class: 'osjs-gui-menu-checkbox ' + (child.checked ? 'active' : '')\n }));\n } else if (child.icon) {\n children.push(h(Icon, child.icon));\n }\n\n children.push(h('span', {}, child.label));\n\n return children;\n };\n\n const inner = (props, child) => {\n if (typeof child.element === 'function') {\n return child.element();\n }\n\n const className = child.type === 'separator'\n ? 'osjs-gui-menu-separator'\n : 'osjs-gui-menu-label ' + (child.disabled ? 'osjs__disabled' : '');\n\n const children = [\n h('span', {class: className}, label(child))\n ];\n\n if (child.items) {\n children.push(ul(props, child.items, level + 1));\n }\n\n return children;\n };\n\n return h('ul', {\n class: ''\n }, children.map(\n child => h('li', {\n class: 'osjs-gui-menu-entry'\n }, [\n h('div', {\n class: 'osjs-gui-menu-container',\n 'data-has-image': child.icon ? true : undefined,\n 'data-has-children': child.items ? true : undefined,\n onmouseover: child.items ? props.onshow : undefined,\n ontouchend: child.items ? props.onshow : undefined,\n onclick: (ev) => {\n if (child.items) {\n return;\n }\n\n if (child.onclick) {\n child.onclick(child, ev);\n }\n\n if (props.onclick) {\n props.onclick(child, ev, child);\n }\n }\n }, inner(props, child))\n ])\n ));\n};\n\n/**\n * Menu tree\n * @property {String} label Label\n * @property {String} [icon] Icon source\n * @property {Boolean} [disabled] Disabled state\n * @property {Boolean} [closeable] Disable close on click\n * @property {Function} [element] A callback that returns a virtual DOM element (ex. Hyperapp)\n * @property {Function} onclick Click callback\n * @property {MenuItems} [items] Child items\n * @typedef MenuItems\n */\n\n/**\n * A menu\n * @param {Object} props Properties\n * @param {Boolean} [props.visible=true] Visible property\n * @param {Object} [posprops.ition] Position\n * @param {MenuItems} [props.menu] Menu items\n */\nexport const Menu = (props) => h('div', {\n id: 'osjs-context-menu',\n className: 'osjs-gui osjs-gui-menu',\n oncreate: props.oncreate,\n onupdate: props.onupdate,\n style: {\n display: props.visible !== false ? 'block' : 'none',\n top: props.position ? String(props.position.top) + 'px' : 0,\n left: props.position ? String(props.position.left) + 'px' : 0\n }\n}, ul(props, props.menu));\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A toolbar\n * @desc Contains entries with spacing\n * @param {BoxProperties} props Properties\n * @param {string} [props.orientation='vertical'] Box orientation\n * @param {h[]} children Children\n */\nexport const Toolbar = (props, children) =>\n h(Element, Object.assign({\n orientation: 'vertical'\n }, props, {\n class: ['osjs-gui-toolbar', props.class]\n }), children);\n","import {h, app} from 'hyperapp'\n\nexport default \nfunction nestable (state, actions, view, tagname) {\n actions._$r = function () {return {}}\n return function (props, children) {\n return h(tagname || 'x-', {\n key: props.key,\n id: props.id,\n class: props.class,\n oncreate: function (el) {\n var wired = app(\n state,\n actions,\n function (s, a) {\n var v = view(s, a)\n if (typeof v === 'function') v = v(el._$p, el._$c)\n return v\n },\n el\n )\n el._$p = props\n el._$c = children\n el._$r = wired._$r\n el._$u = wired.uninit\n wired.init && wired.init(props)\n props.oncreate && props.oncreate(el)\n },\n onupdate: function (el) {\n el._$p = props\n el._$c = children\n el._$r()\n props.onupdate && props.onupdate(el)\n },\n ondestroy: function (el) {\n el._$u && el._$u()\n },\n onremove: function (el, done) {\n if (!props.onremove) return done()\n\n props.onremove(el, done)\n }\n })\n } \n}\n\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport nestable from 'hyperapp-nestable';\nimport {Element} from './Element';\n\nconst onmousedown = (ev, actions, orientation) => {\n const {target, clientX, clientY} = ev;\n const pane = target.previousSibling;\n const {offsetWidth, offsetHeight} = pane;\n const index = Array.from(target.parentNode.children).indexOf(pane);\n const maxWidth = pane.parentNode.offsetWidth * 0.8;\n const maxHeight = pane.parentNode.offsetHeight * 0.8;\n\n if (index < 0) {\n return;\n }\n\n const mousemove = ev => {\n ev.preventDefault();\n\n let size = orientation === 'vertical' ? offsetWidth : offsetHeight;\n\n if (orientation === 'vertical') {\n const diffX = ev.clientX - clientX;\n size = Math.min(maxWidth, size + diffX);\n } else {\n const diffY = ev.clientY - clientY;\n size = Math.min(maxHeight, size + diffY);\n }\n\n actions.setSize({index, size});\n };\n\n const mouseup = ev => {\n ev.preventDefault();\n document.removeEventListener('mousemove', mousemove);\n document.removeEventListener('mouseup', mouseup);\n };\n\n ev.preventDefault();\n document.addEventListener('mousemove', mousemove);\n document.addEventListener('mouseup', mouseup);\n};\n\nconst panes = (state, actions, children, orientation) => {\n const spacers = Array(Math.ceil(children.length / 2))\n .fill(null)\n .map(() => h('div', {\n class: 'osjs-gui-panes-spacer',\n onmousedown: ev => onmousedown(ev, actions, orientation)\n }));\n\n const child = (c, i) => {\n const w = state.sizes[i] ? String(state.sizes[i]) + 'px' : undefined;\n\n return h('div', {\n class: 'osjs-gui-panes-pane',\n style: {\n flex: w ? `0 0 ${w}` : w\n }\n }, c);\n };\n\n return children\n .map(child)\n .map((v, i) => [v, spacers[i]])\n .reduce((a, b) => a.concat(b))\n .filter(v => typeof v !== 'undefined');\n};\n\nconst view = (state, actions) => (props, children) => {\n const orientation = props.orientation || 'vertical';\n\n return h(Element, {\n orientation,\n class: 'osjs-gui-panes-inner'\n }, panes(state, actions, children, orientation));\n};\n\nconst inner = nestable({\n sizes: []\n}, {\n init: props => ({sizes: props.sizes || [150]}),\n setSize: ({index, size}) => state => {\n const sizes = [].concat(state.sizes);\n sizes[index] = size;\n return {sizes};\n }\n}, view, 'div');\n\n/**\n * Resizable panes\n * @param {Object} props Properties\n * @param {string} [props.orientation='vertical'] Pane orientation\n * @param {number[]} [props.sizes] Pane sizes\n * @param {h[]} children Children\n */\nexport const Panes = (props, children) => h(inner, {\n class: 'osjs-gui-panes'\n}, children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {filteredProps, doubleTap} from '../utils';\nimport {Element} from './Element';\nimport {Icon} from './Icon';\n\nconst tapper = doubleTap();\n\nconst createView = props => {\n\n const cols = (paneIndex) => (row, rowIndex) => {\n const col = row.columns[paneIndex] || {};\n const selected = props.selectedIndex === rowIndex;\n const colIcon = col.icon ? h(Icon, col.icon) : null;\n const children = [h('span', {}, [typeof col === 'object' ? col.label : col])];\n\n if (colIcon) {\n children.unshift(colIcon);\n }\n\n return h('div', {\n key: row.key,\n 'data-has-icon': col.icon ? true : undefined,\n class: 'osjs-gui-list-view-cell' + (selected ? ' osjs__active' : ''),\n ontouchstart: (ev) => tapper(ev, () => props.onactivate({data: row.data, index: rowIndex, ev})),\n ondblclick: (ev) => props.onactivate({data: row.data, index: rowIndex, ev}),\n onclick: (ev) => props.onselect({data: row.data, index: rowIndex, ev}),\n oncontextmenu: (ev) => props.oncontextmenu({data: row.data, index: rowIndex, ev}),\n oncreate: (el) => props.oncreate({data: row.data, index: rowIndex, el})\n }, children);\n };\n\n const pane = (index, col) => h('div', {\n class: 'osjs-gui-list-view-pane',\n style: col.style || {}\n }, [\n h('div', {\n class: 'osjs-gui-list-view-header',\n style: {\n display: props.hideColumns ? 'none' : undefined\n }\n }, h('span', {}, typeof col === 'object' ? col.label : col)),\n h('div', {\n class: 'rows',\n 'data-zebra': String(props.zebra)\n }, props.rows.map(cols(index)))\n ]);\n\n return h('div', {\n class: 'osjs-gui-list-view-wrapper',\n oncreate: el => (el.scrollTop = props.scrollTop),\n onupdate: el => {\n if (props.selectedIndex < 0) {\n el.scrollTop = props.scrollTop;\n }\n }\n }, props.columns.map((c, i) => pane(i, c)));\n};\n\nexport const ListView = props => h(Element, Object.assign({\n class: 'osjs-gui-list-view'\n}, props.box || {}), createView(filteredProps(props, ['box'])));\n\nexport const listView = ({\n component: (state, actions) => {\n const newProps = Object.assign({\n zebra: true,\n columns: [],\n rows: [],\n onselect: ({data, index, ev}) => {\n actions.select({data, index, ev});\n actions.setSelectedIndex(index);\n },\n onactivate: ({data, index, ev}) => {\n actions.activate({data, index, ev});\n actions.setSelectedIndex(-1);\n },\n oncontextmenu: ({data, index, ev}) => {\n actions.select({data, index, ev});\n actions.contextmenu({data, index, ev});\n actions.setSelectedIndex(index);\n },\n oncreate: (args) => {\n actions.created(args);\n }\n }, state);\n\n return (props = {}) => ListView(Object.assign(newProps, props));\n },\n\n state: state => Object.assign({\n selectedIndex: -1,\n scrollTop: 0\n }, state),\n\n actions: actions => Object.assign({\n select: () => () => ({}),\n activate: () => () => ({}),\n contextmenu: () => () => ({}),\n created: () => () => ({}),\n setRows: rows => ({rows}),\n setColumns: columns => ({columns}),\n setScrollTop: scrollTop => state => ({scrollTop}),\n setSelectedIndex: selectedIndex => state => ({selectedIndex})\n }, actions || {})\n});\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport nestable from 'hyperapp-nestable';\n\nconst headers = ({labels, onchange, oncontextmenu}, state, actions) => (labels || [])\n .map((label, index) => h('div', {\n class: state.selectedIndex === index ? 'osjs__active' : '',\n oncontextmenu: ev => {\n (oncontextmenu || function() {})(ev, index, label);\n },\n onclick: ev => {\n actions.setSelectedIndex(index);\n (onchange || function() {})(ev, index, label);\n }\n }, h('span', {}, label)));\n\nconst panes = (state, children) => children\n .map((child, index) => h('div', {\n class: state.selectedIndex === index ? 'osjs__active' : ''\n }, child));\n\nconst view = nestable({\n selectedIndex: 0\n}, {\n init: props => ({\n selectedIndex: props.selectedIndex || 0\n }),\n setSelectedIndex: selectedIndex => state => ({selectedIndex})\n}, (state, actions) => (props, children) => h('div', {\n class: 'osjs-gui-tabs-wrapper'\n}, [\n h('div', {class: 'osjs-gui-tabs-header'}, headers(props, state, actions)),\n h('div', {class: 'osjs-gui-tabs-panes'}, panes(state, children))\n]), 'div');\n\n/**\n * A tab container\n * @param {Object} props Properties\n * @param {String[]} props.labels Labels\n * @param {h[]} children Tabs\n */\nexport const Tabs = (props, children) => h(view, Object.assign({\n class: 'osjs-gui osjs-gui-tabs ' + (props.class || '')\n}, props), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {doubleTap} from '../utils';\nimport {Element} from './Element';\nimport {Icon} from './Icon';\n\nconst tapper = doubleTap();\n\nexport const IconViewEntry = (entry, index, props) => () => {\n const icon = entry.icon || {name: 'application-x-executable'};\n const selected = props.selectedIndex === index;\n\n return h('div', {\n class: 'osjs-gui-icon-view-entry' + (selected ? ' osjs__active' : ''),\n ontouchstart: (ev) => tapper(ev, () => props.onactivate({data: entry.data, index, ev})),\n ondblclick: (ev) => props.onactivate({data: entry.data, index, ev}),\n onclick: (ev) => props.onselect({data: entry.data, index, ev}),\n oncontextmenu: (ev) => props.oncontextmenu({data: entry.data, index, ev}),\n oncreate: (el) => props.oncreate({data: entry.data, index, el})\n }, [\n h('div', {class: 'osjs__container'}, [\n h('div', {class: 'osjs__image'}, [\n h(Icon, icon)\n ]),\n h('div', {class: 'osjs__label'}, [\n h('span', {}, entry.label)\n ])\n ])\n ]);\n};\n\nexport const IconView = (props) => {\n const inner = h('div', {\n class: 'osjs-gui-icon-view-wrapper',\n oncreate: el => (el.scrollTop = props.scrollTop),\n onupdate: el => {\n if (props.selectedIndex < 0) {\n el.scrollTop = props.scrollTop;\n }\n }\n }, props.entries.map((entry, index) => {\n return h(IconViewEntry(entry, index, props));\n }));\n\n return h(Element, Object.assign({\n class: 'osjs-gui-icon-view'\n }, props.box || {}), inner);\n};\n\nexport const iconView = ({\n component: (state, actions) => {\n const newProps = Object.assign({\n entries: [],\n onselect: ({data, index, ev}) => {\n actions.select({data, index, ev});\n actions.setSelectedIndex(index);\n },\n onactivate: ({data, index, ev}) => {\n actions.activate({data, index, ev});\n actions.setSelectedIndex(-1);\n },\n oncontextmenu: ({data, index, ev}) => {\n actions.select({data, index, ev});\n actions.contextmenu({data, index, ev});\n actions.setSelectedIndex(index);\n },\n oncreate: (args) => {\n actions.created(args);\n }\n }, state);\n\n return (props = {}) => IconView(Object.assign(newProps, props));\n },\n\n state: state => Object.assign({\n selectedIndex: -1,\n scrollTop: 0\n }, state),\n\n actions: actions => Object.assign({\n select: () => () => ({}),\n activate: () => () => ({}),\n contextmenu: () => () => ({}),\n created: () => () => ({}),\n setEntries: entries => () => ({entries}),\n setScrollTop: scrollTop => state => ({scrollTop}),\n setSelectedIndex: selectedIndex => state => ({selectedIndex}),\n }, actions || {})\n});\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/**\n * A text field\n * @param {Object} props Properties\n * @param {string} [props.value] Value\n * @param {string} [props.type=text] Type\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const TextField = (props = {}, children = []) =>\n createField('text-field', props, {\n autocomplete: 'off',\n autocorrect: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n type: 'text'\n }, (fieldProps) => h('input', fieldProps));\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/**\n * A text field\n * @param {Object} props Properties\n * @param {string} [props.value] Value\n * @param {number} [props.rows=4] Number of rows\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const TextareaField = (props = {}, children = []) =>\n createField('textarea-field', props, {\n rows: 4\n }, (fieldProps) => h('textarea', fieldProps, children));\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/**\n * A text field\n * @param {Object} props Properties\n * @param {string} [props.value] Value\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const SelectField = (props = {}, children = []) => {\n\n const getChoices = choices => choices instanceof Array\n ? choices.map(value => typeof value === 'object' ? value : {value, label: value})\n : Object.keys(props.choices || {})\n .map(value => ({value, label: props.choices[value]}));\n\n const choices = getChoices(props.choices)\n .map(({value, label}) => {\n return h('option', {\n value,\n selected: props.value === value\n }, label);\n });\n\n const getValue = ev => [ev.target.value, ev.target.textContent];\n const createSelect = fieldProps => h('div', {}, h('select', fieldProps, [\n ...choices,\n ...children\n ]));\n\n return createField('select-field', props, {\n selectedIndex: undefined\n }, createSelect, getValue);\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/*\n * Parses option value\n */\nconst parseValue = value => {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n};\n\n/**\n * A text field\n * @param {Object} props Properties\n * @param {string} [props.checked] Value\n * @param {string} [props.type=checkbox] Type\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const ToggleField = (props = {}, children = []) =>\n createField('toggle-field', props, {\n type: 'checkbox',\n checked: false\n }, (fieldProps) => h('label', {\n\n }, [\n h('input', fieldProps),\n h('span', {\n class: 'osjs-toggle-input'\n }),\n h('span', {\n class: 'osjs-toggle-label'\n }, [\n props.label || '',\n ...children\n ])\n ]), ev => [props.type === 'radio'\n ? parseValue(ev.target.value)\n : !!ev.target.checked]);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/**\n * A range field\n * @param {Object} props Properties\n * @param {string} [props.min] Minimum value\n * @param {string} [props.max] Maximum value\n * @param {string} [props.value] Value\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const RangeField = (props = {}, children = []) =>\n createField('range-field', props, {\n type: 'range'\n }, (fieldProps) => h('input', fieldProps));\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\nimport nestable from 'hyperapp-nestable';\n\nconst view = (state, actions) => (props, children) => {\n return h(Element, Object.assign({}, props.box || {}, {\n class: ['osjs-gui-expander-wrapper']\n }), [\n h('div', {\n class: 'osjs-gui-expander-header',\n onclick: ev => actions.ontoggle({\n ev,\n active: !state.active,\n ontoggle: props.ontoggle\n })\n }, [\n h('div', {\n class: 'osjs-gui-expander-header-icon',\n 'data-active': String(state.active)\n }),\n h('div', {\n class: 'osjs-gui-expander-header-label'\n }, props.label)\n ]),\n h('div', {\n class: 'osjs-gui-expander-content',\n style: {\n display: state.active === false ? 'none' : undefined\n }\n }, children)\n ]);\n};\n\nconst inner = nestable({\n active: true\n}, {\n init: props => ({\n ative: props.active !== false\n }),\n ontoggle: ({ev, active, ontoggle}) => {\n const cb = ontoggle || function() {};\n cb(ev, active);\n return {active};\n }\n}, view, 'div');\n\n/**\n * A status bar\n * @param {Object} props Properties\n * @param {boolean} [props.active] Active state\n * @param {Function} [props.ontoggle] Toggle callback => (ev, active)\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Expander = (props, children) =>\n h(inner, Object.assign({}, props, {\n class: 'osjs-gui osjs-gui-expander'\n }), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A label element\n * @param {Object} props Properties\n * @param {string} [props.text] Label Text\n * @param {string} [props.placement] Placement\n * @param {string} [props.for] The \"for\" attribute\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Label = (props = {}, children = []) => {\n const placement = props.placement || 'top';\n const text = props.text || '';\n\n const elementProps = Object.assign({\n class: ['osjs-gui-field-label', 'osjs-gui-field-label-on-' + placement]\n }, props.box || {});\n\n return h(Element, elementProps, [\n h('label', {for: props.for}, text),\n children\n ]);\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport {Menu} from './components/Menu';\n\n/*\n * Makes sure sub-menus stays within viewport\n */\nconst clampSubMenu = (root, ev) => {\n let ul = ev.target.querySelector('ul');\n if (!ul) {\n return;\n }\n\n // FIXME: Safari reports wrong item\n if (ul.classList.contains('osjs-gui-menu-container')) {\n ul = ul.parentNode.parentNode;\n }\n\n if (!ul || !ul.offsetParent) {\n return;\n }\n\n ul.classList.remove('clamp-right');\n\n const rect = ul.getBoundingClientRect();\n if (rect.right > root.offsetWidth) {\n ul.classList.add('clamp-right');\n }\n};\n\n/*\n * Makes sure menu stays within viewport\n */\nconst clampMenu = (root, el, currentPosition) => {\n const result = {};\n const bottom = currentPosition.top + el.offsetHeight;\n const right = currentPosition.left + el.offsetWidth;\n const offY = root.offsetHeight - currentPosition.top;\n const offX = root.offsetWidth - currentPosition.left;\n const overflowRight = right > root.offsetWidth;\n const overflowBottom = bottom > root.offsetHeight;\n\n if (overflowBottom) {\n if (root.offsetHeight > el.offsetHeight) {\n result.top = root.offsetHeight - el.offsetHeight - offY;\n }\n }\n\n if (overflowRight) {\n result.left = root.offsetWidth - el.offsetWidth - offX;\n }\n\n return (overflowBottom || overflowRight) ? result : null;\n};\n\n/*\n * Context Menu view\n */\nconst view = callback => (props, actions) => h(Menu, {\n position: props.position,\n visible: props.visible,\n menu: props.menu,\n onclick: callback,\n onshow: actions.onshow\n});\n\nconst timeout = fn => {\n fn();\n return setTimeout(fn, 100);\n};\n\n/**\n * ContextMenu Class\n *\n * @desc Handles a Menu/ContextMenu globally for OS.js\n */\nexport class ContextMenu {\n\n constructor(core) {\n this.core = core;\n this.callback = () => {};\n this.actions = null;\n this.$element = document.createElement('div');\n }\n\n destroy() {\n this.callback = null;\n this.actions = null;\n }\n\n /**\n * Initializes the Menu Hyperapp\n */\n init() {\n let clampTimeout;\n\n this.$element.className = 'osjs-system-context-menu';\n this.core.$root.appendChild(this.$element);\n\n let isActive = false;\n\n this.actions = app({\n visible: false,\n menu: [],\n position: {\n top: 0,\n left: 0\n }\n }, {\n clamp: (el) => props => {\n el = el || document.querySelector('#osjs-context-menu');\n clearTimeout(clampTimeout);\n\n if (el) {\n const root = this.core.$root;\n const newPosition = clampMenu(root, el, props.position);\n if (newPosition) {\n return {position: newPosition};\n }\n }\n\n return {};\n },\n onshow: (ev) => props => {\n clampTimeout = timeout(() => clampSubMenu(this.core.$root, ev));\n },\n show: (options) => (props, actions) => {\n let {menu, position, toggle} = options;\n if (toggle && isActive) {\n return actions.hide();\n } else if (position instanceof Event) {\n position = {left: position.clientX, top: position.clientY};\n } else if (position instanceof Element) {\n const box = position.getBoundingClientRect();\n position = {\n left: box.left,\n top: box.top + box.height\n };\n }\n\n this.callback = (child, ev, iter) => {\n if (options.callback) {\n options.callback(child, ev);\n }\n\n if (iter.closeable !== false) {\n actions.hide();\n }\n };\n\n isActive = true;\n this.onclose = options.onclose;\n\n timeout(() => actions.clamp());\n\n return {\n visible: true,\n menu: menu || [],\n position: position || {top: 0, left: 0}\n };\n },\n hide: () => props => {\n if (isActive) {\n setTimeout(() => (isActive = false), 0);\n }\n if (this.onclose) {\n this.onclose();\n }\n this.onclose = null;\n this.callback = null;\n\n return {visible: false};\n }\n }, view((...args) => {\n if (!this.core.destroyed) {\n if (this.callback) {\n this.callback(...args);\n }\n }\n }), this.$element);\n }\n\n /**\n * Show the menu\n */\n show(...args) {\n return this.actions ? this.actions.show(...args) : null;\n }\n\n /**\n * Hide the menu\n */\n hide(...args) {\n return this.actions ? this.actions.hide(...args) : null;\n }\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {ContextMenu} from './contextmenu.js';\n\n/*\n * Check if a target allows for context menu\n */\nconst validContextMenuTarget = ev => {\n const target = ev.target;\n let isValid = target.tagName === 'TEXTAREA';\n if (!isValid && target.tagName === 'INPUT') {\n isValid = ['text', 'password', 'number', 'email'].indexOf(target.type) !== -1;\n }\n\n return isValid;\n};\n\n/**\n * OS.js GUI Service Provider\n *\n * @desc Provides wrapper services around GUI features\n */\nexport class GUIServiceProvider {\n\n constructor(core) {\n this.core = core;\n this.contextmenu = new ContextMenu(core);\n }\n\n destroy() {\n const menu = document.getElementById('osjs-context-menu');\n if (menu) {\n menu.remove();\n }\n\n this.contextmenu.destroy();\n }\n\n async init() {\n const contextmenuApi = {\n show: (...args) => this.contextmenu.show(...args),\n hide: (...args) => this.contextmenu.hide(...args)\n };\n\n this.core.instance('osjs/contextmenu', (...args) => {\n if (args.length) {\n return contextmenuApi.show(...args);\n }\n\n return contextmenuApi;\n });\n\n this.core.$root.addEventListener('contextmenu', (ev) => {\n if (validContextMenuTarget(ev)) {\n return;\n }\n\n ev.stopPropagation();\n ev.preventDefault();\n });\n }\n\n start() {\n const callback = ev => {\n const menu = document.getElementById('osjs-context-menu');\n const hit = menu && menu.contains(ev.target);\n\n if (!hit && this.contextmenu) {\n this.contextmenu.hide();\n }\n };\n\n this.core.$root.addEventListener('click', callback, true);\n this.core.once('destroy', () => {\n this.core.$root.removeEventListener('click', callback, true);\n });\n\n this.contextmenu.init();\n }\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport merge from 'deepmerge';\nimport plain from 'is-plain-object';\nimport {Box, Button, Toolbar} from '@osjs/gui';\n\nlet dialogCount = 0;\n\n/*\n * Default button attributes\n */\nconst defaultButtons = (_) => ({\n ok: {label: _('LBL_OK'), positive: true},\n close: {label: _('LBL_CLOSE')},\n cancel: {label: _('LBL_CANCEL')},\n yes: {label: _('LBL_YES'), positive: true},\n no: {label: _('LBL_NO')}\n});\n\n/*\n * Creates a button from name\n */\nconst defaultButton = (n, _) => {\n const defs = defaultButtons(_);\n if (defs[n]) {\n return Object.assign({}, {\n name: n\n }, defs[n]);\n }\n\n return {label: n, name: n};\n};\n\n/*\n * Creates options\n */\nconst createOptions = (options, args) =>\n merge({\n id: null,\n className: 'unknown',\n defaultValue: null,\n buttons: [],\n sound: null,\n window: {\n id: options.id || 'Dialog_' + String(dialogCount),\n title: 'Dialog',\n attributes: {\n gravity: 'center',\n resizable: false,\n maximizable: false,\n minimizable: false,\n sessionable: false,\n classNames: [\n 'osjs-dialog',\n `osjs-${options.className || 'unknown'}-dialog`\n ],\n minDimension: {\n width: 300,\n height: 100\n },\n }\n }\n }, options, {\n isMergeableObject: plain\n });\n\n/**\n * OS.js default Dialog implementation\n *\n * Creates a Window with predefined content and actions(s)\n */\nexport default class Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {Object} options Dialog options (including Window)\n * @param {Object} [options.defaultValue] Default callback value\n * @param {Function} callback The callback function\n */\n constructor(core, args, options, callback) {\n this.core = core;\n this.args = args;\n this.callback = callback || function() {};\n this.options = createOptions(options, args);\n this.win = null;\n this.value = undefined;\n this.calledBack = false;\n\n const _ = core.make('osjs/locale').translate;\n\n this.buttons = this.options.buttons.map(n =>\n typeof n === 'string'\n ? defaultButton(n, _)\n : {\n label: n.label || 'button',\n name: n.name || 'unknown'\n });\n\n dialogCount++;\n }\n\n /**\n * Destroys the dialog\n */\n destroy() {\n if (this.win) {\n this.win.destroy();\n }\n\n this.win = null;\n this.callback = null;\n }\n\n /**\n * Renders the dialog\n * @param {Function} cb Callback from window\n */\n render(options, cb) {\n const opts = merge(this.options.window || {}, options, {\n isMergeableObject: plain\n });\n\n this.win = this.core.make('osjs/window', opts);\n\n this.win.on('keydown', (ev, win) => {\n if (ev.keyCode === 27) {\n this.emitCallback(this.getNegativeButton(), null, true);\n }\n });\n\n this.win.on('dialog:button', (name, ev) => {\n this.emitCallback(name, ev, true);\n });\n\n this.win.on('destroy', () => {\n this.emitCallback('destroy');\n });\n\n this.win.on('close', () => {\n this.emitCallback('cancel', undefined, true);\n });\n\n this.win.on('render', () => {\n // this.win.resizeFit();\n this.win.focus();\n\n const focusButton = this.getNegativeButton();\n const btn = focusButton ? this.win.$content.querySelector(`button[name=${focusButton}]`) : null;\n if (btn) {\n btn.focus();\n }\n\n this.playSound();\n });\n\n this.win.init();\n this.win.render(cb);\n this.win.focus();\n\n return this;\n }\n\n /**\n * Creates the default view\n * @param {Object[]} children Child nodes\n * @param {Object} [state] Pass on application state (mainly used for buttons)\n * @return {Object} Virtual dom node\n */\n createView(children, state = {}) {\n return h(Box, {grow: 1, shrink: 1}, [\n ...children,\n h(Toolbar, {class: 'osjs-dialog-buttons'}, [\n ...this.createButtons(state.buttons || {})\n ])\n ]);\n }\n\n /**\n * Gets the button (virtual) DOM elements\n * @param {Object} [states] Button states\n * @return {Object[]} Virtual dom node children list\n */\n createButtons(states = {}) {\n const onclick = (n, ev) => {\n this.win.emit('dialog:button', n, ev);\n };\n\n return this.buttons.map(b => h(Button, Object.assign({}, {\n disabled: states[b.name] === false,\n onclick: ev => onclick(b.name, ev)\n }, b)));\n }\n\n /**\n * Emits the callback\n * @param {String} name Button or action name\n * @param {Event} [ev] Browser event reference\n * @param {Boolean} [close=false] Close dialog\n */\n emitCallback(name, ev, close = false) {\n if (this.calledBack) {\n return;\n }\n this.calledBack = true;\n\n console.debug('Callback in dialog', name, ev, close);\n\n this.callback(name, this.getValue(), ev);\n\n if (close) {\n this.destroy();\n }\n }\n\n /**\n */\n playSound() {\n if (this.core.has('osjs/sounds')) {\n const snd = this.options.sound;\n if (snd) {\n this.core.make('osjs/sounds').play(snd);\n\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Gets the first positive button\n * @return {String|undefined}\n */\n getPositiveButton() {\n const found = this.buttons.find(b => b.positive === true);\n return found ? found.name : null;\n }\n\n /**\n * Gets the first negative button\n * @return {String|undefined}\n */\n getNegativeButton() {\n const found = this.buttons.find(b => !b.positive);\n return found ? found.name : null;\n }\n\n /**\n * Gets the dialog result value\n * @return {*}\n */\n getValue() {\n return typeof this.value === 'undefined'\n ? this.options.defaultValue\n : this.value;\n }\n\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport {Box, TextareaField} from '@osjs/gui';\nimport Dialog from '../dialog';\n\n/**\n * Default OS.js Alert Dialog\n */\nexport default class AlertDialog extends Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {String} [args.title='Alert'] Dialog title\n * @param {String} [args.message=''] Dialog message\n * @param {String} [args.type='info'] Alert type (info/warning/error)\n * @param {String} [args.sound='bell'] Sound\n * @param {Error|*} [args.error] When 'alert' type is set this error stack or message will appear in a textbox\n * @param {Function} callback The callback function\n */\n constructor(core, args, callback) {\n args = Object.assign({}, {\n title: 'Alert',\n type: 'info',\n message: ''\n }, args);\n\n if (typeof args.sound === 'undefined') {\n args.sound = args.type === 'error' ? 'bell' : 'message';\n }\n\n super(core, args, {\n className: 'alert',\n sound: args.sound,\n window: {\n title: args.title,\n attributes: {\n ontop: args.type === 'error',\n minDimension: {\n width: 400,\n height: 220\n }\n }\n },\n buttons: ['close']\n }, callback);\n }\n\n render(options) {\n super.render(options, ($content) => {\n const children = [\n h('div', {class: 'osjs-dialog-message'}, String(this.args.message))\n ];\n\n if (this.args.type === 'error') {\n const {error} = this.args;\n const msg = error instanceof Error\n ? (error.stack ? error.stack : error)\n : String(error);\n\n children.push(h(TextareaField, {value: msg, readonly: true, placeholder: this.args.message}));\n }\n\n app({}, {}, (state, actions) => this.createView([\n h(Box, {grow: 1}, children)\n ]), $content);\n });\n }\n\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport Dialog from '../dialog';\nimport {Box} from '@osjs/gui';\n\n/**\n * Default OS.js Confirm Dialog\n */\nexport default class ConfirmDialog extends Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {String} [args.title] Dialog title\n * @param {String} [args.message] Dialog message\n * @param {Boolean} [args.yesno=true] Yes/No or Ok/Cancel\n * @param {String[]} [args.buttons] Custom buttons\n * @param {Function} callback The callback function\n */\n constructor(core, args, callback) {\n const yesno = typeof args.yesno === 'undefined' || args.yesno === true;\n\n const buttons = args.buttons instanceof Array\n ? args.buttons\n : yesno ? ['yes', 'no'] : ['ok', 'cancel'];\n\n super(core, args, {\n className: 'confirm',\n window: {\n title: args.title || 'Confirm',\n attributes: {\n minDimension: {\n height: 140\n }\n }\n },\n buttons\n }, callback);\n }\n\n render(options) {\n super.render(options, ($content) => {\n app({}, {}, (state, actions) => this.createView([\n h(Box, {grow: 1}, [\n h('div', {class: 'osjs-dialog-message'}, String(this.args.message))\n ])\n ]), $content);\n });\n }\n\n}\n\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport Dialog from '../dialog';\nimport {Box, TextField} from '@osjs/gui';\n\n/**\n * Default OS.js Prompt Dialog\n */\nexport default class PromptDialog extends Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {String} [args.title] Dialog title\n * @param {String} [args.message] Dialog message\n * @param {Function} callback The callback function\n */\n constructor(core, args, callback) {\n super(core, Object.assign({}, {\n value: '',\n placeholder: '',\n }, args), {\n className: 'prompt',\n buttons: ['ok', 'cancel'],\n window: {\n title: args.title || 'Prompt',\n attributes: {\n minDimension: {\n width: 500,\n height: 200\n }\n }\n }\n }, callback);\n\n this.value = this.args.value;\n }\n\n render(options) {\n super.render(options, ($content) => {\n app({\n value: this.args.value\n }, {\n setValue: value => state => {\n this.value = value;\n return {value};\n }\n }, (state, actions) => this.createView([\n h(Box, {grow: 1, padding: false}, [\n h(Box, {class: 'osjs-dialog-message'}, String(this.args.message)),\n h(TextField, {\n value: state.value,\n placeholder: this.args.placeholder,\n onenter: (ev, value) => {\n actions.setValue(value);\n\n this.emitCallback(this.getPositiveButton(), ev, true);\n },\n oninput: (ev, value) => actions.setValue(value)\n })\n ])\n ]), $content);\n });\n }\n\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport Dialog from '../dialog';\nimport {Box, Progressbar} from '@osjs/gui';\n\n/**\n * Default OS.js Progress Dialog\n */\nexport default class ProgressDialog extends Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {String} [args.title] Dialog title\n * @param {String} [args.message] Dialog message\n * @param {String} [args.status] Dialog status message\n * @param {String} [args.progress] Initial progress value\n * @param {String[]} [args.buttons] Override dialog buttons\n * @param {Function} callback The callback function\n */\n constructor(core, args, callback) {\n super(core, args, {\n className: 'progress',\n buttons: args.buttons || ['cancel'],\n window: {\n title: args.title || 'Progress',\n attributes: {\n minDimension: {\n width: 500,\n height: 200\n }\n }\n }\n }, callback);\n\n this.value = this.args.progress || 0;\n this.status = this.args.status || '';\n this.app = null;\n }\n\n render(options) {\n super.render(options, ($content) => {\n this.app = app({\n progress: this.value,\n status: this.status\n }, {\n setProgress: progress => state => ({progress}),\n setStatus: status => state => ({status})\n }, (state, actions) => this.createView([\n h(Box, {grow: 1, shrink: 1}, [\n h('div', {class: 'osjs-dialog-message'}, String(this.args.message)),\n h('div', {class: 'osjs-dialog-status'}, String(state.status)),\n h(Progressbar, {value: state.progress})\n ])\n ]), $content);\n });\n }\n\n /**\n * Set the progress value\n * @param {Number} value A value between 0 and 100\n */\n setProgress(value) {\n this.app.setProgress(value);\n }\n\n /**\n * Set the status text\n * @param {String} status Status text\n */\n setStatus(status) {\n this.app.setStatus(status);\n }\n\n}\n\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport Dialog from '../dialog';\nimport {\n Box,\n BoxContainer,\n TextField,\n RangeField\n} from '@osjs/gui';\n\n/*\n * Creates a palette canvas\n */\nconst createPalette = (width, height) => {\n let gradient;\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n\n const ctx = canvas.getContext('2d');\n\n gradient = ctx.createLinearGradient(0, 0, ctx.canvas.width, 0);\n gradient.addColorStop(0, 'rgb(255, 0, 0)');\n gradient.addColorStop(0.15, 'rgb(255, 0, 255)');\n gradient.addColorStop(0.33, 'rgb(0, 0, 255)');\n gradient.addColorStop(0.49, 'rgb(0, 255, 255)');\n gradient.addColorStop(0.67, 'rgb(0, 255, 0)');\n gradient.addColorStop(0.84, 'rgb(255, 255, 0)');\n gradient.addColorStop(1, 'rgb(255, 0, 0)');\n\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n\n gradient = ctx.createLinearGradient(0, 0, 0, ctx.canvas.height);\n gradient.addColorStop(0, 'rgba(255, 255, 255, 1)');\n gradient.addColorStop(0.5, 'rgba(255, 255, 255, 0)');\n gradient.addColorStop(0.5, 'rgba(0, 0, 0, 0)');\n gradient.addColorStop(1, 'rgba(0, 0, 0, 1)');\n\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n\n return canvas;\n};\n\n/*\n * Converts hex to its component values\n */\nconst hexToComponent = hex => {\n const rgb = parseInt(hex.replace('#', ''), 16);\n const val = {};\n val.r = (rgb & (255 << 16)) >> 16;\n val.g = (rgb & (255 << 8)) >> 8;\n val.b = (rgb & 255);\n return val;\n};\n\n/*\n * Convert component values into hex\n */\nconst componentToHex = ({r, g, b}) => {\n const hex = [\n parseInt(r, 10).toString(16),\n parseInt(g, 10).toString(16),\n parseInt(b, 10).toString(16)\n ].map(i => String(i).length === 1 ? '0' + String(i) : i);\n\n return '#' + hex.join('').toUpperCase();\n};\n\n/*\n * Gets the color of a clicked palette area\n */\nconst colorFromClick = (ev, canvas) => {\n const {clientX, clientY} = ev;\n const box = canvas.getBoundingClientRect();\n const cx = clientX - box.x;\n const cy = clientY - box.y;\n const ctx = canvas.getContext('2d');\n const {data} = ctx.getImageData(cx, cy, 1, 1);\n const [r, g, b] = data;\n const hex = componentToHex({r, g, b});\n return {r, g, b, hex};\n};\n\n/**\n * Default OS.js Color Dialog\n */\nexport default class ColorDialog extends Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {String} [args.title] Dialog title\n * @param {Function} callback The callback function\n */\n constructor(core, args, callback) {\n super(core, args, {\n className: 'color',\n buttons: ['ok', 'cancel'],\n window: {\n title: args.title || 'Select Color',\n attributes: {\n minDimension: {\n width: 500,\n height: 260\n }\n }\n }\n }, callback);\n\n this.value = {r: 0, g: 0, b: 0, hex: '#000000'};\n\n let color = args.color;\n if (color) {\n if (typeof color === 'string') {\n if (color.charAt(0) !== '#') {\n color = '#' + color;\n }\n\n this.value = Object.assign({}, this.value, hexToComponent(args.color));\n this.value.hex = args.color;\n } else {\n this.value = Object.assign({}, this.value, args.color);\n this.value.hex = componentToHex(this.value);\n }\n }\n }\n\n render(options) {\n super.render(options, ($content) => {\n const canvas = createPalette(98, 98);\n const initialState = Object.assign({}, this.value);\n const initialActions = {\n setColor: color => state => color,\n setComponent: ({color, value}) => state => {\n this.value[color] = value;\n return {[color]: value};\n },\n updateHex: () => state => {\n const hex = componentToHex(state);\n this.value.hex = hex;\n return {hex};\n }\n };\n\n const rangeContainer = (c, v, actions) =>\n h(Box, {orientation: 'vertical', align: 'center', padding: false}, [\n h(Box, {shrink: 1}, h('div', {}, c.toUpperCase())),\n h(RangeField, {\n box: {grow: 1},\n min: 0,\n max: 255,\n value: v,\n oncreate: el => (el.value = v),\n oninput: (ev, value) => {\n actions.setComponent({color: c, value});\n actions.updateHex();\n }\n }),\n h(TextField, {\n box: {shrink: 1, basis: '5em'},\n value: String(v),\n oninput: (ev, value) => {\n actions.setComponent({color: c, value});\n actions.updateHex();\n }\n })\n ]);\n\n const a = app(initialState, initialActions, (state, actions) => this.createView([\n h(Box, {orientation: 'vertical', grow: 1, shrink: 1}, [\n h(BoxContainer, {orientation: 'horizontal'}, [\n h('div', {\n class: 'osjs-gui-border',\n style: {display: 'inline-block'},\n oncreate: el => el.appendChild(canvas)\n }),\n h(TextField, {\n value: state.hex,\n style: {width: '100px', color: state.hex}\n })\n ]),\n h(Box, {padding: false, grow: 1, shrink: 1}, [\n rangeContainer('r', state.r, actions),\n rangeContainer('g', state.g, actions),\n rangeContainer('b', state.b, actions)\n ])\n ])\n ]), $content);\n\n canvas.addEventListener('click', ev => {\n const color = colorFromClick(ev, canvas);\n if (color) {\n a.setColor(color);\n a.updateHex();\n }\n });\n });\n }\n\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport Dialog from '../dialog';\nimport {\n Toolbar,\n SelectField,\n TextareaField\n} from '@osjs/gui';\n\n/**\n * Default OS.js Font Dialog\n */\nexport default class FontDialog extends Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {number} [args.minSize=6] Minimum size\n * @param {number} [args.maxSize] Maximum size\n * @param {string} [args.unit=px] Unit\n * @param {string} [args.name] Initial font name\n * @param {number} [args.size] Initial font size\n * @param {string} [args.text] What text to preview\n * @param {string[]} [args.controls] What controls to show\n * @param {string[]} [args.fonts] List of fonts\n * @param {Function} callback The callback function\n */\n constructor(core, args, callback) {\n args = Object.assign({}, {\n title: 'Choose Font',\n minSize: 6,\n maxSize: 48,\n unit: 'px',\n name: 'Roboto',\n size: 10,\n style: 'regular',\n text: 'The quick brown fox jumps over the lazy dog',\n controls: ['size', 'name', 'style'],\n fonts: [\n 'Roboto',\n 'arial',\n 'sans-serif',\n 'monospace'\n ]\n }, args);\n\n super(core, args, {\n className: 'info',\n window: {\n title: args.title,\n attributes: {\n minDimension: {\n width: 400,\n height: 200\n }\n }\n },\n buttons: ['ok', 'cancel']\n }, callback);\n\n this.value = {\n name: this.args.name,\n size: this.args.size,\n style: this.args.style\n };\n }\n\n render(options) {\n const fontSizes = Array(this.args.maxSize - this.args.minSize)\n .fill(0)\n .map((v, i) => this.args.minSize + i)\n .reduce((o, i) => Object.assign(o, {[i]: i}), {});\n\n const fontNames = this.args.fonts\n .reduce((o, i) => {\n const k = i.toLowerCase();\n return Object.assign(o, {[k]: i});\n }, {});\n\n const fontStyles = {\n 'regular': 'Regular',\n 'bold': 'Bold',\n 'italic': 'Italic'\n };\n\n const initialState = Object.assign({}, this.value);\n const initialActions = {\n setSize: size => state => {\n this.value.size = size;\n return {size};\n },\n setFont: name => state => {\n this.value.name = name;\n return {name};\n },\n setStyle: style => state => {\n this.value.style = style;\n return {style};\n }\n };\n\n super.render(options, ($content) => {\n app(initialState, initialActions, (state, actions) => this.createView([\n h(Toolbar, {}, [\n h(SelectField, {\n box: {grow: 1, style: {display: this.args.controls.indexOf('size') !== -1 ? 'flex' : 'none'}},\n value: state.size,\n choices: fontSizes,\n onchange: (ev, v) => actions.setSize(v)\n }),\n h(SelectField, {\n box: {grow: 1, style: {display: this.args.controls.indexOf('name') !== -1 ? 'flex' : 'none'}},\n value: state.name.toLowerCase(),\n choices: fontNames,\n onchange: (ev, v) => actions.setFont(v)\n }),\n h(SelectField, {\n box: {grow: 1, style: {display: this.args.controls.indexOf('style') !== -1 ? 'flex' : 'none'}},\n value: state.size,\n choices: fontStyles,\n onchange: (ev, v) => actions.setStyle(v)\n })\n ]),\n h(TextareaField, {\n box: {grow: 1},\n value: this.args.text,\n style: {\n fontFamily: state.name,\n fontSize: `${state.size}${this.args.unit}`,\n fontWeight: state.style === 'bold' ? 'bold' : 'normal',\n fontStyle: state.style !== 'bold' ? state.style : 'normal',\n height: '4rem',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n }\n })\n ]), $content);\n });\n }\n\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport Dialog from '../dialog';\nimport {\n TextField,\n SelectField,\n listView\n} from '@osjs/gui';\n\nconst getMountpoint = str => str\n .split(':')[0] + ':/';\n\nconst getMountpoints = core => core.make('osjs/fs')\n .mountpoints(true)\n .filter(mount => {\n return !(mount.attributes.readOnly && mount.attributes.visibility === 'restricted');\n })\n .reduce((mounts, iter) => Object.assign(mounts, {\n [iter.root]: iter.label\n }), {});\n\n/**\n * Default OS.js File Dialog\n */\nexport default class FileDialog extends Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {String} [args.title] Dialog title\n * @param {String} [args.type='open'] Dialog type (open/save)\n * @param {String} [args.path] Current path\n * @param {String} [args.filetype='file'] Dialog filetype (file/directory)\n * @param {String} [args.filename] Current filename\n * @param {String[]} [args.mime] Mime filter\n * @param {Function} callback The callback function\n */\n constructor(core, args, callback) {\n args = Object.assign({}, {\n title: null,\n type: 'open',\n filetype: 'file',\n path: core.config('vfs.defaultPath'),\n filename: null,\n mime: []\n }, args);\n\n if (typeof args.path === 'string') {\n args.path = {path: args.path};\n }\n\n try {\n args.path = Object.assign({\n isDirectory: true,\n filename: args.path.path.split(':/')[1].split('/').pop() || ''\n }, args.path);\n } catch (e) {\n console.warn(e);\n }\n\n const _ = core.make('osjs/locale').translate;\n const title = args.title\n ? args.title\n : (args.type === 'open' ? _('LBL_OPEN') : _('LBL_SAVE'));\n\n super(core, args, {\n className: 'file',\n window: {\n title,\n attributes: {\n resizable: true\n },\n dimension: {\n width: 400,\n height: 400\n }\n },\n buttons: ['ok', 'cancel']\n }, callback);\n }\n\n render(options) {\n const getFileIcon = file => this.core.make('osjs/fs').icon(file);\n const startingLocation = this.args.path;\n\n super.render(options, ($content) => {\n const a = app({\n mount: startingLocation ? getMountpoint(startingLocation.path) : null,\n filename: this.args.filename,\n listview: listView.state({\n columns: [{\n label: 'Name'\n }, {\n label: 'Type'\n }, {\n label: 'Size'\n }]\n }),\n buttons: {\n ok: this.args.filetype === 'directory'\n ? true\n : !!this.args.filename\n }\n }, {\n _readdir: ({path, files}) => (state, actions) => {\n const listview = state.listview;\n listview.selectedIndex = -1;\n listview.rows = files.map(file => ({\n columns: [{\n label: file.filename,\n icon: getFileIcon(file)\n }, file.mime, file.humanSize],\n data: file\n }));\n\n return {path, listview};\n },\n\n setButtonState: btn => state => ({\n buttons: Object.assign({}, state.buttons, btn)\n }),\n\n setMountpoint: mount => (state, actions) => {\n actions.setPath({path: mount});\n\n return {mount};\n },\n\n setPath: file => async (state, actions) => {\n const files = await this.core.make('osjs/vfs')\n .readdir(file, {\n filter: (item) => {\n if (this.args.filetype === 'directory') {\n return item.isDirectory === true;\n } else if (this.args.mime.length) {\n return item.mime\n ? this.args.mime.some(test => (new RegExp(test)).test(item.mime))\n : true;\n }\n\n return true;\n }\n });\n\n this.args.path = file;\n\n actions._readdir({path: file.path, files});\n\n if (this.args.filetype === 'file') {\n actions.setButtonState({ok: this.args.type === 'save' ? !!this.args.filename : false});\n }\n },\n\n setFilename: filename => state => ({filename}),\n\n listview: listView.actions({\n select: ({data}) => {\n a.setFilename(data.isFile ? data.filename : null);\n this.value = data.isFile ? data : null;\n\n if (this.args.filetype === 'file' && data.isFile) {\n a.setButtonState({ok: true});\n }\n },\n activate: ({data, ev}) => {\n if (data.isDirectory) {\n a.setFilename(null);\n a.setPath(data);\n } else {\n this.value = data.isFile ? data : null;\n this.emitCallback(this.getPositiveButton(), ev, true);\n }\n },\n })\n }, (state, actions) => this.createView([\n h(SelectField, {\n choices: getMountpoints(this.core),\n onchange: (ev, val) => a.setMountpoint(val),\n value: state.mount\n }),\n h(listView.component(Object.assign({\n box: {grow: 1, shrink: 1}\n }, state.listview), actions.listview)),\n h(TextField, {\n placeholder: 'Filename',\n value: state.filename,\n onenter: (ev, value) => this.emitCallback(this.getPositiveButton(), ev, true),\n oninput: (ev) => {\n const filename = ev.target.value;\n actions.setButtonState({ok: !!filename});\n actions.setFilename(filename);\n },\n box: {\n style: {display: this.args.type === 'save' ? null : 'none'}\n }\n })\n ], state), $content);\n\n a.setPath(startingLocation);\n });\n }\n\n emitCallback(name, ev, close = false) {\n if (this.calledBack) {\n return;\n }\n\n const file = this.getValue();\n const next = () => super.emitCallback(name, ev, close);\n const isSave = this.args.type === 'save';\n const buttonCancel = name === 'cancel';\n const hasVfs = this.core.has('osjs/vfs');\n\n const confirm = callback => this.core.make('osjs/dialog', 'confirm', {\n message: `Do you want to overwrite ${file.path}?`\n }, {\n parent: this.win,\n attributes: {modal: true}\n }, (btn) => {\n if (btn === 'yes') {\n callback();\n }\n });\n\n if (file && isSave && hasVfs && !buttonCancel) {\n this.core\n .make('osjs/vfs')\n .exists(file)\n .then(exists => {\n if (exists) {\n confirm(() => next());\n } else {\n next();\n }\n })\n .catch(error => {\n console.error(error);\n next();\n });\n } else {\n next();\n }\n }\n\n getValue() {\n if (this.args.type === 'save') {\n const {path} = this.args.path;\n const filename = this.win.$content.querySelector('input[type=text]')\n .value;\n\n return filename\n ? Object.assign({}, this.args.path, {\n filename,\n path: path.replace(/\\/?$/, '/') + filename\n })\n : undefined;\n } else {\n if (this.args.filetype === 'directory') {\n return this.args.path;\n }\n }\n\n return super.getValue();\n }\n\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport {SelectField, Box} from '@osjs/gui';\nimport Dialog from '../dialog';\n\n/**\n * Default OS.js Choice Dialog\n */\nexport default class ChoiceDialog extends Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {String} [args.title] Dialog title\n * @param {String} [args.message] Dialog message\n * @param {String} [args.value] Set default selected value\n * @param {Map} [args.choices] Choice map\n * @param {Function} callback The callback function\n */\n constructor(core, args, callback) {\n args = Object.assign({}, {\n title: 'Choice',\n message: '',\n value: undefined,\n choices: {}\n }, args);\n\n super(core, args, {\n className: 'alert',\n window: {\n title: args.title,\n attributes: {\n ontop: args.type === 'error'\n },\n dimension: {\n width: 400,\n height: 200\n }\n },\n buttons: ['ok', 'close']\n }, callback);\n\n this.value = typeof args.value !== 'undefined'\n ? this.args.value\n : Object.keys(this.args.choices)[0];\n }\n\n render(options) {\n super.render(options, ($content) => {\n app({\n current: this.value\n }, {\n setCurrent: current => state => {\n this.value = current;\n\n return {current};\n }\n }, (state, actions) => this.createView([\n h(Box, {grow: 1}, [\n h('div', {class: 'osjs-dialog-message'}, String(this.args.message)),\n h(SelectField, {\n choices: this.args.choices,\n value: state.current,\n onchange: (ev, val) => actions.setCurrent(val)\n })\n ])\n ]), $content);\n });\n }\n\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport {SelectField, ToggleField, Box} from '@osjs/gui';\nimport Dialog from '../dialog';\n\n/**\n * Default OS.js DefaultApplication Dialog\n */\nexport default class DefaultApplicationDialog extends Dialog {\n\n /**\n * Constructor\n * @param {Core} core OS.js Core reference\n * @param {Object} args Arguments given from service creation\n * @param {String} [args.title] Dialog title\n * @param {String} [args.message] Dialog message\n * @param {*} [args.checked] Default checked state\n * @param {*} [args.value] Default value\n * @param {Map} [args.choices] DefaultApplication map\n * @param {Function} callback The callback function\n */\n constructor(core, args, callback) {\n args = Object.assign({}, {\n title: 'DefaultApplication',\n message: '',\n choices: {}\n }, args);\n\n super(core, args, {\n className: 'alert',\n window: {\n title: args.title,\n dimension: {\n width: 400,\n height: 200\n }\n },\n buttons: ['ok', 'close']\n }, callback);\n\n this.value = {\n value: args.value || Object.keys(this.args.choices)[0],\n checked: args.checked === true\n };\n\n }\n\n render(options) {\n const setLocalState = (oldState, newState) => {\n const state = Object.assign({}, oldState, newState);\n this.value = state;\n return state;\n };\n\n super.render(options, ($content) => {\n app(this.value, {\n setValue: value => state => setLocalState(state, {value}),\n setChecked: checked => state => setLocalState(state, {checked})\n }, (state, actions) => this.createView([\n h(Box, {grow: 1}, [\n h('div', {class: 'osjs-dialog-message'}, String(this.args.message)),\n h(SelectField, {\n choices: this.args.choices,\n value: state.value,\n onchange: (ev, val) => actions.setValue(val)\n }),\n h(ToggleField, {\n label: this.args.label || 'Use as default',\n checked: state.checked,\n onchange: (ev, val) => actions.setChecked(val)\n })\n ])\n ]), $content);\n });\n }\n\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {app, h} from 'hyperapp';\nimport Dialog from '../dialog';\n\n/**\n * Custom OS.js Dialog\n */\nexport default class CustomDialog extends Dialog {\n\n constructor(core, options, valueCallback, callback) {\n super(core, {}, options, callback);\n\n this.valueCallback = valueCallback;\n }\n\n render(render) {\n return super.render({}, ($content, win) => render($content, win, this));\n }\n\n renderCustom(render, styles = {}) {\n return this.render(($content, dialogWindow, dialog) => {\n app({}, {}, () => {\n return this.createView([\n h('div', {\n style: {\n 'flex-grow': 1,\n 'flex-shrink': 1,\n position: 'relative',\n ...styles\n },\n oncreate: $el => render($el, dialogWindow, dialog)\n })\n ]);\n }, $content);\n });\n }\n\n getValue() {\n return this.valueCallback(this);\n }\n\n}\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export function h(name, attributes) {\n var rest = []\n var children = []\n var length = arguments.length\n\n while (length-- > 2) rest.push(arguments[length])\n\n while (rest.length) {\n var node = rest.pop()\n if (node && node.pop) {\n for (length = node.length; length--; ) {\n rest.push(node[length])\n }\n } else if (node != null && node !== true && node !== false) {\n children.push(node)\n }\n }\n\n return typeof name === \"function\"\n ? name(attributes || {}, children)\n : {\n nodeName: name,\n attributes: attributes || {},\n children: children,\n key: attributes && attributes.key\n }\n}\n\nexport function app(state, actions, view, container) {\n var map = [].map\n var rootElement = (container && container.children[0]) || null\n var oldNode = rootElement && recycleElement(rootElement)\n var lifecycle = []\n var skipRender\n var isRecycling = true\n var globalState = clone(state)\n var wiredActions = wireStateToActions([], globalState, clone(actions))\n\n scheduleRender()\n\n return wiredActions\n\n function recycleElement(element) {\n return {\n nodeName: element.nodeName.toLowerCase(),\n attributes: {},\n children: map.call(element.childNodes, function(element) {\n return element.nodeType === 3 // Node.TEXT_NODE\n ? element.nodeValue\n : recycleElement(element)\n })\n }\n }\n\n function resolveNode(node) {\n return typeof node === \"function\"\n ? resolveNode(node(globalState, wiredActions))\n : node != null\n ? node\n : \"\"\n }\n\n function render() {\n skipRender = !skipRender\n\n var node = resolveNode(view)\n\n if (container && !skipRender) {\n rootElement = patch(container, rootElement, oldNode, (oldNode = node))\n }\n\n isRecycling = false\n\n while (lifecycle.length) lifecycle.pop()()\n }\n\n function scheduleRender() {\n if (!skipRender) {\n skipRender = true\n setTimeout(render)\n }\n }\n\n function clone(target, source) {\n var out = {}\n\n for (var i in target) out[i] = target[i]\n for (var i in source) out[i] = source[i]\n\n return out\n }\n\n function setPartialState(path, value, source) {\n var target = {}\n if (path.length) {\n target[path[0]] =\n path.length > 1\n ? setPartialState(path.slice(1), value, source[path[0]])\n : value\n return clone(source, target)\n }\n return value\n }\n\n function getPartialState(path, source) {\n var i = 0\n while (i < path.length) {\n source = source[path[i++]]\n }\n return source\n }\n\n function wireStateToActions(path, state, actions) {\n for (var key in actions) {\n typeof actions[key] === \"function\"\n ? (function(key, action) {\n actions[key] = function(data) {\n var result = action(data)\n\n if (typeof result === \"function\") {\n result = result(getPartialState(path, globalState), actions)\n }\n\n if (\n result &&\n result !== (state = getPartialState(path, globalState)) &&\n !result.then // !isPromise\n ) {\n scheduleRender(\n (globalState = setPartialState(\n path,\n clone(state, result),\n globalState\n ))\n )\n }\n\n return result\n }\n })(key, actions[key])\n : wireStateToActions(\n path.concat(key),\n (state[key] = clone(state[key])),\n (actions[key] = clone(actions[key]))\n )\n }\n\n return actions\n }\n\n function getKey(node) {\n return node ? node.key : null\n }\n\n function eventListener(event) {\n return event.currentTarget.events[event.type](event)\n }\n\n function updateAttribute(element, name, value, oldValue, isSvg) {\n if (name === \"key\") {\n } else if (name === \"style\") {\n if (typeof value === \"string\") {\n element.style.cssText = value\n } else {\n if (typeof oldValue === \"string\") oldValue = element.style.cssText = \"\"\n for (var i in clone(oldValue, value)) {\n var style = value == null || value[i] == null ? \"\" : value[i]\n if (i[0] === \"-\") {\n element.style.setProperty(i, style)\n } else {\n element.style[i] = style\n }\n }\n }\n } else {\n if (name[0] === \"o\" && name[1] === \"n\") {\n name = name.slice(2)\n\n if (element.events) {\n if (!oldValue) oldValue = element.events[name]\n } else {\n element.events = {}\n }\n\n element.events[name] = value\n\n if (value) {\n if (!oldValue) {\n element.addEventListener(name, eventListener)\n }\n } else {\n element.removeEventListener(name, eventListener)\n }\n } else if (\n name in element &&\n name !== \"list\" &&\n name !== \"type\" &&\n name !== \"draggable\" &&\n name !== \"spellcheck\" &&\n name !== \"translate\" &&\n !isSvg\n ) {\n element[name] = value == null ? \"\" : value\n } else if (value != null && value !== false) {\n element.setAttribute(name, value)\n }\n\n if (value == null || value === false) {\n element.removeAttribute(name)\n }\n }\n }\n\n function createElement(node, isSvg) {\n var element =\n typeof node === \"string\" || typeof node === \"number\"\n ? document.createTextNode(node)\n : (isSvg = isSvg || node.nodeName === \"svg\")\n ? document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n node.nodeName\n )\n : document.createElement(node.nodeName)\n\n var attributes = node.attributes\n if (attributes) {\n if (attributes.oncreate) {\n lifecycle.push(function() {\n attributes.oncreate(element)\n })\n }\n\n for (var i = 0; i < node.children.length; i++) {\n element.appendChild(\n createElement(\n (node.children[i] = resolveNode(node.children[i])),\n isSvg\n )\n )\n }\n\n for (var name in attributes) {\n updateAttribute(element, name, attributes[name], null, isSvg)\n }\n }\n\n return element\n }\n\n function updateElement(element, oldAttributes, attributes, isSvg) {\n for (var name in clone(oldAttributes, attributes)) {\n if (\n attributes[name] !==\n (name === \"value\" || name === \"checked\"\n ? element[name]\n : oldAttributes[name])\n ) {\n updateAttribute(\n element,\n name,\n attributes[name],\n oldAttributes[name],\n isSvg\n )\n }\n }\n\n var cb = isRecycling ? attributes.oncreate : attributes.onupdate\n if (cb) {\n lifecycle.push(function() {\n cb(element, oldAttributes)\n })\n }\n }\n\n function removeChildren(element, node) {\n var attributes = node.attributes\n if (attributes) {\n for (var i = 0; i < node.children.length; i++) {\n removeChildren(element.childNodes[i], node.children[i])\n }\n\n if (attributes.ondestroy) {\n attributes.ondestroy(element)\n }\n }\n return element\n }\n\n function removeElement(parent, element, node) {\n function done() {\n parent.removeChild(removeChildren(element, node))\n }\n\n var cb = node.attributes && node.attributes.onremove\n if (cb) {\n cb(element, done)\n } else {\n done()\n }\n }\n\n function patch(parent, element, oldNode, node, isSvg) {\n if (node === oldNode) {\n } else if (oldNode == null || oldNode.nodeName !== node.nodeName) {\n var newElement = createElement(node, isSvg)\n parent.insertBefore(newElement, element)\n\n if (oldNode != null) {\n removeElement(parent, element, oldNode)\n }\n\n element = newElement\n } else if (oldNode.nodeName == null) {\n element.nodeValue = node\n } else {\n updateElement(\n element,\n oldNode.attributes,\n node.attributes,\n (isSvg = isSvg || node.nodeName === \"svg\")\n )\n\n var oldKeyed = {}\n var newKeyed = {}\n var oldElements = []\n var oldChildren = oldNode.children\n var children = node.children\n\n for (var i = 0; i < oldChildren.length; i++) {\n oldElements[i] = element.childNodes[i]\n\n var oldKey = getKey(oldChildren[i])\n if (oldKey != null) {\n oldKeyed[oldKey] = [oldElements[i], oldChildren[i]]\n }\n }\n\n var i = 0\n var k = 0\n\n while (k < children.length) {\n var oldKey = getKey(oldChildren[i])\n var newKey = getKey((children[k] = resolveNode(children[k])))\n\n if (newKeyed[oldKey]) {\n i++\n continue\n }\n\n if (newKey != null && newKey === getKey(oldChildren[i + 1])) {\n if (oldKey == null) {\n removeElement(element, oldElements[i], oldChildren[i])\n }\n i++\n continue\n }\n\n if (newKey == null || isRecycling) {\n if (oldKey == null) {\n patch(element, oldElements[i], oldChildren[i], children[k], isSvg)\n k++\n }\n i++\n } else {\n var keyedNode = oldKeyed[newKey] || []\n\n if (oldKey === newKey) {\n patch(element, keyedNode[0], keyedNode[1], children[k], isSvg)\n i++\n } else if (keyedNode[0]) {\n patch(\n element,\n element.insertBefore(keyedNode[0], oldElements[i]),\n keyedNode[1],\n children[k],\n isSvg\n )\n } else {\n patch(element, oldElements[i], null, children[k], isSvg)\n }\n\n newKeyed[newKey] = children[k]\n k++\n }\n }\n\n while (i < oldChildren.length) {\n if (getKey(oldChildren[i]) == null) {\n removeElement(element, oldElements[i], oldChildren[i])\n }\n i++\n }\n\n for (var i in oldKeyed) {\n if (!newKeyed[i]) {\n removeElement(element, oldKeyed[i][0], oldKeyed[i][1])\n }\n }\n }\n return element\n }\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\n\n/**\n * Elemet Box definition\n * @property {string} [class] Container class name\n * @property {number} [grow] Flexbox grow value\n * @property {number} [shrink] Flexbox shrink value\n * @property {number|string} [basis] Flexbox basis value\n * @property {string} [align] Flexbox alignItems value\n * @property {string} [justify] Flexbox justifyContent value\n * @property {number|string} [padding] Margin\n * @property {number|string} [margin] Margin\n * @property {string} [key] Hyperapp element key\n * @property {Function} [oncreate] Hyperapp oncreate function\n * @property {Function} [onupdate] Hyperapp onupdate function\n * @property {Function} [ondestroy] Hyperapp ondestroy function\n * @typedef BoxProperties\n */\n\nconst unitValue = (value, unset) => typeof value === 'number'\n ? `${value}px`\n : (value === false ? unset : value);\n\nconst boxPropNames = {\n grow: value => ({flexGrow: value}),\n shrink: value => ({flexShrink: value}),\n basis: value => ({flexBasis: unitValue(value, 'auto')}),\n align: value => ({alignItems: value}),\n justify: value => ({justifyContent: value}),\n padding: value => ({margin: unitValue(value, '0')}),\n margin: value => ({margin: unitValue(value, '0')})\n};\n\n/**\n * A generic OS.js GUI container\n * @param {Object} props Properties\n * @param {h[]} children Children\n */\nexport const Element = (props, children = []) => {\n const givenClassNames = props.class instanceof Array\n ? props.class\n : [props.class];\n\n const classNames = [\n 'osjs-gui',\n ...givenClassNames\n ];\n\n if (props.orientation) {\n classNames.push('osjs-gui-' + props.orientation);\n }\n\n const defaultStyle = typeof props.style === 'string'\n ? {}\n : Object.assign({}, props.style || {});\n\n const style = Object.keys(props).reduce((result, prop) => {\n const value = boxPropNames[prop]\n ? boxPropNames[prop](props[prop])\n : undefined;\n\n return Object.assign({}, result, value);\n }, defaultStyle);\n\n return h('div', {\n oncreate: props.oncreate,\n ondestroy: props.ondestroy,\n class: classNames.filter(s => !!s).join(' '),\n style\n }, children);\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A flexbox\n * @param {BoxProperties} props Properties\n * @param {string} [props.orientation='horizontal'] Box orientation\n * @param {h[]} children Children\n */\nexport const Box = (props, children) =>\n h(Element, Object.assign({\n orientation: 'horizontal'\n }, props, {\n class: ['osjs-gui-box', props.class],\n }), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A flexbox container\n * @param {BoxProperties} props Properties\n * @param {string} [props.orientation='vertical'] Box orientation\n * @param {h[]} children Children\n */\nexport const BoxContainer = (props, children) =>\n h(Element, Object.assign({}, props, {\n class: ['osjs-gui-box-container', props.class]\n }), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A styled flexbox container\n * @param {BoxProperties} props Properties\n * @param {h[]} children Children\n */\nexport const BoxStyled = (props, children) =>\n h(Element, Object.assign({}, props, {\n class: ['osjs-gui-box-styled', props.class]\n }), children);\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\n\n/**\n * An icon\n * @param {Object} props Properties\n * @param {string} props.src Icon src\n * @param {string} [props.name] Icon name\n * @param {h[]} children Children\n */\nexport const Icon = (props, children) => {\n const i = props && typeof props === 'object'\n ? props.src\n : props;\n\n const n = props && typeof props === 'object'\n ? props.name\n : undefined;\n\n return h('i', {\n 'data-icon': n,\n class: 'osjs-icon',\n style: {\n backgroundImage: typeof props === 'string' ? `url(${i})` : undefined\n }\n });\n};\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\n/**\n * Filter an object based on keys\n * @param {Object} props Props\n * @param {String[]} filterKeys List of keys to filter\n * @return {Object}\n */\nexport const filteredProps = (props, filterKeys) => {\n const keys = Object.keys(props);\n const filter = k => filterKeys.indexOf(k) === -1;\n\n return keys\n .filter(filter)\n .reduce((result, k) => Object.assign({\n [k]: props[k]\n }, result), {});\n};\n\n/**\n * Creates a double-tap event handler\n * @param {number} [timeout=250] Timeout\n * @return {Function} Handler with => (ev, cb)\n */\nexport const doubleTap = (timeout = 250) => {\n let tapped = false;\n let timer;\n\n return (ev, cb) => {\n timer = clearTimeout(timer);\n timer = setTimeout(() => (tapped = false), timeout);\n\n if (tapped) {\n ev.preventDefault();\n return cb(ev);\n }\n\n tapped = true;\n\n return false;\n };\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\nimport {h} from 'hyperapp';\nimport {filteredProps} from './utils';\nimport {Element} from './components/Element';\n\n/**\n * Creates a new field Element wrapper\n * @param {String} name Field name\n * @param {Object} props Field props\n * @param {Function} cb Callback to create inner element => (props)\n * @param {Function} cb Callback to get value => (event)\n */\nexport const createField = (name, props, defaultProps, cb, cbInput) => {\n const oninput = props.oninput || function() {};\n const onchange = props.onchange || function() {};\n const onkeydown = props.onkeydown || function() {};\n\n const getValue = cbInput || (ev => [ev.target.value]);\n const fieldProps = Object.assign(\n {\n oninput: ev => oninput(ev, ...getValue(ev)),\n onchange: ev => onchange(ev, ...getValue(ev)),\n onkeydown: ev => {\n if (ev.keyCode === 13 && props.onenter) {\n props.onenter(ev, ...getValue(ev));\n }\n onkeydown(ev);\n }\n },\n defaultProps,\n filteredProps(props, ['choices', 'label', 'box', 'oninput', 'onchange'])\n );\n\n return h(Element, Object.assign({}, props.box || {}, {\n class: 'osjs-gui-field osjs-gui-' + name\n }), cb(fieldProps));\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Icon} from './Icon';\nimport {createField} from '../element';\n\n/**\n * A button\n * @param {Object} props Properties\n * @param {string} [props.icon] Icon source\n * @param {string} [props.label] Use this as label instead of children\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Button = (props = {}, children = []) =>\n createField('button', props, {\n }, (fieldProps) => {\n const inner = [];\n if (props.icon) {\n inner.push(h(Icon, props.icon));\n }\n\n if (typeof props.label === 'string') {\n inner.push(h('span', {class: 'osjs-label'}, props.label));\n }\n\n return h('button', fieldProps, [\n ...inner,\n ...children\n ]);\n });\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A progress bar\n * @param {Object} props Properties\n * @param {number} [props.value] The value (percentage)\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Progressbar = (props, children = []) => {\n let value = typeof props.value === 'number'\n ? Math.min(100, Math.max(0, Math.abs(props.value)))\n : 0;\n\n const c = h('div', {class: 'osjs-gui-progressbar-wrapper'}, [\n h('div', {\n className: 'osjs-gui-progressbar-value',\n style: {\n width: String(value) + '%'\n }\n }),\n h('div', {\n className: 'osjs-gui-progressbar-label',\n }, [\n h('span', {}, [\n String(value) + '%'\n ])\n ])\n ]);\n\n return h(Element, Object.assign({}, props.box || {}, {\n class: ['osjs-gui-progressbar', props.class]\n }), [\n c,\n ...children\n ]);\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Icon} from './Icon';\n\nconst ul = (props, children = [], level = 0) => {\n\n const label = child => {\n const children = [];\n\n if (child.type === 'checkbox' || typeof child.checked === 'boolean') {\n children.push(h('span', {\n class: 'osjs-gui-menu-checkbox ' + (child.checked ? 'active' : '')\n }));\n } else if (child.icon) {\n children.push(h(Icon, child.icon));\n }\n\n children.push(h('span', {}, child.label));\n\n return children;\n };\n\n const inner = (props, child) => {\n if (typeof child.element === 'function') {\n return child.element();\n }\n\n const className = child.type === 'separator'\n ? 'osjs-gui-menu-separator'\n : 'osjs-gui-menu-label ' + (child.disabled ? 'osjs__disabled' : '');\n\n const children = [\n h('span', {class: className}, label(child))\n ];\n\n if (child.items) {\n children.push(ul(props, child.items, level + 1));\n }\n\n return children;\n };\n\n return h('ul', {\n class: ''\n }, children.map(\n child => h('li', {\n class: 'osjs-gui-menu-entry'\n }, [\n h('div', {\n class: 'osjs-gui-menu-container',\n 'data-has-image': child.icon ? true : undefined,\n 'data-has-children': child.items ? true : undefined,\n onmouseover: child.items ? props.onshow : undefined,\n ontouchend: child.items ? props.onshow : undefined,\n onclick: (ev) => {\n if (child.items) {\n return;\n }\n\n if (child.onclick) {\n child.onclick(child, ev);\n }\n\n if (props.onclick) {\n props.onclick(child, ev, child);\n }\n }\n }, inner(props, child))\n ])\n ));\n};\n\n/**\n * Menu tree\n * @property {String} label Label\n * @property {String} [icon] Icon source\n * @property {Boolean} [disabled] Disabled state\n * @property {Boolean} [closeable] Disable close on click\n * @property {Function} [element] A callback that returns a virtual DOM element (ex. Hyperapp)\n * @property {Function} onclick Click callback\n * @property {MenuItems} [items] Child items\n * @typedef MenuItems\n */\n\n/**\n * A menu\n * @param {Object} props Properties\n * @param {Boolean} [props.visible=true] Visible property\n * @param {Object} [posprops.ition] Position\n * @param {MenuItems} [props.menu] Menu items\n */\nexport const Menu = (props) => h('div', {\n id: 'osjs-context-menu',\n className: 'osjs-gui osjs-gui-menu',\n oncreate: props.oncreate,\n onupdate: props.onupdate,\n style: {\n display: props.visible !== false ? 'block' : 'none',\n top: props.position ? String(props.position.top) + 'px' : 0,\n left: props.position ? String(props.position.left) + 'px' : 0\n }\n}, ul(props, props.menu));\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A toolbar\n * @desc Contains entries with spacing\n * @param {BoxProperties} props Properties\n * @param {string} [props.orientation='vertical'] Box orientation\n * @param {h[]} children Children\n */\nexport const Toolbar = (props, children) =>\n h(Element, Object.assign({\n orientation: 'vertical'\n }, props, {\n class: ['osjs-gui-toolbar', props.class]\n }), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A status bar\n * @param {Object} props Properties\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Statusbar = (props, children) =>\n h(Element, Object.assign({}, props.box || {}, {\n class: ['osjs-gui-statusbar', props.class]\n }), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A menubar item\n * @param {Object} props Properties\n * @param {h[]} children Children\n */\nexport const MenubarItem = (props, children = []) => {\n const {onclick, data} = props;\n\n return h('div', {\n onclick: (ev) => {\n if (typeof onclick === 'function') {\n const parentNode = ev.target.parentNode;\n const index = Array.prototype.indexOf.call(parentNode.children, ev.target);\n\n onclick(ev, data || {}, index);\n }\n }\n }, h('span', {}, children));\n};\n\n/**\n * A menubar container\n * @param {BoxProperties} [props] Box Properties\n * @param {MenubarItem[]} [props.items] Array of object\n * @param {h[]} children Children\n */\nexport const Menubar = (props, children = []) =>\n h(Element, Object.assign({}, props, {\n class: ['osjs-gui-menubar', props.class]\n }), [\n ...(props.items || []).map(item => h(MenubarItem, {\n data: item.data,\n onclick: (item.onclick || props.onclick)\n }, item.label)),\n ...children\n ]);\n","import {h, app} from 'hyperapp'\n\nexport default \nfunction nestable (state, actions, view, tagname) {\n actions._$r = function () {return {}}\n return function (props, children) {\n return h(tagname || 'x-', {\n key: props.key,\n id: props.id,\n class: props.class,\n oncreate: function (el) {\n var wired = app(\n state,\n actions,\n function (s, a) {\n var v = view(s, a)\n if (typeof v === 'function') v = v(el._$p, el._$c)\n return v\n },\n el\n )\n el._$p = props\n el._$c = children\n el._$r = wired._$r\n el._$u = wired.uninit\n wired.init && wired.init(props)\n props.oncreate && props.oncreate(el)\n },\n onupdate: function (el) {\n el._$p = props\n el._$c = children\n el._$r()\n props.onupdate && props.onupdate(el)\n },\n ondestroy: function (el) {\n el._$u && el._$u()\n },\n onremove: function (el, done) {\n if (!props.onremove) return done()\n\n props.onremove(el, done)\n }\n })\n } \n}\n\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport nestable from 'hyperapp-nestable';\nimport {Element} from './Element';\n\nconst onmousedown = (ev, actions, orientation) => {\n const {target, clientX, clientY} = ev;\n const pane = target.previousSibling;\n const {offsetWidth, offsetHeight} = pane;\n const index = Array.from(target.parentNode.children).indexOf(pane);\n const maxWidth = pane.parentNode.offsetWidth * 0.8;\n const maxHeight = pane.parentNode.offsetHeight * 0.8;\n\n if (index < 0) {\n return;\n }\n\n const mousemove = ev => {\n ev.preventDefault();\n\n let size = orientation === 'vertical' ? offsetWidth : offsetHeight;\n\n if (orientation === 'vertical') {\n const diffX = ev.clientX - clientX;\n size = Math.min(maxWidth, size + diffX);\n } else {\n const diffY = ev.clientY - clientY;\n size = Math.min(maxHeight, size + diffY);\n }\n\n actions.setSize({index, size});\n };\n\n const mouseup = ev => {\n ev.preventDefault();\n document.removeEventListener('mousemove', mousemove);\n document.removeEventListener('mouseup', mouseup);\n };\n\n ev.preventDefault();\n document.addEventListener('mousemove', mousemove);\n document.addEventListener('mouseup', mouseup);\n};\n\nconst panes = (state, actions, children, orientation) => {\n const spacers = Array(Math.ceil(children.length / 2))\n .fill(null)\n .map(() => h('div', {\n class: 'osjs-gui-panes-spacer',\n onmousedown: ev => onmousedown(ev, actions, orientation)\n }));\n\n const child = (c, i) => {\n const w = state.sizes[i] ? String(state.sizes[i]) + 'px' : undefined;\n\n return h('div', {\n class: 'osjs-gui-panes-pane',\n style: {\n flex: w ? `0 0 ${w}` : w\n }\n }, c);\n };\n\n return children\n .map(child)\n .map((v, i) => [v, spacers[i]])\n .reduce((a, b) => a.concat(b))\n .filter(v => typeof v !== 'undefined');\n};\n\nconst view = (state, actions) => (props, children) => {\n const orientation = props.orientation || 'vertical';\n\n return h(Element, {\n orientation,\n class: 'osjs-gui-panes-inner'\n }, panes(state, actions, children, orientation));\n};\n\nconst inner = nestable({\n sizes: []\n}, {\n init: props => ({sizes: props.sizes || [150]}),\n setSize: ({index, size}) => state => {\n const sizes = [].concat(state.sizes);\n sizes[index] = size;\n return {sizes};\n }\n}, view, 'div');\n\n/**\n * Resizable panes\n * @param {Object} props Properties\n * @param {string} [props.orientation='vertical'] Pane orientation\n * @param {number[]} [props.sizes] Pane sizes\n * @param {h[]} children Children\n */\nexport const Panes = (props, children) => h(inner, {\n class: 'osjs-gui-panes'\n}, children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {filteredProps, doubleTap} from '../utils';\nimport {Element} from './Element';\nimport {Icon} from './Icon';\n\nconst tapper = doubleTap();\n\nconst createView = props => {\n let debounceScroll;\n\n const cols = (paneIndex) => (row, rowIndex) => {\n const col = row.columns[paneIndex] || {};\n const selected = props.selectedIndex === rowIndex;\n const colIcon = col.icon ? h(Icon, col.icon) : null;\n const children = [h('span', {}, [typeof col === 'object' ? col.label : col])];\n\n if (colIcon) {\n children.unshift(colIcon);\n }\n\n return h('div', {\n key: row.key,\n 'data-has-icon': col.icon ? true : undefined,\n class: 'osjs-gui-list-view-cell' + (selected ? ' osjs__active' : ''),\n ontouchstart: (ev) => tapper(ev, () => props.onactivate({data: row.data, index: rowIndex, ev})),\n ondblclick: (ev) => props.onactivate({data: row.data, index: rowIndex, ev}),\n onclick: (ev) => props.onselect({data: row.data, index: rowIndex, ev}),\n oncontextmenu: (ev) => props.oncontextmenu({data: row.data, index: rowIndex, ev}),\n oncreate: (el) => props.oncreate({data: row.data, index: rowIndex, el})\n }, children);\n };\n\n const pane = (index, col) => h('div', {\n class: 'osjs-gui-list-view-pane',\n style: col.style || {}\n }, [\n h('div', {\n class: 'osjs-gui-list-view-header',\n style: {\n display: props.hideColumns ? 'none' : undefined\n }\n }, h('span', {}, typeof col === 'object' ? col.label : col)),\n h('div', {\n class: 'rows',\n 'data-zebra': String(props.zebra)\n }, props.rows.map(cols(index)))\n ]);\n\n return h('div', {\n class: 'osjs-gui-list-view-wrapper',\n onscroll: ev => {\n debounceScroll = clearTimeout(debounceScroll);\n debounceScroll = setTimeout(() => {\n props.onscroll(ev);\n }, 100);\n },\n oncreate: el => (el.scrollTop = props.scrollTop),\n onupdate: el => {\n if (props.selectedIndex < 0) {\n el.scrollTop = props.scrollTop;\n }\n }\n }, props.columns.map((c, i) => pane(i, c)));\n};\n\nexport const ListView = props => h(Element, Object.assign({\n class: 'osjs-gui-list-view'\n}, props.box || {}), createView(filteredProps(props, ['box'])));\n\nexport const listView = ({\n component: (state, actions) => {\n const newProps = Object.assign({\n zebra: true,\n columns: [],\n rows: [],\n onselect: ({data, index, ev}) => {\n actions.select({data, index, ev});\n actions.setSelectedIndex(index);\n },\n onactivate: ({data, index, ev}) => {\n actions.activate({data, index, ev});\n actions.setSelectedIndex(-1);\n },\n oncontextmenu: ({data, index, ev}) => {\n actions.select({data, index, ev});\n actions.contextmenu({data, index, ev});\n actions.setSelectedIndex(index);\n },\n oncreate: (args) => {\n actions.created(args);\n },\n onscroll: (ev) => {\n actions.scroll(ev);\n }\n }, state);\n\n return (props = {}) => ListView(Object.assign(newProps, props));\n },\n\n state: state => Object.assign({\n selectedIndex: -1,\n scrollTop: 0\n }, state),\n\n actions: actions => Object.assign({\n select: () => () => ({}),\n activate: () => () => ({}),\n contextmenu: () => () => ({}),\n created: () => () => ({}),\n scroll: () => state => state,\n setRows: rows => ({rows}),\n setColumns: columns => ({columns}),\n setScrollTop: scrollTop => state => ({scrollTop}),\n setSelectedIndex: selectedIndex => state => ({selectedIndex})\n }, actions || {})\n});\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {doubleTap} from '../utils';\nimport {Element} from './Element';\nimport {Icon} from './Icon';\n\nconst tapper = doubleTap();\n\nexport const IconViewEntry = (entry, index, props) => () => {\n const icon = entry.icon || {name: 'application-x-executable'};\n const selected = props.selectedIndex === index;\n\n return h('div', {\n class: 'osjs-gui-icon-view-entry' + (selected ? ' osjs__active' : ''),\n ontouchstart: (ev) => tapper(ev, () => props.onactivate({data: entry.data, index, ev})),\n ondblclick: (ev) => props.onactivate({data: entry.data, index, ev}),\n onclick: (ev) => props.onselect({data: entry.data, index, ev}),\n oncontextmenu: (ev) => props.oncontextmenu({data: entry.data, index, ev}),\n oncreate: (el) => props.oncreate({data: entry.data, index, el})\n }, [\n h('div', {class: 'osjs__container'}, [\n h('div', {class: 'osjs__image'}, [\n h(Icon, icon)\n ]),\n h('div', {class: 'osjs__label'}, [\n h('span', {}, entry.label)\n ])\n ])\n ]);\n};\n\nexport const IconView = (props) => {\n const inner = h('div', {\n class: 'osjs-gui-icon-view-wrapper',\n oncreate: el => (el.scrollTop = props.scrollTop),\n onupdate: el => {\n if (props.selectedIndex < 0) {\n el.scrollTop = props.scrollTop;\n }\n }\n }, props.entries.map((entry, index) => {\n return h(IconViewEntry(entry, index, props));\n }));\n\n return h(Element, Object.assign({\n class: 'osjs-gui-icon-view'\n }, props.box || {}), inner);\n};\n\nexport const iconView = ({\n component: (state, actions) => {\n const newProps = Object.assign({\n entries: [],\n onselect: ({data, index, ev}) => {\n actions.select({data, index, ev});\n actions.setSelectedIndex(index);\n },\n onactivate: ({data, index, ev}) => {\n actions.activate({data, index, ev});\n actions.setSelectedIndex(-1);\n },\n oncontextmenu: ({data, index, ev}) => {\n actions.select({data, index, ev});\n actions.contextmenu({data, index, ev});\n actions.setSelectedIndex(index);\n },\n oncreate: (args) => {\n actions.created(args);\n }\n }, state);\n\n return (props = {}) => IconView(Object.assign(newProps, props));\n },\n\n state: state => Object.assign({\n selectedIndex: -1,\n scrollTop: 0\n }, state),\n\n actions: actions => Object.assign({\n select: () => () => ({}),\n activate: () => () => ({}),\n contextmenu: () => () => ({}),\n created: () => () => ({}),\n setEntries: entries => () => ({entries}),\n setScrollTop: scrollTop => state => ({scrollTop}),\n setSelectedIndex: selectedIndex => state => ({selectedIndex}),\n }, actions || {})\n});\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\n\n/**\n * A image\n * @param {Object} props Properties\n * @param {String} props.src The image source\n * @param {String} [props.alt] The image alternate text\n * @param {number} [props.width] Image width\n * @param {number} [props.height] Image height\n * @param {Function} [props.onload] On loaded data event\n * @param {Function} [props.oncreate] Hyperapp oncreate function\n * @param {Function} [props.onupdate] Hyperapp onupdate function\n * @param {Function} [props.ondestroy] Hyperapp ondestroy function\n */\nexport const Image = (props, children) =>\n h('div', {\n class: 'osjs-gui osjs-gui-image',\n style: {\n width: props.width ? String(props.width) + 'px' : undefined,\n height: props.height ? String(props.height) + 'px' : undefined\n }\n }, h('img', props));\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\n\nconst sources = list => list.map(item => h('source', item));\n\nconst isTrue = v => typeof v === 'undefined' || v === true;\n\n/**\n * A video\n * @param {Object} props Properties\n * @param {String} [props.class] Append this className\n * @param {Object} [props.style] CSS Style object\n * @param {String} props.src The video source\n * @param {number} [props.width] Video width\n * @param {number} [props.height] Video height\n * @param {String} [props.poster] Poster image source\n * @param {Boolean} [props.loop] Loop video\n * @param {Boolean} [props.autoplay] Autoplay video\n * @param {Boolean} [props.controls] Show controls\n * @param {Function} [props.onloadeddata] On loaded data event\n */\nexport const Video = (props, children) =>\n h('div', {\n class: 'osjs-gui osjs-gui-video',\n style: {\n width: props.width ? String(props.width) + 'px' : undefined,\n height: props.height ? String(props.height) + 'px' : undefined\n }\n }, [\n h('video', {\n src: props.src,\n width: props.width,\n height: props.height,\n poster: props.poster,\n loop: props.loop ? 'loop' : undefined,\n muted: props.muted ? 'muted' : undefined,\n controls: isTrue(props.controls) ? 'controls' : undefined,\n autoplay: isTrue(props.autoplay) ? 'autoplay' : undefined,\n onloadeddata: props.onload,\n oncreate: props.oncreate,\n onupdate: props.onupdate,\n ondestroy: props.ondestroy\n }, sources(props.sources || []))\n ]);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport nestable from 'hyperapp-nestable';\n\nconst headers = ({labels, onchange, oncontextmenu}, state, actions) => (labels || [])\n .map((label, index) => h('div', {\n class: state.selectedIndex === index ? 'osjs__active' : '',\n oncontextmenu: ev => {\n (oncontextmenu || function() {})(ev, index, label);\n },\n onclick: ev => {\n actions.setSelectedIndex(index);\n (onchange || function() {})(ev, index, label);\n }\n }, h('span', {}, label)));\n\nconst panes = (state, children) => children\n .map((child, index) => h('div', {\n class: state.selectedIndex === index ? 'osjs__active' : ''\n }, child));\n\nconst view = nestable({\n selectedIndex: 0\n}, {\n init: props => ({\n selectedIndex: props.selectedIndex || 0\n }),\n setSelectedIndex: selectedIndex => state => ({selectedIndex})\n}, (state, actions) => (props, children) => h('div', {\n class: 'osjs-gui-tabs-wrapper'\n}, [\n h('div', {class: 'osjs-gui-tabs-header'}, headers(props, state, actions)),\n h('div', {class: 'osjs-gui-tabs-panes'}, panes(state, children))\n]), 'div');\n\n/**\n * A tab container\n * @param {Object} props Properties\n * @param {String[]} props.labels Labels\n * @param {h[]} children Tabs\n */\nexport const Tabs = (props, children) => h(view, Object.assign({\n class: 'osjs-gui osjs-gui-tabs ' + (props.class || '')\n}, props), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {filteredProps} from '../utils';\nimport {Element} from './Element';\n\n/**\n * A iframe\n * @param {Object} props Properties\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Iframe = (props, children = []) =>\n h(Element, Object.assign({}, props.box || {}, {\n class: ['osjs-gui-iframe', props.class]\n }), [\n h('iframe', Object.assign({\n frameborder: 0\n }, filteredProps(props, ['box']))),\n ...children\n ]);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/**\n * A text field\n * @param {Object} props Properties\n * @param {string} [props.value] Value\n * @param {string} [props.type=text] Type\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const TextField = (props = {}, children = []) =>\n createField('text-field', props, {\n autocomplete: 'off',\n autocorrect: 'off',\n autocapitalize: 'off',\n spellcheck: 'false',\n type: 'text'\n }, (fieldProps) => h('input', fieldProps));\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/**\n * A text field\n * @param {Object} props Properties\n * @param {string} [props.value] Value\n * @param {number} [props.rows=4] Number of rows\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const TextareaField = (props = {}, children = []) =>\n createField('textarea-field', props, {\n rows: 4\n }, (fieldProps) => h('textarea', fieldProps, children));\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/**\n * A text field\n * @param {Object} props Properties\n * @param {string} [props.value] Value\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const SelectField = (props = {}, children = []) => {\n\n const getChoices = choices => choices instanceof Array\n ? choices.map(value => typeof value === 'object' ? value : {value, label: value})\n : Object.keys(props.choices || {})\n .map(value => ({value, label: props.choices[value]}));\n\n const choices = getChoices(props.choices)\n .map(({value, label}) => {\n return h('option', {\n value,\n selected: props.value === value\n }, label);\n });\n\n const getValue = ev => [ev.target.value, ev.target.textContent];\n const createSelect = fieldProps => h('div', {}, h('select', fieldProps, [\n ...choices,\n ...children\n ]));\n\n return createField('select-field', props, {\n selectedIndex: undefined\n }, createSelect, getValue);\n};\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/*\n * Parses option value\n */\nconst parseValue = value => {\n try {\n return JSON.parse(value);\n } catch (e) {\n return value;\n }\n};\n\n/**\n * A text field\n * @param {Object} props Properties\n * @param {string} [props.checked] Value\n * @param {string} [props.type=checkbox] Type\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const ToggleField = (props = {}, children = []) =>\n createField('toggle-field', props, {\n type: 'checkbox',\n checked: false\n }, (fieldProps) => h('label', {\n\n }, [\n h('input', fieldProps),\n h('span', {\n class: 'osjs-toggle-input'\n }),\n h('span', {\n class: 'osjs-toggle-label'\n }, [\n props.label || '',\n ...children\n ])\n ]), ev => [props.type === 'radio'\n ? parseValue(ev.target.value)\n : !!ev.target.checked]);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {createField} from '../element';\n\n/**\n * A range field\n * @param {Object} props Properties\n * @param {string} [props.min] Minimum value\n * @param {string} [props.max] Maximum value\n * @param {string} [props.value] Value\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const RangeField = (props = {}, children = []) =>\n createField('range-field', props, {\n type: 'range'\n }, (fieldProps) => h('input', fieldProps));\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\nimport nestable from 'hyperapp-nestable';\n\nconst view = (state, actions) => (props, children) => {\n return h(Element, Object.assign({}, props.box || {}, {\n class: ['osjs-gui-expander-wrapper']\n }), [\n h('div', {\n class: 'osjs-gui-expander-header',\n onclick: ev => actions.ontoggle({\n ev,\n active: !state.active,\n ontoggle: props.ontoggle\n })\n }, [\n h('div', {\n class: 'osjs-gui-expander-header-icon',\n 'data-active': String(state.active)\n }),\n h('div', {\n class: 'osjs-gui-expander-header-label'\n }, props.label)\n ]),\n h('div', {\n class: 'osjs-gui-expander-content',\n style: {\n display: state.active === false ? 'none' : undefined\n }\n }, children)\n ]);\n};\n\nconst inner = nestable({\n active: true\n}, {\n init: props => ({\n ative: props.active !== false\n }),\n ontoggle: ({ev, active, ontoggle}) => {\n const cb = ontoggle || function() {};\n cb(ev, active);\n return {active};\n }\n}, view, 'div');\n\n/**\n * A status bar\n * @param {Object} props Properties\n * @param {boolean} [props.active] Active state\n * @param {Function} [props.ontoggle] Toggle callback => (ev, active)\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Expander = (props, children) =>\n h(inner, Object.assign({}, props, {\n class: 'osjs-gui osjs-gui-expander'\n }), children);\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h} from 'hyperapp';\nimport {Element} from './Element';\n\n/**\n * A label element\n * @param {Object} props Properties\n * @param {string} [props.text] Label Text\n * @param {string} [props.placement] Placement\n * @param {string} [props.for] The \"for\" attribute\n * @param {BoxProperties} [props.box] Box Properties\n * @param {h[]} children Children\n */\nexport const Label = (props = {}, children = []) => {\n const placement = props.placement || 'top';\n const text = props.text || '';\n\n const elementProps = Object.assign({\n class: ['osjs-gui-field-label', 'osjs-gui-field-label-on-' + placement]\n }, props.box || {});\n\n return h(Element, elementProps, [\n h('label', {for: props.for}, text),\n children\n ]);\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","module.exports = require(\"regenerator-runtime\");\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {h, app} from 'hyperapp';\nimport {Menu} from './components/Menu';\n\n/*\n * Makes sure sub-menus stays within viewport\n */\nconst clampSubMenu = (root, ev) => {\n let ul = ev.target.querySelector('ul');\n if (!ul) {\n return;\n }\n\n // FIXME: Safari reports wrong item\n if (ul.classList.contains('osjs-gui-menu-container')) {\n ul = ul.parentNode.parentNode;\n }\n\n if (!ul || !ul.offsetParent) {\n return;\n }\n\n ul.classList.remove('clamp-right');\n\n const rect = ul.getBoundingClientRect();\n if (rect.right > root.offsetWidth) {\n ul.classList.add('clamp-right');\n }\n};\n\n/*\n * Makes sure menu stays within viewport\n */\nconst clampMenu = (root, el, currentPosition) => {\n const result = {};\n const bottom = currentPosition.top + el.offsetHeight;\n const right = currentPosition.left + el.offsetWidth;\n const offY = root.offsetHeight - currentPosition.top;\n const offX = root.offsetWidth - currentPosition.left;\n const overflowRight = right > root.offsetWidth;\n const overflowBottom = bottom > root.offsetHeight;\n\n if (overflowBottom) {\n if (root.offsetHeight > el.offsetHeight) {\n result.top = root.offsetHeight - el.offsetHeight - offY;\n }\n }\n\n if (overflowRight) {\n result.left = root.offsetWidth - el.offsetWidth - offX;\n }\n\n return (overflowBottom || overflowRight) ? result : null;\n};\n\n/*\n * Context Menu view\n */\nconst view = callback => (props, actions) => h(Menu, {\n position: props.position,\n visible: props.visible,\n menu: props.menu,\n onclick: callback,\n onshow: actions.onshow\n});\n\nconst timeout = fn => {\n fn();\n return setTimeout(fn, 100);\n};\n\n/**\n * ContextMenu Class\n *\n * @desc Handles a Menu/ContextMenu globally for OS.js\n */\nexport class ContextMenu {\n\n constructor(core) {\n this.core = core;\n this.callback = () => {};\n this.actions = null;\n this.$element = document.createElement('div');\n }\n\n destroy() {\n this.callback = null;\n this.actions = null;\n }\n\n /**\n * Initializes the Menu Hyperapp\n */\n init() {\n let clampTimeout;\n\n this.$element.className = 'osjs-system-context-menu';\n this.core.$root.appendChild(this.$element);\n\n let isActive = false;\n\n this.actions = app({\n visible: false,\n menu: [],\n position: {\n top: 0,\n left: 0\n }\n }, {\n clamp: (el) => props => {\n el = el || document.querySelector('#osjs-context-menu');\n clearTimeout(clampTimeout);\n\n if (el) {\n const root = this.core.$root;\n const newPosition = clampMenu(root, el, props.position);\n if (newPosition) {\n return {position: newPosition};\n }\n }\n\n return {};\n },\n onshow: (ev) => props => {\n clampTimeout = timeout(() => clampSubMenu(this.core.$root, ev));\n },\n show: (options) => (props, actions) => {\n let {menu, position, toggle} = options;\n if (toggle && isActive) {\n return actions.hide();\n } else if (position instanceof Event) {\n position = {left: position.clientX, top: position.clientY};\n } else if (position instanceof Element) {\n const box = position.getBoundingClientRect();\n position = {\n left: box.left,\n top: box.top + box.height\n };\n }\n\n this.callback = (child, ev, iter) => {\n if (options.callback) {\n options.callback(child, ev);\n }\n\n if (iter.closeable !== false) {\n actions.hide();\n }\n };\n\n isActive = true;\n this.onclose = options.onclose;\n\n timeout(() => actions.clamp());\n\n return {\n visible: true,\n menu: menu || [],\n position: position || {top: 0, left: 0}\n };\n },\n hide: () => props => {\n if (isActive) {\n setTimeout(() => (isActive = false), 0);\n }\n if (this.onclose) {\n this.onclose();\n }\n this.onclose = null;\n this.callback = null;\n\n return {visible: false};\n }\n }, view((...args) => {\n if (!this.core.destroyed) {\n if (this.callback) {\n this.callback(...args);\n }\n }\n }), this.$element);\n }\n\n /**\n * Show the menu\n */\n show(...args) {\n return this.actions ? this.actions.show(...args) : null;\n }\n\n /**\n * Hide the menu\n */\n hide(...args) {\n return this.actions ? this.actions.hide(...args) : null;\n }\n}\n","/*\n * OS.js - JavaScript Cloud/Web Desktop Platform\n *\n * Copyright (c) 2011-2020, Anders Evenrud \n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * @author Anders Evenrud \n * @licence Simplified BSD License\n */\n\nimport {ContextMenu} from './contextmenu.js';\n\n/*\n * Check if a target allows for context menu\n */\nconst validContextMenuTarget = ev => {\n const target = ev.target;\n let isValid = target.tagName === 'TEXTAREA';\n if (!isValid && target.tagName === 'INPUT') {\n isValid = ['text', 'password', 'number', 'email'].indexOf(target.type) !== -1;\n }\n\n return isValid;\n};\n\n/**\n * OS.js GUI Service Provider\n *\n * @desc Provides wrapper services around GUI features\n */\nexport class GUIServiceProvider {\n\n constructor(core) {\n this.core = core;\n this.contextmenu = new ContextMenu(core);\n }\n\n destroy() {\n const menu = document.getElementById('osjs-context-menu');\n if (menu) {\n menu.remove();\n }\n\n this.contextmenu.destroy();\n }\n\n async init() {\n const contextmenuApi = {\n show: (...args) => this.contextmenu.show(...args),\n hide: (...args) => this.contextmenu.hide(...args)\n };\n\n this.core.instance('osjs/contextmenu', (...args) => {\n if (args.length) {\n return contextmenuApi.show(...args);\n }\n\n return contextmenuApi;\n });\n\n this.core.$root.addEventListener('contextmenu', (ev) => {\n if (validContextMenuTarget(ev)) {\n return;\n }\n\n ev.stopPropagation();\n ev.preventDefault();\n });\n }\n\n start() {\n const callback = ev => {\n const menu = document.getElementById('osjs-context-menu');\n const hit = menu && menu.contains(ev.target);\n\n if (!hit && this.contextmenu) {\n this.contextmenu.hide();\n }\n };\n\n this.core.$root.addEventListener('click', callback, true);\n this.core.once('destroy', () => {\n this.core.$root.removeEventListener('click', callback, true);\n });\n\n this.contextmenu.init();\n }\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n"],"sourceRoot":""}