@evo/layout-constructor

1.6.3 • Public • Published

layout-constructor

Visual tool for constructing custom banner pages layout

Installation

The package can be installed via NPM:

npm install layout-constructor --save

Dependencies

You’ll need to install some dependencies separately since they aren’t included in the package:

  • react
  • react-dom
  • prop-types
  • classnames
  • autobind-decorator
  • rx
  • tanok

Example

Here's simple usage example:

import LayoutConstructor from 'layout-constructor';
import 'layout-constructor/dist/index.min.css';

const node = document.getElementById('app');
const presetTemplates = [
    {
        id: '4_columns',
        children: [
            { column: 1, row: 1 },
            { column: 2, row: 1 },
            { column: 3, row: 1 },
            { column: 4, row: 1 },
        ]
    },
    {
        id: '3_columns_2_left_big',
        children: [
            { column: [1, 2], row: 1 },
            { column: 3, row: 1 },
            { column: 4, row: 1 },
        ]
    },
    {
        id: '3_columns_2_middle_big',
        children: [
            { column: 1, row: 1 },
            { column: [2, 3], row: 1 },
            { column: 4, row: 1 },
        ]
    },
    {
        id: '3_columns_2_right_big',
        children: [
            { column: 1, row: 1 },
            { column: 2, row: 1 },
            { column: [3, 4], row: 1 },
        ]
    },
    {
        id: '2_columns',
        children: [
            { column: [1, 2], row: 1 },
            { column: [3, 4], row: 1 },
        ]
    },
    {
        id: '1_column',
        children: [
            { column: [1, 2, 3, 4], row: 1 }
        ]
    },
];
const importJSON = null; // or an exported JSON you want to load
const onExportJSON = null; // or a callback which will receive data in JSON format
const onUploadImage = (file) => {
    console.log('onUploadImage was called with ', file);
    return Promise.resolve({
        id:  1,
        src: 'https://static-cache.ua.uaprom.net/image/portal/UA/logo.png'
    });
};

LayoutConstructor(node, { presetTemplates, importJSON, onExportJSON, onUploadImage });

Note that you need to require css file from this package. This example will work if your build system supports requiring css files (webpack is one that does).

presetTemplates is an array of block structures that will be available for building your layout. In this example your presets will look like this:

Demo

You can try it out on the Demo page

Development

You must be part of @evo organization on NPM

npm publish --access public

Testing

Only smoke tests implemented using mocha, chai and istanbul. Feel free to extend.

vagga test

or if you want coverage

vagga cover-test

Readme

Keywords

Package Sidebar

Install

npm i @evo/layout-constructor

Weekly Downloads

13

Version

1.6.3

License

ISC

Last publish

Collaborators

  • stoyanovk
  • lequan
  • zemlanin
  • alexander
  • seedofjoy
  • 041616
  • docccdev
  • orhideous
  • tailhook
  • hunson.abadeer
  • mark_tven
  • amostovenko
  • sadkovoy
  • himiranov
  • evo-kazymyrov