Polymer 1.x: neon-animated-pages not working inside paper-tabs and paper-dialog

107 views Asked by At
Text falls outside dialog

Text falls outside dialog

Here is the plunk

I want to implement neon-animated-pages controlled by paper-tabs inside a paper-dialog.

I expect to see the content of tab-a and tab-b contained inside the paper-dialog but instead the content spills over to outside the paper-dialog.

What am I missing?

http://plnkr.co/edit/bPUclBOpghNFVmKMbOzc?p=preview
<link href="tab-a.html" rel="import">
<link href="tab-b.html" rel="import">

<base href="https://polygit.org/polymer+:master/iron-data-table+Saulis+:master/components/">
<link rel="import" href="polymer/polymer.html">
<script src="webcomponentsjs/webcomponents-lite.min.js"></script>

<link rel="import" href="paper-dialog/paper-dialog.html">
<link rel="import" href="paper-tabs/paper-tabs.html">
<link rel="import" href="iron-pages/iron-pages.html">
<link rel="import" href="neon-animation/neon-animation.html">
<link rel="import" href="neon-animated-pages/neon-animated-pages.html">

<dom-module id="content-el">
    <template>
        <style></style>

    <button on-tap="open">Open Dialog</button>

    <paper-dialog id="dialog" modal>
      <h2>Dialog Title</h2>

      <paper-tabs selected="{{selected}}">
        <paper-tab>Tab 1</paper-tab>
        <paper-tab>Tab 2</paper-tab>
      </paper-tabs>

      <neon-animated-pages selected="{{selected}}">
        <tab-a entry-animation="slide-from-left-animation"
               exit-animation="slide-left-animation"
        ></tab-a>
        <tab-b entry-animation="slide-from-right-animation"
               exit-animation="slide-right-animation"
        ></tab-b>
      </neon-animated-pages>

    </paper-dialog>

    </template>

  <script>
    (function() {
      'use strict';
      Polymer({
        is: 'content-el',

                behaviors: [
                    Polymer.NeonAnimationRunnerBehavior,
                    Polymer.NeonAnimatableBehavior,
                    Polymer.IronResizableBehavior,
                ],

        properties: {
          selected: {
            type: Number,
            value: 0
          }
        },
        open: function() {
          this.$.dialog.open();
        },
      });
        })();
  </script>
</dom-module>
1

There are 1 answers

0
tony19 On BEST ANSWER

The off-dialog content is inside <neon-animated-pages>, and inspecting the <neon-animated-pages> reveals that it has no height:

enter image description here

To fix this, apply CSS styles to the <paper-dialog> and the <neon-animated-pages> to set their width/height; and set overflow on the pages to allow scrolling. For example:

<dom-module id="content-el">
<template>
  <style>
    paper-dialog {
      width: 75%;
      min-width: 50vw;
    }
    neon-animated-pages {
      margin: 2em;
      height: 100%;
      min-height: 25vh;
      overflow: auto;
    }
  </style>
  ...
</template>
</dom-module>

plunker