eapp-amis-theme-editor
Version:
amis主题编辑器
231 lines (228 loc) • 7.38 kB
JavaScript
/**
* amis-theme-editor v2.0.11-beta.2
* Copyright 2018-2023 @fex
*/
import { __assign, __spreadArray } 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 ThemeDrawerContent = function (props) {
var onEdit = props.onEdit,
activeId = props.activeId;
var drawerSchema = {
type: 'button-toolbar',
className: 'block m-t',
buttons: [{
type: 'button',
label: i18n("40c8b8b095c7fd260543d2e567a1e217"),
actionType: 'drawer',
drawer: {
position: 'right',
size: 'xs',
title: i18n("02d9819ddaaaeb1b7b22b12608c7e5ca"),
body: i18n("540835392409bac76c02133d3adcccab")
}
}, {
type: 'button',
label: i18n("274018049ce921fe366cb965d8dfe6a7"),
actionType: 'drawer',
drawer: {
position: 'right',
size: 'sm',
title: i18n("02d9819ddaaaeb1b7b22b12608c7e5ca"),
body: i18n("540835392409bac76c02133d3adcccab")
}
}, {
type: 'button',
label: i18n("8a1b0b947d2dfd64a58d92f4637b085b"),
actionType: 'drawer',
drawer: {
position: 'right',
size: 'md',
title: i18n("02d9819ddaaaeb1b7b22b12608c7e5ca"),
body: i18n("540835392409bac76c02133d3adcccab")
}
}, {
type: 'button',
label: i18n("849b798e69df10532118a964dc9d25aa"),
actionType: 'drawer',
drawer: {
position: 'right',
size: 'lg',
title: i18n("02d9819ddaaaeb1b7b22b12608c7e5ca"),
body: i18n("540835392409bac76c02133d3adcccab")
}
}, {
type: 'button',
label: i18n("e893af2835bc40cfba48afb3541428ff"),
actionType: 'drawer',
drawer: {
size: 'xl',
position: 'right',
title: i18n("02d9819ddaaaeb1b7b22b12608c7e5ca"),
body: i18n("540835392409bac76c02133d3adcccab")
}
}]
};
function handleEditDefault() {
onEdit({
title: i18n("67c5d85363745c8dd722313da3ef5bb7"),
path: "component.drawer.base",
body: getSchemaTpl('collapseGroup', [{
title: 'header',
body: [{
type: 'amis-theme-select',
name: 'header.body.height',
label: i18n("c1df04eec5fa0857bc0df2d68d8e953c"),
extraUnit: ['px', 'rem'],
options: '${sizesOptions}'
}, {
type: 'amis-theme-font-editor',
label: i18n("ca746b1ff10193a3ce20878dec04a733"),
mode: 'default',
hasSenior: false,
hideFontFamily: true,
hideLineHeight: true,
name: 'header.body.font'
}]
}, {
title: 'content',
body: [{
type: 'amis-theme-wrapper',
label: false,
title: i18n("841d77223f0ec8cd0b530ed8e0775b20"),
body: [{
mode: 'default',
type: 'amis-theme-padding-and-margin',
name: 'content.body.padding-and-margin',
source: '${sizesOptions}',
hideMargin: true
}]
}]
}, {
title: 'footer',
body: [{
type: 'amis-theme-wrapper',
label: false,
title: i18n("c8339fd2a85af4ba66084d28df808de4"),
body: [{
type: 'amis-theme-select',
name: 'footer.body.height',
label: i18n("c1df04eec5fa0857bc0df2d68d8e953c"),
extraUnit: ['px', 'rem'],
options: '${sizesOptions}'
}, {
type: 'amis-theme-select',
name: 'footer.body.margin-left',
label: i18n("19c3a04488f2de8a9e73d37b357ce709"),
extraUnit: ['px', 'rem'],
options: '${sizesOptions}'
}]
}]
}])
});
}
var DrawerStateFunc = function (visibleOn, state, type) {
return [{
title: i18n("c8339fd2a85af4ba66084d28df808de4"),
visibleOn: visibleOn,
body: [{
type: 'amis-theme-select',
name: "".concat(state, ".body.width"),
label: i18n("c28479019e24e0e4745f4948e9e97ee7"),
extraUnit: ['px', 'rem', '%'],
options: '${sizesOptions}'
}]
}];
};
var DrawerTypeConfig = function (type) {
return getSchemaTpl('collapseGroup', __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([{
title: i18n("4092ed98e9035652d4c9ca9441701ed7"),
body: [{
type: 'select',
name: 'state',
label: i18n("3fea7ca76cdece641436d7ab0d02ab1b"),
selectFirst: true,
options: [{
label: i18n("40c8b8b095c7fd260543d2e567a1e217"),
value: 'xs'
}, {
label: i18n("274018049ce921fe366cb965d8dfe6a7"),
value: 'sm'
}, {
label: i18n("8a1b0b947d2dfd64a58d92f4637b085b"),
value: 'md'
}, {
label: i18n("849b798e69df10532118a964dc9d25aa"),
value: 'lg'
}, {
label: i18n("e893af2835bc40cfba48afb3541428ff"),
value: 'xl'
}]
}]
}], DrawerStateFunc("${state == 'xs' || !state}", 'xs'), true), DrawerStateFunc("${state == 'sm'}", 'sm'), true), DrawerStateFunc("${state == 'md'}", 'md'), true), DrawerStateFunc("${state == 'lg'}", 'lg'), true), DrawerStateFunc("${state == 'xl'}", 'xl'), true));
};
function handleEditSize() {
onEdit({
title: i18n("ac1e94aa56d34a1e71768dabb2fae0d2"),
path: "component.drawer.size",
body: DrawerTypeConfig()
});
}
return React__default.createElement("div", {
className: "Theme-InputRange"
}, React__default.createElement("div", {
className: "Theme-InputRange-item"
}, React__default.createElement("div", {
className: "Theme-InputRange-item-title"
}, "\u9ED8\u8BA4\u6001"), React__default.createElement("div", {
className: cx('Theme-InputRange-item-content', activeId === "component.drawer.base" && 'Theme-InputRange-item-content--active'),
onClick: function () {
return handleEditDefault();
}
}, render({
label: i18n("43bf11d8fcad0a7843563f147dc04c7d"),
type: 'button',
actionType: 'drawer',
drawer: {
title: i18n("4cb9c4bc5cb960fcd03fceb2d2e62f3a"),
body: {
label: i18n("2d711b09bd0db0ad240cc83b30dd8014"),
type: 'button'
}
}
}))), React__default.createElement("div", {
className: "Theme-InputRange-item"
}, React__default.createElement("div", {
className: "Theme-InputRange-item-title"
}, "\u914D\u7F6E\u5C3A\u5BF8"), React__default.createElement("div", {
className: cx('Theme-InputRange-item-content', activeId === "component.drawer.size" && 'Theme-InputRange-item-content--active'),
onClick: function () {
return handleEditSize();
}
}, render(drawerSchema))));
};
var ThemeDrawer = function (props) {
return {
title: i18n("89bb9374be268779727ef01ad6f86e65"),
body: [{
title: i18n("e1371d733ff347664655629011b4130f"),
body: function (onEdit) {
return React__default.createElement(ThemeDrawerContent, __assign({}, props, {
onEdit: onEdit
}));
}
}]
};
};
registerComponent('drawer', {
type: 'data-entry',
label: i18n("2a2924380dfcaea998bd8a49703545a9"),
key: 'drawer',
component: function () {
return ThemeDrawer;
}
});