@douyinfe/semi-foundation 2.63.2-alpha.0 → 2.64.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/calendar/foundation.ts +20 -0
  2. package/colorPicker/AlphaSliderFoundation.ts +62 -0
  3. package/colorPicker/ColorChooseAreaFoundation.ts +86 -0
  4. package/colorPicker/ColorSliderFoundation.ts +61 -0
  5. package/colorPicker/DataPartFoundation.ts +113 -0
  6. package/colorPicker/colorPicker.scss +113 -0
  7. package/colorPicker/constants.ts +11 -0
  8. package/colorPicker/foundation.ts +206 -0
  9. package/colorPicker/interface.ts +51 -0
  10. package/colorPicker/utils/convert.ts +228 -0
  11. package/colorPicker/utils/round.ts +3 -0
  12. package/colorPicker/utils/split.ts +40 -0
  13. package/colorPicker/variables.scss +28 -0
  14. package/image/previewImageFoundation.ts +22 -17
  15. package/lib/cjs/calendar/foundation.js +18 -0
  16. package/lib/cjs/colorPicker/AlphaSliderFoundation.d.ts +27 -0
  17. package/lib/cjs/colorPicker/AlphaSliderFoundation.js +40 -0
  18. package/lib/cjs/colorPicker/ColorChooseAreaFoundation.d.ts +42 -0
  19. package/lib/cjs/colorPicker/ColorChooseAreaFoundation.js +62 -0
  20. package/lib/cjs/colorPicker/ColorSliderFoundation.d.ts +26 -0
  21. package/lib/cjs/colorPicker/ColorSliderFoundation.js +40 -0
  22. package/lib/cjs/colorPicker/DataPartFoundation.d.ts +28 -0
  23. package/lib/cjs/colorPicker/DataPartFoundation.js +115 -0
  24. package/lib/cjs/colorPicker/colorPicker.css +84 -0
  25. package/lib/cjs/colorPicker/colorPicker.scss +113 -0
  26. package/lib/cjs/colorPicker/constants.d.ts +4 -0
  27. package/lib/cjs/colorPicker/constants.js +11 -0
  28. package/lib/cjs/colorPicker/foundation.d.ts +66 -0
  29. package/lib/cjs/colorPicker/foundation.js +150 -0
  30. package/lib/cjs/colorPicker/interface.d.ts +40 -0
  31. package/lib/cjs/colorPicker/interface.js +5 -0
  32. package/lib/cjs/colorPicker/utils/convert.d.ts +28 -0
  33. package/lib/cjs/colorPicker/utils/convert.js +306 -0
  34. package/lib/cjs/colorPicker/utils/round.d.ts +1 -0
  35. package/lib/cjs/colorPicker/utils/round.js +12 -0
  36. package/lib/cjs/colorPicker/utils/split.d.ts +18 -0
  37. package/lib/cjs/colorPicker/utils/split.js +40 -0
  38. package/lib/cjs/colorPicker/variables.scss +28 -0
  39. package/lib/cjs/image/previewImageFoundation.js +22 -18
  40. package/lib/cjs/slider/foundation.d.ts +1 -0
  41. package/lib/cjs/slider/foundation.js +15 -0
  42. package/lib/cjs/tabs/constants.d.ts +0 -1
  43. package/lib/cjs/tabs/constants.js +1 -2
  44. package/lib/cjs/tabs/tabs.css +199 -28
  45. package/lib/cjs/tabs/tabs.scss +297 -336
  46. package/lib/cjs/tabs/variables.scss +2 -21
  47. package/lib/cjs/tooltip/foundation.js +2 -1
  48. package/lib/cjs/tree/treeUtil.d.ts +1 -1
  49. package/lib/cjs/upload/constants.d.ts +1 -1
  50. package/lib/cjs/upload/foundation.d.ts +1 -0
  51. package/lib/cjs/upload/foundation.js +30 -14
  52. package/lib/es/calendar/foundation.js +18 -0
  53. package/lib/es/colorPicker/AlphaSliderFoundation.d.ts +27 -0
  54. package/lib/es/colorPicker/AlphaSliderFoundation.js +33 -0
  55. package/lib/es/colorPicker/ColorChooseAreaFoundation.d.ts +42 -0
  56. package/lib/es/colorPicker/ColorChooseAreaFoundation.js +55 -0
  57. package/lib/es/colorPicker/ColorSliderFoundation.d.ts +26 -0
  58. package/lib/es/colorPicker/ColorSliderFoundation.js +33 -0
  59. package/lib/es/colorPicker/DataPartFoundation.d.ts +28 -0
  60. package/lib/es/colorPicker/DataPartFoundation.js +108 -0
  61. package/lib/es/colorPicker/colorPicker.css +84 -0
  62. package/lib/es/colorPicker/colorPicker.scss +113 -0
  63. package/lib/es/colorPicker/constants.d.ts +4 -0
  64. package/lib/es/colorPicker/constants.js +6 -0
  65. package/lib/es/colorPicker/foundation.d.ts +66 -0
  66. package/lib/es/colorPicker/foundation.js +143 -0
  67. package/lib/es/colorPicker/interface.d.ts +40 -0
  68. package/lib/es/colorPicker/interface.js +1 -0
  69. package/lib/es/colorPicker/utils/convert.d.ts +28 -0
  70. package/lib/es/colorPicker/utils/convert.js +277 -0
  71. package/lib/es/colorPicker/utils/round.d.ts +1 -0
  72. package/lib/es/colorPicker/utils/round.js +5 -0
  73. package/lib/es/colorPicker/utils/split.d.ts +18 -0
  74. package/lib/es/colorPicker/utils/split.js +34 -0
  75. package/lib/es/colorPicker/variables.scss +28 -0
  76. package/lib/es/image/previewImageFoundation.js +22 -18
  77. package/lib/es/slider/foundation.d.ts +1 -0
  78. package/lib/es/slider/foundation.js +15 -0
  79. package/lib/es/tabs/constants.d.ts +0 -1
  80. package/lib/es/tabs/constants.js +1 -2
  81. package/lib/es/tabs/tabs.css +199 -28
  82. package/lib/es/tabs/tabs.scss +297 -336
  83. package/lib/es/tabs/variables.scss +2 -21
  84. package/lib/es/tooltip/foundation.js +2 -1
  85. package/lib/es/tree/treeUtil.d.ts +1 -1
  86. package/lib/es/upload/constants.d.ts +1 -1
  87. package/lib/es/upload/foundation.d.ts +1 -0
  88. package/lib/es/upload/foundation.js +30 -14
  89. package/package.json +3 -3
  90. package/slider/foundation.ts +13 -0
  91. package/tabs/constants.ts +1 -2
  92. package/tabs/tabs.scss +297 -336
  93. package/tabs/variables.scss +2 -21
  94. package/tooltip/foundation.ts +1 -1
  95. package/upload/foundation.ts +19 -3
