plain-design 1.0.0-beta.84 → 1.0.0-beta.86
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/plain-design.commonjs.min.js +2 -2
- package/dist/plain-design.min.css +4 -4
- package/dist/plain-design.min.js +2 -2
- package/dist/report.html +2 -2
- package/package.json +1 -1
- package/src/packages/components/ThemeColorSelector/index.tsx +10 -2
- package/src/packages/components/ThemeDarkSelector/index.tsx +11 -3
- package/src/packages/components/ThemeLocaleSelector/index.tsx +11 -2
- package/src/packages/components/ThemeShapeSelector/index.tsx +9 -3
- package/src/packages/components/ThemeSizeSelector/index.tsx +10 -4
- package/src/packages/styles/global.import.scss +1 -1
package/package.json
CHANGED
@@ -8,13 +8,21 @@ import DropdownOption from "../DropdownOption";
|
|
8
8
|
export const ThemeColorSelector = designComponent({
|
9
9
|
name: 'theme-color-selector',
|
10
10
|
inheritPropsType: Dropdown,
|
11
|
-
|
11
|
+
emits: {
|
12
|
+
onChange: (primaryKey: string) => true,
|
13
|
+
},
|
14
|
+
setup({ event: { emit } }) {
|
12
15
|
|
13
16
|
const classes = useClassCache(() => [
|
14
17
|
getComponentCls('theme-selector'),
|
15
18
|
getComponentCls('theme-color-selector'),
|
16
19
|
]);
|
17
20
|
|
21
|
+
const change = (key: string) => {
|
22
|
+
PageThemeUtils.primary(key);
|
23
|
+
emit.onChange(key);
|
24
|
+
};
|
25
|
+
|
18
26
|
return () => (
|
19
27
|
<Dropdown
|
20
28
|
trigger="hover"
|
@@ -27,7 +35,7 @@ export const ThemeColorSelector = designComponent({
|
|
27
35
|
</div>
|
28
36
|
),
|
29
37
|
popper: () => Object.entries(ThemePrimaryColors).map(([key]) => (
|
30
|
-
<DropdownOption key={key} onClick={() =>
|
38
|
+
<DropdownOption key={key} onClick={() => change(key)}>
|
31
39
|
<ThemeColor className="dropdown-theme-color" primaryKey={key}/>
|
32
40
|
</DropdownOption>
|
33
41
|
))
|
@@ -7,15 +7,23 @@ import './theme-dark-selector.scss';
|
|
7
7
|
|
8
8
|
export const ThemeDarkSelector = designComponent({
|
9
9
|
name: 'theme-dark-selector',
|
10
|
-
|
11
|
-
|
10
|
+
emits: {
|
11
|
+
onChange: (dark: boolean) => true,
|
12
|
+
},
|
13
|
+
setup({ event: { emit } }) {
|
14
|
+
|
12
15
|
const classes = useClassCache(() => [
|
13
16
|
getComponentCls('theme-selector'),
|
14
17
|
getComponentCls('theme-dark-selector'),
|
15
18
|
]);
|
19
|
+
|
20
|
+
const change = () => {
|
21
|
+
PageThemeUtils.toggle();
|
22
|
+
emit.onChange(!!PageThemeUtils.state.dark);
|
23
|
+
};
|
16
24
|
return () => (
|
17
25
|
<Tooltip message={i18n.$it('theme.darkOrLight').d("深浅主题")}>
|
18
|
-
<div className={classes.value} onClick={
|
26
|
+
<div className={classes.value} onClick={change}>
|
19
27
|
<Icon icon={PageThemeUtils.state.dark ? 'pi-sun' : 'pi-moon'}/>
|
20
28
|
</div>
|
21
29
|
</Tooltip>
|
@@ -7,15 +7,24 @@ import './theme-locale-selector.scss';
|
|
7
7
|
|
8
8
|
export const ThemeLocaleSelector = designComponent({
|
9
9
|
name: 'theme-locale-selector',
|
10
|
-
|
10
|
+
emits: {
|
11
|
+
onChange: (locale: string) => true,
|
12
|
+
},
|
13
|
+
setup({ event: { emit } }) {
|
11
14
|
const classes = useClassCache(() => [
|
12
15
|
getComponentCls('theme-selector'),
|
13
16
|
getComponentCls('theme-locale-selector'),
|
14
17
|
]);
|
18
|
+
|
19
|
+
const change = (key: string, fn: () => any) => {
|
20
|
+
i18n.switchTo(key, fn);
|
21
|
+
emit.onChange(key);
|
22
|
+
};
|
23
|
+
|
15
24
|
return () => (
|
16
25
|
<Dropdown trigger="hover" align="center" placement="bottom" hideOnClickReference={false} v-slots={{
|
17
26
|
popper: () => i18n.state.localeOptions.map(opt => (
|
18
|
-
<DropdownOption label={opt.label} key={opt.label} onClick={() =>
|
27
|
+
<DropdownOption label={opt.label} key={opt.label} onClick={() => change(opt.key, () => opt.lang)}/>
|
19
28
|
)),
|
20
29
|
default: () => (
|
21
30
|
<div className={classes.value}>
|
@@ -9,7 +9,10 @@ import './theme-shape-selector.scss';
|
|
9
9
|
|
10
10
|
export const ThemeShapeSelector = designComponent({
|
11
11
|
name: 'theme-shape-selector',
|
12
|
-
|
12
|
+
emits: {
|
13
|
+
onChange: (shape: typeof ThemeShape.TYPE) => true,
|
14
|
+
},
|
15
|
+
setup({ event: { emit } }) {
|
13
16
|
|
14
17
|
const radiusOptions = computed((): { label: string, val: string | undefined }[] => [
|
15
18
|
{ label: i18n.$it('theme.radiusOptions.round').d('圆角'), val: undefined },
|
@@ -17,7 +20,10 @@ export const ThemeShapeSelector = designComponent({
|
|
17
20
|
{ label: i18n.$it('theme.radiusOptions.none').d('无圆角'), val: ThemeShape.none },
|
18
21
|
]);
|
19
22
|
|
20
|
-
const
|
23
|
+
const change = (shape: typeof ThemeShape.TYPE) => {
|
24
|
+
PageThemeUtils.shape(shape);
|
25
|
+
emit.onChange(shape);
|
26
|
+
};
|
21
27
|
|
22
28
|
const classes = useClassCache(() => [
|
23
29
|
getComponentCls('theme-selector'),
|
@@ -36,7 +42,7 @@ export const ThemeShapeSelector = designComponent({
|
|
36
42
|
</div>
|
37
43
|
),
|
38
44
|
popper: () => radiusOptions.value.map(opt => (
|
39
|
-
<DropdownOption label={opt.label} val={opt.val} key={opt.val || ""} onClick={() =>
|
45
|
+
<DropdownOption label={opt.label} val={opt.val} key={opt.val || ""} onClick={() => change(opt.val as any)}/>
|
40
46
|
)),
|
41
47
|
}}
|
42
48
|
/>
|
@@ -5,11 +5,14 @@ import i18n from "../i18n";
|
|
5
5
|
import Icon from "../Icon";
|
6
6
|
import PageThemeUtils from "../PageThemeUtils";
|
7
7
|
import './theme-size-selector.scss';
|
8
|
+
import {ThemeSize} from "../../uses/useStyle";
|
8
9
|
|
9
10
|
export const ThemeSizeSelector = designComponent({
|
10
11
|
name: 'theme-size-selector',
|
11
|
-
|
12
|
-
|
12
|
+
emits: {
|
13
|
+
onChange: (size: typeof ThemeSize.TYPE) => true,
|
14
|
+
},
|
15
|
+
setup({ event: { emit } }) {
|
13
16
|
|
14
17
|
const sizeOptions = computed((): { label: string, val: string }[] => [
|
15
18
|
{ label: i18n.$it('theme.sizeOptions.large').d('大'), val: 'large' },
|
@@ -18,7 +21,10 @@ export const ThemeSizeSelector = designComponent({
|
|
18
21
|
{ label: i18n.$it('theme.sizeOptions.mini').d('极小'), val: 'mini' },
|
19
22
|
]);
|
20
23
|
|
21
|
-
const
|
24
|
+
const change = (size: typeof ThemeSize.TYPE) => {
|
25
|
+
PageThemeUtils.size(size);
|
26
|
+
emit.onChange(size);
|
27
|
+
};
|
22
28
|
|
23
29
|
const classes = useClassCache(() => [
|
24
30
|
getComponentCls('theme-selector'),
|
@@ -27,7 +33,7 @@ export const ThemeSizeSelector = designComponent({
|
|
27
33
|
return () => (
|
28
34
|
<Dropdown trigger="hover" align="center" placement="bottom" hideOnClickReference={false} v-slots={{
|
29
35
|
popper: () => sizeOptions.value.map(opt => (
|
30
|
-
<DropdownOption label={opt.label} val={opt.val} key={opt.val} onClick={() =>
|
36
|
+
<DropdownOption label={opt.label} val={opt.val} key={opt.val} onClick={() => change(opt.val as any)}/>
|
31
37
|
)),
|
32
38
|
default: () => (
|
33
39
|
<div className={classes.value}>
|
@@ -55,7 +55,7 @@
|
|
55
55
|
}
|
56
56
|
|
57
57
|
@mixin hover($component) {
|
58
|
-
&:not(.#{$component}-disabled):not(.#{$component}-loading):not(.#{$component}-readonly) {
|
58
|
+
&:not(.#{$component}-disabled):not(.#{$component}-loading):not(.#{$component}-readonly):not(.#{$component}-focus) {
|
59
59
|
&:hover, &.#{$component}-hover {
|
60
60
|
@content;
|
61
61
|
}
|