apeman-react-builder
==========

<!---
This file is generated by ape-tmpl. Do not update manually.
--->

<!-- Badge Start -->
<a name="badges"></a>

[![Build Status][bd_travis_shield_url]][bd_travis_url]
[![Code Climate][bd_codeclimate_shield_url]][bd_codeclimate_url]
[![Code Coverage][bd_codeclimate_coverage_shield_url]][bd_codeclimate_url]
[![npm Version][bd_npm_shield_url]][bd_npm_url]
[![JS Standard][bd_standard_shield_url]][bd_standard_url]

[bd_repo_url]: https://github.com/apeman-react-labo/apeman-react-builder
[bd_travis_url]: http://travis-ci.org/apeman-react-labo/apeman-react-builder
[bd_travis_shield_url]: http://img.shields.io/travis/apeman-react-labo/apeman-react-builder.svg?style=flat
[bd_travis_com_url]: http://travis-ci.com/apeman-react-labo/apeman-react-builder
[bd_travis_com_shield_url]: https://api.travis-ci.com/apeman-react-labo/apeman-react-builder.svg?token=
[bd_license_url]: https://github.com/apeman-react-labo/apeman-react-builder/blob/master/LICENSE
[bd_codeclimate_url]: http://codeclimate.com/github/apeman-react-labo/apeman-react-builder
[bd_codeclimate_shield_url]: http://img.shields.io/codeclimate/github/apeman-react-labo/apeman-react-builder.svg?style=flat
[bd_codeclimate_coverage_shield_url]: http://img.shields.io/codeclimate/coverage/github/apeman-react-labo/apeman-react-builder.svg?style=flat
[bd_gemnasium_url]: https://gemnasium.com/apeman-react-labo/apeman-react-builder
[bd_gemnasium_shield_url]: https://gemnasium.com/apeman-react-labo/apeman-react-builder.svg
[bd_npm_url]: http://www.npmjs.org/package/apeman-react-builder
[bd_npm_shield_url]: http://img.shields.io/npm/v/apeman-react-builder.svg?style=flat
[bd_standard_url]: http://standardjs.com/
[bd_standard_shield_url]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg

<!-- Badge End -->


<!-- Description Start -->
<a name="description"></a>

apeman react package for builder components.

<!-- Description End -->


<!-- Overview Start -->
<a name="overview"></a>



<!-- Overview End -->


<!-- Sections Start -->
<a name="sections"></a>

<!-- Section from "doc/guides/01.Installation.md.hbs" Start -->

<a name="section-doc-guides-01-installation-md"></a>

Installation
-----

```bash
$ npm install apeman-react-builder --save
```


<!-- Section from "doc/guides/01.Installation.md.hbs" End -->

<!-- Section from "doc/guides/02.Demo.md.hbs" Start -->

<a name="section-doc-guides-02-demo-md"></a>

Demo
-----

[Live demo][demo_url] is hosted on GitHub Pages.

<!--
[![Demo Image](./doc/images/screenshot.png)][demo_url]
-->

[demo_url]: http://apeman-react-labo.github.io/apeman-react-builder/demo/demo.html


<!-- Section from "doc/guides/02.Demo.md.hbs" End -->

<!-- Section from "doc/guides/03.Usage.md.hbs" Start -->

<a name="section-doc-guides-03-usage-md"></a>

Usage
---------

```jsx
'use strict'

import React from 'react'
import {ApBuilder, ApBuilderStyle} from 'apeman-react-builder'
import {ApTabStyle} from 'apeman-react-tab'
import {ApFrameStyle} from 'apeman-react-frame'

const color = '#38E'
const ExampleComponent = React.createClass({
  getInitialState () {
    return {
      html: `
<html><body><!-- ** --></body></html>
`,
      script: `
