diff --git a/dashboard-ui/autoorganizelog.html b/dashboard-ui/autoorganizelog.html index 07b1246478..3639141499 100644 --- a/dashboard-ui/autoorganizelog.html +++ b/dashboard-ui/autoorganizelog.html @@ -12,6 +12,7 @@
${TabActivityLog} ${TabTV} + ${TabSmartMatches}
diff --git a/dashboard-ui/autoorganizetv.html b/dashboard-ui/autoorganizetv.html index 8994b352cc..57860df80d 100644 --- a/dashboard-ui/autoorganizetv.html +++ b/dashboard-ui/autoorganizetv.html @@ -11,6 +11,7 @@
${TabActivityLog} ${TabTV} + ${TabSmartMatches}
@@ -128,6 +129,11 @@ %e_n ${ValueEpisodeNameUnderscore} + + ${FileExtension} + %ext + mkv + @@ -171,4 +177,4 @@
- + \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-apiclient/.bower.json b/dashboard-ui/bower_components/emby-apiclient/.bower.json index f80b550020..4191171006 100644 --- a/dashboard-ui/bower_components/emby-apiclient/.bower.json +++ b/dashboard-ui/bower_components/emby-apiclient/.bower.json @@ -16,12 +16,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.0.37", - "_release": "1.0.37", + "version": "1.0.41", + "_release": "1.0.41", "_resolution": { "type": "version", - "tag": "1.0.37", - "commit": "b383fff379b92417525a3295ebbe3b7db9e0b1a4" + "tag": "1.0.41", + "commit": "19bdc440adac07ea1a5491abaec89cbdb1c99e17" }, "_source": "git://github.com/MediaBrowser/Emby.ApiClient.Javascript.git", "_target": "~1.0.3", diff --git a/dashboard-ui/bower_components/emby-apiclient/apiclient.js b/dashboard-ui/bower_components/emby-apiclient/apiclient.js index 75d4fc5a25..dac60ab80e 100644 --- a/dashboard-ui/bower_components/emby-apiclient/apiclient.js +++ b/dashboard-ui/bower_components/emby-apiclient/apiclient.js @@ -3444,5 +3444,57 @@ contentType: "application/json" }); }; + + self.createPin = function () { + + return self.ajax({ + type: "POST", + url: self.getUrl('Auth/Pin'), + data: { + deviceId: self.deviceId(), + appName: self.appName() + }, + dataType: "json" + }); + }; + + self.getPinStatus = function (pinInfo) { + + var queryString = { + deviceId: pinInfo.DeviceId, + pin: pinInfo.Pin + }; + + return self.ajax({ + type: 'GET', + url: self.getUrl('Auth/Pin', queryString), + dataType: 'json' + }); + }; + + function exchangePin(pinInfo) { + + return self.ajax({ + type: 'POST', + url: self.getUrl('Auth/Pin/Exchange'), + data: { + deviceId: pinInfo.DeviceId, + pin: pinInfo.Pin + }, + dataType: 'json' + }); + } + + self.exchangePin = function (pinInfo) { + + return exchangePin(pinInfo).then(function (result) { + + if (self.onAuthenticated) { + self.onAuthenticated(self, result); + } + + return result; + }); + }; }; }); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js index 0ae7ad43ba..bf130e3208 100644 --- a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js +++ b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js @@ -5,7 +5,8 @@ ServerSelection: 1, ServerSignIn: 2, SignedIn: 3, - ConnectSignIn: 4 + ConnectSignIn: 4, + ServerUpdateNeeded: 5 }; var ConnectionMode = { @@ -214,6 +215,16 @@ return connectUser; }; + var minServerVersion = '3.0.5724'; + self.minServerVersion = function (val) { + + if (val) { + minServerVersion = val; + } + + return minServerVersion; + }; + self.appVersion = function () { return appVersion; }; @@ -1014,6 +1025,30 @@ return (str1 || '').toLowerCase() == (str2 || '').toLowerCase(); } + function compareVersions(a, b) { + + // -1 a is smaller + // 1 a is larger + // 0 equal + a = a.split('.'); + b = b.split('.'); + + for (var i = 0, length = Math.max(a.length, b.length) ; i < length; i++) { + var aVal = parseInt(a[i] || '0'); + var bVal = parseInt(b[i] || '0'); + + if (aVal < bVal) { + return -1; + } + + if (aVal > bVal) { + return 1; + } + } + + return 0; + } + function testNextConnectionMode(tests, index, server, wakeOnLanSendTime, options, resolve) { if (index >= tests.length) { @@ -1052,8 +1087,18 @@ tryConnect(address, timeout).then(function (result) { - console.log('calling onSuccessfulConnection with connection mode ' + mode + ' with server ' + server.Name); - onSuccessfulConnection(server, result, mode, options, resolve); + if (compareVersions(self.minServerVersion(), result.Version) == 1) { + + console.log('minServerVersion requirement not met. Server version: ' + result.Version); + resolve({ + State: ConnectionState.ServerUpdateNeeded, + Servers: [server] + }); + + } else { + console.log('calling onSuccessfulConnection with connection mode ' + mode + ' with server ' + server.Name); + onSuccessfulConnection(server, result, mode, options, resolve); + } }, function () { diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 313dceeb83..7093e7552d 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -15,12 +15,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.0.83", - "_release": "1.0.83", + "version": "1.0.90", + "_release": "1.0.90", "_resolution": { "type": "version", - "tag": "1.0.83", - "commit": "2d07f1da3ed23cf12b40ed2639e42dd737eb83fd" + "tag": "1.0.90", + "commit": "2722d205b177e50517bb46b4d416b8ea2e8e2e3b" }, "_source": "git://github.com/MediaBrowser/emby-webcomponents.git", "_target": "~1.0.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css new file mode 100644 index 0000000000..c394ad74c4 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css @@ -0,0 +1,54 @@ +.actionSheet { + display: flex; + justify-content: center; +} + + .actionSheet.centered .actionSheetContent { + text-align: center; + align-items: center; + } + +.actionSheetContent { + margin: 0 !important; + padding: 1em 1em !important; + flex-direction: column; + display: flex; + justify-content: center; + height: 100%; +} + +.actionSheetMenuItem { + padding: .4em .5em; + margin: 0; + text-transform: none; + text-align: inherit; + display: flex; + justify-content: center; + font-weight: inherit; +} + +.actionSheetItemIcon { + margin-right: 1.5em !important; +} + +.actionSheetScroller { + max-height: 60%; + overflow-x: hidden; + overflow-y: auto; + /* Override default style being applied by polymer */ + margin-bottom: 0 !important; + scroll-behavior: smooth; +} + + .actionSheetScroller::-webkit-scrollbar, .actionSheetScroller::-webkit-scrollbar { + width: 0 !important; + display: none; + } + +h1.actionSheetTitle { + margin: .5em 0 .7em !important; +} + +h2.actionSheetTitle { + margin: .25em 0 .55em !important; +} diff --git a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js new file mode 100644 index 0000000000..4395a05650 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js @@ -0,0 +1,196 @@ +define(['paperdialoghelper', 'layoutManager', 'paper-button', 'css!./actionsheet'], function (paperdialoghelper, layoutManager) { + + function parentWithClass(elem, className) { + + while (!elem.classList || !elem.classList.contains(className)) { + elem = elem.parentNode; + + if (!elem) { + return null; + } + } + + return elem; + } + + function getPosition(options) { + + var windowHeight = $(window).height(); + + if (windowHeight < 540) { + return null; + } + + var pos = $(options.positionTo).offset(); + + pos.top += $(options.positionTo).innerHeight() / 2; + pos.left += $(options.positionTo).innerWidth() / 2; + + // Account for margins + pos.top -= 24; + pos.left -= 24; + + // Account for popup size - we can't predict this yet so just estimate + pos.top -= (55 * options.items.length) / 2; + pos.left -= 80; + + // Account for scroll position + pos.top -= $(window).scrollTop(); + pos.left -= $(window).scrollLeft(); + + // Avoid showing too close to the bottom + pos.top = Math.min(pos.top, windowHeight - 300); + pos.left = Math.min(pos.left, $(window).width() - 300); + + // Do some boundary checking + pos.top = Math.max(pos.top, 0); + pos.left = Math.max(pos.left, 0); + + return pos; + } + + function show(options) { + + // items + // positionTo + // showCancel + // title + var dialogOptions = { + removeOnClose: true, + enableHistory: options.enableHistory + }; + + var backButton = false; + + if (layoutManager.tv) { + dialogOptions.size = 'fullscreen'; + backButton = true; + dialogOptions.autoFocus = true; + } else { + + dialogOptions.modal = false; + dialogOptions.entryAnimationDuration = 160; + dialogOptions.exitAnimationDuration = 200; + dialogOptions.autoFocus = false; + } + + var dlg = paperdialoghelper.createDialog(dialogOptions); + var pos = options.positionTo ? getPosition(options) : null; + + dlg.classList.add('actionSheet'); + + var html = ''; + html += '
'; + + if (options.title) { + + if (layoutManager.tv) { + html += '

