UNPKG

api-console-assets

Version:

This repo only exists to publish api console components to npm

197 lines (150 loc) 4.97 kB
<!-- @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-flex-layout/iron-flex-layout.html"> <link rel="import" href="../../../iron-selector/iron-selector.html"> <link rel="import" href="device-view.html"> <!-- Displays a page on different device layouts. <device-layout-viewer device="all" src="https://www.polymer-project.org/"></device-layout-viewer> --> <dom-module id="device-layout-viewer"> <template> <style> :host { @apply(--layout-horizontal); overflow: hidden; } .canvas { @apply(--layout-flex); @apply(--layout-horizontal); @apply(--layout-center-center); position: relative; overflow: auto; } .canvas[device=laptop] { overflow: hidden; } #views:not([device=all]) { @apply(--layout-horizontal); @apply(--layout-center-center); margin: auto 0; } #views:not([device=all]) device-view:not(.iron-selected) { display: none; } #views[device=all] { display: block; width: 1000px; height: 600px; margin-left: 32px; } #views[device=all] device-view { position: absolute; -webkit-transform-origin: left top; transform-origin: left top; } #views:not([device=all]) device-view[device=laptop] { @apply(--layout-fit); width: auto; height: auto; } #views[device=all] device-view[device=laptop] { -webkit-transform: translate3d(0px, 40px, 0) scale(0.5); transform: translate3d(0px, 40px, 0) scale(0.5); } #views[device=all] device-view[device=tablet] { -webkit-transform: translate3d(380px, 130px, 0) scale(0.5); transform: translate3d(380px, 130px, 0) scale(0.5); } #views[device=all] device-view[device=phone] { -webkit-transform: translate3d(800px, 110px, 0) scale(0.5); transform: translate3d(800px, 110px, 0) scale(0.5); } @media (max-width: 1024px) { #views:not([device=all]):not([device=laptop]) { width: 1400px; height: 800px; -webkit-transform: scale(0.5); transform: scale(0.5); @apply(--layout-flex-none); } #views[device=all] { width: 500px; height: 300px; margin-left: -64px; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scale(0.6); transform: scale(0.6); } } @media (max-width: 600px) { #views:not([device=all]):not([device=laptop]) { width: 1400px; height: 800px; -webkit-transform: scale(0.5); transform: scale(0.5); @apply(--layout-flex-none); } #views[device=all] { width: 250px; height: 150px; margin-left: -80px; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scale(0.35); transform: scale(0.35); } } </style> <div class="canvas" device$="{{device}}"> <iron-selector id="views" selected="{{device}}" attr-for-selected="device" selected-item="{{selectedView}}" device$="{{device}}" activate-event=""> <device-view device="laptop" src="{{src}}"></device-view> <device-view device="tablet" src="{{src}}" landscape></device-view> <device-view device="phone" src="{{src}}"></device-view> </iron-selector> </div> </template> <script> Polymer({ is: 'device-layout-viewer', properties: { /** * The url of the page to display. */ src: String, /** * The device layout to show. Possible values are `phone`, `tablet`, `laptop` and `all`. */ device: { type: String, value: 'all', observer: '_deviceChanged' } }, _defaultLandscapes: { laptop: false, tablet: true, phone: false }, toggleLandscape: function() { this.selectedView && this.selectedView.toggleLandscape(); }, _deviceChanged: function(device) { if (device === 'all') { this.$.views.items.forEach(function(view) { view.landscape = this._defaultLandscapes[view.device]; }, this); } } }); </script> </dom-module>