@imposium-hub/components 1.50.0 → 1.51.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 (48) hide show
  1. package/dist/cjs/components/anchor-field/AnchorField.js +88 -18
  2. package/dist/cjs/components/anchor-field/AnchorField.js.map +1 -1
  3. package/dist/cjs/components/text-field/TextField.js +0 -1
  4. package/dist/cjs/components/text-field/TextField.js.map +1 -1
  5. package/dist/cjs/constants/anchor-positions.d.ts +11 -0
  6. package/dist/cjs/constants/anchor-positions.js +15 -0
  7. package/dist/cjs/constants/anchor-positions.js.map +1 -0
  8. package/dist/cjs/constants/compositions.d.ts +10 -0
  9. package/dist/cjs/constants/compositions.js +11 -1
  10. package/dist/cjs/constants/compositions.js.map +1 -1
  11. package/dist/cjs/constants/editors.d.ts +1 -0
  12. package/dist/cjs/constants/editors.js +5 -0
  13. package/dist/cjs/constants/editors.js.map +1 -0
  14. package/dist/cjs/constants/icons.d.ts +9 -0
  15. package/dist/cjs/constants/icons.js +12 -1
  16. package/dist/cjs/constants/icons.js.map +1 -1
  17. package/dist/cjs/index.d.ts +2 -1
  18. package/dist/cjs/index.js +3 -1
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/esm/components/anchor-field/AnchorField.js +62 -10
  21. package/dist/esm/components/anchor-field/AnchorField.js.map +1 -1
  22. package/dist/esm/components/text-field/TextField.js +0 -1
  23. package/dist/esm/components/text-field/TextField.js.map +1 -1
  24. package/dist/esm/constants/anchor-positions.d.ts +11 -0
  25. package/dist/esm/constants/anchor-positions.js +12 -0
  26. package/dist/esm/constants/anchor-positions.js.map +1 -0
  27. package/dist/esm/constants/compositions.d.ts +10 -0
  28. package/dist/esm/constants/compositions.js +10 -0
  29. package/dist/esm/constants/compositions.js.map +1 -1
  30. package/dist/esm/constants/editors.d.ts +1 -0
  31. package/dist/esm/constants/editors.js +2 -0
  32. package/dist/esm/constants/editors.js.map +1 -0
  33. package/dist/esm/constants/icons.d.ts +9 -0
  34. package/dist/esm/constants/icons.js +11 -0
  35. package/dist/esm/constants/icons.js.map +1 -1
  36. package/dist/esm/index.d.ts +2 -1
  37. package/dist/esm/index.js +2 -1
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/styles.css +17 -0
  40. package/dist/styles.less +20 -0
  41. package/less/components/anchor-field.less +20 -0
  42. package/less/entry.less +2 -1
  43. package/package.json +3 -1
  44. package/src/components/anchor-field/AnchorField.tsx +236 -0
  45. package/src/components/text-field/TextField.tsx +0 -1
  46. package/src/constants/compositions.ts +12 -0
  47. package/src/constants/icons.tsx +29 -0
  48. package/src/index.ts +3 -1
