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

ahj_6_dnd

v1.0.0

Published

[![Build status](https://ci.appveyor.com/api/projects/status/ifg3kctbxu9iwm3r?svg=true)](https://ci.appveyor.com/project/SubHunt/ahj-6-dnd)

Downloads

2

Readme

Build status

Домашнее задание к занятию "6. Работа с файлами, DnD"

Правила сдачи задания:

  1. Важно: в рамках этого ДЗ нужно использовать yarn (поэтому файла package-lock.json в репозитории быть не должно)
  2. Всё должно собираться через Webpack (включая картинки и стили) и выкладываться на Github Pages через Appveyor
  3. В README.md должен быть размещён бейджик сборки и ссылка на Github Pages
  4. В качестве результата присылайте проверяющему ссылки на ваши GitHub-проекты
  5. Авто-тесты писать не требуется

Trello

Легенда

Вы делаете внутрикорпоративную систему управления задачами и вашему руководству очень нравится подход, который используется в Trello:

Описание

Фактически у вас есть доска, состоящая из колонок, в каждой колонке может быть несколько карточек.

Для упрощения сделаем следующие допущения:

  1. Кол-во колонок фиксировано и равно 3
  2. Новые колонки добавлять нельзя, удалять имеющиеся тоже
  3. Перемещать колонки тоже нельзя

Что же можно:

  1. Добавлять карточки с помощью кнопки 'Add another card'. Вот так это выглядит:

  1. Удалять карточки - при наведении на карточку появляется иконка крестик ("\E951"), которая и удаляет карточку (обратите внимание в оригинальном Trello такой операции нет, есть только архивация, но мы для упрощения её ввели):

  1. Перемещать карточки как внутри колонки, так и между колонками:
Процесс перемещения
  1. Внешний вид до переноса (карточка находится на своём месте):

  1. Внешний вид в момент переноса (карточка удаляется из своего начального положения):

Обратите внимание на следующие нюансы:

  1. Внешний вид курсора ('grabbing')
  2. Курсор по отношению к карточке остаётся там, где изначально схватили - не привязывается ни к левому краю, ни к центру, а там, где схватили карточку, т.е. можно схватить за нижний левый угол:

  1. При наведении на другие позиции под карточку выделяется место по высоте равное размеру самой карточке, при это будет карточка ставится "до" или "после" элемента определяется исключительно позицией курсора:

Дополнительно

Дополнительные требования:

  1. Храните всё состояние в LocalStorage так, чтобы после обновления страницы внесённые изменения сохранялись
  2. Постоение DOM-дерева производите на базе состояния, хранящегося в LocalStorage
Упрощения

В целях упрощения сделайте только:

  1. Возможность хранить текст (картинки, списки, цветовое оформление элементов не нужно)
  2. Перемещение самой карточки (поворот делать не нужно)
  3. Можете также не обрабатывать ситуацию, связанную с выносом элемента за пределы доски

Modern Image Manager* (задача со звёздочкой)

Важно: эта задача не является обязательной. Её (не)выполнение не влияет на получение зачёта по ДЗ.

Легенда

Менеджер картинок, который вы делали в 3-ей лекции нуждается в улучшении, в частности решили сделать две вещи:

  1. Предоставить возможность загружать пользователю изображения с его компьютера (а не URL)
  2. Совместить форму для Drag and Drop и окошко выбора файлов

Описание

Внешний интерфейс должен выглядеть следующим образом:

Схема работы:

  1. При переносе изображения (Native DnD) с компьютера пользователя в блок Drag and Drop (т.е. из файлового менеджера переносим файл в окно браузера) должна происходить загрузка файла (если это изображение) и отображение его внизу (превью с крестиком)
  2. При клике на блок Drag and Drop должна открываться стандартная форма выбора файлов (как для native <input type="file">) после выбора файла также должна происходить загрузка с отображение его внизу (превью с крестиком)

Обратите внимание: нужно, чтобы если пользователь два раза подряд выбрал один и тот же файл (не важно каким способом), этот файл оба раза загрузился и отображался внизу в превью (т.е. должно их быть два).