console.log('hoge', window.foo)
/* ... */
`,
      globals: {
        foo: 'This is foo!!'
      }
    }
  },

  render () {
    const s = this
    let { state } = s
    return (
      <div>
        <ApBuilderStyle highlightColor={ color }/>
        <ApTabStyle highlightColor={ color }/>
        <ApButtonStyle highlightColor={ color }/>
        <ApFrameStyle highlightColor={ color }/>
        <ApBuilderStyle highlightColor={ color }/>
        <ApBuilder html={ state.html }
                   script={ state.script }
                   compile={ (script) => { /* ... */ return script } }
                   globals={ state.globals }/>
      </div>
    )
  }
})


```



<!-- Section from "doc/guides/03.Usage.md.hbs" End -->

<!-- Section from "doc/guides/04.Components.md.hbs" Start -->

<a name="section-doc-guides-04-components-md"></a>

Components
-----


### ApBuilderEditor

**Props**

| Name | Type | Default | Description |
| ---- | ---- | ------- | ----------- |
| onChange | func |  | | Handle for change |
| onCancel | func |  | | Handle for cancel |
| onSubmit | func |  | | Handle for submit |
| labels | object | {
  cancel: &#x27;Cancel&#x27;,
  submit: &#x27;Submit&#x27;
} | | Label texts |
| src | string |  | | Editting source |
| mode | string |  | | Editting type |
| error | string|object |  | | Error message |
| spinning | bool |  | | Show spinner |
| actions | array | [] | | Custom actions |

### ApBuilderFrame

**Props**

| Name | Type | Default | Description |
| ---- | ---- | ------- | ----------- |
| src | string |  | | Source string |
| onLoad | func |  | | Handler for load event |
| onScriptError | func |  | | Handler for script error |
| globals | object | {} | | Global variables inside iframe |
| script | string |  | | Script to execute when loaded |
| compile | func | (script) &#x3D;&gt; script | | Compile script before executing |
| vr | number |  | | Version number |
| id |  | &#x60;ap-builder-frame-${uuid.v4()}&#x60; | |  |

### ApBuilderStyle

**Props**

| Name | Type | Default | Description |
| ---- | ---- | ------- | ----------- |
| style | object | {} | |  |
| highlightColor | string | ApStyle.DEFAULT_HIGHLIGHT_COLOR | |  |
| backgroundColor |  | ApStyle.DEFAULT_BACKGROUND_COLOR | |  |

### ApBuilder

**Props**

| Name | Type | Default | Description |
| ---- | ---- | ------- | ----------- |
| html | string | &#x27;&#x27; | | Html contents |
| script | string | &#x27;&#x27; | | Script text |
| globals | object |  | | Global variables |
| compile | func |  | | Compile script before executing |
| onHtmlEdit | func | () &#x3D;&gt; undefined | | Handle html edit |
| onScriptEdit | func | () &#x3D;&gt; undefined | | Handle script edit |
| onScriptError | func |  | | Handle script error |
| labels | object | {
  htmlTab: &#x27;HTML&#x27;,
  scriptTab: &#x27;Script&#x27;
} | | Labels |
| errors | object |  | | Errors |
| htmlMode | string | &#x27;htmlmixed&#x27; | | Codemirror mode for html |
| scriptMode | string | &#x27;javascript&#x27; | | Codemirror mode for script |
| htmlActions | array |  | | Custom actions for html editor |
| scriptActions | array |  | | Custom actions for script editor |
| isSupported | func | function() {
  return /Chrome/.test(navigator.userAgent)
} | | Check if supported |


<!-- Section from "doc/guides/04.Components.md.hbs" End -->


<!-- Sections Start -->


<!-- LICENSE Start -->
<a name="license"></a>

License
-------
This software is released under the [MIT License](https://github.com/apeman-react-labo/apeman-react-builder/blob/master/LICENSE).

<!-- LICENSE End -->


<!-- Links Start -->
<a name="links"></a>

Links
------

+ [apeman][apeman_url]
+ [apeman-react-labo][apeman_react_labo_url]
+ [React][react_url]

[apeman_url]: https://github.com/apeman-labo/apeman
[apeman_react_labo_url]: https://github.com/apeman-react-labo
[react_url]: https://facebook.github.io/react/

<!-- Links End -->
