react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
60 lines (54 loc) • 5.81 kB
JavaScript
import React from 'react';
var WIDTH = 10;
var DEPTH = 20;
var HEIGHT = 20;
export default {
name: 'camera',
prototype: 'items',
info: {
tag: ['security', 'metal'],
group: 'items',
title: 'camera',
description: 'camera',
image: require('./camera.png')
},
properties: {
access: {
label: 'access',
type: 'string',
defaultValue: "none"
},
serialNumber: {
label: 'serial Number',
type: 'string',
defaultValue: "none"
},
insideZone: {
label: 'inside Zone',
type: 'enum',
defaultValue: "source",
values: { "source": "source", "target": "target" }
}
},
render2D: function render2D(element, layer, scene) {
var angle = element.rotation + 90;
var textRotation = 0;
if (Math.sin(angle * Math.PI / 180) < 0) {
textRotation = 180;
}
return React.createElement(
'g',
{ transform: 'translate(' + -WIDTH / 2 + ',' + -DEPTH / 2 + ')' },
React.createElement('rect', { key: '1', x: '0', y: '0', width: WIDTH, height: DEPTH,
style: { stroke: element.selected ? '#0096fd' : '#000', strokeWidth: '2px', fill: '#84e1ce' } }),
React.createElement(
'text',
{ key: '2', x: '0', y: '0',
transform: 'translate(' + WIDTH / 2 + ', ' + DEPTH / 2 + ') scale(1,-1) rotate(' + textRotation + ')',
style: { textAnchor: 'middle', fontSize: '11px' } },
element.type
)
);
}
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jYXRhbG9nL215Q2F0YWxvZy9pdGVtcy9jYW1lcmEvcGxhbm5lci1lbGVtZW50LmpzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIldJRFRIIiwiREVQVEgiLCJIRUlHSFQiLCJuYW1lIiwicHJvdG90eXBlIiwiaW5mbyIsInRhZyIsImdyb3VwIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImltYWdlIiwicmVxdWlyZSIsInByb3BlcnRpZXMiLCJhY2Nlc3MiLCJsYWJlbCIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJzZXJpYWxOdW1iZXIiLCJpbnNpZGVab25lIiwidmFsdWVzIiwicmVuZGVyMkQiLCJlbGVtZW50IiwibGF5ZXIiLCJzY2VuZSIsImFuZ2xlIiwicm90YXRpb24iLCJ0ZXh0Um90YXRpb24iLCJNYXRoIiwic2luIiwiUEkiLCJzdHJva2UiLCJzZWxlY3RlZCIsInN0cm9rZVdpZHRoIiwiZmlsbCIsInRleHRBbmNob3IiLCJmb250U2l6ZSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsS0FBUCxNQUFrQixPQUFsQjs7QUFFQSxJQUFNQyxRQUFRLEVBQWQ7QUFDQSxJQUFNQyxRQUFRLEVBQWQ7QUFDQSxJQUFNQyxTQUFTLEVBQWY7O0FBRUEsZUFBZTtBQUNiQyxRQUFNLFFBRE87QUFFYkMsYUFBVyxPQUZFO0FBR2JDLFFBQU07QUFDSkMsU0FBSyxDQUFDLFVBQUQsRUFBYSxPQUFiLENBREQ7QUFFSkMsV0FBTyxPQUZIO0FBR0pDLFdBQU8sUUFISDtBQUlKQyxpQkFBYSxRQUpUO0FBS0pDLFdBQU9DLFFBQVEsY0FBUjtBQUxILEdBSE87QUFVYkMsY0FBWTtBQUNWQyxZQUFRO0FBQ05DLGFBQU8sUUFERDtBQUVOQyxZQUFNLFFBRkE7QUFHTkMsb0JBQWM7QUFIUixLQURFO0FBTVZDLGtCQUFjO0FBQ1pILGFBQU8sZUFESztBQUVaQyxZQUFNLFFBRk07QUFHWkMsb0JBQWM7QUFIRixLQU5KO0FBV1ZFLGdCQUFZO0FBQ1ZKLGFBQU8sYUFERztBQUVWQyxZQUFNLE1BRkk7QUFHVkMsb0JBQWMsUUFISjtBQUlWRyxjQUFPLEVBQUMsVUFBUyxRQUFWLEVBQW1CLFVBQVMsUUFBNUI7QUFKRztBQVhGLEdBVkM7O0FBNkJiQyxZQUFVLGtCQUFVQyxPQUFWLEVBQW1CQyxLQUFuQixFQUEwQkMsS0FBMUIsRUFBaUM7O0FBRXpDLFFBQUlDLFFBQVFILFFBQVFJLFFBQVIsR0FBbUIsRUFBL0I7O0FBRUEsUUFBSUMsZUFBZSxDQUFuQjtBQUNBLFFBQUlDLEtBQUtDLEdBQUwsQ0FBU0osUUFBUUcsS0FBS0UsRUFBYixHQUFrQixHQUEzQixJQUFrQyxDQUF0QyxFQUF5QztBQUN2Q0gscUJBQWUsR0FBZjtBQUNEOztBQUVELFdBQ0U7QUFBQTtBQUFBLFFBQUcsMEJBQXdCLENBQUMxQixLQUFELEdBQVMsQ0FBakMsU0FBc0MsQ0FBQ0MsS0FBRCxHQUFPLENBQTdDLE1BQUg7QUFDQSxvQ0FBTSxLQUFJLEdBQVYsRUFBYyxHQUFFLEdBQWhCLEVBQW9CLEdBQUUsR0FBdEIsRUFBMEIsT0FBT0QsS0FBakMsRUFBeUMsUUFBUUMsS0FBakQ7QUFDRSxlQUFPLEVBQUM2QixRQUFRVCxRQUFRVSxRQUFSLEdBQW1CLFNBQW5CLEdBQStCLE1BQXhDLEVBQWdEQyxhQUFhLEtBQTdELEVBQW9FQyxNQUFNLFNBQTFFLEVBRFQsR0FEQTtBQUdBO0FBQUE7QUFBQSxVQUFNLEtBQUksR0FBVixFQUFjLEdBQUUsR0FBaEIsRUFBb0IsR0FBRSxHQUF0QjtBQUNNLG9DQUF3QmpDLFFBQVEsQ0FBaEMsVUFBc0NDLFFBQVEsQ0FBOUMsNkJBQXVFeUIsWUFBdkUsTUFETjtBQUVFLGlCQUFPLEVBQUNRLFlBQVksUUFBYixFQUF1QkMsVUFBVSxNQUFqQyxFQUZUO0FBR0dkLGdCQUFRTjtBQUhYO0FBSEEsS0FERjtBQVdEO0FBakRZLENBQWYiLCJmaWxlIjoicGxhbm5lci1lbGVtZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuY29uc3QgV0lEVEggPSAxMDtcbmNvbnN0IERFUFRIID0gMjA7XG5jb25zdCBIRUlHSFQgPSAyMDtcblxuZXhwb3J0IGRlZmF1bHQge1xuICBuYW1lOiAnY2FtZXJhJyxcbiAgcHJvdG90eXBlOiAnaXRlbXMnLFxuICBpbmZvOiB7XG4gICAgdGFnOiBbJ3NlY3VyaXR5JywgJ21ldGFsJ10sXG4gICAgZ3JvdXA6ICdpdGVtcycsXG4gICAgdGl0bGU6ICdjYW1lcmEnLFxuICAgIGRlc2NyaXB0aW9uOiAnY2FtZXJhJyxcbiAgICBpbWFnZTogcmVxdWlyZSgnLi9jYW1lcmEucG5nJylcbiAgfSxcbiAgcHJvcGVydGllczoge1xuICAgIGFjY2Vzczoge1xuICAgICAgbGFiZWw6ICdhY2Nlc3MnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IFwibm9uZVwiLFxuICAgIH0sXG4gICAgc2VyaWFsTnVtYmVyOiB7XG4gICAgICBsYWJlbDogJ3NlcmlhbCBOdW1iZXInLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBkZWZhdWx0VmFsdWU6IFwibm9uZVwiLFxuICAgIH0sXG4gICAgaW5zaWRlWm9uZToge1xuICAgICAgbGFiZWw6ICdpbnNpZGUgWm9uZScsXG4gICAgICB0eXBlOiAnZW51bScsXG4gICAgICBkZWZhdWx0VmFsdWU6IFwic291cmNlXCIsXG4gICAgICB2YWx1ZXM6e1wic291cmNlXCI6XCJzb3VyY2VcIixcInRhcmdldFwiOlwidGFyZ2V0XCJ9XG4gICAgfVxuICB9LFxuXG4gIHJlbmRlcjJEOiBmdW5jdGlvbiAoZWxlbWVudCwgbGF5ZXIsIHNjZW5lKSB7XG5cbiAgICBsZXQgYW5nbGUgPSBlbGVtZW50LnJvdGF0aW9uICsgOTA7XG5cbiAgICBsZXQgdGV4dFJvdGF0aW9uID0gMDtcbiAgICBpZiAoTWF0aC5zaW4oYW5nbGUgKiBNYXRoLlBJIC8gMTgwKSA8IDApIHtcbiAgICAgIHRleHRSb3RhdGlvbiA9IDE4MDtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGcgdHJhbnNmb3JtPXtgdHJhbnNsYXRlKCR7LVdJRFRIIC8gMn0sJHstREVQVEgvMn0pYH0+XG4gICAgICA8cmVjdCBrZXk9JzEnIHg9JzAnIHk9JzAnIHdpZHRoPXtXSURUSH0gIGhlaWdodD17REVQVEh9XG4gICAgICAgIHN0eWxlPXt7c3Ryb2tlOiBlbGVtZW50LnNlbGVjdGVkID8gJyMwMDk2ZmQnIDogJyMwMDAnLCBzdHJva2VXaWR0aDogJzJweCcsIGZpbGw6ICcjODRlMWNlJ319Lz5cbiAgICAgIDx0ZXh0IGtleT0nMicgeD0nMCcgeT0nMCdcbiAgICAgICAgICAgIHRyYW5zZm9ybT17YHRyYW5zbGF0ZSgke1dJRFRIIC8gMn0sICR7REVQVEggLyAyfSkgc2NhbGUoMSwtMSkgcm90YXRlKCR7dGV4dFJvdGF0aW9ufSlgfVxuICAgICAgICBzdHlsZT17e3RleHRBbmNob3I6ICdtaWRkbGUnLCBmb250U2l6ZTogJzExcHgnfX0+XG4gICAgICAgIHtlbGVtZW50LnR5cGV9XG4gICAgICAgIDwvdGV4dD5cbiAgICAgICAgPC9nPlxuICAgIClcbiAgfSxcbn07XG4iXX0=