flattery 0.1.0

Flattery #

Flattery is a library for building HTML elements using Widgets.

Widgets are just Dart objects whose purpose is to represent some user interface element. They are implemented using the awesome dart:html package, and do not try to hide it - so you can use your HTML/CSS knowledge to enhance existing widgets, and to create your own, type safely.

Usage #

A simple usage example:

/// Simple Counter Model.
class Counter {
  int value = 0;
}

/// A Counter Widget.
class CounterView extends Counter with Widget {
  final text = DivElement();

  CounterView() {
    _update();
  }

  @override
  Element build() => Container(
        children: [
          text,
          ButtonElement()
            ..text = 'Increment'
            ..onClick.listen((e) => value++),
          ButtonElement()
            ..text = 'Decrement'
            ..onClick.listen((e) => value--),
        ],
      ).root;

  @override
  set value(int value) {
    super.value = value;
    _update();
  }

  _update() => text.text = 'The current count is $value';
}

main() => document.getElementById('output').append(CounterView().root);

Building #

pub get

Run the example #

webdev serve example

Running the tests #

Unit tests:

pub run test

Use option -r json or r -expanded to see details.

Browser tests:

pub run test -p chrome

Features and bugs #

Please file feature requests and bugs at the issue tracker.

Dart Test Documentation:

https://github.com/dart-lang/test/tree/master/pkgs/test

0.1.0 #

  • Initial version, created by Stagehand
  • Basic types: Widget, Container, ShadowWidget, Text.

example/flattery_example.dart

import 'dart:html';

import 'package:flattery/flattery.dart';

/// Simple Counter Model.
class Counter {
  int value = 0;
}

/// A Counter Widget.
class CounterView extends Counter with Widget {
  final text = DivElement();

  CounterView() {
    _update();
  }

  @override
  Element build() => Container(
        children: [
          text,
          ButtonElement()
            ..text = 'Increment'
            ..onClick.listen((e) => value++),
          ButtonElement()
            ..text = 'Decrement'
            ..onClick.listen((e) => value--),
        ],
      ).root;

  @override
  set value(int value) {
    super.value = value;
    _update();
  }

  _update() => text.text = 'The current count is $value';
}

main() => document.getElementById('output').append(CounterView().root);

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  flattery: ^0.1.0

2. Install it

You can install packages from the command line:

with pub:


$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:flattery/flattery.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
5
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
52
Learn more about scoring.

We analyzed this package on Aug 16, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.4.0
  • pana: 0.12.19

Platforms

Detected platforms: web

Primary library: package:flattery/flattery.dart with components: html.

Health suggestions

Format lib/src/util/util.dart.

Run dartfmt to format lib/src/util/util.dart.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
Dev dependencies
build_runner ^1.1.2
build_test any
build_web_compilers ^1.0.0
pedantic ^1.0.0
test ^1.0.0
webdriver any