hyoo-ru / mam_mol Goto Github PK
View Code? Open in Web Editor NEW$mol - fastest reactive micro-modular compact flexible lazy ui web framework.
Home Page: http://mol.hyoo.ru
License: MIT License
$mol - fastest reactive micro-modular compact flexible lazy ui web framework.
Home Page: http://mol.hyoo.ru
License: MIT License
Пример:
$my_habhub_gister $mol_carder
content < sectioner $mol_sectioner
head < title \
content < content null
Нужно кидать исключение, если значения по умолчанию не совпадают для одного и того же свойства.
Нужно с нуля запилить плагин для подсветки синтаксиса tree.
Текущий устаревший плагин: https://github.com/nin-jin/tree-plugin
Дока по написанию плагинов: http://www.jetbrains.org/intellij/sdk/docs/
Атомы сейчас обновляются по слоям в зависимости от глубины зависимостей.
У дочерней компоненты может быть меньшая глубина, чем у родительской, из-за чего она используя свежие данные валится с ошибкой и только после этого, родительская компонента её удаляет. Это тормоза и куча ошибок в консоли. Нужно обновлять атомы ещё и в зависимости от приоритета целевого атома. Вложенные компоненты должны иметь соответственно меньший приоритет.
При реализации подсветки синтаксиса необходимо восстанавливать выделение в правильном положении. Аналогично и при перезагрузке страницы.
Необходимо реализовать полноценное приложение с интеграцией с SAP ERP.
Одна с ключом, другая - без.
Сейчас $mol_checker использует символ галки, вместо этого нужно внедрить иконку. Кроме того, стоит отказаться от :before
в пользу явной вставки иконки с возможностью эту иконку перегрузить.
Нужно реализовать:
По умолчанию $mol_checker не должен добавлять особой визуализации, только поведение.
Чтобы не было соблазна изменять объекты в коллекции.
Нужно продумать следующие вещи..
Можно пощупать пример адаптации под размер: http://nin-jin.github.io/form/
Можно пощупать пример перекраски интерфейса под базовый цвет: http://nin-jin.github.io/friends/
Через консоль разработчика можно задать другие цвета и даже изображение.
Желательно использовать стандартные шрифты, но они разные в разных системах - это стоит иметь ввиду.
Все контролы должны быть выполнены в 3 состояниях:
Все поля должны поддерживать следующие состояния заполненности:
Все поля должны поддерживать следующие состояния проверки:
Контролы:
Двухсторонняя синхронизация через сокеты.
Горизонтальный стек панелей. При нехватке места боковые панели должны скрываться и появляться лишь по наведению мыши на край экрана или по свайпу.
Нужно выделить отложенное исполнение кода в том же обработчике событий в отдельный модуль. Заодно им можно заполифилить setImmediate.
Требуется реализация сего протокола поверх $mol_http_request.
Ветка grider
.
$mol_gider
- компонент для рисования гридов
$mol_app_taxon
- демонстрирует гриды в действии на примере приложения
Что нужно поправить:
Нужно вернуть использование $jin.time.
Внутренние гиперссылки. Переключают хеш, без перезагрузки страницы. Могут быть открыты в отдельной вкладке стандартными средствами. Ссылка, ведущая на текущую страницу не должна выглядеть активируемой.
Структура кода выглядит следующим образом:
При сборке, точкой входа задаётся какой-либо модуль. В нём создаётся модуль "-build", в который собираются js- и css-бандлы, включающие в себя исходники указанного модуля и всех рекурсивно вложенных модулей, а также все, каскадно подцепленные, зависимости.
Зависимости ищутся на основе типа файла:
*.ts
, *.jam.js
: ищутся незакомментированные вхождения вида $mol_state_arg.value
и интерпретируются как зависимость от модулей: mol
, mol/state
, 'mol/state/arg,
mol/state/arg/value`.*.css
: аналогично ищутся вхождения вида: .mol_viewer_error
, [mol_viewer_error]
, [mol_viewer_error="foo"]
Если модуль по пути не находится, то зависимость игнорируется. Зависимость от модуля эквивалентна зависимости от всех его исходников, но не от вложенных модулей.
Если не находится пакет, то он ищется в реестре пакетов (локальный файл с картой соответствия "имя пакета" - "ссылка на репозиторий"). Если находится в реестре, то автоматически чекаутится через гит. Если нет - кидается исключение.
Соглашение: достаточно поставить перед именем модуля дефис и он исключается из сборки.
В "-build" модуле генерируются бандлы следующих типов:
index.js
- сюда собираются все скрипты. В том числе и сгенерированные из *.ts
и *.,view.tree
исходников.index.css
- сюда собираются все стили.Рядом копируются все картинки и правятся ссылки на них из css. Также в целях отладки в "-build" собирается "карта зависимостей".
Исходники могут содержать "теги" в имени, например: router.env=web.ts
. При билде можно указать env=web
и тогда такой исходник будет учитываться, либо env=node
и тогда такой исходник будет проигнорирован.
Пример запуска билда:
pms build mol/app/demo stage=release env=web
Чтиво: pms-stub
Error:
/home/travis/build/eigenmethod/mol/app/demo/-/view.tree/demo.view.tree.ts:83:13
Cannot find name '$mol_icon_chevron'.
/home/travis/build/eigenmethod/mol/app/supplies/detailer/-/view.tree/detailer.view.tree.ts:16:13
Cannot find name '$mol_icon_chevron'.
/home/travis/build/eigenmethod/mol/checker/expander/-/view.tree/expander.view.tree.ts:6:13
Cannot find name '$mol_icon_chevron'.
at $mol_build.sourcesJS (/home/travis/build/eigenmethod/mol/build/build.node.ts:236:29)
at $mol_atom.pull (/home/travis/build/eigenmethod/mol/atom/atom.ts:128:26)
at $mol_atom.actualize (/home/travis/build/eigenmethod/mol/atom/atom.ts:117:21)
at $mol_atom.get (/home/travis/build/eigenmethod/mol/atom/atom.ts:71:9)
at $mol_build.descr.value [as sourcesJS] (/home/travis/build/eigenmethod/mol/mem/mem.ts:82:17)
at $mol_build.bundleJS (/home/travis/build/eigenmethod/mol/build/build.node.ts:434:23)
at $mol_atom.pull (/home/travis/build/eigenmethod/mol/atom/atom.ts:128:26)
at $mol_atom.actualize (/home/travis/build/eigenmethod/mol/atom/atom.ts:117:21)
at $mol_atom.get (/home/travis/build/eigenmethod/mol/atom/atom.ts:71:9)
at $mol_build.descr.value [as bundleJS] (/home/travis/build/eigenmethod/mol/mem/mem.ts:82:17)
Ещё и не падает при ошибке.
Локально на винде не воспроизводится.
Необходима абстракция над http запросами, чтобы можно было передавать данные в различных форматах (Text, JSON, XML, FormData) и получать ответ в виде DOM/JSON/Text.
А сверху нужна абстракция над http ресурсами: задав uri можно принимать и отправлять изменения в том же формате.
Думаю стоит сделать компонент $mol_suggester, который владеет $mol_stringer и $mol_lister. Последний показывается, если есть хотя бы одна подсказка.
Входные параметры:
Нужно реализовать поле ввода численного значения - $mol_number.
Внутри стоит использовать $mol_stringer для ручного ввода значения, а по бокам окружить его кнопками "+" и "-". Кроме того стоит предусмотреть изменение значения колесом мыши.
Стоит заодно добавить в $mol_stringer возможность отфильтровывать недопустимые символы.
Показывает процент чего-то от общего числа.
Если не указано дефолтное значение. Нужно кидать ошибку.
Нужна поддержка "ленивых диапазонов", которые умеют отдавать свой размер и генерировать элементы (создавать объекты, загружать данные и тп) лишь по требованию. Нужна максимальная совместимость с обычными массивами. Должна быть возможность передавать как диапазон, так и массив (автоприведение к диапазону?). Интегрировать диапазоны в рендерер, чтобы сделать его ещё более ленивым.
Контролы:
[ ] check box
[ ] radio button
Могут быть с лейблом и без.
Воспроизводится тут: http://eigenmethod.github.io/mol/perf/render/
Либо рендериться должны лишь видимые элементы, либо скроллинг должен быть в конце.
Компонент для отображения деревьев.
Видимо внедрение проксей сломало это поведение.
Как минимум на первое время, нам нужно подыскать набор иконок в SVG формате, которые бы подошли нам по дизайну и имели подходящую лицензию.
Инлайн компонент, который подсвечивает вхождения подстроки.
Параметры:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.