1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Merge pull request #1949 from MediaBrowser/dev

Dev
This commit is contained in:
Luke 2016-07-17 13:11:39 -04:00 committed by GitHub
commit 2c04fb9eb8
245 changed files with 2380 additions and 9476 deletions

View file

@ -16,12 +16,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.1.64", "version": "1.1.65",
"_release": "1.1.64", "_release": "1.1.65",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.1.64", "tag": "1.1.65",
"commit": "a1d00ddc6a767b00a588729b13c8202b99b1eadb" "commit": "7ba3ab66a503b3cf099ff63a7dc923490401c0bc"
}, },
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git", "_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
"_target": "^1.1.51", "_target": "^1.1.51",

View file

@ -215,7 +215,7 @@
return connectUser; return connectUser;
}; };
var minServerVersion = '3.0.5882'; var minServerVersion = '3.0.5911';
self.minServerVersion = function (val) { self.minServerVersion = function (val) {
if (val) { if (val) {

View file

@ -15,12 +15,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.4.78", "version": "1.4.91",
"_release": "1.4.78", "_release": "1.4.91",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.4.78", "tag": "1.4.91",
"commit": "33c9381ec8872ebd87e46def5a2b86dcbf952f0d" "commit": "a4c5466d5a59e57b157aa941fcadb1e0df602f75"
}, },
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.0", "_target": "^1.2.0",

View file

@ -112,8 +112,8 @@
} else { } else {
dialogOptions.modal = false; dialogOptions.modal = false;
dialogOptions.entryAnimationDuration = 160; dialogOptions.entryAnimationDuration = 140;
dialogOptions.exitAnimationDuration = 200; dialogOptions.exitAnimationDuration = 180;
dialogOptions.autoFocus = false; dialogOptions.autoFocus = false;
} }

View file

@ -134,7 +134,7 @@
browser.xboxOne = userAgent.toLowerCase().indexOf('xbox') != -1; browser.xboxOne = userAgent.toLowerCase().indexOf('xbox') != -1;
browser.animate = document.documentElement.animate != null; browser.animate = document.documentElement.animate != null;
browser.tizen = userAgent.toLowerCase().indexOf('tizen') != -1; browser.tizen = userAgent.toLowerCase().indexOf('tizen') != -1 || userAgent.toLowerCase().indexOf('smarthub') != -1;
browser.web0s = userAgent.toLowerCase().indexOf('Web0S'.toLowerCase()) != -1; browser.web0s = userAgent.toLowerCase().indexOf('Web0S'.toLowerCase()) != -1;
browser.tv = isTv(); browser.tv = isTv();

View file

@ -0,0 +1,111 @@
define(['itemShortcuts', 'connectionManager', 'registerElement'], function (itemShortcuts, connectionManager) {
var ItemsContainerProtoType = Object.create(HTMLDivElement.prototype);
function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function parentWithAttribute(elem, name) {
while (!elem.getAttribute(name)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function getItem(button) {
button = parentWithAttribute(button, 'data-id');
var serverId = button.getAttribute('data-serverid');
var id = button.getAttribute('data-id');
var type = button.getAttribute('data-type');
var apiClient = connectionManager.getApiClient(serverId);
return apiClient.getItem(apiClient.getCurrentUserId(), id);
}
function showContextMenu(button, itemsContainer) {
getItem(button).then(function (item) {
var playlistId = itemsContainer.getAttribute('data-playlistid');
var collectionId = itemsContainer.getAttribute('data-collectionid');
if (playlistId) {
var elem = parentWithAttribute(button, 'data-playlistitemid');
item.PlaylistItemId = elem ? elem.getAttribute('data-playlistitemid') : null;
}
require(['itemContextMenu'], function (itemContextMenu) {
itemContextMenu.show({
positionTo: button,
item: item,
play: true,
queue: true,
playAllFromHere: !item.IsFolder,
queueAllFromHere: !item.IsFolder,
identify: false,
playlistId: playlistId,
collectionId: collectionId
}).then(function (result) {
if (result.command == 'playallfromhere' || result.command == 'queueallfromhere') {
itemShortcuts.execute(button, result.command);
}
else if (result.command == 'removefromplaylist' || result.command == 'removefromcollection') {
itemsContainer.dispatchEvent(new CustomEvent('needsrefresh', {
detail: {},
cancelable: false,
bubbles: true
}));
}
});
});
});
}
function onClick(e) {
var itemsContainer = this;
var menuButton = parentWithClass(e.target, 'menuButton');
if (menuButton) {
showContextMenu(menuButton, itemsContainer);
e.stopPropagation();
return false;
}
}
ItemsContainerProtoType.attachedCallback = function () {
this.addEventListener('click', onClick);
itemShortcuts.on(this);
};
ItemsContainerProtoType.detachedCallback = function () {
this.removeEventListener('click', onClick);
itemShortcuts.off(this);
};
document.registerElement('emby-itemscontainer', {
prototype: ItemsContainerProtoType,
extends: 'div'
});
});

View file

@ -8,8 +8,58 @@
top: 0; top: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
background-color: #52B54B;
} }
.timerIndicator { .timerIndicator {
color: #CB272A; color: #CB272A;
} }
.indicator + .indicator {
margin-left: .25em;
}
.countIndicator {
background: rgba(82,181,75,1);
border-radius: 500px;
display: -ms-flex;
display: -webkit-flex;
display: flex;
align-items: center;
justify-content: center;
font-weight: 500;
color: #fff;
}
.playedIndicator {
background: rgba(82,181,75,1);
border-radius: 500px;
display: -ms-flex;
display: -webkit-flex;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
}
.countIndicator, .playedIndicator {
width: 28px;
height: 28px;
}
.playedIndicator i {
width: 22px;
height: 22px;
font-size: 22px;
}
.layout-tv .countIndicator, .layout-tv .playedIndicator {
width: 3.8vh;
height: 3.8vh;
}
.layout-tv .playedIndicator i {
width: 2.6vh;
height: 2.6vh;
font-size: 2.6vh;
}

View file

@ -1,4 +1,9 @@
define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (appHost, globalize, connectionManager, itemHelper) { define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', 'playbackManager'], function (appHost, globalize, connectionManager, itemHelper, embyRouter, playbackManager) {
var isTheater = true;
appHost.appInfo().then(function (result) {
isTheater = result.appName.toLowerCase().indexOf('theater') != -1;
});
function getCommands(options) { function getCommands(options) {
@ -7,6 +12,8 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
var serverId = item.ServerId; var serverId = item.ServerId;
var apiClient = connectionManager.getApiClient(serverId); var apiClient = connectionManager.getApiClient(serverId);
var canPlay = playbackManager.canPlay(item);
return apiClient.getCurrentUser().then(function (user) { return apiClient.getCurrentUser().then(function (user) {
var commands = []; var commands = [];
@ -32,12 +39,25 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
}); });
} }
if (user.Policy.IsAdministrator) { if (options.edit !== false) {
if (item.MediaType == 'Video' && item.Type != 'TvChannel' && item.Type != 'Program' && item.LocationType != 'Virtual') { if (itemHelper.canEdit(user, item.Type)) {
commands.push({
name: globalize.translate('sharedcomponents#EditSubtitles'), if (!isTheater) {
id: 'editsubtitles' commands.push({
}); name: globalize.translate('sharedcomponents#EditInfo'),
id: 'edit'
});
commands.push({
name: globalize.translate('sharedcomponents#EditImages'),
id: 'editimages'
});
}
if (item.MediaType == 'Video' && item.Type != 'TvChannel' && item.Type != 'Program' && item.LocationType != 'Virtual') {
commands.push({
name: globalize.translate('sharedcomponents#EditSubtitles'),
id: 'editsubtitles'
});
}
} }
} }
@ -48,18 +68,135 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
}); });
} }
if (user.Policy.IsAdministrator) { if (!isTheater && options.identify !== false) {
if (itemHelper.canIdentify(user, item.Type)) {
commands.push({
name: globalize.translate('sharedcomponents#Identify'),
id: 'identify'
});
}
}
if (item.MediaType == "Audio" || item.Type == "MusicAlbum" || item.Type == "MusicArtist" || item.Type == "MusicGenre" || item.CollectionType == "music") {
if (options.instantMix !== false) {
commands.push({
name: globalize.translate('sharedcomponents#InstantMix'),
id: 'instantmix'
});
}
}
if (options.open !== false) {
if (item.Type != 'Timer' && item.Type != 'Audio') {
commands.push({
name: globalize.translate('sharedcomponents#Open'),
id: 'open'
});
}
}
if (canPlay) {
if (options.play !== false) {
commands.push({
name: globalize.translate('sharedcomponents#Play'),
id: 'resume'
});
}
if (options.playAllFromHere) {
commands.push({
name: globalize.translate('sharedcomponents#PlayAllFromHere'),
id: 'playallfromhere'
});
}
if (playbackManager.canQueueMediaType(item.MediaType)) {
if (options.queue !== false) {
commands.push({
name: globalize.translate('sharedcomponents#Queue'),
id: 'queue'
});
}
if (options.queueAllFromHere) {
commands.push({
name: globalize.translate('sharedcomponents#QueueAllFromHere'),
id: 'queueallfromhere'
});
}
}
}
if (item.Type == 'Program' && (!item.TimerId && !item.SeriesTimerId)) {
commands.push({ commands.push({
name: globalize.translate('Refresh'), name: Globalize.translate('sharedcomponents#Record'),
id: 'refresh' id: 'record'
}); });
} }
if (item.Type != 'Timer' && user.Policy.EnablePublicSharing && appHost.supports('sharing')) { if (user.Policy.IsAdministrator) {
if (item.Type != 'Timer') {
commands.push({
name: globalize.translate('sharedcomponents#Refresh'),
id: 'refresh'
});
}
}
if (item.PlaylistItemId && options.playlistId) {
commands.push({ commands.push({
name: globalize.translate('Share'), name: globalize.translate('sharedcomponents#RemoveFromPlaylist'),
id: 'share' id: 'removefromplaylist'
});
}
if (options.collectionId) {
commands.push({
name: globalize.translate('sharedcomponents#RemoveFromCollection'),
id: 'removefromcollection'
});
}
if (options.share !== false) {
if (itemHelper.canShare(user, item)) {
commands.push({
name: globalize.translate('sharedcomponents#Share'),
id: 'share'
});
}
}
if (item.IsFolder || item.Type == "MusicArtist" || item.Type == "MusicGenre") {
if (options.shuffle !== false) {
commands.push({
name: globalize.translate('sharedcomponents#Shuffle'),
id: 'shuffle'
});
}
}
if (!isTheater && options.sync !== false) {
if (itemHelper.canSync(user, item)) {
commands.push({
name: globalize.translate('sharedcomponents#Sync'),
id: 'sync'
});
}
}
if (options.openAlbum !== false && item.AlbumId) {
commands.push({
name: Globalize.translate('sharedcomponents#ViewAlbum'),
id: 'album'
});
}
if (options.openArtist !== false && item.ArtistItems && item.ArtistItems.length) {
commands.push({
name: Globalize.translate('sharedcomponents#ViewArtist'),
id: 'artist'
}); });
} }
@ -67,7 +204,18 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
}); });
} }
function executeCommand(item, id) { function getResolveFunction(resolve, id, changed, deleted) {
return function () {
resolve({
command: id,
updated: changed,
deleted: deleted
});
};
}
function executeCommand(item, id, options) {
var itemId = item.Id; var itemId = item.Id;
var serverId = item.ServerId; var serverId = item.ServerId;
@ -85,7 +233,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
items: [itemId], items: [itemId],
serverId: serverId serverId: serverId
}).then(reject, reject); }).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
}); });
break; break;
} }
@ -97,7 +245,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
items: [itemId], items: [itemId],
serverId: serverId serverId: serverId
}).then(reject, reject); }).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
}); });
break; break;
} }
@ -115,7 +263,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
serverId: serverId serverId: serverId
}]); }]);
reject(); getResolveFunction(getResolveFunction(resolve, id), id)();
}); });
break; break;
@ -125,21 +273,81 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
require(['subtitleEditor'], function (subtitleEditor) { require(['subtitleEditor'], function (subtitleEditor) {
var serverId = apiClient.serverInfo().Id; var serverId = apiClient.serverInfo().Id;
subtitleEditor.show(itemId, serverId).then(resolve, reject); subtitleEditor.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
});
break;
}
case 'edit':
{
editItem(apiClient, item).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
break;
}
case 'editimages':
{
require(['components/imageeditor/imageeditor'], function (ImageEditor) {
ImageEditor.show(itemId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
});
break;
}
case 'identify':
{
require(['components/itemidentifier/itemidentifier'], function (itemidentifier) {
itemidentifier.show(itemId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
}); });
break; break;
} }
case 'refresh': case 'refresh':
{ {
refresh(apiClient, itemId); refresh(apiClient, itemId);
reject(); getResolveFunction(resolve, id)();
break;
}
case 'open':
{
embyRouter.showItem(item);
getResolveFunction(resolve, id)();
break;
}
case 'play':
{
play(item, false);
getResolveFunction(resolve, id)();
break;
}
case 'resume':
{
play(item, true);
getResolveFunction(resolve, id)();
break;
}
case 'queue':
{
play(item, false, true);
getResolveFunction(resolve, id)();
break;
}
case 'record':
require(['recordingCreator'], function (recordingCreator) {
recordingCreator.show(itemId, serverId).then(getResolveFunction(resolve, id, true), getResolveFunction(resolve, id));
});
break;
case 'shuffle':
{
playbackManager.shuffle(item);
getResolveFunction(resolve, id)();
break;
}
case 'instantmix':
{
playbackManager.instantMix(item);
getResolveFunction(resolve, id)();
break; break;
} }
case 'delete': case 'delete':
{ {
deleteItem(apiClient, itemId).then(function () { deleteItem(apiClient, itemId).then(getResolveFunction(resolve, id, true, true), getResolveFunction(resolve, id));
resolve(true);
});
break; break;
} }
case 'share': case 'share':
@ -149,10 +357,76 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
serverId: serverId, serverId: serverId,
itemId: itemId itemId: itemId
}).then(reject); }).then(getResolveFunction(resolve, id));
}); });
break; break;
} }
case 'album':
{
embyRouter.showItem(item.AlbumId, item.ServerId);
getResolveFunction(resolve, id)();
break;
}
case 'artist':
{
embyRouter.showItem(item.ArtistItems[0].Id, item.ServerId);
getResolveFunction(resolve, id)();
break;
}
case 'playallfromhere':
{
getResolveFunction(resolve, id)();
break;
}
case 'queueallfromhere':
{
getResolveFunction(resolve, id)();
break;
}
case 'sync':
{
require(['syncDialog'], function (syncDialog) {
syncDialog.showMenu({
items: [
{
Id: itemId
}]
});
});
getResolveFunction(resolve, id)();
break;
}
case 'removefromplaylist':
apiClient.ajax({
url: apiClient.getUrl('Playlists/' + options.playlistId + '/Items', {
EntryIds: [item.PlaylistItemId].join(',')
}),
type: 'DELETE'
}).then(function () {
getResolveFunction(resolve, id, true)();
});
break;
case 'removefromcollection':
apiClient.ajax({
type: "DELETE",
url: apiClient.getUrl("Collections/" + options.collectionId + "/Items", {
Ids: [item.Id].join(',')
})
}).then(function () {
getResolveFunction(resolve, id, true)();
});
break;
default: default:
reject(); reject();
break; break;
@ -160,6 +434,40 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
}); });
} }
function play(item, resume, queue) {
var method = queue ? 'queue' : 'play';
if (item.Type == 'Program') {
playbackManager[method]({
ids: [item.ChannelId]
});
} else {
playbackManager[method]({
items: [item]
});
}
}
function editItem(apiClient, item) {
return new Promise(function (resolve, reject) {
if (item.Type == 'Timer') {
require(['recordingEditor'], function (recordingEditor) {
var serverId = apiClient.serverInfo().Id;
recordingEditor.show(item.Id, serverId).then(resolve, reject);
});
} else {
require(['components/metadataeditor/metadataeditor'], function (metadataeditor) {
metadataeditor.show(item.Id).then(resolve, reject);
});
}
});
}
function deleteItem(apiClient, itemId) { function deleteItem(apiClient, itemId) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
@ -200,9 +508,12 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper'], function (ap
require(['actionsheet'], function (actionSheet) { require(['actionsheet'], function (actionSheet) {
actionSheet.show({ actionSheet.show({
items: commands
items: commands,
positionTo: options.positionTo
}).then(function (id) { }).then(function (id) {
executeCommand(options.item, id).then(resolve); executeCommand(options.item, id, options).then(resolve);
}, reject); }, reject);
}); });
}); });

View file

