UNPKG

jaydata

Version:

Cross-platform HTML5 data-management, JavaScript Language Query (JSLQ) support for OData, SQLite, WebSQL, IndexedDB, YQL and Facebook (packaged for Node.JS)

16 lines (15 loc) 10 kB
// JayData 1.5.10 // Dual licensed under MIT and GPL v2 // Copyright JayStack Technologies (http://jaydata.org/licensing) // // JayData is a standards-based, cross-platform Javascript library and a set of // practices to access and manipulate data from various online and offline sources. // // Credits: // Hajnalka Battancs, Dániel József, János Roden, László Horváth, Péter Nochta // Péter Zentai, Róbert Bónay, Szabolcs Czinege, Viktor Borza, Viktor Lázár, // Zoltán Gyebrovszki, Gábor Dolla // // More info: http://jaydata.org !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define("jaydata/modules/knockout",["jaydata/core"],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.$data=e()}}(function(){return function e(t,n,r){function o(i,s){if(!n[i]){if(!t[i]){var l="function"==typeof require&&require;if(!s&&l)return l(i,!0);if(a)return a(i,!0);var u=new Error("Cannot find module '"+i+"'");throw u.code="MODULE_NOT_FOUND",u}var p=n[i]={exports:{}};t[i][0].call(p.exports,function(e){var n=t[i][1][e];return o(n?n:e)},p,p.exports,e,t,n,r)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(e,t,n){(function(r){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var a=e("jaydata/core"),i=o(a),s="undefined"!=typeof window?window.ko:"undefined"!=typeof r?r.ko:null,l=o(s);!function(e){function t(t,n){for(var r={constructor:function(){var e=this;e.getEntity().propertyChanged.attach(function(t,n){e[n.propertyName]()!==n.newValue&&e[n.propertyName](n.newValue)})},retrieveProperty:function(e){var t=this,n=e.name,r="_"+n;if(!t[r]){var o=new l["default"].observable(t.getEntity()[n]);o.subscribe(function(e){t.getEntity()[n]=e}),t[r]=o}return t[r]},storeProperty:function(e,t){},equalityComparers:{type:e.Object}},o=t.memberDefinitions.getPublicMappedProperties(),a=0,i=o.length;i>a;a++){var s=o[a].name;r[s]={type:l["default"].observable},r.ValidationErrors={type:l["default"].observable}}e.Class.defineEx(n,[{type:e.KoObservableEntity,params:[new e.Class.ConstructorParameter(0),function(){return t}]}],null,r,{isWrappedType:function(e){return e===t}})}if(Object.keys(e.Container.converters.to).forEach(function(t){var n=e.Container.converters.to[t]?e.Container.converters.to[t]["$data.Function"]||e.Container.converters.to[t]["default"]:void 0;e.Container.registerConverter(t,"$data.Function",function(r){return l["default"].isObservable(r)?r:n?n.apply(e.Container.converters[t],arguments):void a.Guard.raise(new a.Exception("Type Error","value is not koObservable",r))})}),"undefined"!=typeof l["default"]){var n,r,o,i,s,u,p;!function(){var d=function(e,t,n){n&&t!==l["default"].selectExtensions.readValue(e)&&l["default"].selectExtensions.writeValue(e,t),t!==l["default"].selectExtensions.readValue(e)&&l["default"].utils.triggerEvent(e,"change")},f=function(t,n){if(t instanceof e.Expressions.ConstantExpression&&l["default"].isObservable(t.value)){n.some(function(e){e.observable===t.value&&(e.skipExecute=!0)}),n.push({observable:t.value,skipExecute:!1});var r=t.value();return a.Container.createConstantExpression(r,a.Container.getTypeName(r),t.name+"$Observable")}return t};n=function(){for(var e=3,t=document.createElement("div"),n=t.getElementsByTagName("i");t.innerHTML="<!--[if gt IE "+ ++e+"]><i></i><![endif]-->",n[0];);return e>4?e:void 0}(),l["default"].utils.ensureSelectElementIsRenderedCorrectly=function(e){if(n>=9){var t=e.style.width;e.style.width=0,e.style.width=t}},l["default"].utils.setOptionNodeSelectionState=function(e,t){navigator.userAgent.indexOf("MSIE 6")>=0?e.setAttribute("selected",t):e.selected=t},l["default"].utils.setTextContent=function(e,t){var r=l["default"].utils.unwrapObservable(t);null!==r&&void 0!==r||(r=""),"innerText"in e?e.innerText=r:e.textContent=r,n>=9&&(e.style.display=e.style.display)},l["default"].bindingHandlers.options={update:function(e,t,n){if("select"!==e.tagName.toLowerCase())throw new Error("options binding applies only to SELECT elements");var r=0==e.length,o=l["default"].utils.arrayMap(l["default"].utils.arrayFilter(e.childNodes,function(e){return e.tagName&&"option"===e.tagName.toLowerCase()&&e.selected}),function(e){return l["default"].selectExtensions.readValue(e)||e.innerText||e.textContent}),a=e.scrollTop,i=l["default"].utils.unwrapObservable(t());for(e.value;e.length>0;)l["default"].cleanNode(e.options[0]),e.remove(0);if(i){var s=n();if("number"!=typeof i.length&&(i=[i]),s.optionsCaption){var u=document.createElement("option");l["default"].utils.setHtml(u,s.optionsCaption),l["default"].selectExtensions.writeValue(u,s.optionsCaptionValue||void 0),e.appendChild(u)}for(var p=0,f=i.length;f>p;p++){var u=document.createElement("option"),c="string"==typeof s.optionsValue?i[p][s.optionsValue]:i[p];c=l["default"].utils.unwrapObservable(c),l["default"].selectExtensions.writeValue(u,c);var v,y=s.optionsText;v="function"==typeof y?y(i[p]):"string"==typeof y?i[p][y]:c,null!==v&&void 0!==v||(v=""),l["default"].utils.setTextContent(u,v),e.appendChild(u)}for(var b=e.getElementsByTagName("option"),E=0,p=0,f=b.length;f>p;p++)l["default"].utils.arrayIndexOf(o,l["default"].selectExtensions.readValue(b[p]))>=0&&(l["default"].utils.setOptionNodeSelectionState(b[p],!0),E++);e.scrollTop=a,r&&"value"in s&&d(e,l["default"].utils.unwrapObservable(s.value),!0),l["default"].utils.ensureSelectElementIsRenderedCorrectly(e)}}},l["default"].bindingHandlers.options.optionValueDomDataKey="__ko.optionValueDomData__",r=e.Expressions.ParameterResolverVisitor.prototype.VisitProperty,e.Expressions.ParameterResolverVisitor.prototype.VisitProperty=function(e,t){var n=r.call(this,e,t);return this.resolvedObservables=this.resolvedObservables||[],f(n,this.resolvedObservables)},o=e.Expressions.QueryExpressionCreator.prototype.VisitConstantExpression,e.Expressions.QueryExpressionCreator.prototype.VisitConstantExpression=function(e,t){return o&&(e=o.call(this,e,t)),f(e,this.resolvedObservables)},i=e.Expressions.QueryExpressionCreator.prototype.VisitCodeExpression,e.Expressions.QueryExpressionCreator.prototype.VisitCodeExpression=function(t,n){var r=t.source.toString(),o=a.Container.createCodeParser(this.scopeContext).createExpression(r);this.scopeContext.log({event:"JSCodeExpression",data:o});var i=a.Container.createConstantValueResolver(t.parameters,e.__global,this.scopeContext),s=a.Container.createParameterResolverVisitor();o=s.Visit(o,i),this.resolvedObservables=(this.resolvedObservables||[]).concat(s.resolvedObservables),this.scopeContext.log({event:"JSCodeExpressionResolved",data:o});var l=a.Container.createCodeToEntityConverter(this.scopeContext),u=l.Visit(o,{queryParameters:t.parameters,lambdaParameters:this.lambdaTypes,frameType:n.frameType}),p=a.Container.createParametricQueryExpression(u,l.parameters);return this.scopeContext.log({event:"EntityExpression",data:u}),p},s=e.Expressions.QueryExpressionCreator.prototype.Visit,e.Expressions.QueryExpressionCreator.prototype.Visit=function(t,n){var r;if(t instanceof e.Expressions.FrameOperator){this.resolvedObservables=[];var r=s.call(this,t,n);r.observables=this.resolvedObservables,r.baseExpression=t}else r=s.call(this,t,n);return r},u=e.EntityContext.prototype.executeQuery,e.EntityContext.prototype.executeQuery=function(e,t,n){var r=this,o=e.expression.observables;o&&o.length>0&&o.forEach(function(o){o&&o.observable.subscribe(function(){if(!o.skipExecute){var i=a.Container.createQueryExpressionCreator(r),s=i.Visit(e.expression.baseExpression);u.call(r,a.Container.createQueryable(e,s),t,n)}})}),u.call(r,e,t,n)},e.EntityWrapper.extend("$data.KoObservableEntity",{constructor:function(t,n){n&&n.isAssignableTo&&n.isAssignableTo(e.Entity)||a.Guard.raise(new a.Exception("Type: '"+n+"' is not assignable to $data.Entity"));var r;t instanceof n?r=t:t instanceof e.Entity?a.Guard.raise(new a.Exception("innerData is instance of '$data.Entity' instead of '"+n.fullName+"'")):r=new n(t),this._wrappedType=n,this.innerInstance=r},getEntity:function(){return this.innerInstance},updateEntity:function(t){var n;t instanceof this._wrappedType?n=t:t&&!(t instanceof e.Entity)&&t instanceof e.Object?n=t:a.Guard.raise("entity is an invalid object");for(var r=this._wrappedType.memberDefinitions.getPublicMappedProperties(),o=0;o<r.length;o++){var i=r[o];if(void 0!==n[i.name]){this[i.name](n[i.name]);var s=this.innerInstance.changedProperties.indexOf(i);s>=0&&this.innerInstance.changedProperties.splice(s,1)}}},getProperties:function(){var e=this,t=this.innerInstance.getType().memberDefinitions.getPublicMappedProperties(),n=t.map(function(t){return{type:t.type,name:t.name,owner:e,metadata:t,value:e[t.name]}});return n}}),e.Entity.prototype.asKoObservable=function(){var e=this.getType(),n=e.namespace+".Observable"+e.name;a.Container.isTypeRegistered(n)||t(e,n);var r=a.Container.resolveType(n);return r.isWrappedType(e)||(t(e,n),r=a.Container.resolveType(n)),new r(this)},p=e.Queryable.prototype.toArray,e.Queryable.prototype.toArray=function(t,n){if(l["default"].isObservable(t)){if("undefined"!=typeof t.push){var r=e.PromiseHandlerBase.createCallbackSettings();return this.toArray(function(n,o){t([]),n.forEach(function(n,o){n instanceof e.Entity?t.push(n.asKoObservable()):r.error("Not Implemented: Observable result has anonymous objects")})},n)}return p.call(this,function(e,n){t(e)},n)}return p.call(this,t,n)}}()}else{var d=function(){a.Guard.raise(new a.Exception("Knockout js is required","Not Found!"))};e.Entity.prototype.asKoObservable=d}}(i["default"]),n["default"]=i["default"],t.exports=n["default"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"jaydata/core":"jaydata/core"}]},{},[1])(1)}); //# sourceMappingURL=knockout.min.js.map