wsk_material 0.6.4 copy "wsk_material: ^0.6.4" to clipboard
wsk_material: ^0.6.4 copied to clipboard

outdatedDart 1 only

Web Starter Kit - Material Design with Dart

example/main.dart

import 'dart:html' as html;
import "dart:async";
import 'dart:js';

import 'package:logging/logging.dart';
import 'package:console_log_handler/console_log_handler.dart';

import 'package:wsk_material/wskcomponets.dart';

final Logger _logger = new Logger('example.Styleguide');

const String LOADER_TEXT = "Wait! Loading {{nrofiframes}} iframes...";

main() {
    configLogging();
    loadDemos();

    registerAllWskComponents();
    upgradeAllRegistered();
}

void loadDemos() {
    final html.HtmlElement navList = html.querySelector('#main-navigation');
    int totalDemosPendingLoading = 0;

    void _sizeDemo(final html.HtmlElement rootDemoElement) {
        final html.IFrameElement iframe = rootDemoElement.querySelector("iframe");
        if (iframe == null) {
            totalDemosPendingLoading--;
            return;
        }

        _setLoaderInfo(totalDemosPendingLoading);
        iframe.onLoad.listen((final html.Event event) {
            _setLoaderInfo(totalDemosPendingLoading);

            var jsIFrame = new JsObject.fromBrowserObject(iframe);
            // contentDocument.documentElement is not implemented in Dart!!!!!
            final int contentHeight = jsIFrame["contentDocument"]["documentElement"]["scrollHeight"];

            iframe.style.height = "${contentHeight * 1.5}px";
            iframe.classes.add("heightSet");
            totalDemosPendingLoading--;
            _setLoaderInfo(totalDemosPendingLoading);

            if (totalDemosPendingLoading <= 0) {
                html.querySelector("body").classes.add("demosLoaded");
                html.querySelector("body").classes.remove("loadingDemos");
            }
        });
    }

    void _sizeDemos() {
        final List<html.HtmlElement> demos = html.querySelectorAll('.styleguide-demo');
        totalDemosPendingLoading = demos.length;

        _setLoaderInfo(totalDemosPendingLoading);
        for (int i = 0;i < demos.length;i++) {
            new Future.delayed(new Duration(milliseconds: 200),() {
            final String demoTitle = (demos[i].querySelector('h1') as html.HtmlElement).text ;
            final String anchorLink = 'demo-$i';

            // Add list item
            final html.AnchorElement navAnchor = new html.AnchorElement();
            navAnchor.classes.add('wsk-navigation__link');
            navAnchor.href = '#' + anchorLink;
            navAnchor.append(new html.Text("${demoTitle}"));
            navList.append(navAnchor);

            final html.AnchorElement anchor = new html.AnchorElement();
            anchor.id = anchorLink;
            demos[i].insertBefore(anchor, demos[i].querySelector('h1'));

            // Size iframe
            _sizeDemo(demos[i]);
            });
        }
    }

    _sizeDemos();
}

void _setLoaderInfo(final int nrOfFramesLeft) {
    new Future(() {
        final html.HtmlElement element = html.querySelector('div.loader') as html.HtmlElement;
        if(element != null) {
            element.text = LOADER_TEXT.replaceFirst("{{nrofiframes}}","$nrOfFramesLeft");
        }
    });
}

void configLogging() {
    hierarchicalLoggingEnabled = false; // set this to true - its part of Logging SDK

    // now control the logging.
    // Turn off all logging first
    Logger.root.level = Level.INFO;
    Logger.root.onRecord.listen(new LogConsoleHandler());
}
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

Web Starter Kit - Material Design with Dart

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

browser, browser_detect, console_log_handler, intl, logging, logging_handlers, validate

More

Packages that depend on wsk_material