@chief-editor/brick-control
Version:
Control Brick for chief editor
1 lines • 2.06 kB
JavaScript
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var t,a=1,r=arguments.length;a<r;a++)for(var n in t=arguments[a])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t};Object.defineProperty(exports,"__esModule",{value:!0});var react_1=__importStar(require("react")),ui_1=require("@chief-editor/ui"),icons_1=require("@chief-editor/icons"),use_1=require("@rc-hooks/use");function SizeBrick(e){var t=e.styles,a=e.setValue,r=e.layout,n=e.value,i=e.config.props.defaultUniformScale,l=e.creator;return react_1.default.createElement("div",{"data-id":l,style:__assign(__assign({display:"flex"},r),t)},react_1.default.createElement(exports.SizeComponent,{value:n,onValueChange:a,defaultUniformScale:i}))}exports.SizeComponent=function(e){var t=e.value,a=e.onValueChange,r=e.defaultUniformScale,n=void 0!==r&&r,i=react_1.useState(n),l=i[0],u=i[1],c=use_1.useRefCallback(a),o=react_1.useCallback((function(e,a){var r=t.width,n=t.height;l&&(r=0===r?.5:r,n=0===n?.5:n),a?(l&&(r*=e/n),n=e):(l&&(n*=e/r),r=e),c({width:r,height:n})}),[t,l]),s=react_1.useCallback((function(e){return o(e)}),[t,l]),f=react_1.useCallback((function(e){return o(e,!0)}),[t,l]);return react_1.default.createElement("div",{style:{display:"flex",flex:"none"}},react_1.default.createElement(ui_1.InputNumber,{prefix:"W",onValueChange:s,min:0,value:t.width,style:{marginRight:"8px",width:100,flex:"none"}}),react_1.default.createElement(ui_1.InputNumber,{prefix:"H",onValueChange:f,value:t.height,min:0,style:{marginRight:"4px",width:100,flex:"none"}}),react_1.default.createElement(ui_1.Tag.Checkable,{style:{display:"flex",width:16,flex:"none",justifyContent:"center"},checked:l,onChange:u},react_1.default.createElement(icons_1.LinkRec,{style:{display:"flex",alignItems:"center",fontSize:"24px"}})))},exports.SizeBrick=SizeBrick;