webdash-readme-preview
Version:
Preview your README.md straight from the dashboard
127 lines (106 loc) • 3.45 kB
HTML
<!--
@license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
<head>
<title>iron-query-params</title>
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="../iron-query-params.html">
<link rel="import" href="../../iron-flex-layout/iron-flex-layout-classes.html">
</head>
<body>
<dom-module id='iron-query-params-demo'>
<template>
<style include="iron-flex">
div.inputs {
margin-bottom: 15px;
}
label {
display: inline-block;
width: 100px;
}
h3 {
padding: 0;
margin: 0;
}
</style>
<iron-query-params
id="queryParams"
params-string='{{paramString}}'
params-object='{{params}}'>
</iron-query-params>
<div class="layout horizontal">
<div class="layout vertical flex" class='inputs'>
<div>Params as string:</div>
<input value="{{paramString::input}}">
<div>Params as object</div>
<template is="dom-if" if="{{paramsInvalid}}">
<div>INVALID PARAMS: Should be legal JSON</div>
</template>
<input value="{{stringifiedParams::input}}">
</div>
</div>
</template>
<script>
window.addEventListener('WebComponentsReady', function() {
Polymer({
is: 'iron-query-params-demo',
properties: {
params: {
observer: 'paramsChanged'
},
paramsInvalid: {
value: false,
},
paramString: {
type: String,
observer: 'paramStringChanged'
},
stringifiedParams: {
type: String,
observer: 'stringifedParamsChanged'
}
},
paramStringChanged: function() {
if (this.ignore) { return; }
this.ignore = true;
try {
this.paramsInvalid = false;
} catch(_) {
this.paramsInvalid = true;
}
this.ignore = false;
},
stringifedParamsChanged: function() {
if (this.ignore) { return; }
this.ignore = true;
try {
var newParamsObject = JSON.parse(this.stringifiedParams);
this.$.queryParams.paramsObject = newParamsObject;
this.paramsInvalid = false;
} catch (e) {
this.paramsInvalid = true;
}
this.ignore = false;
},
paramsChanged: function() {
if (this.ignore) { return; }
this.ignore = true;
this.stringifiedParams = JSON.stringify(this.params);
this.paramsInvalid = false;
this.ignore = false;
}
});
});
</script>
</dom-module>
<iron-query-params-demo></iron-query-params-demo>
</body>
</html>