matryoshka-loader

WebJar for matryoshka-loader

License

License

MIT
GroupId

GroupId

org.webjars.bowergithub.reach-digital
ArtifactId

ArtifactId

polymer-matryoshka-loader
Last Version

Last Version

0.8.0
Release Date

Release Date

Type

Type

jar
Description

Description

matryoshka-loader
WebJar for matryoshka-loader
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/reach-digital/polymer-matryoshka-loader

Download polymer-matryoshka-loader

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.bowergithub.reach-digital/polymer-matryoshka-loader/ -->
<dependency>
    <groupId>org.webjars.bowergithub.reach-digital</groupId>
    <artifactId>polymer-matryoshka-loader</artifactId>
    <version>0.8.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.bowergithub.reach-digital/polymer-matryoshka-loader/
implementation 'org.webjars.bowergithub.reach-digital:polymer-matryoshka-loader:0.8.0'
// https://jarcasting.com/artifacts/org.webjars.bowergithub.reach-digital/polymer-matryoshka-loader/
implementation ("org.webjars.bowergithub.reach-digital:polymer-matryoshka-loader:0.8.0")
'org.webjars.bowergithub.reach-digital:polymer-matryoshka-loader:jar:0.8.0'
<dependency org="org.webjars.bowergithub.reach-digital" name="polymer-matryoshka-loader" rev="0.8.0">
  <artifact name="polymer-matryoshka-loader" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.bowergithub.reach-digital', module='polymer-matryoshka-loader', version='0.8.0')
)
libraryDependencies += "org.webjars.bowergithub.reach-digital" % "polymer-matryoshka-loader" % "0.8.0"
[org.webjars.bowergithub.reach-digital/polymer-matryoshka-loader "0.8.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.bowergithub.polymer : polymer jar [2.0.2,3)

Project Modules

There are no modules declared in this project.

Matryoshka Loading Mixin

Published on webcomponents.org

Defines a loading flag for elements that automatically take into account the loading state of its child elements.

The element implementing MatryoshkaLoaderMixin gains a few interesting Boolean properties:

  • hostLoading (flag to be set when your element is loading)
  • loading (this.hostLoading || this._areChildrenLoading())
  • loaded (!loading)
<mixin-loader-element countdown="2000">
  <mixin-loader-element countdown="3000">1</mixin-loader-element>
  <mixin-loader-element countdown="5000" defer>
    <non-mixin-loader-element>
      <mixin-loader-element countdown="10000">1</mixin-loader-element>
    </non-mixin-loader-element>
  </mixin-loader-element>
</mixin-loader-element>

Implementing it your own element

class YourCustomElement extends MatryoshkaLoaderMixin(Polymer.Element) {
  static get is() { return 'your-custom-element' }
  
  connectedCallback() {
    super.connectedCallback();
    
    //Do your expensive operation
    Polymer.Async.timeOut.run(_ => {
      //When you're done:
      this.hostLoading = false;
    });
  }
}
customElements.define(YourCustomElement.is, YourCustomElement)
org.webjars.bowergithub.reach-digital

Reach Digital

Development and design agency for E-commerce

Versions

Version
0.8.0