@ -1,4 +1,4 @@
define([], function () { define(['apphost'], function (appHost) {
function getDisplayName(item, options) { function getDisplayName(item, options) {
@ -49,6 +49,11 @@ define([], function () {
} }
function supportsAddingToCollection(item) { function supportsAddingToCollection(item) {
if (item.Type == 'Timer') {
return false;
}
var invalidTypes = ['Person', 'Genre', 'MusicGenre', 'Studio', 'GameGenre', 'BoxSet', 'Playlist', 'UserView', 'CollectionFolder', 'Audio', 'TvChannel', 'Program', 'MusicAlbum', 'Timer']; var invalidTypes = ['Person', 'Genre', 'MusicGenre', 'Studio', 'GameGenre', 'BoxSet', 'Playlist', 'UserView', 'CollectionFolder', 'Audio', 'TvChannel', 'Program', 'MusicAlbum', 'Timer'];
return !item.CollectionType && invalidTypes.indexOf(item.Type) == -1 && item.MediaType != 'Photo'; return !item.CollectionType && invalidTypes.indexOf(item.Type) == -1 && item.MediaType != 'Photo';
@ -67,6 +72,58 @@ define([], function () {
return { return {
getDisplayName: getDisplayName, getDisplayName: getDisplayName,
supportsAddingToCollection: supportsAddingToCollection, supportsAddingToCollection: supportsAddingToCollection,
supportsAddingToPlaylist: supportsAddingToPlaylist supportsAddingToPlaylist: supportsAddingToPlaylist,
canIdentify: function (user, itemType) {
if (itemType == "Movie" ||
itemType == "Trailer" ||
itemType == "Series" ||
itemType == "Game" ||
itemType == "BoxSet" ||
itemType == "Person" ||
itemType == "Book" ||
itemType == "MusicAlbum" ||
itemType == "MusicArtist") {
if (user.Policy.IsAdministrator) {
return true;
}
}
return false;
},
canEdit: function (user, itemType) {
if (itemType == "UserRootFolder" || /*itemType == "CollectionFolder" ||*/ itemType == "UserView") {
return false;
}
if (user.Policy.IsAdministrator) {
return true;
}
return false;
},
canSync: function (user, item) {
if (user && !user.Policy.EnableSync) {
return false;
}
return item.SupportsSync;
},
canShare: function (user, item) {
if (item.Type == 'Timer') {
return false;
}
return user.Policy.EnablePublicSharing && appHost.supports('sharing');
}
}; };
}); });

View file

@ -1,6 +1,7 @@
button.listItem { button.listItem {
background: transparent; background: transparent;
border: 0 !important; border: 0 !important;
border-bottom: 1px solid #2a2a2a !important;
cursor: pointer; cursor: pointer;
outline: none !important; outline: none !important;
color: inherit; color: inherit;
@ -11,29 +12,43 @@ button.listItem {
} }
.listItem { .listItem {
margin: 0;
display: block; display: block;
align-items: center; align-items: center;
text-align: left; text-align: left;
padding: 0 1em !important; padding: .25em .25em .25em .25em !important;
line-height: 170%; line-height: 170%;
border-bottom: 1px solid #2a2a2a;
} }
.listItem.largeImage { div.listItem {
padding: 1em 0 1em 1em; cursor: pointer;
} }
.listItem > *:not(.listItemBody) { .listItem.largeImage {
flex-shrink: 0; padding: .5em !important;
} }
.listItem > * { .listItem > *:not(.listItemBody) {
display: inline-block; flex-shrink: 0;
vertical-align: middle; }
}
.listItem > * {
display: inline-block;
vertical-align: middle;
}
.listItem [is=paper-icon-button-light] {
margin: 0;
}
.listViewDragHandle {
margin-left: -.25em !important;
}
.listItemBody { .listItemBody {
flex-grow: 1; flex-grow: 1;
padding: 0 1.15em; padding: 0 1em;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
flex-direction: column; flex-direction: column;
@ -54,9 +69,8 @@ button.listItem {
padding-bottom: 0; padding-bottom: 0;
} }
.listItemBody h3 { .listItemBody h2, .listItemBody h3 {
margin: 0; margin: 0;
font-weight: normal;
padding: 0; padding: 0;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@ -78,10 +92,13 @@ button.listItem {
.listItemImage { .listItemImage {
width: 7.4vh; width: 7.4vh;
height: 7.4vh; height: 7.4vh;
min-width: 40px;
min-height: 40px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: contain; background-size: contain;
flex-shrink: 0; flex-shrink: 0;
margin-left: -.75em; background-position: center center;
position: relative;
} }
.listItemIcon { .listItemIcon {
@ -94,7 +111,6 @@ button.listItem {
width: 45vh; width: 45vh;
height: 30vh; height: 30vh;
background-position: center center; background-position: center center;
position: relative;
margin-right: 2%; margin-right: 2%;
margin-left: 1%; margin-left: 1%;
} }
@ -133,10 +149,48 @@ button.listItem {
background-color: transparent !important; background-color: transparent !important;
} }
.listItemMediaInfo {
align-items: center;
}
.layout-tv .listItemMediaInfo {
margin: .5em 0;
}
.listItemMediaInfo > * {
display: inline-block;
}
.listGroupHeader {
margin: 2em 0 1em;
}
.listGroupHeader.first {
margin-top: 0;
}
.listItem .indicators {
right: .5vh;
top: .5vh;
position: absolute;
display: flex;
align-items: center;
}
@supports (display: flex) { @supports (display: flex) {
.listItem, .listItemBody { .listItem > * {
display: flex;
}
.listItem, .listItemBody, .listItemMediaInfo {
display: flex; display: flex;
} }
} }
@media all and (max-width: 800px) {
.listItem .endsAt, .listItem .criticRating {
display: none !important;
}
}

View file

@ -1,8 +1,116 @@
define(['itemHelper', 'mediaInfo', 'indicators', 'css!./listview'], function (itemHelper, mediaInfo, indicators) { define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutManager', 'globalize', 'userdataButtons', 'css!./listview'], function (itemHelper, mediaInfo, indicators, connectionManager, layoutManager, globalize, userdataButtons) {
function getIndex(item, options) {
if (options.index == 'disc') {
return item.ParentIndexNumber == null ? '' : globalize.translate('sharedcomponents#ValueDiscNumber', item.ParentIndexNumber);
}
var sortBy = (options.sortBy || '').toLowerCase();
var code, name;
if (sortBy.indexOf('sortname') == 0) {
if (item.Type == 'Episode') return '';
// SortName
name = (item.SortName || item.Name || '?')[0].toUpperCase();
code = name.charCodeAt(0);
if (code < 65 || code > 90) {
return '#';
}
return name.toUpperCase();
}
if (sortBy.indexOf('officialrating') == 0) {
return item.OfficialRating || globalize.translate('sharedcomponents#Unrated');
}
if (sortBy.indexOf('communityrating') == 0) {
if (item.CommunityRating == null) {
return globalize.translate('sharedcomponents#Unrated');
}
return Math.floor(item.CommunityRating);
}
if (sortBy.indexOf('criticrating') == 0) {
if (item.CriticRating == null) {
return globalize.translate('sharedcomponents#Unrated');
}
return Math.floor(item.CriticRating);
}
if (sortBy.indexOf('metascore') == 0) {
if (item.Metascore == null) {
return globalize.translate('sharedcomponents#Unrated');
}
return Math.floor(item.Metascore);
}
if (sortBy.indexOf('albumartist') == 0) {
// SortName
if (!item.AlbumArtist) return '';
name = item.AlbumArtist[0].toUpperCase();
code = name.charCodeAt(0);
if (code < 65 || code > 90) {
return '#';
}
return name.toUpperCase();
}
return '';
}
function getImageUrl(item, width) {
var apiClient = connectionManager.getApiClient(item.ServerId);
var options = {
width: width,
type: "Primary"
};
if (item.ImageTags && item.ImageTags['Primary']) {
options.tag = item.ImageTags['Primary'];
return apiClient.getScaledImageUrl(item.Id, options);
}
if (item.AlbumId && item.AlbumPrimaryImageTag) {
options.tag = item.AlbumPrimaryImageTag;
return apiClient.getScaledImageUrl(item.AlbumId, options);
}
else if (item.SeriesId && item.SeriesPrimaryImageTag) {
options.tag = item.SeriesPrimaryImageTag;
return apiClient.getScaledImageUrl(item.SeriesId, options);
}
else if (item.ParentPrimaryImageTag) {
options.tag = item.ParentPrimaryImageTag;
return apiClient.getScaledImageUrl(item.ParentPrimaryImageItemId, options);
}
return null;
}
function getListViewHtml(items, options) { function getListViewHtml(items, options) {
var outerHtml = ""; if (arguments.length == 1) {
options = items;
items = options.items;
}
var index = 0; var index = 0;
var groupTitle = ''; var groupTitle = '';
@ -11,11 +119,46 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'css!./listview'], function (it
var isLargeStyle = options.imageSize == 'large'; var isLargeStyle = options.imageSize == 'large';
var enableOverview = options.enableOverview; var enableOverview = options.enableOverview;
var clickEntireItem = layoutManager.tv ? true : false;
var outerTagName = clickEntireItem ? 'button' : 'div';
var enableSideMediaInfo = options.enableSideMediaInfo != null ? options.enableSideMediaInfo : clickEntireItem;
var outerHtml = '';
outerHtml += items.map(function (item) { outerHtml += items.map(function (item) {
var html = ''; var html = '';
var cssClass = "itemAction listItem"; if (options.showIndex) {
var itemGroupTitle = getIndex(item, options);
if (itemGroupTitle != groupTitle) {
if (html) {
html += '</div>';
}
if (index == 0) {
html += '<h1 class="listGroupHeader first">';
}
else {
html += '<h1 class="listGroupHeader">';
}
html += itemGroupTitle;
html += '</h1>';
html += '<div>';
groupTitle = itemGroupTitle;
}
}
var cssClass = "listItem";
if (clickEntireItem) {
cssClass += ' itemAction';
}
var downloadWidth = 80; var downloadWidth = 80;
@ -24,24 +167,20 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'css!./listview'], function (it
downloadWidth = 500; downloadWidth = 500;
} }
html += '<button class="' + cssClass + '" data-index="' + index + '" data-action="' + action + '" data-isfolder="' + item.IsFolder + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-type="' + item.Type + '">'; var playlistItemId = item.PlaylistItemId ? (' data-playlistitemid="' + item.PlaylistItemId + '"') : '';
var imgUrl = Emby.Models.imageUrl(item, { html += '<' + outerTagName + ' class="' + cssClass + '" data-index="' + index + '"' + playlistItemId + ' data-action="' + action + '" data-isfolder="' + item.IsFolder + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-type="' + item.Type + '">';
width: downloadWidth,
type: "Primary"
});
if (!imgUrl) { if (!clickEntireItem && options.dragHandle) {
imgUrl = Emby.Models.thumbImageUrl(item, { html += '<button is="paper-icon-button-light" class="listViewDragHandle autoSize"><i class="md-icon">&#xE25D;</i></button>';
width: downloadWidth,
type: "Thumb"
});
} }
var imgUrl = getImageUrl(item, downloadWidth);
if (imgUrl) { if (imgUrl) {
html += '<div class="listItemImage lazy" data-src="' + imgUrl + '" item-icon>'; html += '<div class="listItemImage lazy" data-src="' + imgUrl + '" item-icon>';
} else { } else {
html += '<div class="listItemImage" item-icon>'; html += '<div class="listItemImage">';
} }
var indicatorsHtml = ''; var indicatorsHtml = '';
@ -63,8 +202,6 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'css!./listview'], function (it
if (options.showParentTitle) { if (options.showParentTitle) {
if (item.Type == 'Episode') { if (item.Type == 'Episode') {
textlines.push(item.SeriesName || '&nbsp;'); textlines.push(item.SeriesName || '&nbsp;');
} else if (item.Type == 'MusicAlbum') {
textlines.push(item.AlbumArtist || '&nbsp;');
} }
} }
@ -75,27 +212,47 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'css!./listview'], function (it
} }
textlines.push(displayName); textlines.push(displayName);
if (item.Type == 'Audio') { if (item.ArtistItems && item.Type != 'MusicAlbum') {
textlines.push(item.ArtistItems.map(function (a) { textlines.push(item.ArtistItems.map(function (a) {
return a.Name; return a.Name;
}).join(', ') || '&nbsp;'); }).join(', ') || '&nbsp;');
} }
if (item.AlbumArtist && item.Type == 'MusicAlbum') {
textlines.push(item.AlbumArtist || '&nbsp;');
}
if (item.Type == 'Game') {
textlines.push(item.GameSystem || '&nbsp;');
}
if (item.Type == 'TvChannel') {
if (item.CurrentProgram) {
textlines.push(itemHelper.getDisplayName(item.CurrentProgram));
}
}
var lineCount = textlines.length; var lineCount = textlines.length;
if (!options.enableSideMediaInfo) { if (!enableSideMediaInfo) {
lineCount++; lineCount++;
} }
if (enableOverview && item.Overview) { if (enableOverview && item.Overview) {
lineCount++; lineCount++;
} }
html += '<div class="listItemBody">'; cssClass = 'listItemBody';
if (!clickEntireItem) {
cssClass += ' itemAction';
}
html += '<div class="' + cssClass + '">';
for (var i = 0, textLinesLength = textlines.length; i < textLinesLength; i++) { for (var i = 0, textLinesLength = textlines.length; i < textLinesLength; i++) {
if (i == 0 && isLargeStyle) { if (i == 0 && isLargeStyle) {
html += '<h2 class="listItemTitle">'; html += '<h2>';
} }
else if (i == 0) { else if (i == 0) {
html += '<div>'; html += '<div>';
@ -105,12 +262,14 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'css!./listview'], function (it
html += textlines[i] || '&nbsp;'; html += textlines[i] || '&nbsp;';
if (i == 0 && isLargeStyle) { if (i == 0 && isLargeStyle) {
html += '</h2>'; html += '</h2>';
} else if (i == 0) {
html += '</div>';
} else { } else {
html += '</div>'; html += '</div>';
} }
} }
if (!options.enableSideMediaInfo) { if (!enableSideMediaInfo) {
html += '<div class="secondary listItemMediaInfo">' + mediaInfo.getPrimaryMediaInfoHtml(item) + '</div>'; html += '<div class="secondary listItemMediaInfo">' + mediaInfo.getPrimaryMediaInfoHtml(item) + '</div>';
} }
@ -122,11 +281,18 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'css!./listview'], function (it
html += '</div>'; html += '</div>';
if (options.enableSideMediaInfo) { if (enableSideMediaInfo) {
html += '<div class="secondary listItemMediaInfo">' + mediaInfo.getPrimaryMediaInfoHtml(item) + '</div>'; html += '<div class="secondary listItemMediaInfo">' + mediaInfo.getPrimaryMediaInfoHtml(item) + '</div>';
} }
html += '</button>'; if (!clickEntireItem) {
html += '<button is="paper-icon-button-light" class="menuButton autoSize"><i class="md-icon">&#xE5D4;</i></button>';
html += '<span class="listViewUserDataButtons">';
html += userdataButtons.getIconsHtml(item, false);
html += '</span>';
}
html += '</' + outerTagName + '>';
index++; index++;
return html; return html;

View file

@ -3,9 +3,9 @@
} }
i.mediaInfoItem { i.mediaInfoItem {
width: 3vh; width: auto;
height: 3vh; height: auto;
font-size: 3vh; font-size: 1.6em;
margin-right: .6em; margin-right: .6em;
} }
@ -24,17 +24,17 @@ i.mediaInfoItem {
.starRatingContainer i { .starRatingContainer i {
color: #CB272A; color: #CB272A;
width: 3vh; width: auto !important;
height: 3vh; height: auto !important;
font-size: 3vh; font-size: 120%;
} }
.mediaInfoItem.criticRating { .mediaInfoItem.criticRating {
padding-left: 3.15vh; padding-left: 1.5em;
background-position: left center; background-position: left center;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: auto 2.6vh; background-size: auto 1.2em;
min-height: 2.6vh; min-height: 1.2em;
display: flex; display: flex;
align-items: center; align-items: center;
} }
@ -63,15 +63,3 @@ i.mediaInfoItem {
font-size: 90%; font-size: 90%;
padding: .1em .5em; padding: .1em .5em;
} }
.layout-tv i.mediaInfoItem {
width: 4vh;
height: 4vh;
font-size: 4vh;
}
.layout-tv .starRatingContainer i {
width: 3.4vh;
height: 3.4vh;
font-size: 3.4vh;
}

View file

@ -237,6 +237,10 @@ define(['datetime', 'globalize', 'embyRouter', 'material-icons', 'css!./mediainf
miscInfo.push(item.Width + "x" + item.Height); miscInfo.push(item.Width + "x" + item.Height);
} }
if (item.Type == 'Audio' && item.Container) {
miscInfo.push(item.Container);
}
html += miscInfo.map(function (m) { html += miscInfo.map(function (m) {
return getMediaInfoItem(m); return getMediaInfoItem(m);
}).join(''); }).join('');

View file

@ -134,7 +134,10 @@
dlg.addEventListener('close', function () { dlg.addEventListener('close', function () {
if (recordingUpdated) { if (recordingUpdated) {
resolve(); resolve({
updated: true,
deleted: false
});
} else { } else {
reject(); reject();
} }

View file

@ -1,7 +1,11 @@
define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'globalize', 'loading'], function (playbackManager, inputManager, connectionManager, embyRouter, globalize, loading) { define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'globalize', 'loading'], function (playbackManager, inputManager, connectionManager, embyRouter, globalize, loading) {
function playAllFromHere(card, serverId) { function playAllFromHere(card, serverId, queue) {
var cards = card.parentNode.querySelectorAll('.itemAction[data-id]');
var parent = card.parentNode;
var className = card.classList.length ? ('.' + card.classList[0]) : '';
var cards = parent.querySelectorAll(className + '[data-id]');
var ids = []; var ids = [];
var foundCard = false; var foundCard = false;
@ -13,10 +17,22 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
ids.push(cards[i].getAttribute('data-id')); ids.push(cards[i].getAttribute('data-id'));
} }
} }
playbackManager.play({
ids: ids, if (!ids.length) {
serverId: serverId return;
}); }
if (queue) {
playbackManager.queue({
ids: ids,
serverId: serverId
});
} else {
playbackManager.play({
ids: ids,
serverId: serverId
});
}
} }
function showSlideshow(startItemId, serverId) { function showSlideshow(startItemId, serverId) {
@ -75,7 +91,14 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
} }
function executeAction(card, action) { function executeAction(card, action) {
var id = card.getAttribute('data-id'); var id = card.getAttribute('data-id');
if (!id) {
card = parentWithAttribute(card, 'data-id');
id = card.getAttribute('data-id');
}
var serverId = card.getAttribute('data-serverid'); var serverId = card.getAttribute('data-serverid');
var type = card.getAttribute('data-type'); var type = card.getAttribute('data-type');
var isfolder = card.getAttribute('data-isfolder') == 'true'; var isfolder = card.getAttribute('data-isfolder') == 'true';
@ -108,8 +131,12 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
playAllFromHere(card, serverId); playAllFromHere(card, serverId);
} }
else if (action == 'setplaylistindex') { else if (action == 'queueallfromhere') {
playAllFromHere(card, serverId, true);
}
else if (action == 'setplaylistindex') {
playbackManager.currentPlaylistIndex(parseInt(card.getAttribute('data-index')));
} }
else if (action == 'record') { else if (action == 'record') {
@ -197,7 +224,14 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
var card = parentWithClass(e.target, 'itemAction'); var card = parentWithClass(e.target, 'itemAction');
if (card) { if (card) {
var action = card.getAttribute('data-action');
var actionElement = card;
var action = actionElement.getAttribute('data-action');
if (!action) {
actionElement = parentWithAttribute(actionElement, 'data-action');
action = actionElement.getAttribute('data-action');
}
if (action) { if (action) {
executeAction(card, action); executeAction(card, action);
@ -205,6 +239,19 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
} }
} }
function parentWithAttribute(elem, name) {
while (!elem.getAttribute(name)) {
elem = elem.parentNode;
if (!elem) {
return null;
}
}
return elem;
}
function parentWithClass(elem, className) { function parentWithClass(elem, className) {
while (!elem.classList || !elem.classList.contains(className)) { while (!elem.classList || !elem.classList.contains(className)) {
@ -242,7 +289,8 @@ define(['playbackManager', 'inputManager', 'connectionManager', 'embyRouter', 'g
return { return {
on: on, on: on,
off: off off: off,
execute: executeAction
}; };
}); });

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"HeaderYouSaid": "You Said...",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ButtonTryAgain": "Try Again",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Del", "Share": "Del",
"ServerUpdateNeeded": "Denne Emby server b\u00f8r opdateres. For at downloade den nyeste version bes\u00f8g venligst {0}", "ServerUpdateNeeded": "Denne Emby server b\u00f8r opdateres. For at downloade den nyeste version bes\u00f8g venligst {0}",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "Replace all metadata", "ReplaceAllMetadata": "Replace all metadata",
"SearchForMissingMetadata": "Search for missing metadata", "SearchForMissingMetadata": "Search for missing metadata",
"LabelRefreshMode": "Refresh mode:", "LabelRefreshMode": "Refresh mode:",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard." "NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"ButtonTryAgain": "Try Again",
"HeaderYouSaid": "You Said...",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"HeaderYouSaid": "You Said...",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ButtonTryAgain": "Try Again",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Teilen", "Share": "Teilen",
"ServerUpdateNeeded": "Dieser Emby Server sollte aktualisiert werden. Um die neueste Version zu laden, besuche bitte {0}", "ServerUpdateNeeded": "Dieser Emby Server sollte aktualisiert werden. Um die neueste Version zu laden, besuche bitte {0}",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "Replace all metadata", "ReplaceAllMetadata": "Replace all metadata",
"SearchForMissingMetadata": "Search for missing metadata", "SearchForMissingMetadata": "Search for missing metadata",
"LabelRefreshMode": "Refresh mode:", "LabelRefreshMode": "Refresh mode:",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard." "NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"ButtonTryAgain": "Try Again",
"HeaderYouSaid": "You Said...",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -92,5 +92,25 @@
"HeaderYouSaid": "You Said...", "HeaderYouSaid": "You Said...",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.", "MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.", "MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard." "ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"EditInfo": "Edit Info",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here",
"RemoveFromPlaylist": "Remove from Playlist"
} }

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "No se encontraron \u00edtems.",
"HeaderSaySomethingLike": "Decir Algo Como...",
"HeaderYouSaid": "Ha Dicho...",
"MessageIfYouBlockedVoice": "Si ha negado el acceso por voz a la aplicaci\u00f3n necesitara reconfigurar antes de intentarlo de nuevo.",
"ButtonTryAgain": "Intentar de Nuevo",
"MessageWeDidntRecognizeCommand": "Lo sentimos, no reconocimos ese comando.",
"ValueSpecialEpisodeName": "Especial - {0}", "ValueSpecialEpisodeName": "Especial - {0}",
"Share": "Compartir", "Share": "Compartir",
"ServerUpdateNeeded": "Este Servidor Emby necesita ser actualizado. Para descargar la ultima versi\u00f3n, por favor visite {0}", "ServerUpdateNeeded": "Este Servidor Emby necesita ser actualizado. Para descargar la ultima versi\u00f3n, por favor visite {0}",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "Remplazar todos los metadatos", "ReplaceAllMetadata": "Remplazar todos los metadatos",
"SearchForMissingMetadata": "Buscar metadatos faltantes", "SearchForMissingMetadata": "Buscar metadatos faltantes",
"LabelRefreshMode": "Modo de actualizaci\u00f3n:", "LabelRefreshMode": "Modo de actualizaci\u00f3n:",
"RefreshDialogHelp": "Los metadatos son actualizados bas\u00e1ndose en las configuraciones y servicios de internet que que est\u00e9n activados en el panel de control de su Servidor de Emby." "NoItemsFound": "No se encontraron \u00edtems.",
"HeaderSaySomethingLike": "Decir Algo Como...",
"ButtonTryAgain": "Intentar de Nuevo",
"HeaderYouSaid": "Ha Dicho...",
"MessageWeDidntRecognizeCommand": "Lo sentimos, no reconocimos ese comando.",
"MessageIfYouBlockedVoice": "Si ha negado el acceso por voz a la aplicaci\u00f3n necesitara reconfigurar antes de intentarlo de nuevo.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "Los metadatos son actualizados bas\u00e1ndose en las configuraciones y servicios de internet que que est\u00e9n activados en el panel de control de su Servidor de Emby.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "\u0415\u0448\u049b\u0430\u043d\u0434\u0430\u0439 \u0442\u0430\u0440\u043c\u0430\u049b\u0442\u0430\u0440 \u0442\u0430\u0431\u044b\u043b\u043c\u0430\u0434\u044b.",
"HeaderSaySomethingLike": "\u041e\u0441\u044b\u043d\u0434\u0430\u0439 \u0441\u0438\u044f\u049b\u0442\u044b\u043d\u044b \u0430\u0439\u0442\u044b\u04a3\u044b\u0437...",
"HeaderYouSaid": "\u0421\u0456\u0437 \u0430\u0439\u0442\u049b\u0430\u043d\u044b\u04a3\u044b\u0437...",
"MessageIfYouBlockedVoice": "\u0415\u0433\u0435\u0440 \u049b\u043e\u043b\u0434\u0430\u043d\u0431\u0430\u0493\u0430 \u0434\u0430\u0443\u044b\u0441\u0442\u044b\u049b \u049b\u0430\u0442\u044b\u043d\u0430\u0443\u044b\u04a3\u044b\u0437 \u0431\u0430\u0441 \u0442\u0430\u0440\u0442\u044b\u043b\u0441\u0430, \u049b\u0430\u0439\u0442\u0430 \u04d9\u0440\u0435\u043a\u0435\u0442\u0442\u0435\u043d\u0443\u0456\u04a3\u0456\u0437\u0434\u0435\u043d \u0430\u043b\u0434\u044b\u043d\u0430\u043d \u049b\u0430\u0439\u0442\u0430 \u0442\u0435\u04a3\u0448\u0435\u0443\u0456\u04a3\u0456\u0437 \u049b\u0430\u0436\u0435\u0442 \u0431\u043e\u043b\u0430\u0434\u044b.",
"ButtonTryAgain": "\u04d8\u0440\u0435\u043a\u0435\u0442\u0442\u0456 \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u0443",
"MessageWeDidntRecognizeCommand": "\u041e\u0441\u044b\u043d\u0434\u0430\u0439 \u043f\u04d9\u0440\u043c\u0435\u043d\u0434\u0456 \u0442\u0430\u043d\u044b\u043f \u0430\u0439\u044b\u0440\u043c\u0430\u0434\u044b\u049b.",
"ValueSpecialEpisodeName": "\u0410\u0440\u043d\u0430\u0439\u044b - {0}", "ValueSpecialEpisodeName": "\u0410\u0440\u043d\u0430\u0439\u044b - {0}",
"Share": "\u041e\u0440\u0442\u0430\u049b\u0442\u0430\u0441\u0443", "Share": "\u041e\u0440\u0442\u0430\u049b\u0442\u0430\u0441\u0443",
"ServerUpdateNeeded": "\u041e\u0441\u044b Emby Server \u0436\u0430\u04a3\u0430\u0440\u0442\u044b\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442. \u0421\u043e\u04a3\u0493\u044b \u043d\u04b1\u0441\u049b\u0430\u0441\u044b\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u04af\u0448\u0456\u043d, {0} \u043a\u0456\u0440\u0456\u04a3\u0456\u0437", "ServerUpdateNeeded": "\u041e\u0441\u044b Emby Server \u0436\u0430\u04a3\u0430\u0440\u0442\u044b\u043b\u0443\u044b \u049b\u0430\u0436\u0435\u0442. \u0421\u043e\u04a3\u0493\u044b \u043d\u04b1\u0441\u049b\u0430\u0441\u044b\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u04af\u0448\u0456\u043d, {0} \u043a\u0456\u0440\u0456\u04a3\u0456\u0437",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "\u0411\u0430\u0440\u043b\u044b\u049b \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443", "ReplaceAllMetadata": "\u0411\u0430\u0440\u043b\u044b\u049b \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443",
"SearchForMissingMetadata": "\u0416\u043e\u049b \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u0456\u0437\u0434\u0435\u0443", "SearchForMissingMetadata": "\u0416\u043e\u049b \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u0456\u0437\u0434\u0435\u0443",
"LabelRefreshMode": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443 \u0440\u0435\u0436\u0456\u043c\u0456:", "LabelRefreshMode": "\u0416\u0430\u04a3\u0493\u044b\u0440\u0442\u0443 \u0440\u0435\u0436\u0456\u043c\u0456:",
"RefreshDialogHelp": "\u041c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440 \u043c\u0435\u043d Emby Server \u0431\u0430\u049b\u044b\u043b\u0430\u0443 \u0442\u0430\u049b\u0442\u0430\u0441\u044b\u043d\u0434\u0430 \u049b\u043e\u0441\u044b\u043b\u0493\u0430\u043d \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u049b\u044b\u0437\u043c\u0435\u0442\u0442\u0435\u0440\u0456 \u043d\u0435\u0433\u0456\u0437\u0456\u043d\u0434\u0435 \u0436\u0430\u04a3\u0493\u044b\u0440\u0442\u044b\u043b\u0430\u0434\u044b." "NoItemsFound": "\u0415\u0448\u049b\u0430\u043d\u0434\u0430\u0439 \u0442\u0430\u0440\u043c\u0430\u049b\u0442\u0430\u0440 \u0442\u0430\u0431\u044b\u043b\u043c\u0430\u0434\u044b.",
"HeaderSaySomethingLike": "\u041e\u0441\u044b\u043d\u0434\u0430\u0439 \u0441\u0438\u044f\u049b\u0442\u044b\u043d\u044b \u0430\u0439\u0442\u044b\u04a3\u044b\u0437...",
"ButtonTryAgain": "\u04d8\u0440\u0435\u043a\u0435\u0442\u0442\u0456 \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u0443",
"HeaderYouSaid": "\u0421\u0456\u0437 \u0430\u0439\u0442\u049b\u0430\u043d\u044b\u04a3\u044b\u0437...",
"MessageWeDidntRecognizeCommand": "\u041e\u0441\u044b\u043d\u0434\u0430\u0439 \u043f\u04d9\u0440\u043c\u0435\u043d\u0434\u0456 \u0442\u0430\u043d\u044b\u043f \u0430\u0439\u044b\u0440\u043c\u0430\u0434\u044b\u049b.",
"MessageIfYouBlockedVoice": "\u0415\u0433\u0435\u0440 \u049b\u043e\u043b\u0434\u0430\u043d\u0431\u0430\u0493\u0430 \u0434\u0430\u0443\u044b\u0441\u0442\u044b\u049b \u049b\u0430\u0442\u044b\u043d\u0430\u0443\u044b\u04a3\u044b\u0437 \u0431\u0430\u0441 \u0442\u0430\u0440\u0442\u044b\u043b\u0441\u0430, \u049b\u0430\u0439\u0442\u0430 \u04d9\u0440\u0435\u043a\u0435\u0442\u0442\u0435\u043d\u0443\u0456\u04a3\u0456\u0437\u0434\u0435\u043d \u0430\u043b\u0434\u044b\u043d\u0430\u043d \u049b\u0430\u0439\u0442\u0430 \u0442\u0435\u04a3\u0448\u0435\u0443\u0456\u04a3\u0456\u0437 \u049b\u0430\u0436\u0435\u0442 \u0431\u043e\u043b\u0430\u0434\u044b.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "\u041c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440 \u043c\u0435\u043d Emby Server \u0431\u0430\u049b\u044b\u043b\u0430\u0443 \u0442\u0430\u049b\u0442\u0430\u0441\u044b\u043d\u0434\u0430 \u049b\u043e\u0441\u044b\u043b\u0493\u0430\u043d \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u049b\u044b\u0437\u043c\u0435\u0442\u0442\u0435\u0440\u0456 \u043d\u0435\u0433\u0456\u0437\u0456\u043d\u0434\u0435 \u0436\u0430\u04a3\u0493\u044b\u0440\u0442\u044b\u043b\u0430\u0434\u044b.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"HeaderYouSaid": "You Said...",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ButtonTryAgain": "Try Again",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"ValueSpecialEpisodeName": "Spesial - {0}", "ValueSpecialEpisodeName": "Spesial - {0}",
"Share": "Del", "Share": "Del",
"ServerUpdateNeeded": "Denne Emby serveren trenger en oppdatering. For \u00e5 laste ned nyeste versjon, vennligst bes\u00f8k: {0}", "ServerUpdateNeeded": "Denne Emby serveren trenger en oppdatering. For \u00e5 laste ned nyeste versjon, vennligst bes\u00f8k: {0}",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "Replace all metadata", "ReplaceAllMetadata": "Replace all metadata",
"SearchForMissingMetadata": "Search for missing metadata", "SearchForMissingMetadata": "Search for missing metadata",
"LabelRefreshMode": "Refresh mode:", "LabelRefreshMode": "Refresh mode:",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard." "NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"ButtonTryAgain": "Try Again",
"HeaderYouSaid": "You Said...",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "Geen items gevonden.",
"HeaderSaySomethingLike": "Zeg iets zoals...",
"HeaderYouSaid": "U zei...",
"MessageIfYouBlockedVoice": "Als u spraak toegang uitgeschakeld heeft moet u dit opnieuw configureren voordat u verder gaat.",
"ButtonTryAgain": "Probeer opnieuw",
"MessageWeDidntRecognizeCommand": "Sorry, dat commando herkennen we niet.",
"ValueSpecialEpisodeName": "Speciaal - {0}", "ValueSpecialEpisodeName": "Speciaal - {0}",
"Share": "Delen", "Share": "Delen",
"ServerUpdateNeeded": "Deze Emby Server moet worden bijgewerkt. Om de laatste versie te downloaden, gaat u naar {0}", "ServerUpdateNeeded": "Deze Emby Server moet worden bijgewerkt. Om de laatste versie te downloaden, gaat u naar {0}",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "Alle metadata vervangen", "ReplaceAllMetadata": "Alle metadata vervangen",
"SearchForMissingMetadata": "Zoeken naar missende metadata", "SearchForMissingMetadata": "Zoeken naar missende metadata",
"LabelRefreshMode": "Vernieuw-modus", "LabelRefreshMode": "Vernieuw-modus",
"RefreshDialogHelp": "Metadata wordt vernieuwd op basis van de instellingen en internet diensten die zijn ingeschakeld in het dashboard van de Emby Server." "NoItemsFound": "Geen items gevonden.",
"HeaderSaySomethingLike": "Zeg iets zoals...",
"ButtonTryAgain": "Probeer opnieuw",
"HeaderYouSaid": "U zei...",
"MessageWeDidntRecognizeCommand": "Sorry, dat commando herkennen we niet.",
"MessageIfYouBlockedVoice": "Als u spraak toegang uitgeschakeld heeft moet u dit opnieuw configureren voordat u verder gaat.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "Metadata wordt vernieuwd op basis van de instellingen en internet diensten die zijn ingeschakeld in het dashboard van de Emby Server.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"HeaderYouSaid": "You Said...",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ButtonTryAgain": "Try Again",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"ValueSpecialEpisodeName": "Especial - {0}", "ValueSpecialEpisodeName": "Especial - {0}",
"Share": "Compartilhar", "Share": "Compartilhar",
"ServerUpdateNeeded": "Este servidor Emby precisa ser atualizado. Para baixar a \u00faltima vers\u00e3o, por favor visite {0}", "ServerUpdateNeeded": "Este servidor Emby precisa ser atualizado. Para baixar a \u00faltima vers\u00e3o, por favor visite {0}",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "Substituir todos os metadados", "ReplaceAllMetadata": "Substituir todos os metadados",
"SearchForMissingMetadata": "Buscar por metadados que faltam", "SearchForMissingMetadata": "Buscar por metadados que faltam",
"LabelRefreshMode": "Mode de atualiza\u00e7\u00e3o:", "LabelRefreshMode": "Mode de atualiza\u00e7\u00e3o:",
"RefreshDialogHelp": "Os metadados s\u00e3o atualizados com bases nas defini\u00e7\u00f5es e nos servi\u00e7os de internet que est\u00e3o ativos no painel do Servidor Emby." "NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"ButtonTryAgain": "Try Again",
"HeaderYouSaid": "You Said...",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "Os metadados s\u00e3o atualizados com bases nas defini\u00e7\u00f5es e nos servi\u00e7os de internet que est\u00e3o ativos no painel do Servidor Emby.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"HeaderYouSaid": "You Said...",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ButtonTryAgain": "Try Again",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"ValueSpecialEpisodeName": "Especial - {0}", "ValueSpecialEpisodeName": "Especial - {0}",
"Share": "Partilhar", "Share": "Partilhar",
"ServerUpdateNeeded": "Este Servidor Emby precisa ser atualizado. Para fazer download da vers\u00e3o mais recente, por favor visite {0}", "ServerUpdateNeeded": "Este Servidor Emby precisa ser atualizado. Para fazer download da vers\u00e3o mais recente, por favor visite {0}",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "Replace all metadata", "ReplaceAllMetadata": "Replace all metadata",
"SearchForMissingMetadata": "Search for missing metadata", "SearchForMissingMetadata": "Search for missing metadata",
"LabelRefreshMode": "Refresh mode:", "LabelRefreshMode": "Refresh mode:",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard." "NoItemsFound": "No items found.",
"HeaderSaySomethingLike": "Say Something Like...",
"ButtonTryAgain": "Try Again",
"HeaderYouSaid": "You Said...",
"MessageWeDidntRecognizeCommand": "We're sorry, we didn't recognize that command.",
"MessageIfYouBlockedVoice": "If you denied voice access to the app you'll need to reconfigure before trying again.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "Metadata is refreshed based on settings and internet services that are enabled in the Emby Server dashboard.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e.",
"HeaderSaySomethingLike": "\u0421\u043a\u0430\u0436\u0438\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435...",
"HeaderYouSaid": "\u0412\u044b \u0441\u043a\u0430\u0437\u0430\u043b\u0438...",
"MessageIfYouBlockedVoice": "\u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e, \u043f\u0435\u0440\u0435\u0434 \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u043e\u0439 \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430.",
"ButtonTryAgain": "\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u043f\u044b\u0442\u043a\u0443",
"MessageWeDidntRecognizeCommand": "\u0414\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u0430.",
"ValueSpecialEpisodeName": "\u0421\u043f\u0435\u0446\u044d\u043f\u0438\u0437\u043e\u0434 - {0}", "ValueSpecialEpisodeName": "\u0421\u043f\u0435\u0446\u044d\u043f\u0438\u0437\u043e\u0434 - {0}",
"Share": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f", "Share": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f",
"ServerUpdateNeeded": "\u0414\u0430\u043d\u043d\u044b\u0439 Emby Server \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e, \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435 {0}", "ServerUpdateNeeded": "\u0414\u0430\u043d\u043d\u044b\u0439 Emby Server \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e, \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435 {0}",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "\u0417\u0430\u043c\u0435\u043d\u0430 \u0432\u0441\u0435\u0445 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445", "ReplaceAllMetadata": "\u0417\u0430\u043c\u0435\u043d\u0430 \u0432\u0441\u0435\u0445 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445",
"SearchForMissingMetadata": "\u041f\u043e\u0438\u0441\u043a \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445", "SearchForMissingMetadata": "\u041f\u043e\u0438\u0441\u043a \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445",
"LabelRefreshMode": "\u0420\u0435\u0436\u0438\u043c \u043f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f:", "LabelRefreshMode": "\u0420\u0435\u0436\u0438\u043c \u043f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f:",
"RefreshDialogHelp": "\u041f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u0438\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u0438 Emby Server \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0443\u0441\u043b\u0443\u0433\u0430\u043c\u0438." "NoItemsFound": "\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e.",
"HeaderSaySomethingLike": "\u0421\u043a\u0430\u0436\u0438\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435...",
"ButtonTryAgain": "\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u043f\u044b\u0442\u043a\u0443",
"HeaderYouSaid": "\u0412\u044b \u0441\u043a\u0430\u0437\u0430\u043b\u0438...",
"MessageWeDidntRecognizeCommand": "\u0414\u0430\u043d\u043d\u0430\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d\u0430.",
"MessageIfYouBlockedVoice": "\u0415\u0441\u043b\u0438 \u043e\u0442\u043a\u0430\u0437\u0430\u043d\u043e \u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e, \u043f\u0435\u0440\u0435\u0434 \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u043f\u044b\u0442\u043a\u043e\u0439 \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0430 \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "\u041f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u0438\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u0438 Emby Server \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0443\u0441\u043b\u0443\u0433\u0430\u043c\u0438.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -1,10 +1,4 @@
{ {
"NoItemsFound": "Inga objekt hittades.",
"HeaderSaySomethingLike": "S\u00e4g n\u00e5got som...",
"HeaderYouSaid": "Du sa...",
"MessageIfYouBlockedVoice": "Om du nekade tillg\u00e5ng f\u00f6r r\u00f6st\u00e5tkomst till appen s\u00e5 beh\u00f6ver du konfigurera om innan du f\u00f6rs\u00f6ker igen.",
"ButtonTryAgain": "F\u00f6rs\u00f6k igen",
"MessageWeDidntRecognizeCommand": "Ledsen, men vi k\u00e4nner inte igen det kommandot.",
"ValueSpecialEpisodeName": "Specialavsnitt - {0}", "ValueSpecialEpisodeName": "Specialavsnitt - {0}",
"Share": "Dela", "Share": "Dela",
"ServerUpdateNeeded": "Den h\u00e4r Emby servern beh\u00f6ver uppdateras. F\u00f6r att ladda ner senaste versionen, g\u00e5 till {0}", "ServerUpdateNeeded": "Den h\u00e4r Emby servern beh\u00f6ver uppdateras. F\u00f6r att ladda ner senaste versionen, g\u00e5 till {0}",
@ -92,5 +86,29 @@
"ReplaceAllMetadata": "Ers\u00e4tt all metadata", "ReplaceAllMetadata": "Ers\u00e4tt all metadata",
"SearchForMissingMetadata": "S\u00f6k efter saknad metadata", "SearchForMissingMetadata": "S\u00f6k efter saknad metadata",
"LabelRefreshMode": "Uppdateringsl\u00e4ge:", "LabelRefreshMode": "Uppdateringsl\u00e4ge:",
"RefreshDialogHelp": "Metadata uppdateras baserat p\u00e5 inst\u00e4llningar och internettj\u00e4nster som har aktiverats under Emby servers kontrollpanel." "NoItemsFound": "Inga objekt hittades.",
"HeaderSaySomethingLike": "S\u00e4g n\u00e5got som...",
"ButtonTryAgain": "F\u00f6rs\u00f6k igen",
"HeaderYouSaid": "Du sa...",
"MessageWeDidntRecognizeCommand": "Ledsen, men vi k\u00e4nner inte igen det kommandot.",
"MessageIfYouBlockedVoice": "Om du nekade tillg\u00e5ng f\u00f6r r\u00f6st\u00e5tkomst till appen s\u00e5 beh\u00f6ver du konfigurera om innan du f\u00f6rs\u00f6ker igen.",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "Metadata uppdateras baserat p\u00e5 inst\u00e4llningar och internettj\u00e4nster som har aktiverats under Emby servers kontrollpanel.",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
} }

View file

@ -0,0 +1,114 @@
{
"ValueSpecialEpisodeName": "Special - {0}",
"Share": "\u5206\u4eab",
"ServerUpdateNeeded": "\u6b64Emby\u4f3a\u670d\u5668\u9700\u8981\u66f4\u65b0\uff0c\u8acb\u81f3{0}\u53d6\u5f97\u6700\u65b0\u7248\u672c",
"LiveTvGuideRequiresUnlock": "\u96fb\u8996\u6307\u5357\u76ee\u524d\u53ea\u9650\u65bc{0}\u500b\u983b\u9053\u3002\u9ede\u9078\u300c\u89e3\u9396\u300d\u4ee5\u4e86\u89e3\u5982\u4f55\u7372\u5f97\u66f4\u5b8c\u6574\u7684\u9ad4\u9a57",
"AttributeNew": "New",
"AttributePremiere": "\u9996\u64ad",
"AttributeLive": "\u6b63\u5728\u64ad\u653e",
"TrackCount": "{0}\u500b\u66f2\u76ee",
"ItemCount": "{0}\u500b\u9805\u76ee",
"ValueSeriesYearToPresent": "{0}-Present",
"ReleaseYearValue": "\u63a8\u51fa\u65e5\u671f\uff1a{0}",
"OriginalAirDateValue": "\u539f\u59cb\u64ad\u51fa\u65e5\u671f\uff1a{0}",
"EndsAtValue": "\u5b8c\u7d50\u65bc{0}",
"OptionSundayShort": "\u65e5",
"OptionMondayShort": "\u4e00",
"OptionTuesdayShort": "\u4e8c",
"OptionWednesdayShort": "\u4e09",
"OptionThursdayShort": "\u56db",
"OptionFridayShort": "\u4e94",
"OptionSaturdayShort": "\u516d",
"HeaderSelectDate": "\u9078\u64c7\u65e5\u671f",
"ButtonOk": "\u78ba\u5b9a",
"ButtonCancel": "\u53d6\u6d88",
"ButtonGotIt": "\u6211\u77e5\u9053\u4e86",
"RecordingCancelled": "\u5df2\u53d6\u6d88\u6392\u7a0b\u9304\u88fd",
"RecordingScheduled": "\u5df2\u6392\u7a0b\u9304\u88fd",
"SeriesRecordingScheduled": "\u5df2\u6392\u7a0b\u9304\u88fd\u6574\u500b\u7cfb\u5217",
"HeaderNewRecording": "\u65b0\u9304\u88fd",
"Sunday": "\u661f\u671f\u65e5",
"Monday": "\u661f\u671f\u4e00",
"Tuesday": "\u661f\u671f\u4e8c",
"Wednesday": "\u661f\u671f\u4e09",
"Thursday": "\u661f\u671f\u56db",
"Friday": "\u661f\u671f\u4e94",
"Saturday": "\u661f\u671f\u516d",
"Days": "\u65e5",
"RecordSeries": "\u9304\u88fd\u6574\u500b\u7cfb\u5217",
"LabelPrePaddingMinutes": "\u63d0\u524d\u958b\u59cb\u5206\u9418\u6578\uff1a",
"LabelPostPaddingMinutes": "\u5ef6\u5f8c\u7d50\u675f\u5206\u9418\u6578\uff1a",
"RecordOnAllChannels": "\u5728\u6240\u6709\u983b\u9053\u9304\u88fd",
"RecordAnytime": "\u5728\u4efb\u4f55\u6642\u9593\u9304\u88fd",
"RecordOnlyNewEpisodes": "\u53ea\u9304\u88fd\u65b0\u96c6\u6578",
"HeaderBecomeProjectSupporter": "\u53d6\u5f97Emby\u8c6a\u83ef\u7248",
"HeaderEnjoyDayTrial": "\u514d\u8cbb\u8a66\u752814\u5929",
"MessageActiveSubscriptionRequiredSeriesRecordings": "\u8981\u4f7f\u7528\u81ea\u52d5\u9304\u88fd\u7cfb\u5217\u7684\u529f\u80fd\uff0c\u9700\u8981\u6709\u6548\u7684Emby\u8c6a\u83ef\u7248\u8a02\u95b1",
"OptionConvertRecordingsToStreamingFormat": "\u81ea\u52d5\u5c07\u9304\u88fd\u5167\u5bb9\u8f49\u63db\u6210\u9069\u7528\u65bc\u4e32\u6d41\u7684\u683c\u5f0f",
"OptionConvertRecordingsToStreamingFormatHelp": "\u9304\u88fd\u7684\u5167\u5bb9\u5c07\u6703\u8f49\u63db\u6210MP4\uff0c\u4ee5\u4fbf\u66f4\u5bb9\u6613\u5730\u5728\u60a8\u7684\u88dd\u7f6e\u4e0a\u64ad\u653e",
"FeatureRequiresEmbyPremiere": "\u6b64\u529f\u80fd\u9700\u8981\u6709\u6548\u7684Emby\u8c6a\u83ef\u7248\u8a02\u95b1",
"Record": "\u9304\u88fd",
"Save": "\u5132\u5b58",
"Edit": "\u7de8\u8f2f",
"Download": "\u4e0b\u8f09",
"Advanced": "\u9032\u968e",
"Delete": "\u522a\u9664",
"HeaderDeleteItem": "\u522a\u9664\u9805\u76ee",
"ConfirmDeleteItem": "\u522a\u9664\u6b64\u9805\u76ee\u6642\uff0c\u4e5f\u6703\u4e00\u4f75\u5f9e\u6a94\u6848\u7cfb\u7d71\u53ca\u5a92\u9ad4\u6ac3\u4e2d\u522a\u9664\u3002\u78ba\u5b9a\u8981\u522a\u9664\u55ce\uff1f",
"Refresh": "\u91cd\u65b0\u6574\u7406",
"RefreshQueued": "Refresh queued.",
"AddToCollection": "\u65b0\u589e\u5230\u6536\u85cf\u6ac3",
"NewCollection": "\u65b0\u6536\u85cf\u6ac3",
"LabelCollection": "\u6536\u85cf\u6ac3\uff1a",
"Help": "\u8aaa\u660e",
"NewCollectionHelp": "\u6536\u85cf\u6ac3\u8b93\u60a8\u80fd\u5920\u5efa\u7acb\u500b\u4eba\u5316\u7684\u5f71\u97f3\u53ca\u5176\u4ed6\u5a92\u9ad4\u7684\u5206\u985e",
"SearchForCollectionInternetMetadata": "\u5728\u7db2\u8def\u4e0a\u641c\u5c0b\u76f8\u95dc\u7684\u5c01\u9762\u5716\u53ca\u8a73\u7d30\u8cc7\u6599",
"LabelName": "\u540d\u7a31\uff1a",
"NewCollectionNameExample": "\u4f8b\u5982\uff1a\u661f\u969b\u5927\u6230\u7e3d\u532f",
"MessageItemsAdded": "\u5df2\u65b0\u589e\u9805\u76ee",
"OptionNew": "\u65b0\u589e...",
"LabelPlaylist": "\u64ad\u653e\u6e05\u55ae\uff1a",
"AddToPlaylist": "\u65b0\u589e\u5230\u64ad\u653e\u6e05\u55ae",
"Subtitles": "\u5b57\u5e55",
"SearchForSubtitles": "\u641c\u5c0b\u5b57\u5e55",
"LabelLanguage": "\u8a9e\u8a00\uff1a",
"Search": "\u641c\u5c0b",
"NoSubtitleSearchResultsFound": "\u7121\u7d50\u679c",
"File": "\u6a94\u6848",
"MessageAreYouSureDeleteSubtitles": "\u60a8\u771f\u7684\u8981\u522a\u9664\u9019\u500b\u5b57\u5e55\u6a94\u55ce\uff1f",
"ConfirmDeletion": "\u78ba\u5b9a\u522a\u9664",
"MySubtitles": "\u6211\u7684\u5b57\u5e55",
"MessageDownloadQueued": "\u9700\u8981\u4e0b\u8f09",
"EditSubtitles": "\u7de8\u8f2f\u5b57\u5e55",
"UnlockGuide": "\u89e3\u9396\u65b9\u5f0f",
"RefreshMetadata": "\u66f4\u65b0\u8a73\u7d30\u8cc7\u6599",
"ReplaceExistingImages": "\u53d6\u4ee3\u73fe\u6709\u5716\u7247",
"ReplaceAllMetadata": "\u53d6\u4ee3\u6240\u6709\u8a73\u7d30\u8cc7\u6599",
"SearchForMissingMetadata": "\u641c\u5c0b\u907a\u5931\u7684\u8a73\u7d30\u8cc7\u6599",
"LabelRefreshMode": "\u66f4\u65b0\u6a21\u5f0f\uff1a",
"NoItemsFound": "\u7121\u9805\u76ee",
"HeaderSaySomethingLike": "\u8aaa\u9ede\u6771\u897f\uff0c\u50cf\u662f...",
"ButtonTryAgain": "\u91cd\u8a66",
"HeaderYouSaid": "\u60a8\u662f\u6307...",
"MessageWeDidntRecognizeCommand": "\u5f88\u62b1\u6b49\uff0c\u6211\u5011\u7121\u6cd5\u8fa8\u8b58\u6b64\u6307\u4ee4",
"MessageIfYouBlockedVoice": "\u5982\u679c\u60a8\u62d2\u7d55\u7a0b\u5f0f\u4f7f\u7528\u8a9e\u97f3\u8fa8\u8b58\uff0c\u60a8\u5c07\u9700\u8981\u5728\u91cd\u8a66\u4e4b\u524d\u518d\u6b21\u8a2d\u5b9a",
"ValueDiscNumber": "Disc {0}",
"Unrated": "Unrated",
"Favorite": "Favorite",
"Like": "Like",
"Dislike": "Dislike",
"Played": "Played",
"RefreshDialogHelp": "\u8a73\u7d30\u8cc7\u6599\u7684\u66f4\u65b0\u65b9\u5f0f\u6703\u4f9d\u64daEmby\u7684\u8a2d\u5b9a\u53ca\u5df2\u7d93\u555f\u7528\u7684\u7db2\u8def\u670d\u52d9\u4f86\u9032\u884c",
"Open": "Open",
"Play": "Play",
"Queue": "Queue",
"Shuffle": "Shuffle",
"Identify": "Identify",
"EditImages": "Edit Images",
"Sync": "Sync",
"InstantMix": "Instant Mix",
"ViewAlbum": "View Album",
"ViewArtist": "View Artist",
"QueueAllFromHere": "Queue All from Here",
"PlayAllFromHere": "Play All from Here"
}

View file

@ -0,0 +1,8 @@
.btnUserData {
color: #aaa;
}
.btnUserDataOn, .btnUserDataOn i {
color: #cc3333 !important;
}

View file

@ -0,0 +1,188 @@
define(['connectionManager', 'globalize', 'paper-icon-button-light', 'material-icons', 'emby-button', 'css!./userdatabuttons'], function (connectionManager, globalize) {
function getUserDataButtonHtml(method, itemId, iconCssClass, icon, tooltip, style) {
var is = style == 'fab' ? 'emby-button' : 'paper-icon-button-light';
var className = style == 'fab' ? 'autoSize fab' : 'autoSize';
className += ' ' + iconCssClass;
return '<button title="' + tooltip + '" data-itemid="' + itemId + '" is="' + is + '" class="' + className + '" onclick="UserDataButtons.' + method + '(this);return false;">\
<i class="md-icon">' + icon + '</i>\
</button>';
}
function fill(options) {
var html = getIconsHtml(options.item, options.includePlayed, options.buttonClass, options.style);
options.element.innerHTML = html;
}
function getIconsHtml(item, includePlayed, cssClass, style) {
var html = '';
var userData = item.UserData || {};
var itemId = item.Id;
var btnCssClass = "btnUserData";
if (cssClass) {
btnCssClass += " " + cssClass;
}
if (includePlayed !== false) {
var tooltipPlayed = globalize.translate('sharedcomponents#Played');
if (item.MediaType == 'Video' || item.Type == 'Series' || item.Type == 'Season' || item.Type == 'BoxSet' || item.Type == 'Playlist') {
if (item.Type != 'TvChannel') {
if (userData.Played) {
html += getUserDataButtonHtml('markPlayed', itemId, btnCssClass + ' btnUserDataOn', 'check', tooltipPlayed, style);
} else {
html += getUserDataButtonHtml('markPlayed', itemId, btnCssClass, 'check', tooltipPlayed, style);
}
}
}
}
var tooltipLike = globalize.translate('sharedcomponents#Like');
var tooltipDislike = globalize.translate('sharedcomponents#Dislike');
//if (typeof userData.Likes == "undefined") {
// html += getUserDataButtonHtml('markDislike', itemId, btnCssClass + ' btnUserData btnDislike', 'thumb-down', tooltipDislike);
// html += getUserDataButtonHtml('markLike', itemId, btnCssClass + ' btnUserData btnLike', 'thumb-up', tooltipLike);
//}
//else if (userData.Likes) {
// html += getUserDataButtonHtml('markDislike', itemId, btnCssClass + ' btnUserData btnDislike', 'thumb-down', tooltipDislike);
// html += getUserDataButtonHtml('markLike', itemId, btnCssClass + ' btnUserData btnLike btnUserDataOn', 'thumb-up', tooltipLike);
//}
//else {
// html += getUserDataButtonHtml('markDislike', itemId, btnCssClass + ' btnUserData btnDislike btnUserDataOn', 'thumb-down', tooltipDislike);
// html += getUserDataButtonHtml('markLike', itemId, btnCssClass + ' btnUserData btnLike', 'thumb-up', tooltipLike);
//}
var tooltipFavorite = globalize.translate('sharedcomponents#Favorite');
if (userData.IsFavorite) {
html += getUserDataButtonHtml('markFavorite', itemId, btnCssClass + ' btnUserData btnUserDataOn', 'favorite', tooltipFavorite, style);
} else {
html += getUserDataButtonHtml('markFavorite', itemId, btnCssClass + ' btnUserData', 'favorite', tooltipFavorite, style);
}
return html;
}
function markFavorite(link) {
var id = link.getAttribute('data-itemid');
var markAsFavorite = !link.classList.contains('btnUserDataOn');
favorite(id, markAsFavorite);
if (markAsFavorite) {
link.classList.add('btnUserDataOn');
} else {
link.classList.remove('btnUserDataOn');
}
}
function markLike(link) {
var id = link.getAttribute('data-itemid');
if (!link.classList.contains('btnUserDataOn')) {
likes(id, true);
link.classList.add('btnUserDataOn');
} else {
clearLike(id);
link.classList.remove('btnUserDataOn');
}
link.parentNode.querySelector('.btnDislike').classList.remove('btnUserDataOn');
}
function markDislike(link) {
var id = link.getAttribute('data-itemid');
if (!link.classList.contains('btnUserDataOn')) {
likes(id, false);
link.classList.add('btnUserDataOn');
} else {
clearLike(id);
link.classList.remove('btnUserDataOn');
}
link.parentNode.querySelector('.btnLike').classList.remove('btnUserDataOn');
}
function markPlayed(link) {
var id = link.getAttribute('data-itemid');
if (!link.classList.contains('btnUserDataOn')) {
played(id, true);
link.classList.add('btnUserDataOn');
} else {
played(id, false);
link.classList.remove('btnUserDataOn');
}
}
function likes(id, isLiked) {
var apiClient = connectionManager.currentApiClient();
return apiClient.updateUserItemRating(apiClient.getCurrentUserId(), id, isLiked);
}
function played(id, isPlayed) {
var apiClient = connectionManager.currentApiClient();
var method = isPlayed ? 'markPlayed' : 'markUnplayed';
return apiClient[method](apiClient.getCurrentUserId(), id, new Date());
}
function favorite(id, isFavorite) {
var apiClient = connectionManager.currentApiClient();
return apiClient.updateFavoriteStatus(apiClient.getCurrentUserId(), id, isFavorite);
}
function clearLike(id) {
var apiClient = connectionManager.currentApiClient();
return apiClient.clearUserItemRating(apiClient.getCurrentUserId(), id);
}
window.UserDataButtons = {
markPlayed: markPlayed,
markDislike: markDislike,
markLike: markLike,
markFavorite: markFavorite
};
return {
fill: fill,
getIconsHtml: getIconsHtml
};
});

View file

@ -150,7 +150,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var timings = { var timings = {
duration: 200, duration: 300,
iterations: 1, iterations: 1,
easing: 'ease-out', easing: 'ease-out',
fill: 'both' fill: 'both'

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-a11y-announcer", "name": "iron-a11y-announcer",
"version": "1.0.4", "version": "1.0.5",
"description": "A singleton element that simplifies announcing text to screen readers.", "description": "A singleton element that simplifies announcing text to screen readers.",
"keywords": [ "keywords": [
"web-components", "web-components",
@ -18,7 +18,7 @@
"main": "iron-a11y-announcer.html", "main": "iron-a11y-announcer.html",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"dependencies": { "dependencies": {
"polymer": "polymer/polymer#^1.0.0" "polymer": "polymer/polymer#^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"iron-component-page": "polymerelements/iron-component-page#^1.0.0", "iron-component-page": "polymerelements/iron-component-page#^1.0.0",
@ -27,15 +27,15 @@
"paper-styles": "polymerelements/paper-styles#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0",
"test-fixture": "polymerelements/test-fixture#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0",
"web-component-tester": "polymer/web-component-tester#^3.4.0" "web-component-tester": "^4.0.0"
}, },
"ignore": [], "ignore": [],
"homepage": "https://github.com/PolymerElements/iron-a11y-announcer", "homepage": "https://github.com/PolymerElements/iron-a11y-announcer",
"_release": "1.0.4", "_release": "1.0.5",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.4", "tag": "v1.0.5",
"commit": "5ce3eb8c4282bb53cd72e348858dc6be6b4c50b9" "commit": "2432d39a1693ccd728cbe7eb55810063737d3403"
}, },
"_source": "git://github.com/PolymerElements/iron-a11y-announcer.git", "_source": "git://github.com/PolymerElements/iron-a11y-announcer.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -1,4 +1,4 @@
<!-- Instructions: https://github.com/PolymerElements/iron-scroll-target-behavior/CONTRIBUTING.md#filing-issues --> <!-- Instructions: https://github.com/PolymerElements/iron-a11y-announcer/CONTRIBUTING.md#filing-issues -->
### Description ### Description
<!-- Example: The `paper-foo` element causes the page to turn pink when clicked. --> <!-- Example: The `paper-foo` element causes the page to turn pink when clicked. -->

View file

@ -1,22 +1,23 @@
language: node_js language: node_js
sudo: false sudo: required
before_script: before_script:
- npm install web-component-tester - npm install -g bower polylint web-component-tester
- npm install bower - bower install
- 'export PATH=$PWD/node_modules/.bin:$PATH' - polylint
- bower install
env: env:
global: global:
- secure: lNcOb1qPO7R65VYIQ6ekoc4I8wg98E/DRdqRMGAWrvr9eZ6lbz4hqwVvgnl05Ukc62lFsEGdaykFdcQ5QG5rDxXxh1Dofl8dfE8ohBZzR9gQ5g9808CVVbV/0kfafAMts/KYGVLAuy+30aU/xA+DQ4oR76E1glZOGoz4FDxUotIFpMyPR77HC1WDuFiF/HUOUgs8zO5v02171URdYG33ywVx6n0j1akCKksQ9Odcxn+VF51xziSuP+Hd+mju4j6xiAsvkc8EhdFMTXBKDHH0LEjP6zVLQ+lA4ePX2YxPAocFUcWFlGsfDwLdbY18zrP9vXK0AqpoU0d3hW1bLdxoH+4Fd8WkFzYB5rjtV0jT8BOWjEK+1g7GBzofZYQs+h9kRUoNQA5m7NNo3dz/NM8NxvDCALscH2kWTEYpzvaX/Gy653psOkKe8MRawa6nqgXreaNEn3dtVqlonz3KpgVLJpgBtLYvQDQ8lczntuBw6BlnCZRZw8wy0hLHIIpld/GbxrH1O13XGpT07CAny10wZYMk9J0OiEuMPd23UNdcEXibNnfDS18UKW64JoILqqBMyl10WY6dOqLt7DAd5eDoKqZ/heU3vXFm9/JcebtUB3NmOG+qkgb1UOChEtzxJFCXa3S3NFsLiHra6CgdV78gHM5WizlT0kldecgrlDtz/tQ= - secure: QlyQxWnziNgzWqptOtM0Oq1s/q6YHT/GPuslA31yC0nex7Wi6X9DFoF5rNlDEY0Y6WxCh8xzsZpwXrI9vZypgKoZlAwO1e3RLDsGV0APPrWg66MyImAwlHAJolvJg+ASsLJ8pm9nxMP/xapRamciqUMTUTeZh0V/5SR82BXQCf3zXe+9cMmAFNXBrIg6LDCm77AwW+1vkE/IZAL1oShSBwXEybn9kpYsdCiOGdnvMlChhaeqRlOUXkr3LHPUDtV8hbd2EswmPeHSV+RGdB/UFyRGa4g7gPgqtz7U2FS0/BqT0G2iJlAXGCttJnS6fXwyCriREplYjXzqrX0MeRWHD5vNxAucO/Va1n2tHEmJM3OhIYgO8VDM8S3nRRUDE/ifSjsu1UgBN7b1vml0zWo7rdvpD8fedx6+g4ph390kg5XRFNJZJ03YijfcNVUfnOTEWt9LntGRq5aKPB6RSbEvkuZFjLGHHD/xQu2LfyIjmueIWJNk4JeCNrm3zFPMhBAZfu7WTJPTk3dZ2L+0mty1QbaJ/lyTWIBYbTVBwwHzXKrPbgg5u/9e6DjhT8Zg/eJvmN/+sXAlUqnmTAE9coQ0LIivg6COWPoRDmdGl2uMygiCaLkFAy4sqhjP99Aq5/ekZWXUrTTa4NGw2qnvM4JY9YcEzUC0ZqzM11gj8x8ATi0=
- secure: ig1L3SPuNpnAqzk8wXc8SqprhF7ajVuD1MQa0KfmkCxFZCXSmAHnt9tsuwrkea0J3s3Mmj+UQBI3WX5jsFEAlwNy239uRIUxHTz/tsKznmo5Jf+u/u7jHR4H/x0+kNbA/D56eInlNeR9bwE/72kiWB2ZI9nxHIggNxJrsTK4d+CQC863V763P8sJaBNP7BXq/2igs2/wHgfsF126oKOf0fxMbeBm3tFYB0VBdkLZJvQ+NowZGn/RTvmdAMJZe/UuICf9jTl/YQXp7q3b/hF5h/CMlQckkNoiQZ8FY3yz4yg8eJc2Pe1NjuCYl8YE7nUY+mUX8B/hqB9g05LmKxAdFg1icsq14Rmb54MBa6CsYIPo5ZZNXSeCkiQvfHOOhubnB4lBxDYGSLwFIDwpRtRRkwIzpz/5sul6OP9RR/g0kXnmktFEYbu2/OQk89H2GymOdrIlUrJ9Rat74X4My3DO7I7QnGi/04I7sLxP5PxUShqcjDi5q4rZTXG/ssaLS3O4YvXigy0ZzK6PsKX8jYVTlQdMQHBY5IwYH6reJ5IM0KjJoum95VoZTTKtIAIxOjLnbVu8khwxYDyzFhrfUKkvcULCCrGx7PphBPNV6SN+/0TFNmuabhp1nLb/+lZ61bVFiV5Mfs7DF8WVVMvwhBMw68HqIyts/b5g68e/yjwV6do= - secure: d0wz93AwXyNVmCr33od+TFC51nZgUzcdwHiJWxX0E+msZ8VgYCjj21D6OOZy84O7vYiPFy8vO03dvyqkj1uclEvfu2YlfiEaRxifKaxN6mQx142WjBtdHFjEUfBJR5eqm5qSeGj7aSZzPgerUl6yAkYH5tFldBatevF5Ax98Yr1dCsgpegsLCmBmusPH7tERnBilalcvXKVBfRXrnrkFkVoWroBb04W79aZSTlLGTlpBJCzR9Xe7RiXqnanSQQb1LjyCl55P0NvVVRjwpoVnikRqkIV/jehcNfIiJSC/vetepqqUehD6RdP2T8Nio7YvlLtXnW9vptlKYL2uZjhg23DyhgGW/4ZPaIABWVBqVUBbyaX6GCXo3EMyQcZhi17qCWEKnFGCrorC/4ZM6A0kJ+olOfQxszf9HrAX8+9DCaiKscn2Lz+ON/opFKFRAQngCJ9swBc27twavUxx4qNzOVJLdH8oGhCdl5DA4mgGGDWZz463X0HzagGUpi/RfME26uQnTkyK8eErL2yac+1VmA/QOx0RkYlrZ/pIEywkZPWusjJepCm9nlZGylaBr2mDpk8Kea+7IytO6sefiBwjX1RiqmnjnszO3jb/w5s0giUItWuFmDr14sOaFmj6wQB643eSGi42LSPG+FMea1RwUupyEPeLZq/aoJ0jmewGLv4=
node_js: 4 node_js: stable
addons: addons:
firefox: '42.0' firefox: '46.0'
apt: apt:
sources: sources:
- google-chrome - google-chrome
packages: packages:
- google-chrome-stable - google-chrome-stable
sauce_connect: true
script: script:
- xvfb-run wct - xvfb-run wct
- "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi
dist: trusty

View file

@ -1,11 +1,16 @@
<!-- <!--
This file is autogenerated based on This file is autogenerated based on
https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md
If you edit that file, it will get updated everywhere else. If you edit that file, it will get updated everywhere else.
If you edit this file, your changes will get overridden :) If you edit this file, your changes will get overridden :)
You can however override the jsbin link with one that's customized to this
specific element:
jsbin=https://jsbin.com/cagaye/edit?html,output
--> -->
# Polymer Elements # Polymer Elements
## Guide for Contributors ## Guide for Contributors
@ -41,7 +46,7 @@ Polymer Elements are built in the open, and the Polymer authors eagerly encourag
3. Click the `paper-foo` element. 3. Click the `paper-foo` element.
``` ```
2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output).
3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers.
@ -51,14 +56,14 @@ Polymer Elements are built in the open, and the Polymer authors eagerly encourag
When submitting pull requests, please provide: When submitting pull requests, please provide:
1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax:
```markdown ```markdown
(For a single issue) (For a single issue)
Fixes #20 Fixes #20
(For multiple issues) (For multiple issues)
Fixes #32, #40 Fixes #32, fixes #40
``` ```
2. **A succinct description of the design** used to fix any related issues. For example: 2. **A succinct description of the design** used to fix any related issues. For example:

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-a11y-announcer", "name": "iron-a11y-announcer",
"version": "1.0.4", "version": "1.0.5",
"description": "A singleton element that simplifies announcing text to screen readers.", "description": "A singleton element that simplifies announcing text to screen readers.",
"keywords": [ "keywords": [
"web-components", "web-components",
@ -18,7 +18,7 @@
"main": "iron-a11y-announcer.html", "main": "iron-a11y-announcer.html",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"dependencies": { "dependencies": {
"polymer": "polymer/polymer#^1.0.0" "polymer": "polymer/polymer#^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"iron-component-page": "polymerelements/iron-component-page#^1.0.0", "iron-component-page": "polymerelements/iron-component-page#^1.0.0",
@ -27,7 +27,7 @@
"paper-styles": "polymerelements/paper-styles#^1.0.0", "paper-styles": "polymerelements/paper-styles#^1.0.0",
"test-fixture": "polymerelements/test-fixture#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0",
"web-component-tester": "polymer/web-component-tester#^3.4.0" "web-component-tester": "^4.0.0"
}, },
"ignore": [] "ignore": []
} }

View file

@ -1,4 +1,13 @@
<!-- <!--
@license
Copyright (c) 2016 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
-->
<!--
Copyright (c) 2015 The Polymer Project Authors. All rights reserved. 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 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
The complete set of authors may be found at http://polymer.github.io/AUTHORS The complete set of authors may be found at http://polymer.github.io/AUTHORS
@ -12,19 +21,20 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<link rel="import" href="../iron-a11y-announcer.html"> <link rel="import" href="../iron-a11y-announcer.html">
<dom-module id="x-announces"> <dom-module id="x-announces">
<style>
:host {
display: block;
position: relative;
padding: 1em 0;
}
paper-button {
background: #4285f4;
color: #fff;
}
</style>
<template> <template>
<style>
:host {
display: block;
position: relative;
padding: 1em 0;
}
paper-button {
background: #4285f4;
color: #fff;
}
</style>
<paper-button on-tap="_onTapAnnounce" raised>Announce</paper-button> <paper-button on-tap="_onTapAnnounce" raised>Announce</paper-button>
<span id="content" aria-hidden="true"> <span id="content" aria-hidden="true">
<content></content> <content></content>

View file

@ -45,15 +45,14 @@ Note: announcements are only audible if you have a screen reader enabled.
--> -->
<dom-module id="iron-a11y-announcer"> <dom-module id="iron-a11y-announcer">
<style>
:host {
display: inline-block;
position: fixed;
clip: rect(0px,0px,0px,0px);
}
</style>
<template> <template>
<style>
:host {
display: inline-block;
position: fixed;
clip: rect(0px,0px,0px,0px);
}
</style>
<div aria-live$="[[mode]]">[[_text]]</div> <div aria-live$="[[mode]]">[[_text]]</div>
</template> </template>

View file

@ -1,5 +1,4 @@
<!doctype html> <!DOCTYPE html><!--
<!--
@license @license
Copyright (c) 2015 The Polymer Project Authors. All rights reserved. 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 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
@ -7,10 +6,7 @@ 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 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 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 subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
--> --><html><head>
<html>
<head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>iron-a11y-announcer tests</title> <title>iron-a11y-announcer tests</title>
<script src="../../webcomponentsjs/webcomponents.js"></script> <script src="../../webcomponentsjs/webcomponents.js"></script>
@ -19,8 +15,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<body> <body>
<script> <script>
WCT.loadSuites([ WCT.loadSuites([
'iron-a11y-announcer.html' 'iron-a11y-announcer.html',
'iron-a11y-announcer.html?dom=shadow'
]); ]);
</script> </script>
</body>
</html>
</body></html>

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-a11y-keys-behavior", "name": "iron-a11y-keys-behavior",
"version": "1.1.6", "version": "1.1.7",
"description": "A behavior that enables keybindings for greater a11y.", "description": "A behavior that enables keybindings for greater a11y.",
"keywords": [ "keywords": [
"web-components", "web-components",
@ -19,7 +19,7 @@
"main": "iron-a11y-keys-behavior.html", "main": "iron-a11y-keys-behavior.html",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"dependencies": { "dependencies": {
"polymer": "Polymer/polymer#^1.0.0" "polymer": "Polymer/polymer#^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"paper-styles": "PolymerElements/paper-styles#^1.0.2", "paper-styles": "PolymerElements/paper-styles#^1.0.2",
@ -31,11 +31,11 @@
}, },
"ignore": [], "ignore": [],
"homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior", "homepage": "https://github.com/PolymerElements/iron-a11y-keys-behavior",
"_release": "1.1.6", "_release": "1.1.7",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.1.6", "tag": "v1.1.7",
"commit": "28435b2e02d0e5e5268e984d925b03643cea5e34" "commit": "cde403dee704a1d3ea5f7cb49067f0eab31a8afa"
}, },
"_source": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git", "_source": "git://github.com/PolymerElements/iron-a11y-keys-behavior.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -6,8 +6,10 @@ before_script:
- polylint - polylint
env: env:
global: global:
- secure: OZhLlPsjjnWU4FyZ+RKq5i/Nv/tElvcjr9+OT04ENGKfh9+fkuij/XdHJQe6EpOCjrNkwt23c+I6V5YWRrSatRX/AxEkViW8EXnF32rX3HV8fWnjD6Vfn+4Qz82y4huc9II8OV5I7jFDln6yzEGZn08zAtbmhj5dSpYtT1spSf/ZuUkqn4mMRJW2wCOnzbjueP56Ry40IwQm0enLXVQLPYB3LC4fBWfT+VFrsE9qH1ZgGKcSD/n2dOD3d6xjts4FSilNp2IZ8Km5RNAFUxYmkcwrY4O2ltNtKUngWwIpeplpz0bNj5k8kOpT5xA/FT630M5sFd1ODVp846kTr/EyYTq/VCiwTaA/vDfZL85DC3O+Zt0vTHAvkxKAaXkg9sMp8gJOJ6gt6cK8rV8z7npeAUVsK1gmuHYXne1Z76SRgWwbE0/z82vyFLNgitmZDLLM1fP3TpzsK1QQg1ikn6iYXdWpHcrzBi6lk8mCafnP7D7B/yFB/Z6Y9AFI6NQI/jWP2FMMJjMWbaJVG9DAU4PWlVTiFnhfVjPI7FUEmW46/QjH1ztSZWpDA9SBozJluIpKRA1qk1EgGX1RBFBHrbFtHG//x0AGyAV6gWOfdKjl/nqcM02xFUSrDb0tkNUnEAS6K7l+X1eDaBbiaAQiakPt9Je2WvvHyc+OiZviSc72Gmc= - secure: >-
- secure: vIs86+z7s1QwihkHtLBRQzlmJRSIWIadq3SlDdZHS4HOivH7fNV0d4hm8QnZYZ9X8yvSvxFCzEFdLuX1TpU0H3oy5wgYky7DnfJtsEhuOfW8dobHHZeCNi/t2FQAXpobqpRwojC3A+1b1lNrY1XNpYRz7aEialO4Yr8e1SQSLex5zw/pqm7g9Vz6PnQwobDQcGXKc6ZWc84+DqOo9qfkSlnEJC/1vQxHYpUa172UnnAnmHJ7gZKdhf9aLWJSZcSpPcoKEnvslRFmeDyRMNRDWVzcg2vHnV+tc1aYzp1wsrRW3P+oqwYlvGlxo+5U92QLXKIcKZhGblVWxe8BtXgiVzgS1sz5D11vKs61Xe46onbguG/XK3UxX9bPRK5uklkC5fwAY2hhvOTGXqimTb2YrlyEWO3BCKGBk6Is3KGyCe7c2nNEmXPUSun9X1JLGRPivJb9iBR4/WSEFvibYHl6/gIke9LdXPOCHuJ3+Iu14lCz+pwi8ADIWVuGpDIxFcorG8a3BCoxQo5VouUbSe0mcNttAvSzBNxhljaaBuFs56DLDpLRr0sGhqvfA1JzdCyzVyrk4WECfZw26pAnYCyTczVXmu5msVdKnjPJKtDqWazvIhHk2G1mk8CKb14lrN58u/Kh6PQ3miJ+61c1stBWhRDlp2QffOkBJiOATKHF+AA= XJ31r/5USVGZRtziCLfr8qM1pJKKQMUN1AeYbCdDFEc6i293WxZneR8PwUVhvyptu+qdyd28uy24sH+Ob7kShFbZTUaif5P4gqHPekrYToI0aHyhmVX7C1LmT7nEL8IcT62NhUwh+83eHTAdodkXgnhfQhPn9FHV24Dkvwm8OKhhzEhtTgUGVuGX9j9FyNV6n1+gf4X3Zq63+NkEUh5vpolpue4W7ul2u0sf4l0fzg9pvKPCmywUwX2i7wwAEf3CJghMu2xup54OzXTEkjjSou/ebt1ZnxaUNV1+dblfUne0v9wTD0dPF8H3DwgewwzcZSbOZmj6lFVHRzmLzWcRJOEKdDrpJkjpg7HIhNPGCKDUcNylekafqi7ezhzrkzFwkh6JCdAj7He4mv/X/OUDNjNCClB7Ms/+WPZwtACvIcR2/pvgZ+1PHbIkbIInyAe6iVMMR0oUecei/X+d04DH7iW7rrODVEu6qdibsJki0R0lR2184rrDO9pGek4rLu9sUQBDNgEM6ZLEXXByO8lpG4xStRdkg0/uR5i1/Q8kux4gIJ9yV8WLANkS8NVlmuJgIi6kbh5n4VVKaihGhbBUuTt2aL7fLnH2I6YRwjyNI9TOIRxwk4afppFYUuq6Fv+nfPcdqDOi5Y2AOXLJ3Yvco0+H57nXe/Ny29gFVW4Kftg=
- secure: >-
huEi/Ja2qnLatb7EJ4Jdc/XAeKphhdH6G+px7/XZY33oDawjStxakx0N/MpT0LPE1BdEWOYTzc17CzKv9R2L3ybWksqXyv/Zs+1NMTmpEAS/54Sk4E61aE3nrV5cfS2R8dBGbJhFoH1W237BDsbw9A4XhsTvhxlIsluWsZgeurbleGg+DgAmg8KlHGRddsfBFgXEk+Khhj6KPsbgPUiWhXpdnXKBPJKF7fJEAbsGR4aFK2eFbYd1OAgJg2Aye0n93IHe+SsxcKRUYteg6UK9V8fk7q5PBlvaodly4F3gH82l+zbnhcTFVW+qN0s6xDBTQzsQ55eTlO3pEezIo3u/1Lq41Yoe6scEkLs63pSYqoB3kakbhLMDJAen080ggdNg9evqvgyznKFYM7sqEcPu+KxHd043DyLTTW11y9lZ/hV3xSTdG4W8mV7+ILbIi54wMaYAcWSGMTOVM0JC/KDoVjze3tzDmfcZwiutLPBFgfrkfJQf3fyqcgvhoLKtHaWHI+76XDsXwEOS2Q5OX9oDtjoZaZ7r8Gp4dqwaKYceOrlsLbaZOLh5nJ4WnDbf4AqZkeM22QWWIfUN6aK+yhsDpQ/d+xJ+/WFENDADrMEKp0Lf3CkzAAcpHp3u65B9qsqweD5/5Je9t0GsA/NvK2xCasnNz6inYy4tAx9i4NWPcOY=
node_js: stable node_js: stable
addons: addons:
firefox: '46.0' firefox: '46.0'
@ -19,5 +21,5 @@ addons:
sauce_connect: true sauce_connect: true
script: script:
- xvfb-run wct - xvfb-run wct
- "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" - 'if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s ''default''; fi'
dist: trusty dist: trusty

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-a11y-keys-behavior", "name": "iron-a11y-keys-behavior",
"version": "1.1.6", "version": "1.1.7",
"description": "A behavior that enables keybindings for greater a11y.", "description": "A behavior that enables keybindings for greater a11y.",
"keywords": [ "keywords": [
"web-components", "web-components",
@ -19,7 +19,7 @@
"main": "iron-a11y-keys-behavior.html", "main": "iron-a11y-keys-behavior.html",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"dependencies": { "dependencies": {
"polymer": "Polymer/polymer#^1.0.0" "polymer": "Polymer/polymer#^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"paper-styles": "PolymerElements/paper-styles#^1.0.2", "paper-styles": "PolymerElements/paper-styles#^1.0.2",

View file

@ -13,29 +13,30 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<link rel="import" href="../iron-a11y-keys-behavior.html"> <link rel="import" href="../iron-a11y-keys-behavior.html">
<dom-module id="x-key-aware"> <dom-module id="x-key-aware">
<style>
:host {
display: block;
position: relative;
}
pre {
color: var(--google-blue-700);
}
.keys {
line-height: 25px;
}
.keys span {
cursor: default;
background-color: var(--google-grey-100);
border: 1px solid var(--google-grey-300);
padding: 1px 5px;
border-radius: 5px;
}
</style>
<template> <template>
<style>
:host {
display: block;
position: relative;
}
pre {
color: var(--google-blue-700);
}
.keys {
line-height: 25px;
}
.keys span {
cursor: default;
background-color: var(--google-grey-100);
border: 1px solid var(--google-grey-300);
padding: 1px 5px;
border-radius: 5px;
}
</style>
<h4>Press any of these keys</h4> <h4>Press any of these keys</h4>
<input type="checkbox" checked="{{preventDefault::change}}"> prevent default = {{preventDefault}} <input type="checkbox" checked="{{preventDefault::change}}"> prevent default = {{preventDefault}}
<p class="keys"> <p class="keys">

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-behaviors", "name": "iron-behaviors",
"version": "1.0.16", "version": "1.0.17",
"description": "Provides a set of behaviors for the iron elements", "description": "Provides a set of behaviors for the iron elements",
"private": true, "private": true,
"authors": [ "authors": [
@ -30,11 +30,11 @@
}, },
"ignore": [], "ignore": [],
"homepage": "https://github.com/PolymerElements/iron-behaviors", "homepage": "https://github.com/PolymerElements/iron-behaviors",
"_release": "1.0.16", "_release": "1.0.17",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.16", "tag": "v1.0.17",
"commit": "161e67233c4776e32a275a719a000865ed309393" "commit": "ef8e89b5f0aa4e8a6b51ca6491ea453bf395f94f"
}, },
"_source": "git://github.com/PolymerElements/iron-behaviors.git", "_source": "git://github.com/PolymerElements/iron-behaviors.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -1,23 +1,23 @@
language: node_js language: node_js
sudo: required sudo: required
before_script: before_script:
- npm install -g bower polylint web-component-tester - npm install -g bower polylint web-component-tester
- bower install - bower install
- polylint - polylint
env: env:
global: global:
- secure: ZOqj2XVNVwfT74rHxg/ljcAsS6FnmDpRSsXbsy1Icv9DcLHrMlmyQ10gWBjE/YXYF0Uv4akQ1qqn0TJaKOtp9HZeH+P6OPAYk2vJbWD7qp52pPtIqEFomcsUyflt4IjfaXKuN4FMod7PSWVSGJ+DxSguJvZKILkrs5d/rJdFv3c= - secure: H49pcRc5C6G+ti/ehtT74GZdsUsM/xCvEVJBmKq8rpck7s18R6BbH37RkF2XgYfO4rVa1Bl4KU4Wf5S6aIDYzdaq/phGtFQ04NmDYGbmBhRjwfgxlW4dJ7mkXqXCvNZkxJtAJpgzgVG+xu/I6GsO1Lp4VjGENvVYSsrkGIlSA34=
- secure: clkqemGQG16TXyAPkv9LBv6x3SbT3ZM0eo8LETx4uNKi3WzlwgXxZA9b5Sr5wYzxyxFFpnhDXW7CL4+UjYu1atGNeTW2TuSaYUPHtgu67OFDr8Jbw047p1XQb5enPSt9+YxrHKfjHBiJvWulJ8rCSQshU9Rhe0DC6NrFRPFgk0A= - secure: Zq+hvOlL1RmTtMfAtO3bxqYnB7X6MY199cVCKo2J/EbsMvOHII1JvEU1+s2/UG9tgoiXkd7N2OfFOivlbQ75BDIwtvkq32KZNrUEC6vRGhbMBc8JCKkdFB/XHh1mNhQcn6Js656PhZIj2WteZYMSGYDUj7KcBBMacRZQKWuB0OU=
node_js: stable node_js: stable
addons: addons:
firefox: latest firefox: '46.0'
apt: apt:
sources: sources:
- google-chrome - google-chrome
packages: packages:
- google-chrome-stable - google-chrome-stable
sauce_connect: true sauce_connect: true
script: script:
- xvfb-run wct - xvfb-run wct
- "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi
dist: trusty dist: trusty

View file

@ -1,4 +1,3 @@
<!-- <!--
This file is autogenerated based on This file is autogenerated based on
https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md
@ -11,6 +10,7 @@ specific element:
jsbin=https://jsbin.com/cagaye/edit?html,output jsbin=https://jsbin.com/cagaye/edit?html,output
--> -->
# Polymer Elements # Polymer Elements
## Guide for Contributors ## Guide for Contributors

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-behaviors", "name": "iron-behaviors",
"version": "1.0.16", "version": "1.0.17",
"description": "Provides a set of behaviors for the iron elements", "description": "Provides a set of behaviors for the iron elements",
"private": true, "private": true,
"authors": [ "authors": [

View file

@ -13,39 +13,35 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<link rel="import" href="../iron-control-state.html"> <link rel="import" href="../iron-control-state.html">
<dom-module id="simple-button"> <dom-module id="simple-button">
<style>
:host {
display: inline-block;
background-color: #4285F4;
color: #fff;
min-height: 8px;
min-width: 8px;
padding: 16px;
text-transform: uppercase;
border-radius: 3px;
-moz-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
user-select: none;
cursor: pointer;
}
:host([disabled]) {
opacity: 0.3;
pointer-events: none;
}
:host([active]),
:host([pressed]) {
background-color: #3367D6;
box-shadow: inset 0 3px 5px rgba(0,0,0,.2);
}
</style>
<template> <template>
<style>
:host {
display: inline-block;
background-color: #4285F4;
color: #fff;
min-height: 8px;
min-width: 8px;
padding: 16px;
text-transform: uppercase;
border-radius: 3px;
-moz-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
user-select: none;
cursor: pointer;
}
:host([disabled]) {
opacity: 0.3;
pointer-events: none;
}
:host([active]),
:host([pressed]) {
background-color: #3367D6;
box-shadow: inset 0 3px 5px rgba(0,0,0,.2);
}
</style>
<content></content> <content></content>
@ -68,4 +64,3 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
</script> </script>
</dom-module> </dom-module>

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-checked-element-behavior", "name": "iron-checked-element-behavior",
"version": "1.0.4", "version": "1.0.5",
"description": "Implements an element that has a checked attribute and can be added to a form", "description": "Implements an element that has a checked attribute and can be added to a form",
"authors": "The Polymer Authors", "authors": "The Polymer Authors",
"keywords": [ "keywords": [
@ -19,7 +19,7 @@
"homepage": "https://github.com/PolymerElements/iron-checked-element-behavior", "homepage": "https://github.com/PolymerElements/iron-checked-element-behavior",
"ignore": [], "ignore": [],
"dependencies": { "dependencies": {
"polymer": "Polymer/polymer#^1.0.0", "polymer": "Polymer/polymer#^1.1.0",
"iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0",
"iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0"
}, },
@ -28,14 +28,14 @@
"paper-button": "PolymerElements/paper-button#^1.0.0", "paper-button": "PolymerElements/paper-button#^1.0.0",
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
"test-fixture": "PolymerElements/test-fixture#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0",
"web-component-tester": "*", "web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"_release": "1.0.4", "_release": "1.0.5",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.4", "tag": "v1.0.5",
"commit": "cc30263ec2871ae8f8f944948f44299d3f3cdf0d" "commit": "c70add47a9af62d30746587e8a1303fb390787c6"
}, },
"_source": "git://github.com/PolymerElements/iron-checked-element-behavior.git", "_source": "git://github.com/PolymerElements/iron-checked-element-behavior.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -0,0 +1,33 @@
<!-- Instructions: https://github.com/PolymerElements/iron-checked-element-behavior/CONTRIBUTING.md#filing-issues -->
### Description
<!-- Example: The `paper-foo` element causes the page to turn pink when clicked. -->
### Expected outcome
<!-- Example: The page stays the same color. -->
### Actual outcome
<!-- Example: The page turns pink. -->
### Live Demo
<!-- Example: https://jsbin.com/cagaye/edit?html,output -->
### Steps to reproduce
<!-- Example
1. Put a `paper-foo` element in the page.
2. Open the page in a web browser.
3. Click the `paper-foo` element.
-->
### Browsers Affected
<!-- Check all that apply -->
- [ ] Chrome
- [ ] Firefox
- [ ] Safari 9
- [ ] Safari 8
- [ ] Safari 7
- [ ] Edge
- [ ] IE 11
- [ ] IE 10

View file

@ -1,22 +1,23 @@
language: node_js language: node_js
sudo: false sudo: required
before_script: before_script:
- npm install web-component-tester - npm install -g bower polylint web-component-tester
- npm install bower - bower install
- 'export PATH=$PWD/node_modules/.bin:$PATH' - polylint
- bower install
env: env:
global: global:
- secure: EJSBYkW/C3ppDTbxHYRzyFPAko5R1ET1LSbdM484/j0OHGLkSIwtKrrZLNz5+QEmKSw79MpLpBoD+SfXuSCn0yKkf6tvK4mt+kRs32vKVfoWrYReVcfth+EWV7QDpTDJw1QEijT1bKUxULhP0OrT2/5vVpKpXX2zczg+VFL7IZuY3y1dsA4qWmWTfMiAk3762dZx47D5qzJ4POHlpG0i/cHH2EgqV8sFXFBctf6EY68GqzStPUuMuea6xX2wMrebg6vqQDfDb1gs8N34gxGE+u8QaqOSniW1Vzdoe1vwOUo4dbJYw3JMYK5Qn2pj3p2E4m9J609JNnBfqjS7mB5KVC7Hf5r9ul3UMsAIlOnlmSqOq1oO22/3regjWHGjlrzCNHzma2SgDhTxGaLDJl1LnsUevbVb6TGloiQPXwum8oa7dvZ1PqspqyqZEb31t/FyUnG+VXnC0YYpdRj3eRGqeoqqaNtad97DrPHP7er9LdvJIKjsXux7gUW4hKWsr+jsU/krdHpTUC8GYWdTF54EcLhxfzNYKL7voTq+xoQ2yxCOSiBmcQCviuQyVvNQyhde/+edAmOt24CLiuSQjHCbEWzBQs9QinUPRekg6+LJ1WaifTIKkhsm04AdaZrs7LR34hF+Mpqp4HHl/AfcbtVeB/W7jUnhJyMFaQDfGkpzSZs= - secure: zj5WTkJrZAy1QK0j65jHEsHluT4B/PZl0u3iVEWnyd4CSUbHh3rS5NytZTA8wZ63DYnUcrdbhPeIQI3UKaVBUM2MO/K4MwsC2YTRpifpCLbC+wlRV9WRZNZ9CJ3hu6leshOBWHzZucUWAcKtyQRm66rAU+90ZaJcrBPC/xtgPG1n/Bm2aygr5IA36vJy80Zpwk1+yFmb08eu7jpzNVhcFor+VX0gBW3rxeX0kvzhHGn0bTLxKztNB56Oe+bzx6vU8ACjBcSylouOtPJVIk/iIh7AIDHDcpoZGzmwtVnwAV2mJQtu3V8hQ2kE8eXpDloBGID+AUfTF3YSOVQo34I1yv4T+FlB7uxWrgJo80X5IRXUe15+OoXqraZ25v736RPdTWPjV2b6cWHqdOa45wODkDY0KZ9SrmwZibF3vcfVOG21llW2jF/HC5FvDIiM7gv1ro5jsFbEIwv7ligh0KKa+TOZBphL4sEtMrpxR/zXLqBLXUbKL54A+AefHelxjDIqT3oKQylesrGZ58fEF7Fx5xDSYGJwhIEwTLsEQWIWw8sWB34yRtDBIPocqh8nNZ9pJBOdhK3oC5KK44IQnE44YrIzLRRinHzRVoywpUb5OJDxxSSvOwcqmTYbkFmRJMzfJCEj/EtYsEokmSFv8zIRRDetvenBTGouNK/VsU9xQpA=
- secure: izhN5Z3WdajR3ois2T55qepsvLwVg/wv8u4kVQ4TqWhUL08tka83m/W+EMzS/tcvfz7J3VkuTFrJ5scYD9kaTVhRo4dv2u+DdbPmTNcf/hmADXLVLxddyueK3bWEcBurg8+rSdqq/RdI+5CPwWeGtQl+lmjRCyBzodIpQ90zJQF4Al7nmmLuEUhiNVjuqQ3VB1pFLYgky4SVM0bfJnoKSDsZ2z9DOOJE34ZUUmcNqVcQoZ5/oM+PWdVDkUqW3vMK1lTMtE/dk6WcSztQwFyoMrW+uzEstPwUsJCyuBEx4KdioXZH3vrlxRApySfHmEf5eVWwE6jyPSHuWj/2D5O4R9LY1dq1Wcoiu3BJj19B4V3s4L2uJF+xL077d4Mna6z9dE4RSRzs8Z8MvSMTgzDkga/A25JI3XxJMJ78WTbkNQ4hVFN2xwcU5cm+fbs3Sr1ZEdFW/MWAPtUQOzscqS5Op7sSLLaiqO+R0zj56H2NA2bl/zCmbZhyLcOPl0oAfJ85bqNxyF8CoO+GZ98UG15ROigC90/HCP7TUHZnQSrGtiFGTiPTBm+VCITYmC5IEyJBTwgqh/ljbDzz4UuSZ3KsldL3MwWnqO3tGr6VvPfqKF6xq0vuyn9P7f9WNAYwZGcRi3AtxtY+znO+IGv2sGmrfo7ZY+U4nceXTEDrG8OY0Jo= - secure: Q3xN3fRvTQuy/HKlkYFFnVrFo01r6Q8zgzHHK8yKNKio9T/BM0+iIMYP8mRY+qvCQxCboXuUawG6gsxxT2Zn/p7SgNZ+UHq7DcLmocqxmECdGfqra6Hy9Y7BZVYPWlWIADkNUjI0RfOz69/3o/TAFlt4Cnw3BX3ip0o0Rri5/jzj0Nn+xSF+onyMnpH2gQvUE77MHvCuWTPki3R86Bz8RRzbTwKYwVa0oVca7jzdPtOjqzsnz8k9X0HVwQEpHGjqgTP3lg8EotON0rac/ayWs3J3bk9ye5AfvdTCYcZnDcz8POAN6FeC2Xey7oqQO4N8vFagru88mC3AmN67ZYqwI0fmDEYre20lnXFAFBFzsiu4FvKMgFYi/C5tG5ngSR5XcXwLskax82Un7yYYRzVbyhFSxxWZCqIC4cJ5d+E0Wex4eEYDwAlZ9AFP/hRJ2qrBVUbzXeGVMkHlg4qtdUIzHRkMUmjvEWVzTvk0Xa2wD+S0mYPcBwQcscoZy9zqdJM4hfbG9IGi02/DyrTOL3IuNH8WHHvGWS4ajDhSRkGCV4I5VtGKQ/Y3RA/pU6AaI7tVcDhbxOyIPKuOXO6PWuZOiJhhPQ/kceMkUXeh0TmsDtSBpe5OKCnjsdSn02lTT5yYf4nlVIVczP9p6zBerXorzZk1/S3CRBtqYZPgRrefbCw=
node_js: 4 node_js: stable
addons: addons:
firefox: latest firefox: '46.0'
apt: apt:
sources: sources:
- google-chrome - google-chrome
packages: packages:
- google-chrome-stable - google-chrome-stable
sauce_connect: true
script: script:
- xvfb-run wct - xvfb-run wct
- "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi
dist: trusty

View file

@ -1,11 +1,16 @@
<!-- <!--
This file is autogenerated based on This file is autogenerated based on
https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md
If you edit that file, it will get updated everywhere else. If you edit that file, it will get updated everywhere else.
If you edit this file, your changes will get overridden :) If you edit this file, your changes will get overridden :)
You can however override the jsbin link with one that's customized to this
specific element:
jsbin=https://jsbin.com/cagaye/edit?html,output
--> -->
# Polymer Elements # Polymer Elements
## Guide for Contributors ## Guide for Contributors
@ -41,7 +46,7 @@ Polymer Elements are built in the open, and the Polymer authors eagerly encourag
3. Click the `paper-foo` element. 3. Click the `paper-foo` element.
``` ```
2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output). 2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output).
3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers. 3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers.
@ -51,14 +56,14 @@ Polymer Elements are built in the open, and the Polymer authors eagerly encourag
When submitting pull requests, please provide: When submitting pull requests, please provide:
1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax: 1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax:
```markdown ```markdown
(For a single issue) (For a single issue)
Fixes #20 Fixes #20
(For multiple issues) (For multiple issues)
Fixes #32, #40 Fixes #32, fixes #40
``` ```
2. **A succinct description of the design** used to fix any related issues. For example: 2. **A succinct description of the design** used to fix any related issues. For example:

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-checked-element-behavior", "name": "iron-checked-element-behavior",
"version": "1.0.4", "version": "1.0.5",
"description": "Implements an element that has a checked attribute and can be added to a form", "description": "Implements an element that has a checked attribute and can be added to a form",
"authors": "The Polymer Authors", "authors": "The Polymer Authors",
"keywords": [ "keywords": [
@ -19,7 +19,7 @@
"homepage": "https://github.com/PolymerElements/iron-checked-element-behavior", "homepage": "https://github.com/PolymerElements/iron-checked-element-behavior",
"ignore": [], "ignore": [],
"dependencies": { "dependencies": {
"polymer": "Polymer/polymer#^1.0.0", "polymer": "Polymer/polymer#^1.1.0",
"iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0", "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0",
"iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0" "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0"
}, },
@ -28,7 +28,7 @@
"paper-button": "PolymerElements/paper-button#^1.0.0", "paper-button": "PolymerElements/paper-button#^1.0.0",
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
"test-fixture": "PolymerElements/test-fixture#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0",
"web-component-tester": "*", "web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
} }
} }

View file

@ -13,21 +13,22 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<link rel="import" href="../iron-checked-element-behavior.html"> <link rel="import" href="../iron-checked-element-behavior.html">
<dom-module id="simple-checkbox"> <dom-module id="simple-checkbox">
<style>
:host {
display: block;
}
:host([invalid]) span {
color: red;
}
#labelText {
display: inline-block;
width: 100px;
}
</style>
<template> <template>
<style>
:host {
display: block;
}
:host([invalid]) span {
color: red;
}
#labelText {
display: inline-block;
width: 100px;
}
</style>
<input type="checkbox" id="checkbox" on-tap="_onCheckTap"> <input type="checkbox" id="checkbox" on-tap="_onCheckTap">
<span id="labelText">{{label}}</span> <span id="labelText">{{label}}</span>
<paper-button raised on-click="_onClick">validate</paper-button> <paper-button raised on-click="_onClick">validate</paper-button>

View file

@ -75,10 +75,10 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
/** /**
* Returns false if the element is required and not checked, and true otherwise. * Returns false if the element is required and not checked, and true otherwise.
* @param {*=} _value Ignored. * @param {*=} _value Ignored.
* @return {boolean} true if `required` is false, or if `required` and `checked` are both true. * @return {boolean} true if `required` is false or if `checked` is true.
*/ */
_getValidity: function(_value) { _getValidity: function(_value) {
return this.disabled || !this.required || (this.required && this.checked); return this.disabled || !this.required || this.checked;
}, },
/** /**

View file

@ -1 +0,0 @@
bower_components

View file

@ -1,31 +0,0 @@
{
"name": "iron-collapse",
"version": "1.0.3",
"description": "Provides a collapsable container",
"authors": [
"The Polymer Authors"
],
"keywords": [
"web-components",
"polymer",
"container"
],
"private": true,
"repository": {
"type": "git",
"url": "https://github.com/PolymerElements/iron-collapse"
},
"license": "http://polymer.github.io/LICENSE.txt",
"homepage": "https://github.com/PolymerElements/iron-collapse",
"ignore": [],
"dependencies": {
"polymer": "Polymer/polymer#^1.0.0"
},
"devDependencies": {
"web-component-tester": "*",
"test-fixture": "PolymerElements/test-fixture#^1.0.0",
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
"paper-styles": "PolymerElements/paper-styles#^1.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}
}

View file

@ -1,74 +0,0 @@
<!doctype 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-collapse demo</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="../iron-collapse.html">
<link rel="stylesheet" href="../../paper-styles/demo.css">
<style>
.heading {
padding: 10px 15px;
margin-top: 20px;
background-color: #f3f3f3;
border: 1px solid #dedede;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
font-size: 18px;
cursor: pointer;
-webkit-tap-highlight-color: rgba(0,0,0,0);
width: 100%;
text-align: left;
}
.content {
padding: 15px;
border: 1px solid #dedede;
border-top: none;
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
}
</style>
</head>
<body unresolved>
<button class="heading" onclick="document.querySelector('#collapse1').toggle();">Collapse #1</button>
<iron-collapse id="collapse1">
<div class="content">
<div>Lorem ipsum dolor sit amet, per in nusquam nominavi periculis, sit elit oportere ea, id minim maiestatis incorrupte duo. Dolorum verterem ad ius, his et nullam verterem. Eu alia debet usu, an doming tritani est. Vix ad ponderum petentium suavitate, eum eu tempor populo, graece sententiae constituam vim ex. Cu torquatos reprimique neglegentur nec, voluptua periculis has ut, at eos discere deleniti sensibus. Lorem ipsum dolor sit amet, per in nusquam nominavi periculis, sit elit oportere ea, id minim maiestatis incorrupte duo. Dolorum verterem ad ius, his et nullam verterem. Eu alia debet usu, an doming tritani est. Vix ad ponderum petentium suavitate, eum eu tempor populo, graece sententiae constituam vim ex. Cu torquatos reprimique neglegentur nec, voluptua periculis has ut, at eos discere deleniti sensibus.</div>
</div>
</iron-collapse>
<button class="heading" onclick="document.querySelector('#collapse2').toggle();">Collapse #2</button>
<iron-collapse id="collapse2">
<div class="content">
<div>Pro saepe pertinax ei, ad pri animal labores suscipiantur. Modus commodo minimum eum te, vero utinam assueverit per eu, zril oportere suscipiantur pri te. Partem percipitur deterruisset ad sea, at eam suas luptatum dissentiunt. No error alienum pro, erant senserit ex mei, pri semper alterum no. Ut habemus menandri vulputate mea. Feugiat verterem ut sed. Dolores maiestatis id per. Pro saepe pertinax ei, ad pri animal labores suscipiantur. Modus commodo minimum eum te, vero utinam assueverit per eu, zril oportere suscipiantur pri te. Partem percipitur deterruisset ad sea, at eam suas luptatum dissentiunt. No error alienum pro, erant senserit ex mei, pri semper alterum no. Ut habemus menandri vulputate mea. Feugiat verterem ut sed. Dolores maiestatis id per.</div>
<button class="heading" onclick="document.querySelector('#collapse3').toggle();">Collapse #3</button>
<iron-collapse id="collapse3">
<div class="content">
<div>Iisque perfecto dissentiet cum et, sit ut quot mandamus, ut vim tibique splendide instructior. Id nam odio natum malorum, tibique copiosae expetenda mel ea. Mea melius malorum ut. Ut nec tollit vocent timeam. Facer nonumy numquam id his, munere salutatus consequuntur eum et, eum cotidieque definitionem signiferumque id. Ei oblique graecis patrioque vis, et probatus dignissim inciderint vel. Sed id paulo erroribus, autem semper accusamus in mel. Iisque perfecto dissentiet cum et, sit ut quot mandamus, ut vim tibique splendide instructior. Id nam odio natum malorum, tibique copiosae expetenda mel ea. Mea melius malorum ut. Ut nec tollit vocent timeam. Facer nonumy numquam id his, munere salutatus consequuntur eum et, eum cotidieque definitionem signiferumque id. Ei oblique graecis patrioque vis, et probatus dignissim inciderint vel. Sed id paulo erroribus, autem semper accusamus in mel.</div>
</div>
</iron-collapse>
</div>
</iron-collapse>
</body>
</html>

View file

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 225 126" enable-background="new 0 0 225 126" xml:space="preserve">
<g id="background" display="none">
<rect display="inline" fill="#B0BEC5" width="225" height="126"/>
<path display="inline" fill="none" d="M167.5,51.7c3.7-0.8,6.9,2.4,6.1,6.1c-0.4,1.9-1.9,3.4-3.8,3.8c-3.7,0.8-6.9-2.4-6.1-6.1
C164.2,53.6,165.7,52.1,167.5,51.7z"/>
</g>
<g id="label">
</g>
<g id="art">
<path d="M151,102H73V52h78V102z M75,100h74V54H75V100z"/>
<path d="M151,38H73V24h78V38z M75,36h74V26H75V36z"/>
<circle cx="171" cy="51" r="4"/>
<path d="M151,72v-2c10.5,0,19-8.5,19-19s-8.5-19-19-19v-2c11.6,0,21,9.4,21,21S162.6,72,151,72z"/>
<g id="ic_x5F_add_x0D_">
</g>
</g>
<g id="Guides">
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1,31 +0,0 @@
<!doctype 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>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<title>iron-collapse</title>
<script src="../webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="../polymer/polymer.html">
<link rel="import" href="../iron-component-page/iron-component-page.html">
</head>
<body>
<iron-component-page></iron-component-page>
</body>
</html>

View file

@ -1,200 +0,0 @@
<!--
@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">
<!--
`iron-collapse` creates a collapsible block of content. By default, the content
will be collapsed. Use `opened` or `toggle()` to show/hide the content.
<button on-click="toggle">toggle collapse</button>
<iron-collapse id="collapse">
<div>Content goes here...</div>
</iron-collapse>
...
toggle: function() {
this.$.collapse.toggle();
}
`iron-collapse` adjusts the height/width of the collapsible element to show/hide
the content. So avoid putting padding/margin/border on the collapsible directly,
and instead put a div inside and style that.
<style>
.collapse-content {
padding: 15px;
border: 1px solid #dedede;
}
</style>
<iron-collapse>
<div class="collapse-content">
<div>Content goes here...</div>
</div>
</iron-collapse>
@group Iron Elements
@hero hero.svg
@demo demo/index.html
@element iron-collapse
-->
<dom-module id="iron-collapse">
<style>
:host {
display: block;
transition-duration: 300ms;
}
:host(.iron-collapse-closed) {
display: none;
}
:host(:not(.iron-collapse-opened)) {
overflow: hidden;
}
</style>
<template>
<content></content>
</template>
</dom-module>
<script>
Polymer({
is: 'iron-collapse',
properties: {
/**
* If true, the orientation is horizontal; otherwise is vertical.
*
* @attribute horizontal
*/
horizontal: {
type: Boolean,
value: false,
observer: '_horizontalChanged'
},
/**
* Set opened to true to show the collapse element and to false to hide it.
*
* @attribute opened
*/
opened: {
type: Boolean,
value: false,
notify: true,
observer: '_openedChanged'
}
},
hostAttributes: {
role: 'group',
'aria-expanded': 'false'
},
listeners: {
transitionend: '_transitionEnd'
},
ready: function() {
// Avoid transition at the beginning e.g. page loads and enable
// transitions only after the element is rendered and ready.
this._enableTransition = true;
},
/**
* Toggle the opened state.
*
* @method toggle
*/
toggle: function() {
this.opened = !this.opened;
},
show: function() {
this.opened = true;
},
hide: function() {
this.opened = false;
},
updateSize: function(size, animated) {
this.enableTransition(animated);
var s = this.style;
var nochange = s[this.dimension] === size;
s[this.dimension] = size;
if (animated && nochange) {
this._transitionEnd();
}
},
enableTransition: function(enabled) {
this.style.transitionDuration = (enabled && this._enableTransition) ? '' : '0s';
},
_horizontalChanged: function() {
this.dimension = this.horizontal ? 'width' : 'height';
this.style.transitionProperty = this.dimension;
},
_openedChanged: function() {
if (this.opened) {
this.toggleClass('iron-collapse-closed', false);
this.updateSize('auto', false);
var s = this._calcSize();
this.updateSize('0px', false);
// force layout to ensure transition will go
/** @suppress {suspiciousCode} */ this.offsetHeight;
this.updateSize(s, true);
}
else {
this.toggleClass('iron-collapse-opened', false);
this.updateSize(this._calcSize(), false);
// force layout to ensure transition will go
/** @suppress {suspiciousCode} */ this.offsetHeight;
this.updateSize('0px', true);
}
this.setAttribute('aria-expanded', this.opened ? 'true' : 'false');
},
_transitionEnd: function() {
if (this.opened) {
this.updateSize('auto', false);
}
this.toggleClass('iron-collapse-closed', !this.opened);
this.toggleClass('iron-collapse-opened', this.opened);
this.enableTransition(false);
},
_calcSize: function() {
return this.getBoundingClientRect()[this.dimension] + 'px';
},
});
</script>

View file

@ -1,93 +0,0 @@
<!doctype html>
<!--
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-collapse-basic</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../web-component-tester/browser.js"></script>
<script src="../../test-fixture/test-fixture-mocha.js"></script>
<link rel="import" href="../../test-fixture/test-fixture.html">
<link rel="import" href="../iron-collapse.html">
</head>
<body>
<test-fixture id="test">
<template>
<iron-collapse id="collapse" opened>
<div>
Forma temperiemque cornua sidera dissociata cornua recessit innabilis ligavit: solidumque coeptis nullus caelum sponte phoebe di regat mentisque tanta austro capacius amphitrite sui quin postquam semina fossae liquidum umor galeae coeptis caligine liberioris quin liquidum matutinis invasit posset: flexi glomeravit radiis certis invasit oppida postquam onerosior inclusum dominari opifex terris pace finxit quam aquae nunc sine altae auroram quam habentem homo totidemque scythiam in pondus ensis tegit caecoque poena lapidosos humanas coeperunt poena aetas totidem nec natura aethera locavit caelumque distinxit animalibus phoebe cingebant moderantum porrexerat terrae possedit sua sole diu summaque obliquis melioris orbem
</div>
</iron-collapse>
</template>
</test-fixture>
<script>
suite('basic', function() {
var collapse;
var delay = 500;
var collapseHeight;
setup(function () {
collapse = fixture('test');
});
test('opened attribute', function() {
assert.equal(collapse.opened, true);
});
test('horizontal attribute', function() {
assert.equal(collapse.horizontal, false);
});
test('default opened height', function(done) {
setTimeout(function() {
// store height
collapseHeight = getComputedStyle(collapse).height;
// verify height not 0px
assert.notEqual(collapseHeight, '0px');
done();
}, delay);
});
test('set opened to false', function(done) {
collapse.opened = false;
setTimeout(function() {
var h = getComputedStyle(collapse).height;
// verify height is 0px
assert.equal(h, '0px');
done();
}, delay);
});
test('set opened to true', function(done) {
collapse.opened = true;
setTimeout(function() {
var h = getComputedStyle(collapse).height;
// verify height
assert.equal(h, collapseHeight);
done();
}, delay);
});
});
</script>
</body>
</html>

View file

@ -1,91 +0,0 @@
<!doctype html>
<!--
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-collapse-horizontal</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../web-component-tester/browser.js"></script>
<script src="../../test-fixture/test-fixture-mocha.js"></script>
<link rel="import" href="../../test-fixture/test-fixture.html">
<link rel="import" href="../iron-collapse.html">
</head>
<body>
<test-fixture id="test">
<template>
<iron-collapse id="collapse" opened horizontal>
<div>
Forma temperiemque cornua sidera dissociata cornua recessit innabilis ligavit: solidumque coeptis nullus caelum sponte phoebe di regat mentisque tanta austro capacius amphitrite sui quin postquam semina fossae liquidum umor galeae coeptis caligine liberioris quin liquidum matutinis invasit posset: flexi glomeravit radiis certis invasit oppida postquam onerosior inclusum dominari opifex terris pace finxit quam aquae nunc sine altae auroram quam habentem homo totidemque scythiam in pondus ensis tegit caecoque poena lapidosos humanas coeperunt poena aetas totidem nec natura aethera locavit caelumque distinxit animalibus phoebe cingebant moderantum porrexerat terrae possedit sua sole diu summaque obliquis melioris orbem
</div>
</iron-collapse>
</template>
</test-fixture>
<script>
suite('horizontal', function() {
var collapse;
var delay = 500;
var collapseHeight;
setup(function () {
collapse = fixture('test');
});
test('opened attribute', function() {
assert.equal(collapse.opened, true);
});
test('horizontal attribute', function() {
assert.equal(collapse.horizontal, true);
});
test('default opened width', function(done) {
setTimeout(function() {
// store actual width
width = getComputedStyle(collapse).width;
// verify width not 0px
assert.notEqual(width, '0px');
done();
}, delay);
});
test('set opened to false', function(done) {
collapse.opened = false;
setTimeout(function() {
var h = getComputedStyle(collapse).width;
// verify width is 0px
assert.equal(h, '0px');
done();
}, delay);
});
test('set opened to true', function(done) {
collapse.opened = true;
setTimeout(function() {
var h = getComputedStyle(collapse).width;
// verify width
assert.equal(h, width);
done();
}, delay);
});
});
</script>
</body>
</html>

View file

@ -1,31 +0,0 @@
<!doctype html>
<!--
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>
<meta charset="utf-8">
<title>Tests</title>
<script src="../../web-component-tester/browser.js"></script>
</head>
<body>
<script>
WCT.loadSuites([
'basic.html',
'horizontal.html'
]);
</script>
</body>
</html>

View file

@ -1,7 +1,7 @@
{ {
"name": "iron-icon", "name": "iron-icon",
"private": true, "private": true,
"version": "1.0.8", "version": "1.0.9",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"description": "An element that supports displaying an icon", "description": "An element that supports displaying an icon",
"main": "iron-icon.html", "main": "iron-icon.html",
@ -21,7 +21,7 @@
"dependencies": { "dependencies": {
"iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0",
"iron-meta": "polymerelements/iron-meta#^1.0.0", "iron-meta": "polymerelements/iron-meta#^1.0.0",
"polymer": "Polymer/polymer#^1.0.0" "polymer": "Polymer/polymer#^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"test-fixture": "polymerelements/test-fixture#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0",
@ -33,11 +33,11 @@
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
}, },
"homepage": "https://github.com/PolymerElements/iron-icon", "homepage": "https://github.com/PolymerElements/iron-icon",
"_release": "1.0.8", "_release": "1.0.9",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.8", "tag": "v1.0.9",
"commit": "f36b38928849ef3853db727faa8c9ef104d611eb" "commit": "f6fb241901377e30e2c9c6cd47e3e8e8beb6574d"
}, },
"_source": "git://github.com/PolymerElements/iron-icon.git", "_source": "git://github.com/PolymerElements/iron-icon.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -1,4 +1,4 @@
<!-- Instructions: https://github.com/PolymerElements/iron-selector/CONTRIBUTING.md#filing-issues --> <!-- Instructions: https://github.com/PolymerElements/iron-icon/CONTRIBUTING.md#filing-issues -->
### Description ### Description
<!-- Example: The `paper-foo` element causes the page to turn pink when clicked. --> <!-- Example: The `paper-foo` element causes the page to turn pink when clicked. -->

View file

@ -1,25 +1,23 @@
language: node_js language: node_js
sudo: false sudo: required
before_script: before_script:
- npm install -g bower polylint web-component-tester - npm install -g bower polylint web-component-tester
- bower install - bower install
- polylint - polylint
env: env:
global: global:
- secure: Cyo7MV8FASyf2EZyrSmDbmoZmopQhuTbV79Ntl6eDq6JxEOAApULHn6W+ht0tvmaA+L2cRNq3Z4uvy3tbZCI5SCgQuEKLDJFoghzNp4Izc54bBlJzsxMjcgxEEMbw1jDIKp+PJ+1+8oyT5H1NogcGoNWcvMCjn+8Vl64/999mhw= - secure: TTp7q3OKEpaFqnqbYczhMd8iXTa1Ya0jOQVq1OhljpJogLWb78qvHLHgnxgMWkw+/KDyE5KHW1CXhYUQa7C9QF2Zn7uoN27+7+4q7HuK3pTuUtqdfstLVuLHQrfK6VqUT4XjSpeMzNX/HxuD3EMBH0bMBR4CIr76sLJOuIL/XF8=
- secure: dI3wfjJoooFlq6Kb8V1fkbc9N5jrvw7dExN4tp4KlvJFiXIvgb823jEyLGnK/oeVLwP9yncvOYxiG/enNbjpk6fId3zjwptN2H1am3pIsPQASOZJ0Pwvwa1dX7EYGk2kxOwY1pyX4is/QRVDrlUkLm3YAPOFfYJEiVB7m6TNFIo= - secure: damHvQXygRYIJG/8Vmqh7U4zxoi5224JIZiZVQL6I5z//s5zqHq6AqwDyfOoc0zWndJCwE8NvOzKD/lmVYXIsPcY95kkZS45Dbye0krYWUzKnv42rDi/7olXcg647iAEDVhW3BRHmA+opzQtKUpAkXl97DtPVkszLL1ReyNyv3A=
- CXX=g++-4.8
node_js: stable node_js: stable
addons: addons:
firefox: latest firefox: '46.0'
apt: apt:
sources: sources:
- google-chrome - google-chrome
- ubuntu-toolchain-r-test
packages: packages:
- google-chrome-stable - google-chrome-stable
- g++-4.8
sauce_connect: true sauce_connect: true
script: script:
- xvfb-run wct - xvfb-run wct
- "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi
dist: trusty

View file

@ -1,4 +1,3 @@
<!-- <!--
This file is autogenerated based on This file is autogenerated based on
https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md
@ -11,6 +10,7 @@ specific element:
jsbin=https://jsbin.com/cagaye/edit?html,output jsbin=https://jsbin.com/cagaye/edit?html,output
--> -->
# Polymer Elements # Polymer Elements
## Guide for Contributors ## Guide for Contributors

View file

@ -1,7 +1,7 @@
{ {
"name": "iron-icon", "name": "iron-icon",
"private": true, "private": true,
"version": "1.0.8", "version": "1.0.9",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"description": "An element that supports displaying an icon", "description": "An element that supports displaying an icon",
"main": "iron-icon.html", "main": "iron-icon.html",
@ -21,7 +21,7 @@
"dependencies": { "dependencies": {
"iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0", "iron-flex-layout": "polymerelements/iron-flex-layout#^1.0.0",
"iron-meta": "polymerelements/iron-meta#^1.0.0", "iron-meta": "polymerelements/iron-meta#^1.0.0",
"polymer": "Polymer/polymer#^1.0.0" "polymer": "Polymer/polymer#^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"test-fixture": "polymerelements/test-fixture#^1.0.0", "test-fixture": "polymerelements/test-fixture#^1.0.0",

View file

@ -82,24 +82,22 @@ Custom property | Description | Default
--> -->
<dom-module id="iron-icon"> <dom-module id="iron-icon">
<style>
:host {
@apply(--layout-inline);
@apply(--layout-center-center);
position: relative;
vertical-align: middle;
fill: var(--iron-icon-fill-color, currentcolor);
stroke: var(--iron-icon-stroke-color, none);
width: var(--iron-icon-width, 24px);
height: var(--iron-icon-height, 24px);
}
</style>
<template> <template>
<style>
:host {
@apply(--layout-inline);
@apply(--layout-center-center);
position: relative;
vertical-align: middle;
fill: var(--iron-icon-fill-color, currentcolor);
stroke: var(--iron-icon-stroke-color, none);
width: var(--iron-icon-width, 24px);
height: var(--iron-icon-height, 24px);
}
</style>
</template> </template>
<script> <script>

View file

@ -1,44 +0,0 @@
{
"name": "iron-pages",
"version": "1.0.7",
"license": "http://polymer.github.io/LICENSE.txt",
"description": "Organizes a set of pages and shows one at a time",
"main": "iron-pages.html",
"private": true,
"authors": [
"The Polymer Authors"
],
"repository": {
"type": "git",
"url": "git://github.com/PolymerElements/iron-pages.git"
},
"keywords": [
"web-components",
"polymer",
"container"
],
"dependencies": {
"iron-resizable-behavior": "polymerelements/iron-resizable-behavior#^1.0.0",
"iron-selector": "polymerelements/iron-selector#^1.0.0",
"polymer": "Polymer/polymer#^1.1.0"
},
"devDependencies": {
"iron-component-page": "polymerelements/iron-component-page#^1.0.0",
"iron-demo-helpers": "polymerelements/iron-demo-helpers#^1.0.0",
"paper-styles": "polymerelements/paper-styles#^1.0.2",
"test-fixture": "polymerelements/test-fixture#^1.0.0",
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"ignore": [],
"homepage": "https://github.com/PolymerElements/iron-pages",
"_release": "1.0.7",
"_resolution": {
"type": "version",
"tag": "v1.0.7",
"commit": "357acb8508da5093b22887a85cb785919c20cfde"
},
"_source": "git://github.com/PolymerElements/iron-pages.git",
"_target": "~1.0.2",
"_originalSource": "PolymerElements/iron-pages"
}

View file

@ -1 +0,0 @@
bower_components

View file

@ -1,25 +0,0 @@
language: node_js
sudo: false
before_script:
- npm install -g bower polylint web-component-tester
- bower install
- polylint
env:
global:
- secure: QwCi1poMu8n3s7gAljvAyODa0+zmte8B9qAO/S/SziRNDcRHJF4RRZp0HJfgVYkCaHsgCOrRswfkqZqlj4QC5goPfwtwgRtIdcEarF64kAjWLXHH66aMPSlop+MZYSJwFRrrmcc0jTDTOPw6CXaz1lYrcvpGnVAAHSNq4e9xuwA=
- secure: PAn10VQ1AL+FpM/qj2ak7tJe0Epd/RP3FF+jb2eVBXhmUVd9+mBH7nRwYQL4n6fIGXMtJcUkl4t35nwzEegP/nrjZlIslXFT6D/273FbJcbH1SaCsnwLn3Rr0VffwaHC76yLsW7ph2/paAS4iLWS4AeP1c2dAR9zimSpM7Knovs=
- CXX=g++-4.8
node_js: stable
addons:
firefox: latest
apt:
sources:
- google-chrome
- ubuntu-toolchain-r-test
packages:
- google-chrome-stable
- g++-4.8
sauce_connect: true
script:
- xvfb-run wct
- "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi"

View file

@ -1,72 +0,0 @@
<!--
This file is autogenerated based on
https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md
If you edit that file, it will get updated everywhere else.
If you edit this file, your changes will get overridden :)
-->
# Polymer Elements
## Guide for Contributors
Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines:
### Filing Issues
**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions:
1. **Who will use the feature?** _“As someone filling out a form…”_
2. **When will they use the feature?** _“When I enter an invalid value…”_
3. **What is the users goal?** _“I want to be visually notified that the value needs to be corrected…”_
**If you are filing an issue to report a bug**, please provide:
1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug:
```markdown
The `paper-foo` element causes the page to turn pink when clicked.
## Expected outcome
The page stays the same color.
## Actual outcome
The page turns pink.
## Steps to reproduce
1. Put a `paper-foo` element in the page.
2. Open the page in a web browser.
3. Click the `paper-foo` element.
```
2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [http://jsbin.com/cagaye](http://jsbin.com/cagaye/edit?html,output).
3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers.
### Submitting Pull Requests
**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request.
When submitting pull requests, please provide:
1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues using the following syntax:
```markdown
(For a single issue)
Fixes #20
(For multiple issues)
Fixes #32, #40
```
2. **A succinct description of the design** used to fix any related issues. For example:
```markdown
This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked.
```
3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered.
If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so dont be afraid to ask us if you need help with that!

View file

@ -1,34 +0,0 @@
{
"name": "iron-pages",
"version": "1.0.7",
"license": "http://polymer.github.io/LICENSE.txt",
"description": "Organizes a set of pages and shows one at a time",
"main": "iron-pages.html",
"private": true,
"authors": [
"The Polymer Authors"
],
"repository": {
"type": "git",
"url": "git://github.com/PolymerElements/iron-pages.git"
},
"keywords": [
"web-components",
"polymer",
"container"
],
"dependencies": {
"iron-resizable-behavior": "polymerelements/iron-resizable-behavior#^1.0.0",
"iron-selector": "polymerelements/iron-selector#^1.0.0",
"polymer": "Polymer/polymer#^1.1.0"
},
"devDependencies": {
"iron-component-page": "polymerelements/iron-component-page#^1.0.0",
"iron-demo-helpers": "polymerelements/iron-demo-helpers#^1.0.0",
"paper-styles": "polymerelements/paper-styles#^1.0.2",
"test-fixture": "polymerelements/test-fixture#^1.0.0",
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"ignore": []
}

View file

@ -1,74 +0,0 @@
<!doctype 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-pages demo</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="../../paper-styles/color.html">
<link rel="import" href="../../iron-demo-helpers/demo-snippet.html">
<link rel="import" href="../../iron-demo-helpers/demo-pages-shared-styles.html">
<link rel="import" href="../iron-pages.html">
<style is="custom-style" include="demo-pages-shared-styles"></style>
</head>
<body unresolved>
<div class="vertical-section-container centered">
<h3>iron-pages shows only one of its children at a time.</h3>
<demo-snippet>
<template>
<style is="custom-style">
iron-pages {
width: 100%;
height: 200px;
font-size: 50px;
color: white;
text-align: center;
}
iron-pages div {
width: 100%;
height: 100%;
padding: 80px 0;
}
iron-pages div:nth-child(1) {
background-color: var(--google-blue-500);
}
iron-pages div:nth-child(2) {
background-color: var(--google-red-500);
}
iron-pages div:nth-child(3) {
background-color: var(--google-green-500);
}
</style>
<p>Click on a page to advance to the next one.</p>
<iron-pages selected="0">
<div>One</div>
<div>Two</div>
<div>Three</div>
</iron-pages>
<script>
document.addEventListener('click', function(e) {
var pages = document.querySelector('iron-pages');
pages.selectNext();
});
</script>
</template>
</demo-snippet>
</div>
</body>
</html>

View file

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 225 126" enable-background="new 0 0 225 126" xml:space="preserve">
<g id="background" display="none">
<rect display="inline" fill="#B0BEC5" width="225" height="126"/>
</g>
<g id="label">
</g>
<g id="art">
<path d="M143.3,73.6H51.7V26.7h91.6V73.6z M53.7,71.6h87.6V28.7H53.7V71.6z"/>
<path d="M158.3,85.4H66.7V38.6h91.6V85.4z M68.7,83.4h87.6V40.6H68.7V83.4z"/>
<path d="M172,99H80.4V52.1H172V99z M82.4,97H170V54.1H82.4V97z"/>
<circle cx="53" cy="28" r="4"/>
<circle cx="171" cy="98" r="4"/>
<g id="ic_x5F_add_x0D_">
</g>
</g>
<g id="Guides">
</g>
</svg>

Before

Width:  |  Height:  |  Size: 921 B

View file

@ -1,25 +0,0 @@
<!doctype 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-pages</title>
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
<script src="../webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="../iron-component-page/iron-component-page.html">
</head>
<body>
<iron-component-page></iron-component-page>
</body>
</html>

View file

@ -1,88 +0,0 @@
<!--
@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">
<link rel="import" href="../iron-resizable-behavior/iron-resizable-behavior.html">
<link rel="import" href="../iron-selector/iron-selectable.html">
<!--
`iron-pages` is used to select one of its children to show. One use is to cycle through a list of
children "pages".
Example:
<iron-pages selected="0">
<div>One</div>
<div>Two</div>
<div>Three</div>
</iron-pages>
<script>
document.addEventListener('click', function(e) {
var pages = document.querySelector('iron-pages');
pages.selectNext();
});
</script>
@group Iron Elements
@hero hero.svg
@demo demo/index.html
-->
<dom-module id="iron-pages">
<template>
<style>
:host {
display: block;
}
:host > ::content > :not(.iron-selected) {
display: none !important;
}
</style>
<content></content>
</template>
<script>
Polymer({
is: 'iron-pages',
behaviors: [
Polymer.IronResizableBehavior,
Polymer.IronSelectableBehavior
],
properties: {
// as the selected page is the only one visible, activateEvent
// is both non-sensical and problematic; e.g. in cases where a user
// handler attempts to change the page and the activateEvent
// handler immediately changes it back
activateEvent: {
type: String,
value: null
}
},
observers: [
'_selectedPageChanged(selected)'
],
_selectedPageChanged: function(selected, old) {
this.async(this.notifyResize);
}
});
</script>
</dom-module>

View file

@ -1,92 +0,0 @@
<!doctype 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-pages-attr-for-selected</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../web-component-tester/browser.js"></script>
<link rel="import" href="../iron-pages.html">
</head>
<body>
<test-fixture id="basic">
<template>
<iron-pages attr-for-selected="name" selected="page0">
<div name="page0">Page 0</div>
<div name="page1">Page 1</div>
<div name="page2">Page 2</div>
<div name="page3">Page 3</div>
</iron-pages>
</template>
</test-fixture>
<script>
suite('basic', function() {
var pages;
suite('honor the selected attribute', function() {
setup(function () {
pages = fixture('basic');
});
test('selected value', function() {
assert.equal(pages.selected, 'page0');
});
test('selected item', function(done) {
// iron-selector uses observeNodes, which is async.
Polymer.Base.async(function() {
assert.equal(pages.selectedItem, pages.items[0])
done();
}, 1);
});
test('selected item is display:block and all others are display:none', function() {
pages.items.forEach(function(p) {
assert.equal(getComputedStyle(p).display, p == pages.selectedItem ? 'block' : 'none');
});
});
});
suite('set selected attribute', function() {
setup(function () {
pages = fixture('basic');
pages.selected = 'page2';
});
test('selected value', function() {
assert.equal(pages.selected, 'page2');
});
test('selected item', function() {
assert.equal(pages.selectedItem, pages.items[2]);
});
test('selected item is display:block and all others are display:none', function() {
pages.items.forEach(function(p) {
assert.equal(getComputedStyle(p).display, p == pages.selectedItem ? 'block' : 'none');
});
});
});
});
</script>
</body>
</html>

View file

@ -1,98 +0,0 @@
<!doctype 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-pages-basic</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../web-component-tester/browser.js"></script>
<link rel="import" href="../iron-pages.html">
</head>
<body>
<test-fixture id="basic">
<template>
<iron-pages>
<div id="page0">Page 0</div>
<div id="page1">Page 1</div>
<div id="page2">Page 2</div>
<div id="page3">Page 3</div>
</iron-pages>
</template>
</test-fixture>
<script>
suite('basic', function() {
var pages;
suite('defaults', function() {
setup(function () {
pages = fixture('basic');
});
test('to nothing selected', function() {
assert.equal(pages.selected, undefined);
});
test('null activateEvent', function() {
// `activateEvent` is not a useful feature for iron-pages and it can interfere
// with ux; ensure iron-pages has cleared any default `activateEvent`
assert.equal(pages.activateEvent, null);
});
test('to iron-selected as selectedClass', function() {
assert.equal(pages.selectedClass, 'iron-selected');
});
test('as many items as children', function() {
assert.equal(pages.items.length, 4);
});
test('all pages are display:none', function() {
pages.items.forEach(function(p) {
assert.equal(getComputedStyle(p).display, 'none');
});
});
});
suite('set the selected attribute', function() {
setup(function () {
pages = fixture('basic');
pages.selected = 0;
});
test('selected value', function() {
assert.equal(pages.selected, '0');
});
test('selected item', function() {
assert.equal(pages.selectedItem, pages.items[0]);
});
test('selected item is display:block and all others are display:none', function() {
pages.items.forEach(function(p) {
assert.equal(getComputedStyle(p).display, p == pages.selectedItem ? 'block' : 'none');
});
});
});
});
</script>
</body>
</html>

View file

@ -1,34 +0,0 @@
<!doctype 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>
<meta charset="utf-8">
<title>Tests</title>
<script src="../../web-component-tester/browser.js"></script>
</head>
<body>
<script>
WCT.loadSuites([
'basic.html',
'attr-for-selected.html',
'basic.html?dom=shadow',
'attr-for-selected.html?dom=shadow'
]);
</script>
</body>
</html>

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-range-behavior", "name": "iron-range-behavior",
"version": "1.0.5", "version": "1.0.6",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"description": "Provides a behavior for something with a minimum and maximum value", "description": "Provides a behavior for something with a minimum and maximum value",
"authors": "The Polymer Authors", "authors": "The Polymer Authors",
@ -16,7 +16,7 @@
"url": "git://github.com/PolymerElements/iron-range-behavior.git" "url": "git://github.com/PolymerElements/iron-range-behavior.git"
}, },
"dependencies": { "dependencies": {
"polymer": "Polymer/polymer#^1.0.0" "polymer": "Polymer/polymer#^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
@ -27,11 +27,11 @@
}, },
"ignore": [], "ignore": [],
"homepage": "https://github.com/PolymerElements/iron-range-behavior", "homepage": "https://github.com/PolymerElements/iron-range-behavior",
"_release": "1.0.5", "_release": "1.0.6",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "v1.0.5", "tag": "v1.0.6",
"commit": "645ffc6b39ae4fb0efd23b97016a9c4aac777978" "commit": "1317604307387599725b80b63cbd293102ea2db0"
}, },
"_source": "git://github.com/PolymerElements/iron-range-behavior.git", "_source": "git://github.com/PolymerElements/iron-range-behavior.git",
"_target": "^1.0.0", "_target": "^1.0.0",

View file

@ -1,23 +1,23 @@
language: node_js language: node_js
sudo: required sudo: required
before_script: before_script:
- npm install -g bower polylint web-component-tester - npm install -g bower polylint web-component-tester
- bower install - bower install
- polylint - polylint
env: env:
global: global:
- secure: IsCzwFlF0UR02RUnxyo+Gk4cdZMLDOVdy3X0qE7JCe3Lo/SJXjULrJMUZmHrKV9yQTu8bke5lhJdMe/8kuO7chLekQv4AF5bR2m3x7Kg4oJGQJE30WpBWXz6XSYuwnmOINmaNqNZKil692W28LFr97N2+TxEbE64lTd5cGcgJDI= - secure: ioGoTHzroJHO2O9B8y/xB7dsnWY+dArvRF+Dem/0Z8yTJZ/QFCeqFctQXNdj7HIm/y7ZxetVFBnxr+0HbF62qdmVkvfBzD/TaQPeXOHSyrSbR2aAQLeSwRbcUyOmmtk/q0frf1o81i3inoLjrGKieCZq7U8VF/6YyfRDhouU5/Q=
- secure: TmQz2J5KMg/5dOi/7VDMWIxLoHjC5K7yCQAQOkcrq9M8PTBQE2wlCVe4wb6EqfiAofBv5e4heO9B3F0EOWWp2Sasa9ZQIcs0Lg/1SU6wv5Vt9XCONu/ZLI9oqG3SJ8pMMhcexMxmygX0wsytuI6LOI3sMMpOek2cdae1ntPT9IE= - secure: LxoITNXWo1Vh2dOlg0I/KI/wuEaiMpNPRcg8MN6TOwy6UIKPwlpA69YZ4eLNDnuCjndQHL7Cl/TA5njubss4UeXG+L3oQMGNBEcRSHGZGxEyTZpofJp5FFK3Ja9CpaBMB7IsWAwuGPJZXM/6aoyAVipJ1et2Gbbasd5EbQYjRwc=
node_js: stable node_js: stable
addons: addons:
firefox: latest firefox: '46.0'
apt: apt:
sources: sources:
- google-chrome - google-chrome
packages: packages:
- google-chrome-stable - google-chrome-stable
sauce_connect: true sauce_connect: true
script: script:
- xvfb-run wct - xvfb-run wct
- "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi" - if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then wct -s 'default'; fi
dist: trusty dist: trusty

View file

@ -1,6 +1,6 @@
{ {
"name": "iron-range-behavior", "name": "iron-range-behavior",
"version": "1.0.5", "version": "1.0.6",
"license": "http://polymer.github.io/LICENSE.txt", "license": "http://polymer.github.io/LICENSE.txt",
"description": "Provides a behavior for something with a minimum and maximum value", "description": "Provides a behavior for something with a minimum and maximum value",
"authors": "The Polymer Authors", "authors": "The Polymer Authors",
@ -16,7 +16,7 @@
"url": "git://github.com/PolymerElements/iron-range-behavior.git" "url": "git://github.com/PolymerElements/iron-range-behavior.git"
}, },
"dependencies": { "dependencies": {
"polymer": "Polymer/polymer#^1.0.0" "polymer": "Polymer/polymer#^1.1.0"
}, },
"devDependencies": { "devDependencies": {
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0", "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",

View file

@ -28,31 +28,32 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<body unresolved> <body unresolved>
<dom-module id="x-progressbar"> <dom-module id="x-progressbar">
<style>
:host {
display: block;
height: 40px;
background-color: #555;
border-radius: 4px;
padding: 8px;
box-shadow: inset 0px 2px 5px rgba(0, 0, 0, 0.5);
}
.progress {
background-color: #999;
height: 100%;
border-radius: 4px;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.progress-value {
padding: 0 8px;
font-size: 18px;
color: #fff;
}
</style>
<template> <template>
<style>
:host {
display: block;
height: 40px;
background-color: #555;
border-radius: 4px;
padding: 8px;
box-shadow: inset 0px 2px 5px rgba(0, 0, 0, 0.5);
}
.progress {
background-color: #999;
height: 100%;
border-radius: 4px;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
.progress-value {
padding: 0 8px;
font-size: 18px;
color: #fff;
}
</style>
<div class="progress" horizontal center layout style$="{{_computeStyle(ratio)}}"> <div class="progress" horizontal center layout style$="{{_computeStyle(ratio)}}">
<div class="progress-value"><span>{{ratio}}</span>%</div> <div class="progress-value"><span>{{ratio}}</span>%</div>
</div> </div>

View file

@ -1,41 +0,0 @@
{
"name": "iron-resizable-behavior",
"version": "1.0.3",
"license": "http://polymer.github.io/LICENSE.txt",
"description": "Coordinates the flow of resizeable elements",
"private": true,
"main": "iron-resizable-behavior.html",
"authors": [
"The Polymer Authors"
],
"keywords": [
"web-components",
"polymer",
"iron",
"behavior"
],
"repository": {
"type": "git",
"url": "git://github.com/PolymerElements/iron-resizable-behavior.git"
},
"dependencies": {
"polymer": "Polymer/polymer#^1.0.0"
},
"devDependencies": {
"iron-component-page": "polymerelements/iron-component-page#^1.0.0",
"test-fixture": "polymerelements/test-fixture#^1.0.0",
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"ignore": [],
"homepage": "https://github.com/polymerelements/iron-resizable-behavior",
"_release": "1.0.3",
"_resolution": {
"type": "version",
"tag": "v1.0.3",
"commit": "dda1df6aaf452aedf3e52ff0cf69e72439452216"
},
"_source": "git://github.com/polymerelements/iron-resizable-behavior.git",
"_target": "^1.0.0",
"_originalSource": "polymerelements/iron-resizable-behavior"
}

View file

@ -1 +0,0 @@
bower_components

View file

@ -1,25 +0,0 @@
language: node_js
sudo: false
before_script:
- npm install -g bower polylint web-component-tester
- bower install
- polylint
env:
global:
- secure: fs6PoLBRc5z3vn6PWJTkxmGWTHnHVcXx2c7sb7wUlLFLjWUegb93X5gAUhAQvvLvFYT8uMYxT7sNsP15O16CH9OWS8h6ZbgaPp61zRJXvGN+pOtohOloanjzANzsYNFsV3LKEFg8/BULqQAKkRAdsg4hXfMWDzPvCGl1++y5mGc=
- secure: gm+c5R0tFY/GJfKOnfV3J0IADe7QSzo5wZvRq4wZnroK9gBixuI66fq0dhRFtMjkc3dip1h+iqwmRqY8bKoMriCcl8J8ya7mG92sUTz57H7Sr6hxoYDdT4v+JUrQ+iZmTczh77IAQDZrAnxQIeEnBsLezidZD4b+EAYCICvL9WE=
- CXX=g++-4.8
node_js: stable
addons:
firefox: latest
apt:
sources:
- google-chrome
- ubuntu-toolchain-r-test
packages:
- google-chrome-stable
- g++-4.8
sauce_connect: true
script:
- xvfb-run wct
- "if [ \"${TRAVIS_PULL_REQUEST}\" = \"false\" ]; then wct -s 'default'; fi"

View file

@ -1,77 +0,0 @@
<!--
This file is autogenerated based on
https://github.com/PolymerElements/ContributionGuide/blob/master/CONTRIBUTING.md
If you edit that file, it will get updated everywhere else.
If you edit this file, your changes will get overridden :)
You can however override the jsbin link with one that's customized to this
specific element:
jsbin=https://jsbin.com/cagaye/edit?html,output
-->
# Polymer Elements
## Guide for Contributors
Polymer Elements are built in the open, and the Polymer authors eagerly encourage any and all forms of community contribution. When contributing, please follow these guidelines:
### Filing Issues
**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions:
1. **Who will use the feature?** _“As someone filling out a form…”_
2. **When will they use the feature?** _“When I enter an invalid value…”_
3. **What is the users goal?** _“I want to be visually notified that the value needs to be corrected…”_
**If you are filing an issue to report a bug**, please provide:
1. **A clear description of the bug and related expectations.** Consider using the following example template for reporting a bug:
```markdown
The `paper-foo` element causes the page to turn pink when clicked.
## Expected outcome
The page stays the same color.
## Actual outcome
The page turns pink.
## Steps to reproduce
1. Put a `paper-foo` element in the page.
2. Open the page in a web browser.
3. Click the `paper-foo` element.
```
2. **A reduced test case that demonstrates the problem.** If possible, please include the test case as a JSBin. Start with this template to easily import and use relevant Polymer Elements: [https://jsbin.com/cagaye/edit?html,output](https://jsbin.com/cagaye/edit?html,output).
3. **A list of browsers where the problem occurs.** This can be skipped if the problem is the same across all browsers.
### Submitting Pull Requests
**Before creating a pull request**, please ensure that an issue exists for the corresponding change in the pull request that you intend to make. **If an issue does not exist, please create one per the guidelines above**. The goal is to discuss the design and necessity of the proposed change with Polymer authors and community before diving into a pull request.
When submitting pull requests, please provide:
1. **A reference to the corresponding issue** or issues that will be closed by the pull request. Please refer to these issues in the pull request description using the following syntax:
```markdown
(For a single issue)
Fixes #20
(For multiple issues)
Fixes #32, fixes #40
```
2. **A succinct description of the design** used to fix any related issues. For example:
```markdown
This fixes #20 by removing styles that leaked which would cause the page to turn pink whenever `paper-foo` is clicked.
```
3. **At least one test for each bug fixed or feature added** as part of the pull request. Pull requests that fix bugs or add features without accompanying tests will not be considered.
If a proposed change contains multiple commits, please [squash commits](https://www.google.com/url?q=http://blog.steveklabnik.com/posts/2012-11-08-how-to-squash-commits-in-a-github-pull-request) to as few as is necessary to succinctly express the change. A Polymer author can help you squash commits, so dont be afraid to ask us if you need help with that!

View file

@ -1,31 +0,0 @@
{
"name": "iron-resizable-behavior",
"version": "1.0.3",
"license": "http://polymer.github.io/LICENSE.txt",
"description": "Coordinates the flow of resizeable elements",
"private": true,
"main": "iron-resizable-behavior.html",
"authors": [
"The Polymer Authors"
],
"keywords": [
"web-components",
"polymer",
"iron",
"behavior"
],
"repository": {
"type": "git",
"url": "git://github.com/PolymerElements/iron-resizable-behavior.git"
},
"dependencies": {
"polymer": "Polymer/polymer#^1.0.0"
},
"devDependencies": {
"iron-component-page": "polymerelements/iron-component-page#^1.0.0",
"test-fixture": "polymerelements/test-fixture#^1.0.0",
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"ignore": []
}

View file

@ -1,29 +0,0 @@
<!doctype 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-resizable-behavior demo</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="src/x-app.html">
</head>
<body>
<x-app></x-app>
</body>
</html>

View file

@ -1,114 +0,0 @@
<!--
@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="../../iron-resizable-behavior.html">
<dom-module id="x-puck">
<style>
:host {
display: inline-block;
border: 3px solid lightblue;
}
</style>
<template>
<b>I'm a resize-aware, thirdifying puck at (<span>{{x}}</span> x <span>{{y}}</span>).</b>
</template>
</dom-module>
<script>
Polymer({
is: 'x-puck',
behaviors: [
Polymer.IronResizableBehavior
],
properties: {
x: {
type: Number,
value: 0
},
y: {
type: Number,
value: 0
}
},
listeners: {
'iron-resize': '_onIronResize'
},
attached: function() {
this.async(this.notifyResize, 1);
},
get parent() {
if (this.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {
return this.parentNode.host;
}
return this.parentNode;
},
_onIronResize: function() {
var x = this.x = Math.floor(this.parent.offsetWidth / 3);
var y = this.y = Math.floor(this.parent.offsetHeight / 3);
this.translate3d(x + 'px', y + 'px', 0);
}
});
</script>
<dom-module id="x-app">
<style>
:host {
display: block;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
</style>
<template>
<x-puck></x-puck>
</template>
</dom-module>
<script>
Polymer({
is: 'x-app',
behaviors: [
Polymer.IronResizableBehavior
]
});
</script>

View file

@ -1,25 +0,0 @@
<!doctype 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-resizable-behavior</title>
<script src="../webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="../iron-component-page/iron-component-page.html">
</head>
<body>
<iron-component-page></iron-component-page>
</body>
</html>

View file

@ -1,195 +0,0 @@
<!--
@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>
/**
* `IronResizableBehavior` is a behavior that can be used in Polymer elements to
* coordinate the flow of resize events between "resizers" (elements that control the
* size or hidden state of their children) and "resizables" (elements that need to be
* notified when they are resized or un-hidden by their parents in order to take
* action on their new measurements).
*
* Elements that perform measurement should add the `IronResizableBehavior` behavior to
* their element definition and listen for the `iron-resize` event on themselves.
* This event will be fired when they become showing after having been hidden,
* when they are resized explicitly by another resizable, or when the window has been
* resized.
*
* Note, the `iron-resize` event is non-bubbling.
*
* @polymerBehavior Polymer.IronResizableBehavior
* @demo demo/index.html
**/
Polymer.IronResizableBehavior = {
properties: {
/**
* The closest ancestor element that implements `IronResizableBehavior`.
*/
_parentResizable: {
type: Object,
observer: '_parentResizableChanged'
},
/**
* True if this element is currently notifying its descedant elements of
* resize.
*/
_notifyingDescendant: {
type: Boolean,
value: false
}
},
listeners: {
'iron-request-resize-notifications': '_onIronRequestResizeNotifications'
},
created: function() {
// We don't really need property effects on these, and also we want them
// to be created before the `_parentResizable` observer fires:
this._interestedResizables = [];
this._boundNotifyResize = this.notifyResize.bind(this);
},
attached: function() {
this.fire('iron-request-resize-notifications', null, {
node: this,
bubbles: true,
cancelable: true
});
if (!this._parentResizable) {
window.addEventListener('resize', this._boundNotifyResize);
this.notifyResize();
}
},
detached: function() {
if (this._parentResizable) {
this._parentResizable.stopResizeNotificationsFor(this);
} else {
window.removeEventListener('resize', this._boundNotifyResize);
}
this._parentResizable = null;
},
/**
* Can be called to manually notify a resizable and its descendant
* resizables of a resize change.
*/
notifyResize: function() {
if (!this.isAttached) {
return;
}
this._interestedResizables.forEach(function(resizable) {
if (this.resizerShouldNotify(resizable)) {
this._notifyDescendant(resizable);
}
}, this);
this._fireResize();
},
/**
* Used to assign the closest resizable ancestor to this resizable
* if the ancestor detects a request for notifications.
*/
assignParentResizable: function(parentResizable) {
this._parentResizable = parentResizable;
},
/**
* Used to remove a resizable descendant from the list of descendants
* that should be notified of a resize change.
*/
stopResizeNotificationsFor: function(target) {
var index = this._interestedResizables.indexOf(target);
if (index > -1) {
this._interestedResizables.splice(index, 1);
this.unlisten(target, 'iron-resize', '_onDescendantIronResize');
}
},
/**
* This method can be overridden to filter nested elements that should or
* should not be notified by the current element. Return true if an element
* should be notified, or false if it should not be notified.
*
* @param {HTMLElement} element A candidate descendant element that
* implements `IronResizableBehavior`.
* @return {boolean} True if the `element` should be notified of resize.
*/
resizerShouldNotify: function(element) { return true; },
_onDescendantIronResize: function(event) {
if (this._notifyingDescendant) {
event.stopPropagation();
return;
}
// NOTE(cdata): In ShadowDOM, event retargetting makes echoing of the
// otherwise non-bubbling event "just work." We do it manually here for
// the case where Polymer is not using shadow roots for whatever reason:
if (!Polymer.Settings.useShadow) {
this._fireResize();
}
},
_fireResize: function() {
this.fire('iron-resize', null, {
node: this,
bubbles: false
});
},
_onIronRequestResizeNotifications: function(event) {
var target = event.path ? event.path[0] : event.target;
if (target === this) {
return;
}
if (this._interestedResizables.indexOf(target) === -1) {
this._interestedResizables.push(target);
this.listen(target, 'iron-resize', '_onDescendantIronResize');
}
target.assignParentResizable(this);
this._notifyDescendant(target);
event.stopPropagation();
},
_parentResizableChanged: function(parentResizable) {
if (parentResizable) {
window.removeEventListener('resize', this._boundNotifyResize);
}
},
_notifyDescendant: function(descendant) {
// NOTE(cdata): In IE10, attached is fired on children first, so it's
// important not to notify them if the parent is not attached yet (or
// else they will get redundantly notified when the parent attaches).
if (!this.isAttached) {
return;
}
this._notifyingDescendant = true;
descendant.notifyResize();
this._notifyingDescendant = false;
}
};
</script>

View file

@ -1,223 +0,0 @@
<!doctype 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-resizable-behavior tests</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../web-component-tester/browser.js"></script>
<script src="../../test-fixture/test-fixture-mocha.js"></script>
<link rel="import" href="../../test-fixture/test-fixture.html">
<link rel="import" href="../iron-resizable-behavior.html">
<link rel="import" href="test-elements.html">
</head>
<body>
<!--
Notes on Polyfill compatibility in tests:
- Test elements loaded via imports, to ensure load order correctness
w.r.t. Polymer.mixin being availbale
- Resize notifications and asserts are done asynchronously, since
there are timing differences w.r.t. when detached callbacks occur
-->
<test-fixture id="TestElement">
<template>
<test-element></test-element>
</template>
</test-fixture>
<script>
suite('iron-resizable-behavior', function() {
function ListenForResize(el, expectsResize) {
var listener = function(event) {
var target = event.path ? event.path[0] : event.target;
pendingNotifications--;
};
if (expectsResize !== false) {
pendingNotifications++;
}
el.addEventListener('iron-resize', listener);
return {
el: el,
remove: function() {
el.removeEventListener('iron-resize', listener);
}
};
}
function RemoveListeners(listeners) {
listeners.forEach(function(listener) {
listener.remove();
});
}
var pendingNotifications;
var testEl;
setup(function() {
pendingNotifications = 0;
testEl = fixture('TestElement');
});
suite('x-resizer-parent', function() {
test('notify resizables from window', function() {
var listeners = [
ListenForResize(testEl.$.parent),
ListenForResize(testEl.$.child1a),
ListenForResize(testEl.$.child1b),
ListenForResize(testEl.$.shadow1c.$.resizable),
ListenForResize(testEl.$.shadow1d.$.resizable)
];
window.dispatchEvent(new CustomEvent('resize', { bubbles: false }));
expect(pendingNotifications).to.be.eql(0);
RemoveListeners(listeners);
});
test('notify resizables from parent', function() {
var listeners = [
ListenForResize(testEl.$.parent),
ListenForResize(testEl.$.child1a),
ListenForResize(testEl.$.child1b),
ListenForResize(testEl.$.shadow1c.$.resizable),
ListenForResize(testEl.$.shadow1d.$.resizable)
];
testEl.$.parent.notifyResize();
expect(pendingNotifications).to.be.eql(0);
RemoveListeners(listeners);
});
test('detach resizables then notify parent', function() {
sinon.spy(testEl.$.child1a, 'notifyResize');
sinon.spy(testEl.$.shadow1c.$.resizable, 'notifyResize');
sinon.spy(testEl.$.child1b, 'notifyResize');
sinon.spy(testEl.$.shadow1d.$.resizable, 'notifyResize');
var firstElementToRemove = testEl.$.child1a;
var firstElementParent = Polymer.dom(firstElementToRemove).parentNode;
var secondElementToRemove = testEl.$.shadow1c.$.resizable;
var secondElementParent = Polymer.dom(secondElementToRemove).parentNode;
Polymer.dom(firstElementParent).removeChild(firstElementToRemove);
Polymer.dom(secondElementParent).removeChild(secondElementToRemove);
Polymer.dom.flush();
testEl.$.parent.notifyResize();
expect(testEl.$.child1a.notifyResize.callCount).to.be.equal(0);
expect(testEl.$.shadow1c.$.resizable.notifyResize.callCount).to.be.equal(0);
expect(testEl.$.child1b.notifyResize.callCount).to.be.equal(1);
expect(testEl.$.shadow1d.$.resizable.notifyResize.callCount).to.be.equal(1);
});
test('detach parent then notify window', function(done) {
var listeners = [
ListenForResize(testEl.$.parent, false),
ListenForResize(testEl.$.child1a, false),
ListenForResize(testEl.$.child1b, false),
ListenForResize(testEl.$.shadow1c.$.resizable, false),
ListenForResize(testEl.$.shadow1d.$.resizable, false)
];
var el = Polymer.dom(testEl.root).querySelector('#parent');
el.parentNode.removeChild(el);
setTimeout(function() {
try {
window.dispatchEvent(new CustomEvent('resize', { bubbles: false }));
expect(pendingNotifications).to.be.eql(0);
RemoveListeners(listeners);
done();
} catch (e) {
done(e);
}
}, 0);
});
});
suite('x-resizer-parent-filtered', function() {
test('notify resizables from window', function() {
var listeners = [
ListenForResize(testEl.$.parentFiltered),
ListenForResize(testEl.$.child2a),
ListenForResize(testEl.$.child2b, false),
ListenForResize(testEl.$.shadow2c.$.resizable, false),
ListenForResize(testEl.$.shadow2d.$.resizable, false)
];
testEl.$.parentFiltered.active = testEl.$.child2a;
window.dispatchEvent(new CustomEvent('resize', { bubbles: false }));
expect(pendingNotifications).to.be.eql(0);
RemoveListeners(listeners);
});
test('notify resizables from parent', function() {
var listeners = [
ListenForResize(testEl.$.parentFiltered),
ListenForResize(testEl.$.child2a),
ListenForResize(testEl.$.child2b, false),
ListenForResize(testEl.$.shadow2c.$.resizable, false),
ListenForResize(testEl.$.shadow2d.$.resizable, false)
];
testEl.$.parentFiltered.active = testEl.$.child2a;
testEl.$.parentFiltered.notifyResize();
expect(pendingNotifications).to.be.eql(0);
RemoveListeners(listeners);
});
test('detach resizables then notify parent', function() {
var listeners = [
ListenForResize(testEl.$.parentFiltered),
ListenForResize(testEl.$.child2a, false),
ListenForResize(testEl.$.child2b, false),
ListenForResize(testEl.$.shadow2c.$.resizable, false),
ListenForResize(testEl.$.shadow2d.$.resizable)
];
var el = Polymer.dom(testEl.root).querySelector('#child2a');
el.parentNode.removeChild(el);
el = Polymer.dom(testEl.root).querySelector('#shadow2c');
el.parentNode.removeChild(el);
testEl.$.parentFiltered.active = testEl.$.shadow2d.$.resizable;
testEl.$.parentFiltered.notifyResize();
expect(pendingNotifications).to.be.eql(0);
RemoveListeners(listeners);
});
});
});
</script>
</body>
</html>

View file

@ -1,29 +0,0 @@
<!DOCTYPE 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>
<meta charset="utf-8">
<title>Tests</title>
<script src="../../web-component-tester/browser.js"></script>
</head>
<body>
<script>
WCT.loadSuites([
'basic.html',
'iron-resizable-behavior.html',
'basic.html?dom=shadow',
'iron-resizable-behavior.html?dom=shadow'
]);
</script>
</body></html>

View file

@ -1,88 +0,0 @@
<!doctype 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-resizable-behavior tests</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../web-component-tester/browser.js"></script>
<script src="../../test-fixture/test-fixture-mocha.js"></script>
<link rel="import" href="../../test-fixture/test-fixture.html">
<link rel="import" href="../iron-resizable-behavior.html">
<link rel="import" href="test-elements.html">
</head>
<body>
<test-fixture id="ResizableAndShadowBoundaries">
<template>
<x-light-resizable></x-light-resizable>
</template>
</test-fixture>
<script>
suite('iron-resizable-behavior', function() {
var resizable;
suite('events across shadow boundaries', function() {
setup(function() {
resizable = fixture('ResizableAndShadowBoundaries');
});
suite('ancestor\'s iron-resize', function() {
test('only fires once for a notifying shadow descendent', function() {
resizable.$.childResizable1.notifyResize();
expect(resizable.ironResizeCount).to.be.equal(2);
});
test('only fires once when notifying descendent observables', function() {
resizable.notifyResize();
expect(resizable.ironResizeCount).to.be.equal(2);
});
});
suite('descendant\'s iron-resize', function() {
test('only fires once for a notifying shadow root', function() {
resizable.notifyResize();
expect(resizable.$.childResizable1.ironResizeCount).to.be.equal(2);
expect(resizable.$.childResizable2.ironResizeCount).to.be.equal(2);
});
test('only fires once for a notifying descendent observable', function() {
resizable.$.childResizable1.notifyResize();
expect(resizable.$.childResizable1.ironResizeCount).to.be.equal(2);
});
});
suite('window\'s resize', function() {
test('causes all iron-resize events to fire once', function() {
window.dispatchEvent(new CustomEvent('resize'));
Polymer.dom.flush();
expect(resizable.ironResizeCount).to.be.equal(2);
expect(resizable.$.childResizable1.ironResizeCount).to.be.equal(2);
expect(resizable.$.childResizable2.ironResizeCount).to.be.equal(2);
});
});
});
});
</script>
</body>
</html>

View file

@ -1,193 +0,0 @@
<!--
@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="../iron-resizable-behavior.html">
<script>
Polymer({
is: 'x-resizer-parent',
behaviors: [
Polymer.IronResizableBehavior
],
listeners: {
'core-resize': 'resizeHandler'
},
resizeHandler: function() {
}
});
</script>
<script>
Polymer({
is: 'x-resizer-parent-filtered',
active: null,
behaviors: [
Polymer.IronResizableBehavior
],
listeners: {
'core-resize': 'resizeHandler'
},
resizeHandler: function() {
},
resizerShouldNotify: function(el) {
return (el == this.active);
}
});
</script>
<script>
Polymer({
is: 'x-resizable',
behaviors: [
Polymer.IronResizableBehavior
],
listeners: {
'core-resize': 'resizeHandler'
},
resizeHandler: function() {
}
});
</script>
<dom-module id="x-resizable-in-shadow">
<template>
<div>
<x-resizable id="resizable"></x-resizable>
</div>
</template>
</dom-module>
<script>
Polymer({
is: 'x-resizable-in-shadow'
});
</script>
<dom-module id='test-element'>
<template>
<!-- Normal resizable parent with child resizables -->
<x-resizer-parent id="parent">
<x-resizable id="child1a"></x-resizable>
<div>
<x-resizable id="child1b"></x-resizable>
</div>
<x-resizable-in-shadow id="shadow1c"></x-resizable-in-shadow>
<div>
<x-resizable-in-shadow id="shadow1d"></x-resizable-in-shadow>
</div>
</x-resizer-parent>
<!-- Resizable parent using resizerShouldNotify, with child resizables -->
<x-resizer-parent-filtered id="parentFiltered">
<x-resizable id="child2a"></x-resizable>
<div>
<x-resizable id="child2b"></x-resizable>
</div>
<x-resizable-in-shadow id="shadow2c"></x-resizable-in-shadow>
<div>
<x-resizable-in-shadow id="shadow2d"></x-resizable-in-shadow>
</div>
</x-resizer-parent-filtered>
</template>
</dom-module>
<script>
Polymer({
is: 'test-element'
});
</script>
<script>
Polymer.ObserveIronResizeBehavior = {
properties: {
ironResizeCount: {
type: Number,
value: 0
}
},
listeners: {
'iron-resize': '_incrementIronResizeCount'
},
_incrementIronResizeCount: function() {
this.ironResizeCount++;
}
};
</script>
<dom-module id="x-shadow-resizable">
<template>
<div></div>
</template>
</dom-module>
<script>
Polymer({
is: 'x-shadow-resizable',
behaviors: [
Polymer.IronResizableBehavior,
Polymer.ObserveIronResizeBehavior
]
});
</script>
<dom-module id="x-light-resizable">
<template>
<x-shadow-resizable id="childResizable1"></x-shadow-resizable>
<x-shadow-resizable id="childResizable2"></x-shadow-resizable>
</template>
</dom-module>
<script>
Polymer({
is: 'x-light-resizable',
behaviors: [
Polymer.IronResizableBehavior,
Polymer.ObserveIronResizeBehavior
]
});
</script>

View file

@ -1,40 +0,0 @@
{
"name": "iron-scroll-target-behavior",
"version": "1.0.6",
"description": "Allows to define a scroller target",
"private": true,
"license": "http://polymer.github.io/LICENSE.txt",
"main": "iron-scroll-target-behavior.html",
"authors": [
"The Polymer Authors"
],
"keywords": [
"web-components",
"polymer",
"scroll"
],
"repository": {
"type": "git",
"url": "git://github.com/PolymerElements/iron-scroll-target-behavior.git"
},
"homepage": "https://github.com/PolymerElements/iron-scroll-target-behavior",
"ignore": [],
"dependencies": {
"polymer": "Polymer/polymer#^1.0.0"
},
"devDependencies": {
"iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
"iron-test-helpers": "polymerelements/iron-test-helpers#^1.0.0",
"web-component-tester": "^4.0.0",
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
},
"_release": "1.0.6",
"_resolution": {
"type": "version",
"tag": "v1.0.6",
"commit": "33d5864e0557212eb530dbac280bfc4b4d923880"
},
"_source": "git://github.com/PolymerElements/iron-scroll-target-behavior.git",
"_target": "^1.0.0",
"_originalSource": "PolymerElements/iron-scroll-target-behavior"
}

View file

@ -1,2 +0,0 @@
bower_components

Some files were not shown because too many files have changed in this diff Show more