eapp-amis-theme-editor
Version:
amis主题编辑器
446 lines (443 loc) • 14 kB
JavaScript
/**
* amis-theme-editor v2.0.11-beta.2
* Copyright 2018-2023 @fex
*/
import { __assign } from 'tslib';
import { render } from 'amis-core';
import React__default from 'react';
import cx from 'classnames';
import { getSchemaTpl } from '../tpl.js';
import { registerComponent } from './index.js';
import { i18n } from 'i18n-runtime';
var FORM_BODY = [{
type: 'input-text',
name: 'name',
label: i18n("60d0458ac6ebef0fff1331af196b3c82"),
required: true,
description: i18n("f99b9e155fff98ff8472170264afa40c")
}, {
type: 'input-number',
name: 'old',
className: 'dasdas',
label: i18n("a01a9963238df560a9b974f45c7e253a")
}, {
type: 'radios',
name: 'sex',
label: i18n("787b5677e325beec788727cd1a327f1f"),
options: [i18n("36a4908a557796858a347c063a73ce60"), i18n("87c835a6b1749374a7524a596087b296")]
}];
var ThemeFormItem = function (props) {
var onEdit = props.onEdit,
activeId = props.activeId;
function handleEditDefault() {
onEdit({
title: i18n("b6453aea1848b65a9a76cccca94715ec"),
path: "component.form.item.default",
body: getSchemaTpl('collapseGroup', [{
title: i18n("55b45c73ae417c4dead67905b1550e85"),
body: [{
label: i18n("392f6fc3cee2d453359856cd92db2fed"),
type: 'amis-theme-select',
name: 'item.body.gap',
options: '${sizesOptions}'
}]
}, {
title: 'Label',
body: [{
type: 'amis-theme-font-editor',
label: i18n("ca746b1ff10193a3ce20878dec04a733"),
mode: 'default',
hasSenior: false,
hideFontFamily: true,
name: 'label.body.font'
}, {
title: i18n("9bbeaf90ee1fa6234ad7d433425cff15"),
type: 'amis-theme-wrapper',
label: false,
body: [{
type: 'amis-theme-color-picker',
label: i18n("6b36c6f7ec834692ec6c8e3816349fdd"),
labelMode: 'input',
name: 'star.body.color',
options: '${colorOptions}'
}, {
type: 'amis-theme-select',
name: 'star.body.size',
label: i18n("58f966670529f4753fb3c5a0647606be"),
extraUnit: ['px'],
options: '${sizesOptions}'
}]
}]
}, {
title: i18n("3bdd08adab6ea90b9164b20a0e4151ac"),
body: [{
type: 'amis-theme-font-editor',
label: i18n("ca746b1ff10193a3ce20878dec04a733"),
mode: 'default',
hasSenior: false,
hideFontFamily: true,
name: 'description.body.font'
}, {
type: 'amis-theme-wrapper',
label: false,
title: i18n("60bac4c0a381a42b320a703227be59eb"),
body: [{
label: i18n("9d10187a72e379ac7c6e66a9bdf7a320"),
type: 'amis-theme-select',
name: 'description.body.gap',
options: '${sizesOptions}'
}]
}]
}])
});
}
function handleEditError() {
onEdit({
title: i18n("8b4046555c06c7cb247740baa006a6fa"),
path: "component.form.item.error",
body: getSchemaTpl('collapseGroup', [{
title: i18n("55b45c73ae417c4dead67905b1550e85"),
body: [{
type: 'amis-theme-wrapper',
label: false,
title: 'Label',
body: [{
type: 'amis-theme-color-picker',
label: i18n("7ec907e7059b758ace2f3adb9bb803ff"),
labelMode: 'input',
name: 'item.body.color',
options: '${colorOptions}'
}]
}, {
type: 'amis-theme-wrapper',
label: false,
title: i18n("e637279acf2be77255f49808fa5b02ce"),
body: [{
type: 'amis-theme-color-picker',
label: i18n("9b4bae5d8251de0b6f00b704936b00d3"),
labelMode: 'input',
name: 'item.body.borderColor',
options: '${colorOptions}'
}, {
type: 'amis-theme-color-picker',
label: i18n("4573a75803e7724664b158582b7ed243"),
labelMode: 'input',
name: 'item.body.bg',
options: '${colorOptions}'
}]
}]
}, {
title: i18n("d7a169e81b60ee08c82b5d9de473e362"),
body: [{
type: 'amis-theme-font-editor',
label: i18n("ca746b1ff10193a3ce20878dec04a733"),
mode: 'default',
hasSenior: false,
hideFontFamily: true,
name: 'feedBack.body.font'
}, {
type: 'amis-theme-wrapper',
label: false,
title: i18n("60bac4c0a381a42b320a703227be59eb"),
body: [{
label: i18n("9d10187a72e379ac7c6e66a9bdf7a320"),
type: 'amis-theme-select',
name: 'feedBack.body.gap',
options: '${sizesOptions}'
}]
}]
}])
});
}
return React__default.createElement("div", {
className: "Theme-form"
}, React__default.createElement("div", {
className: "Theme-form-item"
}, React__default.createElement("div", {
className: "Theme-form-item-title"
}, "\u5E38\u89C4\u6001"), React__default.createElement("div", {
className: cx('Theme-form-item-content', activeId === 'component.form.item.default' && 'Theme-form-item-content--active'),
onClick: handleEditDefault
}, render({
type: 'form',
wrapWithPanel: false,
body: FORM_BODY
}))), React__default.createElement("div", {
className: "Theme-form-item"
}, React__default.createElement("div", {
className: "Theme-form-item-title"
}, "\u9519\u8BEF\u6001"), React__default.createElement("div", {
className: cx('Theme-form-item-content', activeId === 'component.form.item.error' && 'Theme-form-item-content--active'),
onClick: handleEditError
}, render({
type: 'form',
body: FORM_BODY.map(function (n) {
return Object.assign({}, n, {
required: true
});
}),
wrapWithPanel: false,
onInit: function (data, props) {
var _a;
(_a = props.store) === null || _a === void 0 ? void 0 : _a.validate();
}
}))));
};
var ThemeFormMode = function (props) {
var activeId = props.activeId,
onEdit = props.onEdit;
function handleEditDefault() {
onEdit({
title: i18n("0640c136fc6056181391eeb9be16f040"),
path: "component.form.mode.default.body",
body: getSchemaTpl('collapseGroup', [{
title: 'Label',
body: [{
label: i18n("392f6fc3cee2d453359856cd92db2fed"),
type: 'amis-theme-select',
hidePadding: true,
name: 'labelGap',
options: '${sizesOptions}'
}, {
label: i18n("c28479019e24e0e4745f4948e9e97ee7"),
type: 'amis-theme-select',
name: 'width',
extraUnit: ['px', 'rem', '%'],
options: '${sizesOptions}'
}]
}])
});
}
function handleEditHorizontal() {
onEdit({
title: i18n("faac320e697c1db2e0aefcfcc7aa7a20"),
path: "component.form.mode.horizontal",
body: getSchemaTpl('collapseGroup', [{
title: 'Label',
body: [{
type: 'amis-theme-wrapper',
label: false,
title: i18n("60bac4c0a381a42b320a703227be59eb"),
body: [{
label: i18n("5a00168d3cac733b8a128c9639e66b64"),
type: 'amis-theme-select',
name: 'label.body.gap',
options: '${sizesOptions}'
}]
}, {
type: 'amis-theme-wrapper',
label: false,
title: i18n("de515eb98fa2a33edb2523356036a440"),
body: [{
mode: 'default',
label: i18n("cf8852316501c22ea19c4e432c59e7d7"),
type: 'amis-theme-select',
name: 'label.body.widthBase',
extraUnit: ['px', 'rem', '%'],
options: '${sizesOptions}'
}, {
mode: 'default',
label: i18n("1d03636aec0ad2d34e5ae8cee99d3086"),
type: 'amis-theme-select',
name: 'label.body.widthXs',
extraUnit: ['px', 'rem', '%'],
options: '${sizesOptions}'
}, {
mode: 'default',
label: i18n("aafba653c803bbccd1dcb2e04882ce3a"),
type: 'amis-theme-select',
name: 'label.body.widthSm',
extraUnit: ['px', 'rem', '%'],
options: '${sizesOptions}'
}, {
mode: 'default',
label: i18n("024d52b060773d4c0babdf3279427453"),
type: 'amis-theme-select',
name: 'label.body.widthMd',
extraUnit: ['px', 'rem', '%'],
options: '${sizesOptions}'
}, {
mode: 'default',
label: i18n("30d2724ac49254e03c13525093c58b49"),
type: 'amis-theme-select',
name: 'label.body.widthLg',
extraUnit: ['px', 'rem', '%'],
options: '${sizesOptions}'
}]
}]
}, {
title: i18n("bb79667f37035e9562ec6bcffd6cf8ef"),
body: [{
type: 'amis-theme-wrapper',
label: false,
title: i18n("c8339fd2a85af4ba66084d28df808de4"),
body: [{
mode: 'default',
label: i18n("99b57d8c9244ff9a695fcd519b4e2e57"),
type: 'amis-theme-select',
name: 'value.body.size.maxWidth',
extraUnit: ['px', 'rem', '%'],
options: '${sizesOptions}'
}, {
mode: 'default',
label: i18n("a2b62974f4d7564bb68b570116f25a10"),
type: 'amis-theme-select',
name: 'value.body.size.minWidth',
extraUnit: ['px', 'rem', '%'],
options: '${sizesOptions}'
}]
}]
}])
});
}
function handleEditInline() {
onEdit({
title: i18n("2fb0853874c2cc8cc42f0c7520af662a"),
path: "component.form.mode.inline",
body: getSchemaTpl('collapseGroup', [{
title: 'Label',
body: [{
label: i18n("60bac4c0a381a42b320a703227be59eb"),
type: 'amis-theme-select',
name: 'label.body.gap',
options: '${sizesOptions}'
}]
}, {
title: i18n("55b45c73ae417c4dead67905b1550e85"),
body: [{
label: i18n("60bac4c0a381a42b320a703227be59eb"),
type: 'amis-theme-select',
name: 'item.body.gap',
options: '${sizesOptions}'
}]
}])
});
}
return React__default.createElement("div", {
className: "Theme-form"
}, React__default.createElement("div", {
className: "Theme-form-item"
}, React__default.createElement("div", {
className: "Theme-form-item-title"
}, "\u5782\u76F4\u6A21\u5F0F"), React__default.createElement("div", {
className: cx('Theme-form-item-content', activeId === 'component.form.mode.default.body' && 'Theme-form-item-content--active'),
onClick: handleEditDefault
}, render({
type: 'form',
wrapWithPanel: false,
body: FORM_BODY
}))), React__default.createElement("div", {
className: "Theme-form-item"
}, React__default.createElement("div", {
className: "Theme-form-item-title"
}, "\u6C34\u5E73\u6A21\u5F0F"), React__default.createElement("div", {
className: cx('Theme-form-item-content', activeId === 'component.form.mode.horizontal' && 'Theme-form-item-content--active'),
onClick: handleEditHorizontal
}, render({
type: 'form',
mode: 'horizontal',
className: 'mb-4',
wrapWithPanel: false,
body: [{
type: 'input-text',
name: 'name',
label: i18n("18c63459a2c069022c7790430f761214"),
required: true
}]
}), render({
type: 'form',
mode: 'horizontal',
className: 'mb-4',
wrapWithPanel: false,
horizontal: {
leftFixed: 'xs'
},
body: [{
type: 'input-text',
name: 'name',
label: i18n("675728aaaf6196263b107b69d2726141"),
required: true
}]
}), render({
type: 'form',
mode: 'horizontal',
className: 'mb-4',
wrapWithPanel: false,
horizontal: {
leftFixed: 'sm'
},
body: [{
type: 'input-text',
name: 'name',
label: i18n("56dba4943b0f73ff56a6defc82dad420"),
required: true
}]
}), render({
type: 'form',
mode: 'horizontal',
className: 'mb-4',
wrapWithPanel: false,
horizontal: {
leftFixed: 'md'
},
body: [{
type: 'input-text',
name: 'name',
label: i18n("8a11d92644e622367ebbe04d6fb0a309"),
required: true
}]
}), render({
type: 'form',
mode: 'horizontal',
wrapWithPanel: false,
horizontal: {
leftFixed: 'lg'
},
body: [{
type: 'input-text',
name: 'name',
label: i18n("942345f2121ee08fa2405c4bfb401b96"),
required: true
}]
}))), React__default.createElement("div", {
className: "Theme-form-item"
}, React__default.createElement("div", {
className: "Theme-form-item-title"
}, "\u5185\u8054\u6A21\u5F0F"), React__default.createElement("div", {
className: cx('Theme-form-item-content', activeId === 'component.form.mode.inline' && 'Theme-form-item-content--active'),
onClick: handleEditInline
}, render({
type: 'form',
wrapWithPanel: false,
mode: 'inline',
body: FORM_BODY
}))));
};
var ThemeForm = function (props) {
return {
title: i18n("9ac4c7206f1a26393c6f5f1af0d3b1d1"),
body: [{
title: i18n("e1371d733ff347664655629011b4130f"),
body: function (onEdit) {
return React__default.createElement(ThemeFormItem, __assign({}, props, {
onEdit: onEdit
}));
}
}, {
title: i18n("f44b331cde71687ef54592e749c5eca7"),
body: function (onEdit) {
return React__default.createElement(ThemeFormMode, __assign({}, props, {
onEdit: onEdit
}));
}
}]
};
};
registerComponent('form', {
type: 'data-entry',
label: i18n("eee1e2258d7ea163fec625ee44be9637"),
key: 'form',
component: function () {
return ThemeForm;
}
});