@@ -0,0 +1,28 @@
1
+ import BaseFoundation, { DefaultAdapter } from "../base/foundation";
2
+ import ColorPickerFoundation, { ColorPickerProps } from "./foundation";
3
+ import { HsvaColor, RgbaColor } from "./interface";
4
+ type Value = ColorPickerProps['value'];
5
+ export interface DataPartBaseProps {
6
+ currentColor: Value;
7
+ defaultFormat: 'hex' | 'rgba' | 'hsva';
8
+ width: number;
9
+ alpha?: boolean;
10
+ foundation: ColorPickerFoundation;
11
+ eyeDropper: boolean;
12
+ }
13
+ export interface DataPartBaseState {
14
+ format: 'hex' | 'rgba' | 'hsva';
15
+ inputValue: string;
16
+ }
17
+ export interface DataPartAdapter<P = Record<string, any>, S = Record<string, any>> extends DefaultAdapter<P, S> {
18
+ getColorPickerFoundation: () => ColorPickerFoundation;
19
+ }
20
+ declare class DataPartFoundation extends BaseFoundation<DataPartAdapter<DataPartBaseProps, DataPartBaseState>, DataPartBaseProps, DataPartBaseState> {
21
+ constructor(adapter: DataPartAdapter<DataPartBaseProps, DataPartBaseState>);
22
+ getInputValue: () => string;
23
+ getValueByInputValue: (value: string) => string | false | HsvaColor | RgbaColor;
24
+ handlePickValueWithStraw: () => Promise<void>;
25
+ handleInputValueChange: (value: string) => void;
26
+ handleFormatChange: (format: DataPartBaseState['format']) => void;
27
+ }
28
+ export default DataPartFoundation;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _foundation = _interopRequireDefault(require("../base/foundation"));
8
+ var _foundation2 = _interopRequireDefault(require("./foundation"));
9
+ var _split = _interopRequireDefault(require("./utils/split"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) {
13
+ return value instanceof P ? value : new P(function (resolve) {
14
+ resolve(value);
15
+ });
16
+ }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) {
19
+ try {
20
+ step(generator.next(value));
21
+ } catch (e) {
22
+ reject(e);
23
+ }
24
+ }
25
+ function rejected(value) {
26
+ try {
27
+ step(generator["throw"](value));
28
+ } catch (e) {
29
+ reject(e);
30
+ }
31
+ }
32
+ function step(result) {
33
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
34
+ }
35
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
36
+ });
37
+ };
38
+ class DataPartFoundation extends _foundation.default {
39
+ constructor(adapter) {
40
+ super(Object.assign({}, adapter));
41
+ this.getInputValue = () => {
42
+ const {
43
+ currentColor
44
+ } = this._adapter.getProps();
45
+ const {
46
+ format
47
+ } = this._adapter.getStates();
48
+ const rgba = currentColor.rgba;
49
+ const hsva = currentColor.hsva;
50
+ const hex = currentColor.hex;
51
+ if (format === 'rgba') {
52
+ return `${rgba.r},${rgba.g},${rgba.b}`;
53
+ } else if (format === 'hsva') {
54
+ return `${hsva.h},${hsva.s},${hsva.v}`;
55
+ } else {
56
+ return hex.slice(0, 7);
57
+ }
58
+ };
59
+ this.getValueByInputValue = value => {
60
+ const {
61
+ format
62
+ } = this.getStates();
63
+ if (format === 'rgba') {
64
+ const result = (0, _split.default)(value, format);
65
+ if (result) {
66
+ return result;
67
+ }
68
+ } else if (format === 'hsva') {
69
+ const result = (0, _split.default)(value, format);
70
+ if (result) {
71
+ return result;
72
+ }
73
+ } else if (format === 'hex') {
74
+ // hack chrome bug, format mismatch with w3c.
75
+ if (!value.startsWith('#')) {
76
+ value = '#' + value;
77
+ }
78
+ if (/#[\d\w]{6,8}/.test(value)) {
79
+ return value;
80
+ }
81
+ }
82
+ return false;
83
+ };
84
+ this.handlePickValueWithStraw = () => __awaiter(this, void 0, void 0, function* () {
85
+ const colorPickerFoundation = this._adapter.getColorPickerFoundation();
86
+ if (!window['EyeDropper']) {
87
+ return;
88
+ }
89
+ //@ts-ignore
90
+ const eyeDropper = new EyeDropper();
91
+ try {
92
+ const result = yield eyeDropper.open();
93
+ const color = result['sRGBHex'];
94
+ if (color.startsWith("#")) {
95
+ colorPickerFoundation.handleChange(color, 'hex');
96
+ } else if (color.startsWith('rgba')) {
97
+ const rgba = _foundation2.default.rgbaStringToRgba(color);
98
+ rgba.a = 1;
99
+ colorPickerFoundation.handleChange(rgba, 'rgba');
100
+ }
101
+ } catch (e) {}
102
+ });
103
+ this.handleInputValueChange = value => {
104
+ this._adapter.setState({
105
+ inputValue: value
106
+ });
107
+ };
108
+ this.handleFormatChange = format => {
109
+ this._adapter.setState({
110
+ format
111
+ });
112
+ };
113
+ }
114
+ }
115
+ var _default = exports.default = DataPartFoundation;
@@ -0,0 +1,84 @@
1
+ /* shadow */
2
+ /* sizing */
3
+ /* spacing */
4
+ .semi-colorPicker-colorChooseArea {
5
+ /**
6
+ * Referrer from https://github.com/web-padawan/vanilla-colorful/blob/5d219ee360ae2f29534864b28ca9e6074233b9ce/src/lib/styles/saturation.css
7
+ */
8
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05);
9
+ position: relative;
10
+ flex-grow: 1;
11
+ border-color: transparent;
12
+ border-radius: 8px 8px 0px 0px;
13
+ background-image: linear-gradient(to top, #000, rgba(0, 0, 0, 0)), linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
14
+ }
15
+ .semi-colorPicker-handle {
16
+ border-radius: var(--semi-border-radius-full);
17
+ border: 2px solid var(--semi-color-white);
18
+ position: absolute;
19
+ box-sizing: border-box;
20
+ cursor: grab;
21
+ }
22
+ .semi-colorPicker-alphaSlider {
23
+ position: relative;
24
+ cursor: pointer;
25
+ margin-top: 6px;
26
+ border-radius: var(--semi-border-radius-full);
27
+ background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><rect x="8" width="8" height="8"/><rect y="8" width="8" height="8"/></svg>');
28
+ }
29
+ .semi-colorPicker-alphaSlider .semi-colorPicker-alphaSliderInner {
30
+ width: 100%;
31
+ height: 100%;
32
+ border-radius: 4px;
33
+ }
34
+ .semi-colorPicker-alphaSlider .semi-colorPicker-alphaHandle {
35
+ background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><rect x="8" width="8" height="8"/><rect y="8" width="8" height="8"/></svg>');
36
+ border-radius: var(--semi-border-radius-full);
37
+ border: 2px solid var(--semi-color-white);
38
+ position: absolute;
39
+ box-sizing: border-box;
40
+ cursor: grab;
41
+ }
42
+ .semi-colorPicker-colorSlider {
43
+ position: relative;
44
+ cursor: pointer;
45
+ margin-top: 6px;
46
+ border-radius: var(--semi-border-radius-full);
47
+ background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);
48
+ }
49
+ .semi-colorPicker-dataPart {
50
+ margin-top: 8px;
51
+ display: flex;
52
+ align-items: center;
53
+ }
54
+ .semi-colorPicker-dataPart .semi-colorPicker-colorDemoBlock {
55
+ border-radius: 4px;
56
+ }
57
+ .semi-colorPicker-dataPart .semi-colorPicker-inputGroup {
58
+ margin-left: 4px;
59
+ width: 100%;
60
+ flex: 1;
61
+ flex-wrap: nowrap;
62
+ }
63
+ .semi-colorPicker-dataPart .semi-colorPicker-inputGroup .semi-colorPicker-colorPickerInput {
64
+ flex: 1;
65
+ }
66
+ .semi-colorPicker-dataPart .semi-colorPicker-inputGroup .semi-colorPicker-colorPickerInputNumber {
67
+ width: 58px;
68
+ }
69
+ .semi-colorPicker-dataPart .semi-colorPicker-inputGroup .semi-colorPicker-colorPickerInputNumber .semi-colorPicker-inputNumberSuffix {
70
+ font-size: 14px;
71
+ padding: 4px 4px;
72
+ }
73
+ .semi-colorPicker-dataPart .semi-colorPicker-formatSelect {
74
+ width: 80px;
75
+ }
76
+ .semi-colorPicker-popover {
77
+ padding: 8px;
78
+ }
79
+ .semi-colorPicker-popover-defaultChildren {
80
+ width: 24px;
81
+ height: 24px;
82
+ border-radius: 4px;
83
+ cursor: pointer;
84
+ }
@@ -0,0 +1,113 @@
1
+ @import "./variables.scss";
2
+
3
+
4
+ $module: #{$prefix}-colorPicker;
5
+
6
+
7
+ .#{$module} {
8
+
9
+ &-colorChooseArea{
10
+
11
+ /**
12
+ * Referrer from https://github.com/web-padawan/vanilla-colorful/blob/5d219ee360ae2f29534864b28ca9e6074233b9ce/src/lib/styles/saturation.css
13
+ */
14
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05);
15
+ position: relative;
16
+ flex-grow: 1;
17
+ border-color: transparent;
18
+ border-radius: $radius-colorPicker-topLeft $radius-colorPicker-topRight $radius-colorPicker-bottomLeft $radius-colorPicker-bottomRight;
19
+ background-image: linear-gradient(to top, #000, rgba(0, 0, 0, 0)), linear-gradient(to right, #fff, rgba(255, 255, 255, 0));
20
+ }
21
+
22
+
23
+ &-handle{
24
+ border-radius: $radius-colorPicker-handle;
25
+ border: $width-colorPicker_handle-border solid $color-colorPicker_handle-border;
26
+ position: absolute;
27
+ box-sizing: border-box;
28
+ cursor: grab;
29
+ }
30
+
31
+
32
+
33
+
34
+ &-alphaSlider{
35
+ position: relative;
36
+ cursor: pointer;
37
+ margin-top: $spacing-colorPicker_slider-marginTop;
38
+ border-radius: $radius-colorPicker-handle;
39
+ background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><rect x="8" width="8" height="8"/><rect y="8" width="8" height="8"/></svg>');
40
+
41
+
42
+ .#{$module}-alphaSliderInner{
43
+ width: 100%;
44
+ height: 100%;
45
+ border-radius: $radius-colorPicker-alphaSliderInner;
46
+ }
47
+
48
+ .#{$module}-alphaHandle{
49
+ background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><rect x="8" width="8" height="8"/><rect y="8" width="8" height="8"/></svg>');
50
+ border-radius: $radius-colorPicker-handle;
51
+ border: $width-colorPicker_handle-border solid $color-colorPicker_handle-border;
52
+ position: absolute;
53
+ box-sizing: border-box;
54
+ cursor: grab;
55
+
56
+ }
57
+
58
+ }
59
+
60
+ &-colorSlider{
61
+ position: relative;
62
+ cursor: pointer;
63
+ margin-top: $spacing-colorPicker_slider-marginTop;
64
+ border-radius: $radius-colorPicker-handle;
65
+ background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);
66
+ }
67
+
68
+
69
+
70
+ &-dataPart{
71
+ margin-top: $spacing-colorPicker_dataPart-marginTop;
72
+ display: flex;
73
+ align-items: center;
74
+ .#{$module}-colorDemoBlock{
75
+ border-radius: $radius-colorPicker-demoBlock;
76
+ }
77
+ .#{$module}-inputGroup{
78
+ margin-left: $spacing-colorPicker_inputGroup-marginLeft;
79
+ width: 100%;
80
+ flex:1;
81
+ flex-wrap: nowrap;
82
+ .#{$module}-colorPickerInput{
83
+ flex: 1;
84
+ }
85
+ .#{$module}-colorPickerInputNumber{
86
+ width: $width-colorPicker-colorPickerInputNumber;
87
+ .#{$module}-inputNumberSuffix{
88
+ font-size: $font-colorPicker_inputNumberSuffix-fontSize;
89
+ padding: $spacing-colorPicker_inputNumberSuffix-vertical $spacing-colorPicker_inputNumberSuffix-horizontal;
90
+ }
91
+ }
92
+ }
93
+ .#{$module}-formatSelect{
94
+ width: $width-colorPicker-formatSelect;
95
+ }
96
+ }
97
+
98
+
99
+ &-popover{
100
+ padding: $spacing-colorPicker_popover-padding;
101
+
102
+ &-defaultChildren{
103
+ width:$width-colorPicker-defaultTrigger;
104
+ height: $width-colorPicker-defaultTrigger;
105
+ border-radius: $radius-colorPicker-defaultTrigger;
106
+ cursor: pointer;
107
+ }
108
+
109
+ }
110
+
111
+
112
+
113
+ }
@@ -0,0 +1,4 @@
1
+ declare const cssClasses: {
2
+ PREFIX: string;
3
+ };
4
+ export { cssClasses };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.cssClasses = void 0;
7
+ var _constants = require("../base/constants");
8
+ const cssClasses = exports.cssClasses = {
9
+ PREFIX: `${_constants.BASE_CLASS_PREFIX}-colorPicker`
10
+ };
11
+ const strings = {};
@@ -0,0 +1,66 @@
1
+ import { HsvaColor, RgbaColor } from './interface';
2
+ import BaseFoundation, { DefaultAdapter } from '../base/foundation';
3
+ export type ColorValue = {
4
+ hsva: HsvaColor;
5
+ rgba: RgbaColor;
6
+ hex: string;
7
+ };
8
+ export interface ColorPickerProps {
9
+ eyeDropper?: boolean;
10
+ defaultValue?: ColorValue;
11
+ value?: ColorValue;
12
+ onChange: (value: ColorValue) => void;
13
+ alpha: boolean;
14
+ width?: number;
15
+ height?: number;
16
+ defaultFormat: 'hex' | 'rgba' | 'hsva';
17
+ }
18
+ export interface ColorPickerState {
19
+ currentColor: ColorValue;
20
+ }
21
+ export interface ColorPickerAdapter<P = Record<string, any>, S = Record<string, any>> extends DefaultAdapter<P, S> {
22
+ notifyChange: (value: ColorValue) => void;
23
+ }
24
+ declare class ColorPickerFoundation extends BaseFoundation<ColorPickerAdapter<ColorPickerProps, ColorPickerState>, ColorPickerProps, ColorPickerState> {
25
+ constructor(adapter: ColorPickerAdapter<ColorPickerProps, ColorPickerState>);
26
+ static hsvaToRgba: ({ h, s, v, a }: HsvaColor) => RgbaColor;
27
+ static rgbaToHsva: ({ r, g, b, a }: RgbaColor) => HsvaColor;
28
+ static rgbaToHex: ({ r, g, b, a }: RgbaColor) => string;
29
+ static hsvaToHex: (hsva: HsvaColor) => string;
30
+ static hexToRgba: (hex: string) => RgbaColor;
31
+ static hexToHsva: (hex: string) => HsvaColor;
32
+ static hsvaToHslaString: (hsva: HsvaColor) => string;
33
+ static hsvaToHslString: (hsva: HsvaColor) => string;
34
+ static rgbaStringToHsva: (rgbaString: string) => HsvaColor;
35
+ static rgbaStringToRgba: (rgbaString: string) => RgbaColor;
36
+ handleChangeH: (currentColor: ColorValue, newH: number) => void;
37
+ handleChangeA: (currentColor: ColorValue, newAlpha: number) => void;
38
+ getCurrentColor: () => any;
39
+ handleChange: (color: HsvaColor | RgbaColor | string, format: 'hex' | 'rgba' | 'hsva') => void;
40
+ handleAlphaChangeByHandle: (newAlpha: {
41
+ a: number;
42
+ }) => void;
43
+ handleColorChangeByHandle: (newHue: {
44
+ h: number;
45
+ }) => void;
46
+ getHandlePositionByHSVA: (hsva: HsvaColor, { width, height }: {
47
+ width: number;
48
+ height: number;
49
+ }, handleSize: number) => {
50
+ x: number;
51
+ y: number;
52
+ };
53
+ getHandlePositionByMousePosition: (mousePosition: {
54
+ x: number;
55
+ y: number;
56
+ }, { width, height }: {
57
+ width: number;
58
+ height: number;
59
+ }, handleSize: number) => {
60
+ x: number;
61
+ y: number;
62
+ };
63
+ getAlphaHandlePositionByMousePosition: (mousePosition: number, width: number, handleSize: number) => number;
64
+ getColorHandlePositionByMousePosition: (mousePosition: number, width: number, handleSize: number) => number;
65
+ }
66
+ export default ColorPickerFoundation;
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _foundation = _interopRequireDefault(require("../base/foundation"));
8
+ var _convert = require("./utils/convert");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ class ColorPickerFoundation extends _foundation.default {
11
+ constructor(adapter) {
12
+ super(Object.assign({}, adapter));
13
+ this.handleChangeH = (currentColor, newH) => {
14
+ const hsva = Object.assign(Object.assign({}, currentColor.hsva), {
15
+ h: newH
16
+ });
17
+ const rgba = (0, _convert.hsvaToRgba)(hsva);
18
+ const hex = (0, _convert.hsvaToHex)(hsva);
19
+ const newCurrentColor = {
20
+ rgba,
21
+ hsva,
22
+ hex
23
+ };
24
+ this._adapter.notifyChange(newCurrentColor);
25
+ if (!this.getProp("value")) {
26
+ this._adapter.setState({
27
+ currentColor: newCurrentColor
28
+ });
29
+ }
30
+ };
31
+ this.handleChangeA = (currentColor, newAlpha) => {
32
+ let alpha = this._adapter.getProp('alpha');
33
+ if (!alpha) {
34
+ newAlpha = 1;
35
+ }
36
+ const rgba = Object.assign(Object.assign({}, currentColor.rgba), {
37
+ a: newAlpha
38
+ });
39
+ const hex = (0, _convert.rgbaToHex)(rgba);
40
+ currentColor = {
41
+ rgba,
42
+ hex: alpha ? hex : hex.slice(0, 7),
43
+ hsva: Object.assign(Object.assign({}, currentColor.hsva), {
44
+ a: newAlpha
45
+ })
46
+ };
47
+ this._adapter.notifyChange(currentColor);
48
+ if (!this.getProp("value")) {
49
+ this._adapter.setState({
50
+ currentColor: currentColor
51
+ });
52
+ }
53
+ };
54
+ this.getCurrentColor = () => {
55
+ const value = this.getProp("value");
56
+ const currentColor = this.getState("currentColor");
57
+ return value || currentColor;
58
+ };
59
+ this.handleChange = (color, format) => {
60
+ let currentColor;
61
+ if (format === 'hsva') {
62
+ currentColor = {
63
+ hsva: color,
64
+ rgba: ColorPickerFoundation.hsvaToRgba(color),
65
+ hex: ColorPickerFoundation.hsvaToHex(color)
66
+ };
67
+ } else if (format === 'rgba') {
68
+ currentColor = {
69
+ rgba: color,
70
+ hsva: ColorPickerFoundation.rgbaToHsva(color),
71
+ hex: ColorPickerFoundation.rgbaToHex(color)
72
+ };
73
+ } else if (format === 'hex') {
74
+ currentColor = {
75
+ hex: color,
76
+ hsva: ColorPickerFoundation.hexToHsva(color),
77
+ rgba: ColorPickerFoundation.hexToRgba(color)
78
+ };
79
+ } else {
80
+ throw new Error('format error');
81
+ }
82
+ this._adapter.notifyChange(currentColor);
83
+ if (!this.getProp("value")) {
84
+ this._adapter.setState({
85
+ currentColor: currentColor
86
+ });
87
+ }
88
+ };
89
+ this.handleAlphaChangeByHandle = newAlpha => {
90
+ this.handleChangeA(this.getCurrentColor(), newAlpha.a);
91
+ };
92
+ this.handleColorChangeByHandle = newHue => {
93
+ this.handleChangeH(this.getCurrentColor(), newHue.h);
94
+ };
95
+ this.getHandlePositionByHSVA = (hsva, _ref, handleSize) => {
96
+ let {
97
+ width,
98
+ height
99
+ } = _ref;
100
+ const defaultColorPosition = {
101
+ x: hsva.s / 100 * width,
102
+ y: (1 - hsva.v / 100) * height
103
+ };
104
+ return {
105
+ x: defaultColorPosition.x - handleSize / 2,
106
+ y: defaultColorPosition.y - handleSize / 2
107
+ };
108
+ };
109
+ this.getHandlePositionByMousePosition = (mousePosition, _ref2, handleSize) => {
110
+ let {
111
+ width,
112
+ height
113
+ } = _ref2;
114
+ if (mousePosition.x > width || mousePosition.x < 0) {
115
+ return null;
116
+ }
117
+ if (mousePosition.y > height || mousePosition.y < 0) {
118
+ return null;
119
+ }
120
+ const handlePosition = {
121
+ x: mousePosition.x - handleSize / 2,
122
+ y: mousePosition.y - handleSize / 2
123
+ };
124
+ return handlePosition;
125
+ };
126
+ this.getAlphaHandlePositionByMousePosition = (mousePosition, width, handleSize) => {
127
+ if (mousePosition < 0 || mousePosition > width) {
128
+ return null;
129
+ }
130
+ return mousePosition - handleSize / 2;
131
+ };
132
+ this.getColorHandlePositionByMousePosition = (mousePosition, width, handleSize) => {
133
+ if (mousePosition < 0 || mousePosition > width) {
134
+ return null;
135
+ }
136
+ return mousePosition - handleSize / 2;
137
+ };
138
+ }
139
+ }
140
+ ColorPickerFoundation.hsvaToRgba = _convert.hsvaToRgba;
141
+ ColorPickerFoundation.rgbaToHsva = _convert.rgbaToHsva;
142
+ ColorPickerFoundation.rgbaToHex = _convert.rgbaToHex;
143
+ ColorPickerFoundation.hsvaToHex = _convert.hsvaToHex;
144
+ ColorPickerFoundation.hexToRgba = _convert.hexToRgba;
145
+ ColorPickerFoundation.hexToHsva = _convert.hexToHsva;
146
+ ColorPickerFoundation.hsvaToHslaString = _convert.hsvaToHslaString;
147
+ ColorPickerFoundation.hsvaToHslString = _convert.hsvaToHslString;
148
+ ColorPickerFoundation.rgbaStringToHsva = _convert.rgbaStringToHsva;
149
+ ColorPickerFoundation.rgbaStringToRgba = _convert.rgbaStringToRgba;
150
+ var _default = exports.default = ColorPickerFoundation;
@@ -0,0 +1,40 @@
1
+ export interface HsvColor {
2
+ h: number;
3
+ s: number;
4
+ v: number;
5
+ }
6
+ export interface HsvaColor extends HsvColor {
7
+ a: number;
8
+ }
9
+ export interface RgbColor {
10
+ r: number;
11
+ g: number;
12
+ b: number;
13
+ }
14
+ export interface RgbaColor extends RgbColor {
15
+ a: number;
16
+ }
17
+ export interface HslColor {
18
+ h: number;
19
+ s: number;
20
+ l: number;
21
+ }
22
+ export interface HslaColor extends HslColor {
23
+ a: number;
24
+ }
25
+ export interface HsvColor {
26
+ h: number;
27
+ s: number;
28
+ v: number;
29
+ }
30
+ export interface HsvaColor extends HsvColor {
31
+ a: number;
32
+ }
33
+ export type ObjectColor = RgbColor | HslColor | HsvColor | RgbaColor | HslaColor | HsvaColor;
34
+ export type AnyColor = string | ObjectColor;
35
+ export interface ColorModel<T extends AnyColor> {
36
+ defaultColor: T;
37
+ toHsva: (defaultColor: T) => HsvaColor;
38
+ fromHsva: (hsva: HsvaColor) => T;
39
+ equal: (first: T, second: T) => boolean;
40
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,28 @@
1
+ import { RgbaColor, RgbColor, HslaColor, HslColor, HsvaColor, HsvColor } from "../interface";
2
+ export declare const hexToHsva: (hex: string) => HsvaColor;
3
+ export declare const hexToRgba: (hex: string) => RgbaColor;
4
+ export declare const parseHue: (value: string, unit?: string) => number;
5
+ export declare const hslaStringToHsva: (hslString: string) => HsvaColor;
6
+ export declare const hslStringToHsva: (hslString: string) => HsvaColor;
7
+ export declare const hslaToHsva: ({ h, s, l, a }: HslaColor) => HsvaColor;
8
+ export declare const hsvaToHex: (hsva: HsvaColor) => string;
9
+ export declare const hsvaToHsla: ({ h, s, v, a }: HsvaColor) => HslaColor;
10
+ export declare const hsvaToHslString: (hsva: HsvaColor) => string;
11
+ export declare const hsvaToHsvString: (hsva: HsvaColor) => string;
12
+ export declare const hsvaToHsvaString: (hsva: HsvaColor) => string;
13
+ export declare const hsvaToHslaString: (hsva: HsvaColor) => string;
14
+ export declare const hsvaToRgba: ({ h, s, v, a }: HsvaColor) => RgbaColor;
15
+ export declare const hsvaToRgbString: (hsva: HsvaColor) => string;
16
+ export declare const hsvaToRgbaString: (hsva: HsvaColor) => string;
17
+ export declare const hsvaStringToHsva: (hsvString: string) => HsvaColor;
18
+ export declare const hsvStringToHsva: (hsvString: string) => HsvaColor;
19
+ export declare const rgbaStringToHsva: (rgbaString: string) => HsvaColor;
20
+ export declare const rgbaStringToRgba: (rgbaString: string) => RgbaColor;
21
+ export declare const rgbStringToRgba: (rgbaString: string) => RgbaColor;
22
+ export declare const rgbStringToHsva: (rgbaString: string) => HsvaColor;
23
+ export declare const rgbaToHex: ({ r, g, b, a }: RgbaColor) => string;
24
+ export declare const rgbaToHsva: ({ r, g, b, a }: RgbaColor) => HsvaColor;
25
+ export declare const roundHsva: (hsva: HsvaColor) => HsvaColor;
26
+ export declare const rgbaToRgb: ({ r, g, b }: RgbaColor) => RgbColor;
27
+ export declare const hslaToHsl: ({ h, s, l }: HslaColor) => HslColor;
28
+ export declare const hsvaToHsv: (hsva: HsvaColor) => HsvColor;