-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added demo, use Vulcanize as build process, hopefully ready for use
- Loading branch information
Matthew Green
committed
Jun 17, 2015
1 parent
4efc60d
commit 737b8fd
Showing
16 changed files
with
65 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<link rel="import" href="bower_components/iron-ajax/iron-ajax.html"> | ||
<link rel="import" href="components/nap-product.html"> | ||
<link rel="import" href="components/nap-product-ajax.html"> | ||
<link rel="import" href="components/nap-product-list.html"> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
<html><head><link rel="import" href="bower_components/polymer/polymer.html"><script>function MakePromise(asap){function Promise(fn){if(typeof this!=="object"||typeof fn!=="function")throw new TypeError;this._state=null;this._value=null;this._deferreds=[];doResolve(fn,resolve.bind(this),reject.bind(this))}function handle(deferred){var me=this;if(this._state===null){this._deferreds.push(deferred);return}asap(function(){var cb=me._state?deferred.onFulfilled:deferred.onRejected;if(typeof cb!=="function"){(me._state?deferred.resolve:deferred.reject)(me._value);return}var ret;try{ret=cb(me._value)}catch(e){deferred.reject(e);return}deferred.resolve(ret)})}function resolve(newValue){try{if(newValue===this)throw new TypeError;if(newValue&&(typeof newValue==="object"||typeof newValue==="function")){var then=newValue.then;if(typeof then==="function"){doResolve(then.bind(newValue),resolve.bind(this),reject.bind(this));return}}this._state=true;this._value=newValue;finale.call(this)}catch(e){reject.call(this,e)}}function reject(newValue){this._state=false;this._value=newValue;finale.call(this)}function finale(){for(var i=0,len=this._deferreds.length;i<len;i++){handle.call(this,this._deferreds[i])}this._deferreds=null}function doResolve(fn,onFulfilled,onRejected){var done=false;try{fn(function(value){if(done)return;done=true;onFulfilled(value)},function(reason){if(done)return;done=true;onRejected(reason)})}catch(ex){if(done)return;done=true;onRejected(ex)}}Promise.prototype["catch"]=function(onRejected){return this.then(null,onRejected)};Promise.prototype.then=function(onFulfilled,onRejected){var me=this;return new Promise(function(resolve,reject){handle.call(me,{onFulfilled:onFulfilled,onRejected:onRejected,resolve:resolve,reject:reject})})};Promise.resolve=function(value){if(value&&typeof value==="object"&&value.constructor===Promise){return value}return new Promise(function(resolve){resolve(value)})};Promise.reject=function(value){return new Promise(function(resolve,reject){reject(value)})};return Promise}if(typeof module!=="undefined"){module.exports=MakePromise}</script><script>if(!window.Promise){window.Promise=MakePromise(Polymer.Base.async)}</script><script>Polymer({is:"iron-request",properties:{xhr:{type:Object,notify:true,readOnly:true,value:function(){return new XMLHttpRequest}},response:{type:Object,notify:true,readOnly:true,value:function(){return null}},completes:{type:Object,readOnly:true,notify:true,value:function(){return new Promise(function(resolve,reject){this.resolveCompletes=resolve;this.rejectCompletes=reject}.bind(this))}},progress:{type:Object,notify:true,readOnly:true,value:function(){return{}}},aborted:{type:Boolean,notify:true,readOnly:true,value:false}},get succeeded(){var status=this.xhr.status||0;return status===0||status>=200&&status<300},send:function(options){var xhr=this.xhr;if(xhr.readyState>0){return null}xhr.addEventListener("readystatechange",function(){if(xhr.readyState===4&&!this.aborted){if(!this.succeeded){this.rejectCompletes(new Error("The request failed with status code: "+this.xhr.status));return}this._setResponse(this.parseResponse());this.resolveCompletes(this)}}.bind(this));xhr.addEventListener("progress",function(progress){this._setProgress({lengthComputable:progress.lengthComputable,loaded:progress.loaded,total:progress.total})}.bind(this));xhr.addEventListener("error",function(error){this.rejectCompletes(error)}.bind(this));xhr.addEventListener("abort",function(){this.rejectCompletes(new Error("Request aborted."))}.bind(this));xhr.open(options.method||"GET",options.url,options.async!==false);if(options.headers){Object.keys(options.headers).forEach(function(requestHeader){xhr.setRequestHeader(requestHeader,options.headers[requestHeader])},this)}xhr.responseType=xhr._responseType=options.handleAs||"text";xhr.withCredentials=!!options.withCredentials;xhr.send(options.body);return this.completes},parseResponse:function(){var xhr=this.xhr;var responseType=this.xhr.responseType||this.xhr._responseType;var preferResponseText=!this.xhr.responseType;try{switch(responseType){case"json":if(preferResponseText||xhr.response===undefined){try{xhr.responseText}catch(e){return xhr.response}if(xhr.responseText){return JSON.parse(xhr.responseText)}}return xhr.response;case"xml":return xhr.responseXML;case"blob":case"document":case"arraybuffer":return xhr.response;case"text":default:return xhr.responseText}}catch(e){this.rejectCompletes(new Error("Could not parse response. "+e.message))}},abort:function(){this._setAborted(true);this.xhr.abort()}});</script><script>Polymer({is:"iron-ajax",properties:{url:{type:String,value:""},params:{type:Object,value:function(){return{}}},method:{type:String,value:"GET"},headers:{type:Object,value:function(){return{}}},contentType:{type:String,value:"application/x-www-form-urlencoded"},body:{type:String,value:""},sync:{type:Boolean,value:false},handleAs:{type:String,value:"json"},withCredentials:{type:Boolean,value:false},auto:{type:Boolean,value:false},verbose:{type:Boolean,value:false},loading:{type:Boolean,notify:true,readOnly:true},lastRequest:{type:Object,notify:true,readOnly:true},lastResponse:{type:Object,notify:true,readOnly:true},lastError:{type:Object,notify:true,readOnly:true},activeRequests:{type:Array,notify:true,readOnly:true,value:function(){return[]}},debounceDuration:{type:Number,value:0,notify:true},_boundHandleResponse:{type:Function,value:function(){return this._handleResponse.bind(this)}}},observers:["_requestOptionsChanged(url, method, params, headers,"+"contentType, body, sync, handleAs, withCredentials, auto)"],get queryString(){var queryParts=[];var param;var value;for(param in this.params){value=this.params[param];param=window.encodeURIComponent(param);if(value!==null){param+="="+window.encodeURIComponent(value)}queryParts.push(param)}return queryParts.join("&")},get requestUrl(){var queryString=this.queryString;if(queryString){return this.url+"?"+queryString}return this.url},get requestHeaders(){var headers={"Content-Type":this.contentType};var header;if(this.headers instanceof Object){for(header in this.headers){headers[header]=this.headers[header].toString()}}return headers},toRequestOptions:function(){return{url:this.requestUrl,method:this.method,headers:this.requestHeaders,body:this.body,async:!this.sync,handleAs:this.handleAs,withCredentials:this.withCredentials}},generateRequest:function(){var request=document.createElement("iron-request");var requestOptions=this.toRequestOptions();this.activeRequests.push(request);request.completes.then(this._boundHandleResponse).catch(this._handleError.bind(this,request)).then(this._discardRequest.bind(this,request));request.send(requestOptions);this._setLastRequest(request);this._setLoading(true);this.fire("request",{request:request,options:requestOptions});return request},_handleResponse:function(request){this._setLastResponse(request.response);this.fire("response",request)},_handleError:function(request,error){if(this.verbose){console.error(error)}this._setLastError({request:request,error:error});this.fire("error",{request:request,error:error})},_discardRequest:function(request){var requestIndex=this.activeRequests.indexOf(request);if(requestIndex>-1){this.activeRequests.splice(requestIndex,1)}if(this.activeRequests.length===0){this._setLoading(false)}},_requestOptionsChanged:function(){this.debounce("generate-request",function(){if(!this.url&&this.url!==""){return}if(this.auto){this.generateRequest()}},this.debounceDuration)}});</script></head><body><div hidden=""><dom-module id="nap-product"><template><img src="{{_imgUrl(pid)}}/"><div>{{designer}}</div><div>{{description}}</div><div>{{price}}</div></template><script>Polymer({is:"nap-product",properties:{designer:String,pid:String,description:String,price:String},_imgUrl:function(pid){return"//cache.net-a-porter.com/images/products/"+pid+"/"+pid+"_in_sl.jpg"}});</script></dom-module><dom-module id="nap-product-ajax"><template><iron-ajax auto="" url="{{_productUrl(pid)}}" handle-as="json" last-response="{{data}}"></iron-ajax><nap-product pid="{{data.id}}" description="{{data.name}}" price="{{displayPrice(data.price)}}" designer="{{data.brand.name}}"></nap-product></template><script>Polymer({is:"nap-product-ajax",properties:{pid:String},_productUrl:function(pid){return"/demo/pids/"+pid+".json"},displayPrice:function(priceObj){return"£"+priceObj.amount/priceObj.divisor}});</script></dom-module><dom-module id="nap-product-list"><style> :host { width: 100%; display:flex; display:-webkit-flex; } nap-product-ajax { display: inline-block; width: 16.66%; } </style><template><iron-ajax auto="" url="/demo/ymal.json" handle-as="json" last-response="{{data}}"></iron-ajax><template is="dom-repeat" items="{{data.ymalPids}}"><nap-product-ajax pid="{{item}}"></nap-product-ajax></template></template><script>Polymer({is:"nap-product-list",properties:{pids:Array}});</script></dom-module></div></body></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<script src="../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script> | ||
<link rel="import" href="../components.html"> | ||
<style> | ||
body: { | ||
margin: 0; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
<nap-product-list></nap-product-list> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"longDescription":"- Black leather \r\n- Asymmetric zip fastening through front\r\n- 100% leather (Mutton); lining: 100% silk\r\n- Specialist clean","name":"Leather biker jacket","sizeFit":"- Fits true to size, take your normal size \r\n- Tailored for a slightly loose fit\r\n- Use the belt to adjust the fit\r\n- Mid-weight, slightly stretchy leather\r\n- Model is 175cm/ 5'9\" and is wearing a IT size 40\r\n\r\n","visible":true,"price":{"currency":"GBP","divisor":100,"amount":269500},"onSale":false,"brand":{"id":250,"name":"Alexander McQueen","urlKey":"Alexander_McQueen"},"analyticsKey":"Leather biker jacket","id":508770,"skus":[{"id":"508770-015","displaySize":"IT48","stockLevel":"Low_Stock","measurements":[{"id":6,"name":"Bust","value":102.0},{"id":3,"name":"Length","value":61.0},{"id":7,"name":"Shoulder","value":42.0},{"id":8,"name":"Sleeve","value":48.0},{"id":9,"name":"Waist","value":92.0}]},{"id":"508770-014","displaySize":"IT46","stockLevel":"Low_Stock","measurements":[{"id":6,"name":"Bust","value":98.0},{"id":3,"name":"Length","value":60.0},{"id":7,"name":"Shoulder","value":41.0},{"id":8,"name":"Sleeve","value":47.0},{"id":9,"name":"Waist","value":88.0}]},{"id":"508770-013","displaySize":"IT44","stockLevel":"Low_Stock","measurements":[{"id":6,"name":"Bust","value":94.0},{"id":3,"name":"Length","value":59.0},{"id":7,"name":"Shoulder","value":40.0},{"id":8,"name":"Sleeve","value":46.0},{"id":9,"name":"Waist","value":84.0}]},{"id":"508770-012","displaySize":"IT42","stockLevel":"In_Stock","measurements":[{"id":6,"name":"Bust","value":90.0},{"id":3,"name":"Length","value":58.0},{"id":7,"name":"Shoulder","value":39.0},{"id":8,"name":"Sleeve","value":45.0},{"id":9,"name":"Waist","value":80.0}]},{"id":"508770-011","displaySize":"IT40","stockLevel":"Low_Stock","measurements":[{"id":6,"name":"Bust","value":86.0},{"id":3,"name":"Length","value":57.0},{"id":7,"name":"Shoulder","value":38.0},{"id":8,"name":"Sleeve","value":45.0},{"id":9,"name":"Waist","value":76.0}]},{"id":"508770-010","displaySize":"IT38","stockLevel":"Out_of_Stock","measurements":[{"id":6,"name":"Bust","value":84.0},{"id":3,"name":"Length","value":56.0},{"id":7,"name":"Shoulder","value":37.0},{"id":8,"name":"Sleeve","value":44.0},{"id":9,"name":"Waist","value":74.0}]},{"id":"508770-009","displaySize":"IT36","stockLevel":"Low_Stock","measurements":[{"id":6,"name":"Bust","value":82.0},{"id":3,"name":"Length","value":55.0},{"id":7,"name":"Shoulder","value":36.0},{"id":8,"name":"Sleeve","value":44.0},{"id":9,"name":"Waist","value":72.0}]}],"designerShippingRestriction":false,"categories":[{"id":2,"name":"Clothing","urlKey":"Clothing","children":[{"id":44,"name":"Jackets","urlKey":"Jackets","children":[{"id":6594,"name":"Biker Jackets","urlKey":"Biker_Jackets"},{"id":6581,"name":"Leather","urlKey":"Leather"}]}]}],"colourIds":[2],"nonReturnable":false,"images":{"shots":["in","fr","bk","cu","ou","e1"],"sizes":["dl","headerbag","idl_cf","im_cf","is_cf","ivs_cf","l","m","m2","mt","mt2","pp","s","sl","xl","xs","xxl"],"mediaType":"image/jpeg","urlTemplate":"{{scheme}}//cache.net-a-porter.com/images/products/508770/508770_{{shot}}_{{size}}.jpg"},"editorsComments":"A <b>leather</b> biker jacket is a timeless wardrobe essential - Alexander McQueen's <b>silk</b>-lined version is luxurious and at the same time cool. It's accented with <b>silver</b> zipped hardware and has a buckled back so you can add feminine shape to the loose cut. <br><br>Shown here with: [The Row Sweater id461355], [Altuzarra Pants id505845], [Givenchy Clutch id472734], [Gianvito Rossi Pumps id496474], [IAM by Ileana Makri Ring id472191], [Eddie Borgo Bracelet id486294].","badges":["In_Stock"]} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"longDescription":"- Off-white shearling, dark-blue denim\r\n- Button fastenings through front\r\n- Fabric1: 100% shearling (Lamb); fabric2: 57% cotton, 43% ramie\r\n- Specialist clean","name":"Denim-paneled shearling jacket ","sizeFit":"- Fits true to size, take your normal size\r\n- Cut for a close fit \r\n- Mid-weight, non-stretchy fabric \r\n- Those with a large bust may wish to take the next size up \r\n- Model is 177cm/ 5'10\" and is wearing an IT size 40 ","visible":true,"price":{"currency":"GBP","divisor":100,"amount":249500},"onSale":false,"brand":{"id":220,"name":"Burberry Prorsum","urlKey":"Burberry_Prorsum"},"analyticsKey":"Denim-paneled shearling jacket ","id":538734,"skus":[{"id":"538734-014","displaySize":"IT46","stockLevel":"Low_Stock","measurements":[{"id":6,"name":"Bust","value":86.0},{"id":3,"name":"Length","value":60.0},{"id":7,"name":"Shoulder","value":41.0},{"id":8,"name":"Sleeve","value":48.0},{"id":9,"name":"Waist","value":92.0}]},{"id":"538734-013","displaySize":"IT44","stockLevel":"In_Stock","measurements":[{"id":6,"name":"Bust","value":84.0},{"id":3,"name":"Length","value":59.0},{"id":7,"name":"Shoulder","value":40.0},{"id":8,"name":"Sleeve","value":47.0},{"id":9,"name":"Waist","value":90.0}]},{"id":"538734-012","displaySize":"IT42","stockLevel":"In_Stock","measurements":[{"id":6,"name":"Bust","value":82.0},{"id":3,"name":"Length","value":58.0},{"id":7,"name":"Shoulder","value":39.0},{"id":8,"name":"Sleeve","value":46.0},{"id":9,"name":"Waist","value":88.0}]},{"id":"538734-011","displaySize":"IT40","stockLevel":"In_Stock","measurements":[{"id":6,"name":"Bust","value":80.0},{"id":3,"name":"Length","value":57.0},{"id":7,"name":"Shoulder","value":38.0},{"id":8,"name":"Sleeve","value":45.0},{"id":9,"name":"Waist","value":86.0}]},{"id":"538734-010","displaySize":"IT38","stockLevel":"In_Stock","measurements":[{"id":6,"name":"Bust","value":78.0},{"id":3,"name":"Length","value":56.0},{"id":7,"name":"Shoulder","value":37.0},{"id":8,"name":"Sleeve","value":44.0},{"id":9,"name":"Waist","value":84.0}]},{"id":"538734-009","displaySize":"IT36","stockLevel":"In_Stock","measurements":[{"id":6,"name":"Bust","value":76.0},{"id":3,"name":"Length","value":55.0},{"id":7,"name":"Shoulder","value":36.0},{"id":8,"name":"Sleeve","value":43.0},{"id":9,"name":"Waist","value":82.0}]},{"id":"538734-008","displaySize":"IT34","stockLevel":"In_Stock","measurements":[{"id":6,"name":"Bust","value":74.0},{"id":3,"name":"Length","value":54.0},{"id":7,"name":"Shoulder","value":35.0},{"id":8,"name":"Sleeve","value":42.0},{"id":9,"name":"Waist","value":80.0}]}],"designerShippingRestriction":false,"categories":[{"id":2,"name":"Clothing","urlKey":"Clothing","children":[{"id":44,"name":"Jackets","urlKey":"Jackets","children":[{"id":552,"name":"Casual Jackets","urlKey":"Casual_Jackets"},{"id":6580,"name":"Fur and Shearling","urlKey":"Fur_and_Shearling"}]},{"id":15502,"name":"Denim","urlKey":"Denim","children":[{"id":15565,"name":"Jackets","urlKey":"Jackets"}]}]}],"colourIds":[100],"nonReturnable":false,"images":{"shots":["in","rw","fr","bk","cu","ou","e1"],"sizes":["dl","headerbag","idl_cf","im_cf","is_cf","ivs_cf","l","m","m2","mt","mt2","pp","s","sl","xl","xs","xxl"],"mediaType":"image/jpeg","urlTemplate":"{{scheme}}//cache.net-a-porter.com/images/products/538734/538734_{{shot}}_{{size}}.jpg"},"editorsComments":"Burberry Prorsum's Italian-made <b>shearling</b> jacket has a curly collar, <b>denim</b> panels and angled pockets that are inspired by field designs from the Burberry Heritage archives. This slim-fit runway piece nips in at the waist and flares out slightly at the hem to flatter. Wear yours with a tonal skirt. <br><br>Shown here with: [The Row Shoulder Bag id513132], [Splendid T-shirt id521216], [Maria Rudman Ring id512059], [Maria Rudman Cuff id512061], [Arme De L'Amour Ring id491256], [Maison Martin Margiela Rings id497678], [Tomas Maier Skirt id503379], [Rochas Sandals id503951].","badges":["In_Stock"]} |
Oops, something went wrong.