Giter VIP home page Giter VIP logo

dom99's People

Contributors

bettoarcaya avatar canop avatar grossacasac avatar jfstn avatar liquorburn avatar robertmatkulcik avatar shreyas-echidna avatar vigneshmurugan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dom99's Issues

Fix link in the doc

Production minified dom99Script.es5.min.js
should be Production minified dom99.iife.es5.min.js

(Example) Remove something from the DOM with animation

One way would be to be able to provide a custom removeNode function

const removeNode = (node) => {
    if (node.nodeType === 1) {
    node.animate([
        // keyframes
        { transform: 'translateY(0px)' },
        { transform: 'translateY(-300px)' }
      ], {
        // timing options
        duration: 20000,
        iterations: 1
      }).finished.then(function () {
          node.remove();
      });
    } else {
        node.remove()
    }
};

Consider introducing key based updates for lists

Feed ['f', 'x'] then
When ['x', 'f'] is fed on a data-list element, both child are updated
What could happen instead is that the first element is moved.
One way to do it is to enhance data with identity keys, another would be to search for identity.

build is broken

npm run buildAll

result

> babel polyfills/remove.js > polyfills/built/remove.js && babel polyfills/dom-hidden.js > polyfills/built/dom-hidden.js

The system cannot find the path specified.

happens because polyfills/built/ was removed

jsdoc command fails silently

npm run jsdoc should create the file documentation/dom99.js.html
File is ignored by git but still used for website and is missing

Git ignore generated files

  • To avoid confusion #6 #8
  • To remove noise in the commits

Make sure generated files are still included in npm publish and documentation files are included before publishing site to now.
Make a commit to delete these files first.

To ignore:

  • everything in built/
  • documentation/documentation.html
  • documentation/index.html
  • documentation/global.html
  • documentation/dom99.js.html
  • documentation/js/documentation.es5.min.js
  • examples/js/built
  • examples/js/builtes5
  • components/yesNoDialog/examples/js/built

Make everything a plugin

including data-function data-variable etc
plugins have at least 3 functions: start, run, end
they should have access to the shared state of the singleton

Highlightjs is loaded form 3rd party URL

Version 21 breaking changes

Split tag name and variable name. Given this template

<template data-template="d-todo">
    <li class="todo-item">
        ...
    </li>
</template>

Change

<ul data-list="allToDos-d-todo"></ul>

into

<ul data-list="allToDos" data-list-item="d-todo"></ul>

import components/yesNoDialog causes conflicts

import d from "../node_modules/dom99/built/dom99Module.es5.js";
import {yesNoDialog, textDialog} from "../node_modules/dom99/components/yesNoDialog/yesNoDialog.js";

can result in a build that imports dom99 twice, because yesNoDialog.js itself is a module that imports
dom99Module.js but not dom99Module.es5.js

Temporary consumer workaround import d from "../node_modules/dom99/built/dom99Module.js"; everywhere and transpile the bundle yourself

Potential solutions: make yesNoDialog use dependency injection

add warning for typo inside data-list

inside notifyRawListSubscriber warn if listItemTagName is undefined
it probably means there was a typo inside data-list
or the <template> with this name does not exist

Create tool to scaffold html tree from an example json

One of the strength of this framework is the mapping between graphs (variables) and DOM.

Everything has to be done manually.

Create a tool that takes example JSON and outputs example HTML, the result could then be added directly or configured with extra structure and styling.

For example given

[
        {
            picture: "./images/boss.jpg",
            bio: "Loves biking and skating"
        },
        {
            picture: "./images/sister.jpg",
            bio: "Drinks tons of café."
        }
]

output could be

    <template data-template="user-element">
            <img data-variable="picture" alt="user-picture" class="user-picture">
            <p data-variable="bio" class="user-bio">SHORT BIO</p>
    </template>


    <div data-list="users-user-element"></div>

then after adding it to html d.feed({users: exampleGraph}); would just work

See other examples at https://dom99.now.sh/documentation#examples1

Handle <select multiple>

.value works fine for single value select. But only shows the first one for select multiple

Use selectedOptions property.

Confusing naming about contexts

data-inside="context" , scope, context, components

All these are used seemingly randomly throughout the documentation and the code.

Decide which one is more appropriate and stick to it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.