{"version":3,"file":"index.jsx","sourceRoot":"lib/","sources":["widgets/DesignerToolsWidget/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// import React, { Fragment, useRef } from 'react'\nimport { FragmentComponent as Fragment } from '@formily/vue'\nimport { observer } from '@formily/reactive-vue'\nimport { Button, InputNumber } from '@gaoding/gd-antd-plus'\nimport { CursorType, ScreenType } from '@designable/core'\nimport {\n  useCursor,\n  useHistory,\n  useScreen,\n  usePrefix,\n  useWorkbench,\n} from '../../hooks'\n\nimport { CSSProperties } from '@vue/runtime-dom'\n\nimport { IconWidget } from '../IconWidget'\nimport cls from 'classnames'\nimport './styles.less'\nimport { defineComponent, reactive } from 'vue-demi'\nimport { useStyle } from '../../shared'\n\ntype DesignerToolsType = 'HISTORY' | 'CURSOR' | 'SCREEN_TYPE'\n\nexport type IDesignerToolsWidgetProps = {\n  className?: string\n  style?: CSSProperties\n  use?: DesignerToolsType[]\n}\n\nconst DesignerToolsWidgetComponent = defineComponent({\n  name: 'DesignerToolsWidget',\n  props: {\n    className: String,\n    use: { type: Array, default: () => ['HISTORY', 'CURSOR', 'SCREEN_TYPE'] },\n  },\n  emits: ['change'],\n  setup(props) {\n    const screenRef = useScreen()\n    const cursorRef = useCursor()\n    const workbenchRef = useWorkbench()\n    const historyRef = useHistory()\n    const sizeRef = reactive<{ width?: any; height?: any }>({\n      width: null,\n      height: null,\n    })\n    const prefixRef = usePrefix('designer-tools')\n    const style = useStyle()\n\n    return () => {\n      const renderResponsiveController = () => {\n        if (!props.use.includes('SCREEN_TYPE')) return null\n        if (screenRef.value.type !== ScreenType.Responsive) return null\n        return (\n          <>\n            <InputNumber\n              size='small'\n              controls={false}\n              modelValue={screenRef.value.width}\n              style={{ width: '110px', textAlign: 'center' }}\n              {...{\n                \"onUpdate:modelValue\": (value) => {\n                  sizeRef.width = value\n                },\n                onKeyup: (e: KeyboardEvent) => {\n                  if (e.key === 'Enter') {\n                    screenRef.value.setSize(sizeRef.width, screenRef.value.height)\n                  }\n                }\n              }}\n            />\n            <IconWidget\n              {...{ size: '10px' }}\n              infer=\"Close\"\n              style={{ padding: '0 3px', color: '#999' }}\n            />\n            <InputNumber\n              {...{\n                size: 'small',\n                controls: false,\n                modelValue: screenRef.value.height,\n                \"onUpdate:modelValue\": (value) => {\n                  sizeRef.height = value\n                },\n                onKeyup: (e: KeyboardEvent) => {\n                  if (e.key === 'Enter') {\n                    screenRef.value.setSize(screenRef.value.width, sizeRef.height)\n                  }\n                }\n              }}\n              style={{\n                width: '110px',\n                textAlign: 'center',\n                marginRight: '10px',\n              }}\n            />\n            {(screenRef.value.width !== '100%' ||\n              screenRef.value.height !== '100%') && (\n                <Button\n                  {...{ size: 'small' }}\n                  style={{ marginRight: '20px' }}\n                  onClick={() => {\n                    screenRef.value.resetSize()\n                  }}\n                >\n                  <IconWidget infer=\"Recover\" />\n                </Button>\n              )}\n          </>\n        )\n      }\n\n      const renderScreenTypeController = () => {\n        if (!props.use.includes('SCREEN_TYPE')) return null\n        return (\n          <Button.Group\n            size=\"small\"\n            style={{ marginRight: '20px' }}\n            key=\"renderScreenTypeController\"\n          >\n            <Button\n              {...{\n                size: 'small',\n                disabled: screenRef.value.type === ScreenType.PC,\n              }}\n              onClick={() => {\n                screenRef.value.setType(ScreenType.PC)\n              }}\n            >\n              <IconWidget infer=\"PC\" />\n            </Button>\n            <Button\n              {...{\n                size: 'small',\n                disabled: screenRef.value.type === ScreenType.Mobile,\n              }}\n              onClick={() => {\n                screenRef.value.setType(ScreenType.Mobile)\n              }}\n            >\n              <IconWidget infer=\"Mobile\" />\n            </Button>\n            <Button\n              {...{\n                size: 'small',\n                disabled: screenRef.value.type === ScreenType.Responsive,\n              }}\n              onClick={() => {\n                screenRef.value.setType(ScreenType.Responsive)\n              }}\n            >\n              <IconWidget infer=\"Responsive\" />\n            </Button>\n          </Button.Group>\n        )\n      }\n\n      const renderMobileController = () => {\n        if (!props.use.includes('SCREEN_TYPE')) return null\n        if (screenRef.value.type !== ScreenType.Mobile) return\n        return (\n          <Button\n            {...{ size: 'small' }}\n            style={{ marginRight: '20px' }}\n            onClick={() => {\n              screenRef.value.setFlip(!screenRef.value.flip)\n            }}\n          >\n            <IconWidget\n              infer=\"Flip\"\n              style={{\n                transition: 'all .15s ease-in',\n                transform: screenRef.value.flip ? 'rotate(-90deg)' : '',\n              }}\n            />\n          </Button>\n        )\n      }\n\n      const renderHistoryController = () => {\n        if (!props.use.includes('HISTORY')) return null\n        return (\n          <Button.Group\n            {...{ size: 'small' }}\n            style={{ marginRight: '20px' }}\n            key=\"renderHistoryController\"\n          >\n            <Button\n              {...{ size: 'small', disabled: !historyRef.value?.allowUndo }}\n              onClick={() => {\n                historyRef.value.undo()\n              }}\n            >\n              <IconWidget infer=\"Undo\" />\n            </Button>\n            <Button\n              {...{ size: 'small', disabled: !historyRef.value?.allowRedo }}\n              onClick={() => {\n                historyRef.value.redo()\n              }}\n            >\n              <IconWidget infer=\"Redo\" />\n            </Button>\n          </Button.Group>\n        )\n      }\n      const renderCursorController = () => {\n        if (workbenchRef.value.type !== 'DESIGNABLE') return null\n        if (!props.use.includes('CURSOR')) return null\n        return (\n          <Button.Group\n            size=\"small\"\n            style={{ marginRight: '20px' }}\n            key=\"renderCursorController\"\n          >\n            <Button\n              {...{\n                size: 'small',\n                disabled: cursorRef.value.type === CursorType.Move,\n              }}\n              onClick={() => {\n                cursorRef.value.setType(CursorType.Move)\n              }}\n            >\n              <IconWidget infer=\"Move\" />\n            </Button>\n            <Button\n              {...{\n                size: 'small',\n                disabled: cursorRef.value.type === CursorType.Selection,\n              }}\n              onClick={() => {\n                cursorRef.value.setType(CursorType.Selection)\n              }}\n            >\n              <IconWidget infer=\"Selection\" />\n            </Button>\n          </Button.Group>\n        )\n      }\n      return (\n        <div style={style} class={cls(prefixRef.value, props.className)}>\n          {renderHistoryController()}\n          {renderCursorController()}\n          {renderScreenTypeController()}\n          {renderMobileController()}\n          {renderResponsiveController()}\n        </div>\n      )\n    }\n  },\n})\n\nexport const DesignerToolsWidget = observer(DesignerToolsWidgetComponent)\n"]}