3.0.1 • Published 4 years ago

r-floater v3.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

r-floater

Props

proptypedefaultdescription
itemsArray Of ObjectsRequiredList Of Floated HTMLs
relationsObjectOptionalList Of Items Relations
zoomNumber(int)1Zoom Value Of Scene
screenArray (2 int Number)0,0Coordinates Of Screen Focus
snapArray (3 member)0,0,''Set Snap Grid horizontal dimension , vertical dimension , color
selectedStyleCss ObjectOptionalSet selected item style
onPanfunction (get changed screen prop)OptionalCallback for panning screen
onZoomfunction (get changed zoom prop)OptionalCallback for zooming scene
onChangefunction (get changed items array,get coords of all items object)Optionalsend changes of items coords to parent for info
getMousePositionfunction (get mouse coords on scene as array)Optionalsend mouse coords to parent for info
connectTypeNumber (1 or 2 or 3)1set relation lines type
simpleConnectBooleantrueset relation lines(apart or not)
lineWidthNumber(int +)1set relation lines width
lineDashArray(2 int number +)(ex:3, 2)Optionalset relation lines dash style
lineColorString(color)'#6f8ea7'set relation lines color
fontColorString(color)'#6f8ea7'set relations font color
fontSizeNumber10set relations text font size
textTopNumber-5set relations text vertical offset
textLeftNumber0set relations text horizontal offset
arrowSizeArray (2 number from 0 to up) (ex:20, 10)10,12set relations arrow size

items prop

each item (object)

propertytypedefaultdescription
leftNumber0left coordinate of item
topNumber0top coordinate of item
idStringRequiredid of item (unique)
templateHTMLRequiredcontent of item
showBooleantrueset item visible or hidden
moveBooleantrueSet item movable or not

Example

<RFloater 
  items={[
    {template:<Panel number={1}>,id:'panel1',left:120,top:40},
    {template:<Panel number={2}>,id: 'panel2',left:260,top:0},
    {template:<Panel number={3}>,id: 'panel3',left:0,top:240},
    {template:<Panel number={4}>,id: 'panel4',left:120,top:240},
    {template:<Panel number={5}>,id: 'panel5',left:240,top:240},
    {template:<Panel number={6}>,id: 'panel6',left:360,top:240},
    {template:<Panel number={7}>,id: 'panel7',left:620,top:0},
    {template:<Panel number={8}>,id: 'panel8',left:620,top:80},
    {template:<Panel number={9}>,id: 'panel9',left:620,top:160},
    {template:<Panel number={10}>,id: 'panel10',left:620,top:240}, 
    {template:<Panel number={11}>,id: 'panel11',left:620,top:320},
  ]}
/>

alt text

Panel Component

class Panel extends Component{
  render(){
    var {text,number} = this.props;
    return(
      <div 
        className="box" 
        style={{
          width:'120px',
          height:'60px',
          display:'flex',
          background:'#fff',
          border:'1px solid #6f8ea7',
          color:'#6f8ea7',
          alignItems:'center',
          justifyContent:'center',
          userSelect: 'none'
        }}
      >{number}</div>
    )
  }
}

relations props

Example

<RFloater 
  ...
  relations={{
    'panel1':[
      {to:'panel2',text:'5.2%'},
      {to:'panel3',text:'13%'},
      {to:'panel4',text:'33.3%'},
      {to:'panel5',text:'33.3%'},
      {to:'panel6',text:'33.3%'},
    ],
    'panel2':[
      {to:'panel7',text:'5.2%'},
      {to:'panel8',text:'13%'},
      {to:'panel9',text:'33.3%'},
      {to:'panel10',text:'33.3%'},
      {to:'panel11',text:'33.3%'},
    ]
  }}
  ...
/>

zoom props

Example

<RFloater 
  ...
  zoom={0.4}
  ...
/>
3.0.1

4 years ago

3.0.0

4 years ago

2.0.0

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago