polymer-apollo-query

Demo

import { PolymerElement, html } from '@polymer/polymer';
import '@polymer/polymer/lib/elements/dom-repeat.js'
import '@apollo-elements/polymer/polymer-apollo-query';
import '@apollo-elements/components/apollo-client';

class SpacexLaunches extends PolymerElement {
  static get is() { return 'spacex-launches'; }

  static get template() {
    return html`
      <style>
                :host {
          --image-size: 40px;
        }

        li img {
          height: var(--image-size);
          width: auto;
        }

        li article {
          height: var(--image-size);
          display: flex;
          justify-content: space-between;
        }
      </style>
      <polymer-apollo-query data="{{ data }}">
        <script type="application/graphql">
                    query LaunchesQuery($limit: Int) {
            launchesPast(limit: $limit) {
              id
              mission_name
              links { mission_patch_small }
            }
          }
        </script>
        <script type="application/json">
          { "limit": 3 }
        </script>
      </polymer-apollo-query>
      <ol>
        <dom-repeat items="[[ data.launchesPast ]]" as="launch">
          <template>
            <li>
              <article>
                <span>[[ launch.mission_name ]]</span>
                <img src="[[ launch.links.mission_patch_small ]]" alt="Badge" role="presentation"/>
              </article>
            </li>
          </template>
        </dom-repeat>
      </ol>
    `;
  }
}

customElements.define(SpacexLaunches.is, SpacexLaunches);

Read the query component guides for more examples and tips.

Examples

Querying for Data
<polymer-apollo-query
    data="{{data}}"
    variables="[[variables]]"
    query="[[UserQuery]]"
></polymer-apollo-query>

<paper-icon-item>
  <iron-image slot="item-icon">[[data.user.picture]]</iron-image>
  [[data.user.name]]
</paper-icon-item>

Properties

static

networkStatus

Events

data-changed

PolymerChangeEvent<Data<D>>

variables-changed

PolymerChangeEvent<Variables<D, V>>

error-changed

PolymerChangeEvent<Error>

errors-changed

PolymerChangeEvent<readonly GraphQLError[]>

loading-changed

PolymerChangeEvent<boolean>

Exports

js PolymerApolloQuery from polymer-apollo-query.js

custom-element-definition from polymer-apollo-query.js