@@ -0,0 +1,236 @@
1
+ import * as React from 'react';
2
+ import { HORIZONTAL_ALIGNMENT, VERTICAL_ALIGNMENT } from '../../constants/compositions';
3
+ import {
4
+ ICON_CENTER_ANCHOR,
5
+ ICON_DOWNLEFT_ANCHOR,
6
+ ICON_DOWNRIGHT_ANCHOR,
7
+ ICON_DOWN_ANCHOR,
8
+ ICON_LEFT_ANCHOR,
9
+ ICON_RIGHT_ANCHOR,
10
+ ICON_UPLEFT_ANCHOR,
11
+ ICON_UPRIGHT_ANCHOR,
12
+ ICON_UP_ANCHOR
13
+ } from '../../constants/icons';
14
+ import FieldWrapper from '../field-wrapper/FieldWrapper';
15
+ import { IToolTipConfig } from '../Tooltip';
16
+
17
+ interface IAnchorFieldProps {
18
+ onChange(hAlign: string, vAlign: string): void;
19
+ config: any;
20
+ info?: string;
21
+ labelPosition?: string;
22
+ tooltip?: IToolTipConfig | string;
23
+ width?: string | number;
24
+ label?: string;
25
+ }
26
+
27
+ interface IconConfig {
28
+ tl?: any;
29
+ tc?: any;
30
+ tr?: any;
31
+ cl?: any;
32
+ cc?: any;
33
+ cr?: any;
34
+ bl?: any;
35
+ bc?: any;
36
+ br?: any;
37
+ }
38
+ class AnchorField extends React.PureComponent<IAnchorFieldProps> {
39
+ constructor(props) {
40
+ super(props);
41
+ }
42
+
43
+ public render() {
44
+ const { label, width, tooltip, info, labelPosition } = this.props;
45
+
46
+ const getIcons = (v, h): IconConfig => {
47
+ if (v === VERTICAL_ALIGNMENT.TOP && h === HORIZONTAL_ALIGNMENT.LEFT) {
48
+ return {
49
+ tl: ICON_CENTER_ANCHOR,
50
+ tc: ICON_RIGHT_ANCHOR,
51
+ cc: ICON_DOWNRIGHT_ANCHOR,
52
+ cl: ICON_DOWN_ANCHOR
53
+ };
54
+ } else if (v === VERTICAL_ALIGNMENT.TOP && h === HORIZONTAL_ALIGNMENT.CENTER) {
55
+ return {
56
+ tl: ICON_LEFT_ANCHOR,
57
+ tc: ICON_CENTER_ANCHOR,
58
+ tr: ICON_RIGHT_ANCHOR,
59
+ cl: ICON_DOWNLEFT_ANCHOR,
60
+ cc: ICON_DOWN_ANCHOR,
61
+ cr: ICON_DOWNRIGHT_ANCHOR
62
+ };
63
+ } else if (v === VERTICAL_ALIGNMENT.TOP && h === HORIZONTAL_ALIGNMENT.RIGHT) {
64
+ return {
65
+ tc: ICON_LEFT_ANCHOR,
66
+ tr: ICON_CENTER_ANCHOR,
67
+ cc: ICON_DOWNLEFT_ANCHOR,
68
+ cr: ICON_DOWN_ANCHOR
69
+ };
70
+ } else if (v === VERTICAL_ALIGNMENT.CENTER && h === HORIZONTAL_ALIGNMENT.LEFT) {
71
+ return {
72
+ tl: ICON_UP_ANCHOR,
73
+ tc: ICON_UPRIGHT_ANCHOR,
74
+ cl: ICON_CENTER_ANCHOR,
75
+ cc: ICON_RIGHT_ANCHOR,
76
+ bl: ICON_DOWN_ANCHOR,
77
+ bc: ICON_DOWNRIGHT_ANCHOR
78
+ };
79
+ } else if (v === VERTICAL_ALIGNMENT.CENTER && h === HORIZONTAL_ALIGNMENT.CENTER) {
80
+ return {
81
+ tl: ICON_UPLEFT_ANCHOR,
82
+ tc: ICON_UP_ANCHOR,
83
+ tr: ICON_UPRIGHT_ANCHOR,
84
+ cl: ICON_LEFT_ANCHOR,
85
+ cc: ICON_CENTER_ANCHOR,
86
+ cr: ICON_RIGHT_ANCHOR,
87
+ bl: ICON_DOWNLEFT_ANCHOR,
88
+ bc: ICON_DOWN_ANCHOR,
89
+ br: ICON_DOWNRIGHT_ANCHOR
90
+ };
91
+ } else if (v === VERTICAL_ALIGNMENT.CENTER && h === HORIZONTAL_ALIGNMENT.RIGHT) {
92
+ return {
93
+ tc: ICON_UPLEFT_ANCHOR,
94
+ tr: ICON_UP_ANCHOR,
95
+ cc: ICON_LEFT_ANCHOR,
96
+ cr: ICON_CENTER_ANCHOR,
97
+ bc: ICON_DOWNLEFT_ANCHOR,
98
+ br: ICON_DOWN_ANCHOR
99
+ };
100
+ } else if (v === VERTICAL_ALIGNMENT.BOTTOM && h === HORIZONTAL_ALIGNMENT.LEFT) {
101
+ return {
102
+ cl: ICON_UP_ANCHOR,
103
+ cc: ICON_UPRIGHT_ANCHOR,
104
+ bl: ICON_CENTER_ANCHOR,
105
+ bc: ICON_RIGHT_ANCHOR
106
+ };
107
+ } else if (v === VERTICAL_ALIGNMENT.BOTTOM && h === HORIZONTAL_ALIGNMENT.CENTER) {
108
+ return {
109
+ cl: ICON_UPLEFT_ANCHOR,
110
+ cc: ICON_UP_ANCHOR,
111
+ cr: ICON_UPRIGHT_ANCHOR,
112
+ bl: ICON_LEFT_ANCHOR,
113
+ bc: ICON_CENTER_ANCHOR,
114
+ br: ICON_RIGHT_ANCHOR
115
+ };
116
+ } else if (v === VERTICAL_ALIGNMENT.BOTTOM && h === HORIZONTAL_ALIGNMENT.RIGHT) {
117
+ return {
118
+ cc: ICON_UPLEFT_ANCHOR,
119
+ cr: ICON_UP_ANCHOR,
120
+ bc: ICON_LEFT_ANCHOR,
121
+ br: ICON_CENTER_ANCHOR
122
+ };
123
+ } else {
124
+ return {};
125
+ }
126
+ };
127
+
128
+ const { vertical_align, horizontal_align } = this.props.config;
129
+ const icons = getIcons(vertical_align, horizontal_align);
130
+
131
+ return (
132
+ <>
133
+ <FieldWrapper
134
+ label={label}
135
+ width={width}
136
+ tooltip={tooltip}
137
+ info={info}
138
+ labelPosition={labelPosition}>
139
+ <table className='anchorTable'>
140
+ <tbody>
141
+ <tr>
142
+ <td
143
+ onClick={() =>
144
+ this.props.onChange(
145
+ VERTICAL_ALIGNMENT.TOP,
146
+ HORIZONTAL_ALIGNMENT.LEFT
147
+ )
148
+ }>
149
+ {icons.tl}
150
+ </td>
151
+ <td
152
+ onClick={() =>
153
+ this.props.onChange(
154
+ VERTICAL_ALIGNMENT.TOP,
155
+ HORIZONTAL_ALIGNMENT.CENTER
156
+ )
157
+ }>
158
+ {icons.tc}
159
+ </td>
160
+ <td
161
+ onClick={() =>
162
+ this.props.onChange(
163
+ VERTICAL_ALIGNMENT.TOP,
164
+ HORIZONTAL_ALIGNMENT.RIGHT
165
+ )
166
+ }>
167
+ {icons.tr}
168
+ </td>
169
+ </tr>
170
+ <tr>
171
+ <td
172
+ onClick={() =>
173
+ this.props.onChange(
174
+ VERTICAL_ALIGNMENT.CENTER,
175
+ HORIZONTAL_ALIGNMENT.LEFT
176
+ )
177
+ }>
178
+ {icons.cl}
179
+ </td>
180
+ <td
181
+ onClick={() =>
182
+ this.props.onChange(
183
+ VERTICAL_ALIGNMENT.CENTER,
184
+ HORIZONTAL_ALIGNMENT.CENTER
185
+ )
186
+ }>
187
+ {icons.cc}
188
+ </td>
189
+ <td
190
+ onClick={() =>
191
+ this.props.onChange(
192
+ VERTICAL_ALIGNMENT.CENTER,
193
+ HORIZONTAL_ALIGNMENT.RIGHT
194
+ )
195
+ }>
196
+ {icons.cr}
197
+ </td>
198
+ </tr>
199
+ <tr>
200
+ <td
201
+ onClick={() =>
202
+ this.props.onChange(
203
+ VERTICAL_ALIGNMENT.BOTTOM,
204
+ HORIZONTAL_ALIGNMENT.LEFT
205
+ )
206
+ }>
207
+ {icons.bl}
208
+ </td>
209
+ <td
210
+ onClick={() =>
211
+ this.props.onChange(
212
+ VERTICAL_ALIGNMENT.BOTTOM,
213
+ HORIZONTAL_ALIGNMENT.CENTER
214
+ )
215
+ }>
216
+ {icons.bc}
217
+ </td>
218
+ <td
219
+ onClick={() =>
220
+ this.props.onChange(
221
+ VERTICAL_ALIGNMENT.BOTTOM,
222
+ HORIZONTAL_ALIGNMENT.RIGHT
223
+ )
224
+ }>
225
+ {icons.br}
226
+ </td>
227
+ </tr>
228
+ </tbody>
229
+ </table>
230
+ </FieldWrapper>
231
+ </>
232
+ );
233
+ }
234
+ }
235
+
236
+ export default AnchorField;
@@ -460,7 +460,6 @@ class TextField extends React.PureComponent<ITextFieldProps, ITextFieldState> {
460
460
 
461
461
  public render() {
462
462
  const { label, width, tooltip, info, labelPosition } = this.props;
463
- console.log(this.props);
464
463
  return (
465
464
  <FieldWrapper
466
465
  customClass='text-field'
@@ -172,3 +172,15 @@ const NEW_TEXT_LAYER: ITextLayer = {
172
172
  text_wrap: true,
173
173
  text_fit: true
174
174
  };
175
+
176
+ export const VERTICAL_ALIGNMENT = {
177
+ TOP: 'top',
178
+ CENTER: 'center',
179
+ BOTTOM: 'bottom'
180
+ };
181
+
182
+ export const HORIZONTAL_ALIGNMENT = {
183
+ LEFT: 'left',
184
+ CENTER: 'center',
185
+ RIGHT: 'right'
186
+ };
@@ -58,6 +58,17 @@ import { faProjectDiagram } from '@fortawesome/free-solid-svg-icons/faProjectDia
58
58
  import { faJs } from '@fortawesome/free-brands-svg-icons/faJs';
59
59
  import { faDownload } from '@fortawesome/free-solid-svg-icons/faDownload';
60
60
  import { faUpload } from '@fortawesome/free-solid-svg-icons/faUpload';
61
+ import {
62
+ faArrowDown,
63
+ faArrowLeft,
64
+ faArrowUp,
65
+ faArrowRight as faRightArrow,
66
+ faArrowUpLeft,
67
+ faArrowUpRight,
68
+ faArrowDownLeft,
69
+ faArrowDownRight
70
+ } from '@fortawesome/pro-light-svg-icons';
71
+ import { faCircleSmall } from '@fortawesome/pro-solid-svg-icons';
61
72
 
62
73
  export const ICON_VIDEO = <FontAwesomeIcon icon={faVideo} />;
63
74
 
@@ -174,3 +185,21 @@ export const ICON_JS = <FontAwesomeIcon icon={faJs} />;
174
185
  export const ICON_DOWNLOAD = <FontAwesomeIcon icon={faDownload} />;
175
186
 
176
187
  export const ICON_UPLOAD = <FontAwesomeIcon icon={faUpload} />;
188
+
189
+ export const ICON_UPLEFT_ANCHOR = <FontAwesomeIcon icon={faArrowUpLeft} />;
190
+
191
+ export const ICON_UP_ANCHOR = <FontAwesomeIcon icon={faArrowUp} />;
192
+
193
+ export const ICON_UPRIGHT_ANCHOR = <FontAwesomeIcon icon={faArrowUpRight} />;
194
+
195
+ export const ICON_LEFT_ANCHOR = <FontAwesomeIcon icon={faArrowLeft} />;
196
+
197
+ export const ICON_RIGHT_ANCHOR = <FontAwesomeIcon icon={faRightArrow} />;
198
+
199
+ export const ICON_DOWNLEFT_ANCHOR = <FontAwesomeIcon icon={faArrowDownLeft} />;
200
+
201
+ export const ICON_DOWN_ANCHOR = <FontAwesomeIcon icon={faArrowDown} />;
202
+
203
+ export const ICON_DOWNRIGHT_ANCHOR = <FontAwesomeIcon icon={faArrowDownRight} />;
204
+
205
+ export const ICON_CENTER_ANCHOR = <FontAwesomeIcon icon={faCircleSmall} />;
package/src/index.ts CHANGED
@@ -66,6 +66,7 @@ import { ShortcutMenu } from './components/shortcut-menu/ShortcutMenu';
66
66
  import { ASSET_TYPES } from './constants/assets';
67
67
  import Portal from './components/portal/Portal';
68
68
  import AssetDetails from './components/asset-details/AssetDetails';
69
+ import AnchorField from './components/anchor-field/AnchorField';
69
70
 
70
71
  /*
71
72
  Redux Handlers / Thunks
@@ -264,5 +265,6 @@ export {
264
265
  publishVersion,
265
266
  clearStoryPublishStatus,
266
267
  getStoryPublishStatus,
267
- PublishStatusIndicator
268
+ PublishStatusIndicator,
269
+ AnchorField
268
270
  };