mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-19 03:48:18 -07:00
84 lines
2.2 KiB
HTML
84 lines
2.2 KiB
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
|
|
-->
|
|
|
|
<link rel="import" href="../polymer/polymer.html">
|
|
|
|
|
|
<script>
|
|
'use strict';
|
|
|
|
Polymer({
|
|
is: 'iron-query-params',
|
|
properties: {
|
|
paramsString: {
|
|
type: String,
|
|
notify: true,
|
|
observer: 'paramsStringChanged',
|
|
},
|
|
paramsObject: {
|
|
type: Object,
|
|
notify: true,
|
|
value: function() {
|
|
return {};
|
|
}
|
|
},
|
|
_dontReact: {
|
|
type: Boolean,
|
|
value: false
|
|
}
|
|
},
|
|
hostAttributes: {
|
|
hidden: true
|
|
},
|
|
observers: [
|
|
'paramsObjectChanged(paramsObject.*)'
|
|
],
|
|
paramsStringChanged: function() {
|
|
this._dontReact = true;
|
|
this.paramsObject = this._decodeParams(this.paramsString);
|
|
this._dontReact = false;
|
|
},
|
|
paramsObjectChanged: function() {
|
|
if (this._dontReact) {
|
|
return;
|
|
}
|
|
this.paramsString = this._encodeParams(this.paramsObject);
|
|
},
|
|
_encodeParams: function(params) {
|
|
var encodedParams = [];
|
|
for (var key in params) {
|
|
var value = params[key];
|
|
if (value === '') {
|
|
encodedParams.push(encodeURIComponent(key));
|
|
} else if (value) {
|
|
encodedParams.push(
|
|
encodeURIComponent(key) +
|
|
'=' +
|
|
encodeURIComponent(value.toString())
|
|
);
|
|
}
|
|
}
|
|
return encodedParams.join('&');
|
|
},
|
|
_decodeParams: function(paramString) {
|
|
var params = {};
|
|
var paramList = (paramString || '').split('&');
|
|
for (var i = 0; i < paramList.length; i++) {
|
|
var param = paramList[i].split('=');
|
|
if (param[0]) {
|
|
params[decodeURIComponent(param[0])] =
|
|
decodeURIComponent(param[1] || '');
|
|
}
|
|
}
|
|
return params;
|
|
}
|
|
});
|
|
</script>
|