npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

layer-control

v0.0.2

Published

JavaScript layers controller. Manage layers.

Downloads

4

Readme

layer-control

JavaScript контроллер слоев. Сборка слоев и управление ими.

Слой — объект описывающий правила для вставки html, js, css и других элементов в существующий документ.

Пример запуска

var myApp = new LayerControl(options); // инициализировать контроллер
myApp.state('/'); // загрузить слои для нужного состояния

options.index — объект или массив, представляет собой один родительский слой, или соответсвенно массив родительских слоев.

Обрабатываемые параметры слоя

Пути для загрузки файлов могут передаваться массивом любо объектом для определения зависимостей, пути на одном уровне с общим родителем загружаются одновременно. Некоторые параметры появляются после оброботки контроллера системой, также некоторые эти параметры можно менять вручную. При наличии соответствующих условий, параметры могут быть изменены системой. Доступ к слоям для динамического изменения осуществляется с помощью myApp.layers или myApp.labels.

layer.query = 'selector'

Указывает в какое место документа будет вставляться слой.

layer.state = 'state'

Состояние при котором слой должен показаться, задается в виде строки регулярного выражения.

layer.css = '/path/to/style.css'

Путь для загрузки css-файлов.

layer.json = '/path/to/json/data.json'

Путь для загрузки json-данных.

layer.tpl = '/path/to/template.tpl'

Путь для загрузки шаблона. В качестве контекста для шаблона передается {layer}.

layer.label = 'layerLabel'

Метки слоя через пробел, могут быть одинаковыми у нескольких слоев. Получить скомпилированный массив слоев с определенной меткой — myApp.labels['labelName']. Получить просто скомпилированный массив слоев в порядке приоритета — myApp.layers.

layer.ext = '/path/to/ext/layer.js'

Путь для загрузки внешнего слоя. После загрузки параметры внешнего слоя добавляются к локальному, но при совпадении не переопределяются.

layer.config = {config}

Пользовательские данные слоя. Если есть layer.ext.config, то от туда рекурсивно добавляются новые значения, но при совпадении не переопределяются.

layer.data = {data}

Данные слоя, обычно используемые для вставки в шаблон.

layer.tplString = '<p>{{tplString}}</p>'

Текстовый шаблон для вставки в дом.

layer.htmlString = '<p>htmlString</p>'

Текстовые распарсенные шаблонные данные для вставки в дом.

layer.childLayers = [childLayers]

Ссылка на массив всех дочерних слоев.

layer.childQueries = [childLayers]

Содержит объект, ключи в котором вида layer.query, в значениях ключей определяются новые слои. У новых слоев layer.query будет равен его ключу. Причем анализ layer.query нового слоя, будет проходить относительно layer.query родительского слоя. Все новые слои попадают в массив layer.childLayers родительского слоя. У каждого нового слоя параметр layer.parentLayer ссылается на родителя.

layer.childStates = [childLayers]

Содержит объект, ключи в котором вида layer.state, в значениях ключей определяются новые слои. У новых слоев layer.state будет равен его ключу. Причем анализ layer.state нового слоя, будет проходить относительно layer.state родительского слоя. Все новые слои попадают в массив layer.childLayers родительского слоя. У каждого нового слоя параметр layer.parentLayer ссылается на родителя.

layer.node = [NodeList]

DOM-узел где находится слой.

layer.show = true|false

Отметка, показан ли слой.

layer.check = true|false

Результат последней проверки слоя на показ.

layer.parentLayer = {parentLayer}

Ссылка на родительский слой.

layer.status = 'queue|hide|load|show'

Статус слоя, отображает его состояние на данный момент.

Методы слоя

layer.oncheck([cb])

Текущий слой будет доступен в переменной {this}. Если задана функция cb(), то контроллер дожидается окончания выполнения этой функции. Функция layer.oncheck срабатывает каждый раз, когда слой прошел проверку на показ. Все данные слоя только после этого начинают загружаются, если они не загружены были до этого.

layer.onload([cb])

Текущий слой будет доступен в переменной {this}. Если задана функция cb(), то контроллер дожидается окончания выполнения этой функции. Функция layer.onload срабатывает каждый раз, при окончании загрузки всех данных слоя, после этого слой идет на обработку для вставки в DOM, парситься шаблон и тд.

layer.onshow([cb])

Текущий слой будет доступен в переменной {this}. Если задана функция cb(), то контроллер дожидается окончания выполнения этой функции. Функция layer.onshow срабатывает каждый раз, когда слой распарсился и вставился в DOM.

События

compile - обработка нового слоя, перед помещением его в общую очередь слоев

start - начало проверок слоев в раунде

loop - очередной виток проверок в раунде

end - все слои проверены и вставлены, раунд закончен

queue - проверка слоев для следующего раунда в очереди проверок

external(layer, i) - загрузка внешнего слоя

layer(layer, i) - проверка определенного слоя

load(path) - закончена загрузка файла