'; + html += options.title; + html += '

'; + } else { + html += '

'; + html += options.title; + html += '

'; + } + } + + html += '
'; + + var itemsWithIcons = options.items.filter(function (o) { + return o.ironIcon; + }); + + // If any items have an icon, give them all an icon just to make sure they're all lined up evenly + var renderIcon = itemsWithIcons.length; + var center = options.title && (!itemsWithIcons.length); + + if (center) { + dlg.classList.add('centered'); + } + + var enablePaperMenu = !layoutManager.tv; + enablePaperMenu = false; + var itemTagName = 'paper-button'; + + if (enablePaperMenu) { + html += ''; + itemTagName = 'paper-menu-item'; + } + + for (var i = 0, length = options.items.length; i < length; i++) { + + var option = options.items[i]; + + var autoFocus = option.selected ? ' autoFocus' : ''; + html += '<' + itemTagName + autoFocus + ' noink class="actionSheetMenuItem" data-id="' + option.id + '" style="display:block;">'; + + if (option.ironIcon) { + html += ''; + } + else if (renderIcon && !center) { + html += ''; + } + html += '' + option.name + ''; + html += ''; + } + + if (enablePaperMenu) { + html += ''; + } + + if (options.showCancel) { + html += '
'; + html += '' + Globalize.translate('core#ButtonCancel') + ''; + html += '
'; + } + html += '
'; + + dlg.innerHTML = html; + + if (pos) { + dlg.style.position = 'fixed'; + dlg.style.left = pos.left + 'px'; + dlg.style.top = pos.top + 'px'; + } + + document.body.appendChild(dlg); + + // Seeing an issue in some non-chrome browsers where this is requiring a double click + //var eventName = browser.firefox ? 'mousedown' : 'click'; + var eventName = 'click'; + + return new Promise(function (resolve, reject) { + + dlg.addEventListener(eventName, function (e) { + + var actionSheetMenuItem = parentWithClass(e.target, 'actionSheetMenuItem'); + + if (actionSheetMenuItem) { + + var selectedId = actionSheetMenuItem.getAttribute('data-id'); + + paperdialoghelper.close(dlg); + + // Add a delay here to allow the click animation to finish, for nice effect + setTimeout(function () { + + if (options.callback) { + options.callback(selectedId); + } + + resolve(selectedId); + + }, 100); + } + + }); + + paperdialoghelper.open(dlg); + }); + } + + return { + show: show + }; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js index 8eee7ee7c1..4845a5280a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -162,6 +162,15 @@ define(['browser'], function (browser) { Container: audioFormat == 'webma' ? 'webma,webm' : audioFormat, Type: 'Audio' }); + + // aac also appears in the m4a container + if (audioFormat == 'aac') { + profile.DirectPlayProfiles.push({ + Container: 'm4a', + AudioCodec: audioFormat, + Type: 'Audio' + }); + } }); if (canPlayWebm) { @@ -198,7 +207,8 @@ define(['browser'], function (browser) { Type: 'Video', AudioCodec: videoAudioCodecs.join(','), VideoCodec: 'h264', - Context: 'Streaming' + Context: 'Streaming', + CopyTimestamps: true }); } diff --git a/dashboard-ui/bower_components/emby-webcomponents/loading/loading.css b/dashboard-ui/bower_components/emby-webcomponents/loading/loading.css index ca42d00614..e9638958ee 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/loading/loading.css +++ b/dashboard-ui/bower_components/emby-webcomponents/loading/loading.css @@ -1,8 +1,8 @@ .docspinner { margin-top: -4vh; margin-left: -4vh; - width: 8vh; - height: 8vh; + width: 7vh; + height: 7vh; position: fixed; top: 50%; left: 50%; diff --git a/dashboard-ui/bower_components/emby-webcomponents/paperdialoghelper/paperdialoghelper.js b/dashboard-ui/bower_components/emby-webcomponents/paperdialoghelper/paperdialoghelper.js index 8835931352..5f63113dd4 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/paperdialoghelper/paperdialoghelper.js +++ b/dashboard-ui/bower_components/emby-webcomponents/paperdialoghelper/paperdialoghelper.js @@ -136,7 +136,7 @@ // but not needed here since this is already on top of an existing dialog // but skip it in IE because it's causing the entire browser to hang // Also have to disable for firefox because it's causing select elements to not be clickable - if (!browser.msie && !browser.firefox && options.modal !== false) { + if (options.modal !== false) { dlg.setAttribute('modal', 'modal'); } diff --git a/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.js b/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.js index 25fec50fd7..872ed0c3c3 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.js +++ b/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.js @@ -38,7 +38,9 @@ define(['paperdialoghelper', 'layoutManager', 'globalize', 'dialogText', 'html!. html += ''; } - html += ''; + html += ''; + + html += ''; if (options.description) { html += '
'; @@ -46,7 +48,6 @@ define(['paperdialoghelper', 'layoutManager', 'globalize', 'dialogText', 'html!. html += '
'; } - // TODO: An actual form element should probably be added html += '
'; if (raisedButtons) { html += '' + globalize.translate(dialogText.buttonOk) + ''; @@ -56,25 +57,32 @@ define(['paperdialoghelper', 'layoutManager', 'globalize', 'dialogText', 'html!. html += '' + globalize.translate(dialogText.buttonCancel) + ''; html += '
'; } + html += ''; html += ''; dlg.innerHTML = html; - if (options.text) { - dlg.querySelector('.txtPromptValue').value = options.text; - } - - if (options.label) { - dlg.querySelector('.txtPromptValue').label = options.label; - } - document.body.appendChild(dlg); - dlg.querySelector('.btnSubmit').addEventListener('click', function (e) { + dlg.querySelector('form').addEventListener('submit', function (e) { submitValue = dlg.querySelector('.txtPromptValue').value; paperdialoghelper.close(dlg); + e.preventDefault(); + return false; + }); + + dlg.querySelector('.btnSubmit').addEventListener('click', function (e) { + + // Do a fake form submit this the button isn't a real submit button + var fakeSubmit = document.createElement('input'); + fakeSubmit.setAttribute('type', 'submit'); + fakeSubmit.style.display = 'none'; + var form = dlg.querySelector('form'); + form.appendChild(fakeSubmit); + fakeSubmit.click(); + form.removeChild(fakeSubmit); }); dlg.querySelector('.btnPromptExit').addEventListener('click', function (e) { diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/.bower.json b/dashboard-ui/bower_components/iron-autogrow-textarea/.bower.json index 81113ef022..0dbb4c1292 100644 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/.bower.json +++ b/dashboard-ui/bower_components/iron-autogrow-textarea/.bower.json @@ -1,6 +1,6 @@ { "name": "iron-autogrow-textarea", - "version": "1.0.10", + "version": "1.0.11", "description": "A textarea element that automatically grows with input", "authors": [ "The Polymer Authors" @@ -29,17 +29,18 @@ }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "polymer/web-component-tester#^3.4.0", + "web-component-tester": "^4.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, - "_release": "1.0.10", + "_release": "1.0.11", "_resolution": { "type": "version", - "tag": "v1.0.10", - "commit": "1ba4f97e250dc14e9638d95be582dd62b9083736" + "tag": "v1.0.11", + "commit": "8fe629c9fecb14b76319ab4fbeef7f0237d93004" }, "_source": "git://github.com/PolymerElements/iron-autogrow-textarea.git", "_target": "^1.0.0", diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/.travis.yml b/dashboard-ui/bower_components/iron-autogrow-textarea/.travis.yml index 1929c8ae4c..771bf35d1e 100644 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/.travis.yml +++ b/dashboard-ui/bower_components/iron-autogrow-textarea/.travis.yml @@ -1,22 +1,25 @@ language: node_js sudo: false before_script: - - npm install web-component-tester - - npm install bower - - 'export PATH=$PWD/node_modules/.bin:$PATH' + - npm install -g bower polylint web-component-tester - bower install + - polylint env: global: - secure: lIogwlz5kFUKYy1OWASXxQgZE4YTyjUY0QcEgnqbv6wQ0GX8wRMgbI3zhbAv+xXU5ieYXg6Bd47ZFZZ1kVEWzQynAdd2od14Eu1vfN60/yc/llz62VTYuFsPt8r+Tgw41Iz8plwejK4a+V26Da5tXW+soJQOJKvE/MOiPzKi2m0= - secure: cj3uSCQwLY6pyP3oTdGFjJoTRjv3G1lSe73fMd6i15XnMMxM4DVarfDtK+a0dPPxDY8BBhfr4sFClZuWX71bAHQuqUA84oigbeWt2xfl8d3HUuvr9aEnQxAGe2eQE7atpYJPC9M447sw48QKiUVgQo33DeJ1BGj6SBqkw0BJXO8= -node_js: 4 + - CXX=g++-4.8 +node_js: stable addons: - firefox: '42.0' + 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" diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/CONTRIBUTING.md b/dashboard-ui/bower_components/iron-autogrow-textarea/CONTRIBUTING.md index 7b10141565..f147978a3e 100644 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/CONTRIBUTING.md +++ b/dashboard-ui/bower_components/iron-autogrow-textarea/CONTRIBUTING.md @@ -5,6 +5,11 @@ 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 @@ -41,7 +46,7 @@ Polymer Elements are built in the open, and the Polymer authors eagerly encourag 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. @@ -51,14 +56,14 @@ Polymer Elements are built in the open, and the Polymer authors eagerly encourag 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 (For a single issue) Fixes #20 (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: diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/bower.json b/dashboard-ui/bower_components/iron-autogrow-textarea/bower.json index 61a9c49ac2..b775b23443 100644 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/bower.json +++ b/dashboard-ui/bower_components/iron-autogrow-textarea/bower.json @@ -1,6 +1,6 @@ { "name": "iron-autogrow-textarea", - "version": "1.0.10", + "version": "1.0.11", "description": "A textarea element that automatically grows with input", "authors": [ "The Polymer Authors" @@ -29,9 +29,10 @@ }, "devDependencies": { "iron-component-page": "PolymerElements/iron-component-page#^1.0.0", + "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0", "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0", "test-fixture": "PolymerElements/test-fixture#^1.0.0", - "web-component-tester": "polymer/web-component-tester#^3.4.0", + "web-component-tester": "^4.0.0", "paper-styles": "PolymerElements/paper-styles#^1.0.0", "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" } diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/demo/index.html b/dashboard-ui/bower_components/iron-autogrow-textarea/demo/index.html index 0c7fdc052e..525d90a43e 100644 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/demo/index.html +++ b/dashboard-ui/bower_components/iron-autogrow-textarea/demo/index.html @@ -18,46 +18,80 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN iron-autogrow-textarea demo + + - + + - - +
-

Updating the value imperatively

- +

Example of updating the value imperatively

+ +
+
- - diff --git a/dashboard-ui/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html b/dashboard-ui/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html index e255d79904..8ec9942772 100644 --- a/dashboard-ui/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html +++ b/dashboard-ui/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html @@ -33,6 +33,7 @@ The following custom properties and mixins are available for styling: Custom property | Description | Default ----------------|-------------|---------- `--iron-autogrow-textarea` | Mixin applied to the textarea | `{}` +`--iron-autogrow-textarea-placeholder` | Mixin applied to the textarea placeholder | `{}` @group Iron Elements @hero hero.svg @@ -50,6 +51,7 @@ Custom property | Description | Default padding: 2px; -moz-appearance: textarea; -webkit-appearance: textarea; + overflow: hidden; } .mirror-text { @@ -82,6 +84,21 @@ Custom property | Description | Default box-shadow: none; } + textarea::-webkit-input-placeholder { + @apply(--iron-autogrow-textarea-placeholder); + } + + textarea:-moz-placeholder { + @apply(--iron-autogrow-textarea-placeholder); + } + + textarea::-moz-placeholder { + @apply(--iron-autogrow-textarea-placeholder); + } + + textarea:-ms-input-placeholder { + @apply(--iron-autogrow-textarea-placeholder); + } - - - -