goblin-gadgets 3.2.2 → 3.2.3

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 (361) hide show
  1. package/.editorconfig +9 -9
  2. package/.eslintrc.js +28 -28
  3. package/.zou-flow +2 -2
  4. package/builders/builders.js +5 -5
  5. package/builders/gadget.js +85 -85
  6. package/calendar-boards-gadget.js +64 -64
  7. package/demo-gadget.js +17 -17
  8. package/glyphs-dialog.js +13 -13
  9. package/login-dialog.js +13 -13
  10. package/package.json +46 -46
  11. package/pivot-gadget.js +18 -18
  12. package/stack-navigation.js +13 -13
  13. package/table-gadget.js +102 -102
  14. package/test/code-parser.spec.js +61 -61
  15. package/tree-gadget.js +70 -70
  16. package/types/types.js +455 -455
  17. package/widgets/accordion/styles.js +16 -16
  18. package/widgets/accordion/widget.js +90 -90
  19. package/widgets/analog-clock/props.js +102 -102
  20. package/widgets/analog-clock/scenarios.js +43 -43
  21. package/widgets/analog-clock/styles.js +754 -754
  22. package/widgets/analog-clock/widget.js +404 -404
  23. package/widgets/animated-container/animations.js +566 -566
  24. package/widgets/animated-container/styles.js +36 -36
  25. package/widgets/animated-container/widget.js +24 -24
  26. package/widgets/badge/styles.js +107 -107
  27. package/widgets/badge/widget.js +33 -33
  28. package/widgets/button/props.js +377 -377
  29. package/widgets/button/scenarios.js +54 -54
  30. package/widgets/button/styles.js +1082 -1082
  31. package/widgets/button/widget.js +426 -426
  32. package/widgets/button-combo/styles.js +73 -73
  33. package/widgets/button-combo/widget.js +297 -297
  34. package/widgets/calendar/props.js +207 -207
  35. package/widgets/calendar/scenarios.js +50 -50
  36. package/widgets/calendar/styles.js +198 -198
  37. package/widgets/calendar/widget.js +895 -895
  38. package/widgets/calendar-boards/styles.js +29 -29
  39. package/widgets/calendar-boards/widget.js +215 -215
  40. package/widgets/calendar-button/styles.js +273 -273
  41. package/widgets/calendar-button/widget.js +94 -94
  42. package/widgets/calendar-list/styles.js +35 -35
  43. package/widgets/calendar-list/widget.js +223 -223
  44. package/widgets/calendar-recurrence/widget.js +183 -183
  45. package/widgets/carousel/props.js +104 -104
  46. package/widgets/carousel/scenarios.js +163 -163
  47. package/widgets/carousel/styles.js +133 -133
  48. package/widgets/carousel/widget.js +491 -491
  49. package/widgets/carousel-bullet/styles.js +29 -29
  50. package/widgets/carousel-bullet/widget.js +25 -25
  51. package/widgets/carousel-button/styles.js +71 -71
  52. package/widgets/carousel-button/widget.js +33 -33
  53. package/widgets/carousel-item/styles.js +21 -21
  54. package/widgets/carousel-item/widget.js +24 -24
  55. package/widgets/chat-balloon/props.js +65 -65
  56. package/widgets/chat-balloon/scenarios.js +47 -47
  57. package/widgets/chat-balloon/styles.js +193 -193
  58. package/widgets/chat-balloon/widget.js +62 -62
  59. package/widgets/chat-dialog/styles.js +15 -15
  60. package/widgets/chat-dialog/widget.js +62 -62
  61. package/widgets/check-list/styles.js +66 -66
  62. package/widgets/check-list/widget.js +168 -168
  63. package/widgets/checkbox/widget.js +15 -15
  64. package/widgets/checkbox-nc/props.js +191 -191
  65. package/widgets/checkbox-nc/scenarios.js +41 -41
  66. package/widgets/checkbox-nc/styles.js +122 -122
  67. package/widgets/checkbox-nc/widget.js +116 -116
  68. package/widgets/clock-combo/styles.js +174 -174
  69. package/widgets/clock-combo/widget.js +390 -390
  70. package/widgets/color-picker/props.js +145 -145
  71. package/widgets/color-picker/scenarios.js +34 -34
  72. package/widgets/color-picker/styles.js +209 -209
  73. package/widgets/color-picker/widget.js +735 -735
  74. package/widgets/colored-container/props.js +34 -34
  75. package/widgets/colored-container/scenarios.js +54 -54
  76. package/widgets/colored-container/styles.js +100 -100
  77. package/widgets/colored-container/widget.js +27 -27
  78. package/widgets/combo/styles.js +69 -69
  79. package/widgets/combo/widget.js +224 -224
  80. package/widgets/combo-container/styles.js +66 -66
  81. package/widgets/combo-container/widget.js +188 -188
  82. package/widgets/command-button/widget.js +39 -39
  83. package/widgets/container/props.js +295 -295
  84. package/widgets/container/scenarios.js +47 -47
  85. package/widgets/container/styles.js +1439 -1439
  86. package/widgets/container/widget.js +279 -279
  87. package/widgets/demo/widget.js +24 -24
  88. package/widgets/dialog/styles.js +29 -29
  89. package/widgets/dialog/widget.js +26 -26
  90. package/widgets/dialog-modal/props.js +126 -126
  91. package/widgets/dialog-modal/styles.js +234 -234
  92. package/widgets/dialog-modal/widget.js +273 -273
  93. package/widgets/dialog-resizable/props.js +1 -1
  94. package/widgets/dialog-resizable/scenarios.js +18 -18
  95. package/widgets/dialog-resizable/widget.js +367 -367
  96. package/widgets/dialog-resizable-nc/props.js +150 -150
  97. package/widgets/dialog-resizable-nc/scenarios.js +18 -18
  98. package/widgets/dialog-resizable-nc/styles.js +259 -259
  99. package/widgets/dialog-resizable-nc/widget.js +197 -197
  100. package/widgets/directory-input/widget.js +18 -18
  101. package/widgets/directory-input-nc/widget.js +20 -20
  102. package/widgets/document-container/getPath.js +43 -43
  103. package/widgets/document-container/props.js +79 -79
  104. package/widgets/document-container/scenarios.js +39 -39
  105. package/widgets/document-container/styles.js +69 -69
  106. package/widgets/document-container/widget.js +53 -53
  107. package/widgets/drag-cab/styles.js +56 -56
  108. package/widgets/drag-cab/widget.js +285 -285
  109. package/widgets/drag-carrier/styles.js +21 -21
  110. package/widgets/drag-carrier/widget.js +780 -780
  111. package/widgets/dynamic-toolbar/styles.js +110 -110
  112. package/widgets/dynamic-toolbar/widget.js +128 -128
  113. package/widgets/field/readonly/label.js +39 -39
  114. package/widgets/field/widget.js +1743 -1743
  115. package/widgets/file-input/widget.js +18 -18
  116. package/widgets/file-input-nc/styles.js +38 -38
  117. package/widgets/file-input-nc/widget.js +88 -88
  118. package/widgets/flat-combo/styles.js +21 -21
  119. package/widgets/flat-combo/widget.js +61 -61
  120. package/widgets/flat-list/styles.js +30 -30
  121. package/widgets/flat-list/widget.js +219 -219
  122. package/widgets/flying-balloon/styles.js +52 -52
  123. package/widgets/flying-balloon/widget.js +43 -43
  124. package/widgets/fragment/widget.js +26 -26
  125. package/widgets/full-screen/props.js +27 -27
  126. package/widgets/full-screen/styles.js +32 -32
  127. package/widgets/full-screen/widget.js +40 -40
  128. package/widgets/gauge/props.js +71 -71
  129. package/widgets/gauge/scenarios.js +83 -83
  130. package/widgets/gauge/styles.js +183 -183
  131. package/widgets/gauge/widget.js +36 -36
  132. package/widgets/glyph-detail/service.js +9 -9
  133. package/widgets/glyph-detail/widget.js +109 -109
  134. package/widgets/glyphs-dialog/service.js +94 -94
  135. package/widgets/glyphs-dialog/styles.js +37 -37
  136. package/widgets/glyphs-dialog/widget.js +236 -236
  137. package/widgets/goblin-editor/widget.js +146 -146
  138. package/widgets/guild-entry/props.js +53 -53
  139. package/widgets/guild-entry/scenarios.js +26 -26
  140. package/widgets/guild-entry/styles.js +98 -98
  141. package/widgets/guild-entry/widget.js +126 -126
  142. package/widgets/guild-user-logo/guild-helpers.js +77 -77
  143. package/widgets/guild-user-logo/props.js +48 -48
  144. package/widgets/guild-user-logo/scenarios.js +64 -64
  145. package/widgets/guild-user-logo/styles.js +114 -114
  146. package/widgets/guild-user-logo/widget.js +81 -81
  147. package/widgets/guild-user-profile/props.js +73 -73
  148. package/widgets/guild-user-profile/scenarios.js +54 -54
  149. package/widgets/guild-user-profile/styles.js +162 -162
  150. package/widgets/guild-user-profile/widget.js +202 -202
  151. package/widgets/helpers/combo-helpers.js +218 -218
  152. package/widgets/helpers/geom-helpers.js +80 -80
  153. package/widgets/helpers/rect-helpers.js +10 -10
  154. package/widgets/helpers/shortcut-helpers.js +56 -56
  155. package/widgets/helpers/spacing-helpers.js +26 -26
  156. package/widgets/helpers/svg-helpers.js +151 -151
  157. package/widgets/helpers/table-helpers.js +68 -68
  158. package/widgets/hinter/styles.js +79 -79
  159. package/widgets/hinter/widget.js +205 -205
  160. package/widgets/hinter-column/widget.js +49 -49
  161. package/widgets/hinter-field/reducer.js +18 -18
  162. package/widgets/hinter-field/widget.js +176 -176
  163. package/widgets/hinter-field-nc/props.js +114 -114
  164. package/widgets/hinter-field-nc/scenarios.js +47 -47
  165. package/widgets/hinter-field-nc/widget.js +191 -191
  166. package/widgets/input-wrapper/widget.js +157 -157
  167. package/widgets/key-trap.js +96 -96
  168. package/widgets/label/props.js +1 -1
  169. package/widgets/label/scenarios.js +1 -1
  170. package/widgets/label/widget.js +7 -7
  171. package/widgets/label-nc/props.js +308 -308
  172. package/widgets/label-nc/scenarios.js +29 -29
  173. package/widgets/label-nc/styles.js +1218 -1218
  174. package/widgets/label-nc/widget.js +314 -314
  175. package/widgets/label-row/props.js +1 -1
  176. package/widgets/label-row/scenarios.js +1 -1
  177. package/widgets/label-row/widget.js +7 -7
  178. package/widgets/label-row-nc/props.js +94 -94
  179. package/widgets/label-row-nc/scenarios.js +46 -46
  180. package/widgets/label-row-nc/widget.js +81 -81
  181. package/widgets/label-text-field/styles.js +55 -55
  182. package/widgets/label-text-field/widget.js +178 -178
  183. package/widgets/launcher/props.js +177 -177
  184. package/widgets/launcher/scenarios.js +55 -55
  185. package/widgets/launcher/styles.js +46 -46
  186. package/widgets/launcher/widget.js +79 -79
  187. package/widgets/launcher-blob/props.js +25 -25
  188. package/widgets/launcher-blob/scenarios.js +24 -24
  189. package/widgets/launcher-blob/styles.js +62 -62
  190. package/widgets/launcher-blob/widget.js +50 -50
  191. package/widgets/list/widget.js +211 -211
  192. package/widgets/login-dialog/service.js +117 -117
  193. package/widgets/login-dialog/widget.js +117 -117
  194. package/widgets/map/reaflet.js +208 -208
  195. package/widgets/map/widget.js +67 -67
  196. package/widgets/markdown/styles.js +85 -85
  197. package/widgets/markdown/widget.js +31 -31
  198. package/widgets/notification/styles.js +97 -97
  199. package/widgets/notification/widget.js +207 -207
  200. package/widgets/pivot/custom.css +320 -320
  201. package/widgets/pivot/widget.js +42 -42
  202. package/widgets/radio-list/styles.js +48 -48
  203. package/widgets/radio-list/widget.js +111 -111
  204. package/widgets/resizable-container/styles.js +108 -108
  205. package/widgets/resizable-container/widget.js +225 -225
  206. package/widgets/retro-action-button/helpers.js +106 -106
  207. package/widgets/retro-action-button/styles.js +285 -285
  208. package/widgets/retro-action-button/widget.js +364 -364
  209. package/widgets/retro-badge-button/styles.js +87 -87
  210. package/widgets/retro-badge-button/widget.js +251 -251
  211. package/widgets/retro-gear/helpers.js +156 -156
  212. package/widgets/retro-gear/styles.js +130 -130
  213. package/widgets/retro-gear/widget.js +51 -51
  214. package/widgets/retro-illuminated-button/styles.js +274 -274
  215. package/widgets/retro-illuminated-button/widget.js +147 -147
  216. package/widgets/retro-panel/helpers.js +57 -57
  217. package/widgets/retro-panel/styles.js +293 -293
  218. package/widgets/retro-panel/widget.js +239 -239
  219. package/widgets/retro-screw/styles.js +80 -80
  220. package/widgets/retro-screw/widget.js +25 -25
  221. package/widgets/rocket/props.js +124 -124
  222. package/widgets/rocket/scenarios.js +71 -71
  223. package/widgets/rocket/styles.js +306 -306
  224. package/widgets/rocket/widget.js +225 -225
  225. package/widgets/samples-monitor/helpers.js +147 -147
  226. package/widgets/samples-monitor/styles.js +529 -529
  227. package/widgets/samples-monitor/widget.js +516 -516
  228. package/widgets/scrollable-container/styles.js +58 -58
  229. package/widgets/scrollable-container/widget.js +132 -132
  230. package/widgets/scrollable-linkable-container/reducer.js +18 -18
  231. package/widgets/scrollable-linkable-container/styles.js +42 -42
  232. package/widgets/scrollable-linkable-container/widget.js +78 -78
  233. package/widgets/select/styles.js +68 -68
  234. package/widgets/select/widget.js +119 -119
  235. package/widgets/separator/props.js +46 -46
  236. package/widgets/separator/styles.js +116 -116
  237. package/widgets/separator/widget.js +27 -27
  238. package/widgets/slider/props.js +136 -136
  239. package/widgets/slider/scenarios.js +74 -74
  240. package/widgets/slider/styles.js +246 -246
  241. package/widgets/slider/widget.js +404 -404
  242. package/widgets/slider-circle/props.js +72 -72
  243. package/widgets/slider-circle/scenarios.js +16 -16
  244. package/widgets/slider-circle/styles.js +78 -78
  245. package/widgets/slider-circle/widget.js +154 -154
  246. package/widgets/slider-xy/props.js +87 -87
  247. package/widgets/slider-xy/scenarios.js +19 -19
  248. package/widgets/slider-xy/styles.js +102 -102
  249. package/widgets/slider-xy/widget.js +234 -234
  250. package/widgets/smiley/props.js +51 -51
  251. package/widgets/smiley/scenarios.js +58 -58
  252. package/widgets/smiley/styles.js +489 -489
  253. package/widgets/smiley/widget.js +72 -72
  254. package/widgets/spinner/props.js +31 -31
  255. package/widgets/spinner/scenarios.js +31 -31
  256. package/widgets/spinner/styles.js +49 -49
  257. package/widgets/spinner/widget.js +23 -23
  258. package/widgets/splitter/props.js +71 -71
  259. package/widgets/splitter/scenarios.js +182 -182
  260. package/widgets/splitter/styles.js +41 -41
  261. package/widgets/splitter/widget.js +455 -455
  262. package/widgets/stack-navigation/service.js +324 -324
  263. package/widgets/stack-navigation/widget.js +296 -296
  264. package/widgets/state-browser/styles.js +19 -19
  265. package/widgets/state-browser/widget.js +135 -135
  266. package/widgets/state-browser-dialog/styles.js +100 -100
  267. package/widgets/state-browser-dialog/widget.js +253 -253
  268. package/widgets/state-monitor/styles.js +50 -50
  269. package/widgets/state-monitor/widget.js +324 -324
  270. package/widgets/switch-on-off/props.js +30 -30
  271. package/widgets/switch-on-off/scenarios.js +34 -34
  272. package/widgets/switch-on-off/styles.js +63 -63
  273. package/widgets/switch-on-off/widget.js +41 -41
  274. package/widgets/table/helpers.js +160 -160
  275. package/widgets/table/props.js +658 -658
  276. package/widgets/table/reducer.js +196 -196
  277. package/widgets/table/scenarios.js +54 -54
  278. package/widgets/table/widget.js +253 -253
  279. package/widgets/table-cell/props.js +145 -145
  280. package/widgets/table-cell/styles.js +160 -160
  281. package/widgets/table-cell/widget.js +139 -139
  282. package/widgets/table-header-drag-manager/styles.js +184 -184
  283. package/widgets/table-header-drag-manager/widget.js +392 -392
  284. package/widgets/table-nc/styles.js +100 -100
  285. package/widgets/table-nc/widget.js +409 -409
  286. package/widgets/table-row/props.js +73 -73
  287. package/widgets/table-row/styles.js +82 -82
  288. package/widgets/table-row/widget.js +207 -207
  289. package/widgets/text-field/widget.js +18 -18
  290. package/widgets/text-field-combo/widget.js +21 -21
  291. package/widgets/text-field-combo-nc/props.js +300 -300
  292. package/widgets/text-field-combo-nc/scenarios.js +72 -72
  293. package/widgets/text-field-combo-nc/widget.js +339 -339
  294. package/widgets/text-field-date-interval/styles.js +37 -37
  295. package/widgets/text-field-date-interval/widget.js +162 -162
  296. package/widgets/text-field-nc/props.js +40 -40
  297. package/widgets/text-field-nc/scenarios.js +67 -67
  298. package/widgets/text-field-nc/widget.js +14 -14
  299. package/widgets/text-field-time-interval/styles.js +37 -37
  300. package/widgets/text-field-time-interval/widget.js +160 -160
  301. package/widgets/text-field-typed/widget.js +51 -51
  302. package/widgets/text-field-typed-nc/props.js +81 -81
  303. package/widgets/text-field-typed-nc/scenarios.js +105 -105
  304. package/widgets/text-field-typed-nc/styles.js +20 -20
  305. package/widgets/text-field-typed-nc/widget.js +749 -750
  306. package/widgets/text-input-info-nc/props.js +62 -62
  307. package/widgets/text-input-info-nc/widget.js +55 -55
  308. package/widgets/text-input-nc/props.js +143 -143
  309. package/widgets/text-input-nc/scenarios.js +44 -44
  310. package/widgets/text-input-nc/styles.js +242 -242
  311. package/widgets/text-input-nc/widget.js +234 -234
  312. package/widgets/ticket/getPath.js +128 -128
  313. package/widgets/ticket/props.js +181 -181
  314. package/widgets/ticket/scenarios.js +39 -39
  315. package/widgets/ticket/styles.js +332 -332
  316. package/widgets/ticket/ticket-helpers.js +33 -33
  317. package/widgets/ticket/widget.js +348 -348
  318. package/widgets/ticket-hover/styles.js +207 -207
  319. package/widgets/ticket-hover/widget.js +53 -53
  320. package/widgets/time-gauge/widget.js +64 -64
  321. package/widgets/tips/styles.js +48 -48
  322. package/widgets/tips/widget.js +171 -171
  323. package/widgets/translatable-text-field/styles.js +202 -202
  324. package/widgets/translatable-text-field/text-field.js +132 -132
  325. package/widgets/translatable-text-field/widget.js +660 -660
  326. package/widgets/tree/props.js +246 -246
  327. package/widgets/tree/scenarios.js +14 -14
  328. package/widgets/tree/styles.js +142 -142
  329. package/widgets/tree/widget.js +383 -383
  330. package/widgets/tree-cell/styles.js +140 -140
  331. package/widgets/tree-cell/widget.js +100 -100
  332. package/widgets/tree-row/styles.js +77 -77
  333. package/widgets/tree-row/widget.js +135 -135
  334. package/widgets/triangle/props.js +48 -48
  335. package/widgets/triangle/scenarios.js +33 -33
  336. package/widgets/triangle/styles.js +92 -92
  337. package/widgets/triangle/widget.js +36 -36
  338. package/widgets/well-done/widget.js +170 -170
  339. package/widgets/widget-doc/reducer.js +68 -68
  340. package/widgets/widget-doc/styles.js +15 -15
  341. package/widgets/widget-doc/widget-list.js +25 -25
  342. package/widgets/widget-doc/widget.js +89 -89
  343. package/widgets/widget-doc-menu/styles.js +12 -12
  344. package/widgets/widget-doc-menu/widget.js +79 -79
  345. package/widgets/widget-doc-preview/parse-code.js +20 -20
  346. package/widgets/widget-doc-preview/styles.js +77 -77
  347. package/widgets/widget-doc-preview/widget.js +481 -481
  348. package/widgets/widget-doc-preview-container/styles.js +60 -60
  349. package/widgets/widget-doc-preview-container/widget.js +129 -129
  350. package/widgets/widget-doc-properties/styles.js +41 -41
  351. package/widgets/widget-doc-properties/widget.js +307 -307
  352. package/widgets/widget-doc-property/styles.js +75 -75
  353. package/widgets/widget-doc-property/widget.js +108 -108
  354. package/widgets/widget-doc-property-control/styles.js +14 -14
  355. package/widgets/widget-doc-property-control/widget.js +343 -343
  356. package/widgets/wizard/service.js +2132 -2132
  357. package/widgets/wizard/styles.js +21 -21
  358. package/widgets/wizard/widget.js +927 -927
  359. package/widgets/work-dialog/styles.js +31 -31
  360. package/widgets/work-dialog/widget.js +162 -162
  361. package/wizard.js +13 -13
@@ -1,332 +1,332 @@
1
- import {Unit} from 'goblin-theme';
2
- import * as TicketHelpers from '../ticket/ticket-helpers.js';
3
- import getPath from './getPath';
4
-
5
- /******************************************************************************/
6
-
7
- export const propNames = [
8
- 'horizontalSpacing',
9
- 'kind',
10
- 'shape',
11
- 'visibility',
12
- 'opacity',
13
- 'grow',
14
- 'width',
15
- 'height',
16
- 'verticalSpacing',
17
- 'cursor',
18
- 'color',
19
- 'hideContent',
20
- 'cornerPosition',
21
- 'cornerSize',
22
- 'shadow',
23
- ];
24
-
25
- /******************************************************************************/
26
-
27
- export default function styles(theme, props) {
28
- const horizontalSpacing = props.horizontalSpacing
29
- ? props.horizontalSpacing
30
- : '0px';
31
-
32
- const r =
33
- props.kind === 'thin' || props.kind === 'event'
34
- ? theme.shapes.ticketRectRadius
35
- : theme.shapes.ticketCornerRadius;
36
-
37
- const radius = TicketHelpers.getRadius(props.shape, r);
38
-
39
- const boxOpacity = props.visibility === false ? 0 : props.opacity;
40
-
41
- const outlinePath = getPath.getOutlinePath(
42
- theme,
43
- props.shape,
44
- props.width,
45
- props.height
46
- );
47
-
48
- const box = {
49
- flexGrow: props.grow,
50
- width: props.width,
51
- height: props.height,
52
- margin: '0px ' + horizontalSpacing + ' ' + props.verticalSpacing + ' 0px',
53
- position: 'relative',
54
- cursor: props.cursor,
55
- transition: theme.transitions.easeOut(),
56
- userSelect: 'none',
57
- opacity: boxOpacity,
58
- };
59
-
60
- const shape = {
61
- position: 'absolute',
62
- fill: props.color,
63
- transition: theme.transitions.easeOut(),
64
- filter: props.shadow
65
- ? 'drop-shadow(0px 10px 16px rgba(0, 0, 0, 0.3))'
66
- : 'drop-shadow(0px 2px 1px rgba(0, 0, 0, 0.3))',
67
- };
68
-
69
- const shapePath = {
70
- d: `path("${outlinePath}")`,
71
- };
72
-
73
- const hatchDef = {
74
- position: 'absolute',
75
- };
76
-
77
- const hatch = {
78
- position: 'absolute',
79
- transition: theme.transitions.easeOut(),
80
- };
81
-
82
- const hatchPath = {
83
- d: `path("${outlinePath}")`,
84
- };
85
-
86
- const cornerPath = {
87
- d: `path("${getPath.getCornerPath(
88
- props.width,
89
- props.height,
90
- props.cornerPosition,
91
- props.cornerSize || '20px'
92
- )}")`,
93
- };
94
-
95
- const vp = props.kind === 'thin' ? '0px' : theme.shapes.ticketVerticalPadding;
96
- const hp =
97
- props.kind === 'thin' ? '0px' : theme.shapes.ticketHorizontalPadding;
98
- const content = {
99
- position: 'relative',
100
- padding: vp + ' ' + hp,
101
- display: 'flex',
102
- flexDirection: 'row',
103
- transition: theme.transitions.easeOut(),
104
- userSelect: 'none',
105
- visibility: props.hideContent ? 'hidden' : 'visible',
106
- };
107
-
108
- const rectShadow = {
109
- width: props.width,
110
- height: props.height,
111
- flexGrow: props.grow,
112
- margin: '0px ' + horizontalSpacing + ' ' + props.verticalSpacing + ' 0px',
113
- position: 'relative',
114
- top: theme.shapes.ticketShadowShift,
115
- cursor: props.cursor,
116
- transition: theme.transitions.easeOut(),
117
- borderRadius: radius,
118
- backgroundColor: theme.palette.ticketShadow,
119
- opacity: boxOpacity,
120
- };
121
-
122
- const rectFarShadow = Object.assign({}, rectShadow); // clone
123
- rectFarShadow.top = '0px';
124
- rectFarShadow.boxShadow = '0px 10px 23px 4px rgba(0, 0, 0, 0.3)';
125
-
126
- const rect = {
127
- height: props.height,
128
- position: 'relative',
129
- top: '-' + theme.shapes.ticketShadowShift,
130
- cursor: props.cursor,
131
- transition: theme.transitions.easeOut(),
132
- borderRadius: radius,
133
- backgroundColor: props.color,
134
- };
135
-
136
- const hc = 'rgba(0,0,0,' + theme.palette.ticketHatchOpacity + ')';
137
- const hs = theme.shapes.ticketHatchSize;
138
- const ht = Unit.multiply(hs, 2);
139
- const rectContentHatch = {
140
- height: props.height ? Unit.sub(props.height, Unit.multiply(vp, 2)) : null,
141
- position: 'relative',
142
- padding: vp + ' ' + hp,
143
- display: 'flex',
144
- flexDirection: 'row',
145
- transition: theme.transitions.easeOut(),
146
- borderRadius: radius,
147
- background: `repeating-linear-gradient(-45deg, ${hc}, ${hc} ${hs}, rgba(0,0,0,0) 0px, rgba(0,0,0,0) ${ht})`,
148
- };
149
-
150
- const hudGlyphShadow = {
151
- position: 'absolute',
152
- width: '34px',
153
- height: '34px',
154
- top: '8px',
155
- right: '7px',
156
- display: 'flex',
157
- justifyContent: 'center',
158
- alignItems: 'center',
159
- borderRadius: '17px',
160
- boxShadow: theme.shapes.ticketHudShadow,
161
- backgroundColor: theme.palette.ticketHudShadow,
162
- opacity: 1,
163
- transition: theme.transitions.easeOut(),
164
- };
165
-
166
- const hudGlyphShadowNone = {
167
- position: 'absolute',
168
- width: '34px',
169
- height: '34px',
170
- top: '8px',
171
- right: '7px',
172
- display: 'flex',
173
- justifyContent: 'center',
174
- alignItems: 'center',
175
- borderRadius: '17px',
176
- boxShadow: theme.shapes.ticketHudShadow,
177
- backgroundColor: theme.palette.ticketHudShadow,
178
- opacity: 0,
179
- transition: theme.transitions.easeOut(),
180
- };
181
-
182
- const hudGlyphBox = {
183
- position: 'absolute',
184
- width: '30px',
185
- height: '30px',
186
- top: '-1px',
187
- right: '0px',
188
- display: 'flex',
189
- justifyContent: 'center',
190
- alignItems: 'center',
191
- border: '1px solid',
192
- borderRadius: '15px',
193
- backgroundColor: theme.palette.ticketHudBackground,
194
- };
195
-
196
- /******************************************************************************/
197
-
198
- const cover = {
199
- display: 'flex',
200
- flexGrow: 1,
201
- width: props.width,
202
- height: '100%',
203
- margin: '0px',
204
- position: 'relative',
205
- cursor: props.cursor,
206
- transition: theme.transitions.easeOut(),
207
- backgroundColor: props.color,
208
- opacity: boxOpacity,
209
- };
210
-
211
- const w = props.width ? Unit.multiply(props.width, 0.5) : null;
212
- const coverContent = {
213
- display: 'flex',
214
- height: props.width,
215
- lineHeight: props.width,
216
- margin: theme.shapes.ticketCoverTopMargin + ' 0px 0px 0px',
217
- position: 'relative',
218
- cursor: props.cursor,
219
- transition: theme.transitions.easeOut(),
220
- transform: 'rotate(90deg)', // 90 deg CW, from top to bottom
221
- transformOrigin: w + ' ' + w,
222
- whiteSpace: 'nowrap',
223
- };
224
-
225
- const backgroundText = {
226
- position: 'absolute',
227
- top: '-3px',
228
- right: theme.shapes.ticketBackgroundRightMargin,
229
- fontWeight: theme.shapes.ticketBackgroundFontWeight,
230
- fontSize: theme.shapes.ticketBackgroundFontSize,
231
- color: theme.palette.ticketNumberBackground,
232
- };
233
-
234
- const m = theme.shapes.containerMargin;
235
- const subpaneRect = {
236
- display: 'flex',
237
- flexDirection: 'column',
238
- flexGrow: 1,
239
- justifyContent: 'flex-start',
240
- alignItems: 'stretch',
241
- margin: '0px ' + horizontalSpacing + ' ' + props.verticalSpacing + ' 0px',
242
- padding: m + ' ' + m + ' ' + Unit.multiply(m, 0.5) + ' ' + m,
243
- borderWidth: '2px',
244
- borderStyle: 'dashed none none none',
245
- borderColor: theme.palette.ticketSubpaneBorder,
246
- backgroundColor: props.color,
247
- opacity: boxOpacity,
248
- };
249
- const subpaneDragged = {
250
- display: 'flex',
251
- flexDirection: 'column',
252
- flexGrow: 1,
253
- justifyContent: 'flex-start',
254
- alignItems: 'stretch',
255
- padding: m + ' ' + m + ' ' + Unit.multiply(m, 0.5) + ' ' + m,
256
- borderWidth: '2px',
257
- borderStyle: 'solid',
258
- borderColor: theme.palette.ticketSubpaneBorder,
259
- backgroundColor: props.color,
260
- opacity: boxOpacity,
261
- };
262
- const subpaneContent = {
263
- visibility: props.hideContent ? 'hidden' : 'visible',
264
- };
265
-
266
- const ts = '20px';
267
- const keyframes = {
268
- '0%': {
269
- transform: `translateX(-${ts}) scale(0)`,
270
- opacity: 1,
271
- },
272
- '20%': {
273
- transform: 'translateX(0px) scale(1)',
274
- opacity: 1,
275
- },
276
- '100%': {
277
- transform: `translateX(-${ts}) scale(0)`,
278
- opacity: 1,
279
- },
280
- };
281
- const flash = {
282
- position: 'absolute',
283
- left: '0px',
284
- top: `calc(50% - ${ts})`,
285
- width: '0px',
286
- height: '0px',
287
- borderLeft: ts + ' solid ' + theme.palette.ticketHover,
288
- borderTop: ts + ' solid transparent',
289
- borderRight: ts + ' solid transparent',
290
- borderBottom: ts + ' solid transparent',
291
- animationName: keyframes,
292
- animationDuration: '0.7s',
293
- animationIterationCount: '7',
294
- opacity: 0,
295
- };
296
-
297
- const identicalCount = {
298
- position: 'absolute',
299
- right: '0px',
300
- bottom: '0px',
301
- };
302
-
303
- /******************************************************************************/
304
-
305
- return {
306
- box,
307
- shape,
308
- shapePath,
309
- hatch,
310
- hatchPath,
311
- hatchDef,
312
- cornerPath,
313
- content,
314
- rectShadow,
315
- rectFarShadow,
316
- rect,
317
- rectContentHatch,
318
- hudGlyphShadow,
319
- hudGlyphShadowNone,
320
- hudGlyphBox,
321
- cover,
322
- coverContent,
323
- backgroundText,
324
- subpaneRect,
325
- subpaneDragged,
326
- subpaneContent,
327
- flash,
328
- identicalCount,
329
- };
330
- }
331
-
332
- /******************************************************************************/
1
+ import {Unit} from 'goblin-theme';
2
+ import * as TicketHelpers from '../ticket/ticket-helpers.js';
3
+ import getPath from './getPath';
4
+
5
+ /******************************************************************************/
6
+
7
+ export const propNames = [
8
+ 'horizontalSpacing',
9
+ 'kind',
10
+ 'shape',
11
+ 'visibility',
12
+ 'opacity',
13
+ 'grow',
14
+ 'width',
15
+ 'height',
16
+ 'verticalSpacing',
17
+ 'cursor',
18
+ 'color',
19
+ 'hideContent',
20
+ 'cornerPosition',
21
+ 'cornerSize',
22
+ 'shadow',
23
+ ];
24
+
25
+ /******************************************************************************/
26
+
27
+ export default function styles(theme, props) {
28
+ const horizontalSpacing = props.horizontalSpacing
29
+ ? props.horizontalSpacing
30
+ : '0px';
31
+
32
+ const r =
33
+ props.kind === 'thin' || props.kind === 'event'
34
+ ? theme.shapes.ticketRectRadius
35
+ : theme.shapes.ticketCornerRadius;
36
+
37
+ const radius = TicketHelpers.getRadius(props.shape, r);
38
+
39
+ const boxOpacity = props.visibility === false ? 0 : props.opacity;
40
+
41
+ const outlinePath = getPath.getOutlinePath(
42
+ theme,
43
+ props.shape,
44
+ props.width,
45
+ props.height
46
+ );
47
+
48
+ const box = {
49
+ flexGrow: props.grow,
50
+ width: props.width,
51
+ height: props.height,
52
+ margin: '0px ' + horizontalSpacing + ' ' + props.verticalSpacing + ' 0px',
53
+ position: 'relative',
54
+ cursor: props.cursor,
55
+ transition: theme.transitions.easeOut(),
56
+ userSelect: 'none',
57
+ opacity: boxOpacity,
58
+ };
59
+
60
+ const shape = {
61
+ position: 'absolute',
62
+ fill: props.color,
63
+ transition: theme.transitions.easeOut(),
64
+ filter: props.shadow
65
+ ? 'drop-shadow(0px 10px 16px rgba(0, 0, 0, 0.3))'
66
+ : 'drop-shadow(0px 2px 1px rgba(0, 0, 0, 0.3))',
67
+ };
68
+
69
+ const shapePath = {
70
+ d: `path("${outlinePath}")`,
71
+ };
72
+
73
+ const hatchDef = {
74
+ position: 'absolute',
75
+ };
76
+
77
+ const hatch = {
78
+ position: 'absolute',
79
+ transition: theme.transitions.easeOut(),
80
+ };
81
+
82
+ const hatchPath = {
83
+ d: `path("${outlinePath}")`,
84
+ };
85
+
86
+ const cornerPath = {
87
+ d: `path("${getPath.getCornerPath(
88
+ props.width,
89
+ props.height,
90
+ props.cornerPosition,
91
+ props.cornerSize || '20px'
92
+ )}")`,
93
+ };
94
+
95
+ const vp = props.kind === 'thin' ? '0px' : theme.shapes.ticketVerticalPadding;
96
+ const hp =
97
+ props.kind === 'thin' ? '0px' : theme.shapes.ticketHorizontalPadding;
98
+ const content = {
99
+ position: 'relative',
100
+ padding: vp + ' ' + hp,
101
+ display: 'flex',
102
+ flexDirection: 'row',
103
+ transition: theme.transitions.easeOut(),
104
+ userSelect: 'none',
105
+ visibility: props.hideContent ? 'hidden' : 'visible',
106
+ };
107
+
108
+ const rectShadow = {
109
+ width: props.width,
110
+ height: props.height,
111
+ flexGrow: props.grow,
112
+ margin: '0px ' + horizontalSpacing + ' ' + props.verticalSpacing + ' 0px',
113
+ position: 'relative',
114
+ top: theme.shapes.ticketShadowShift,
115
+ cursor: props.cursor,
116
+ transition: theme.transitions.easeOut(),
117
+ borderRadius: radius,
118
+ backgroundColor: theme.palette.ticketShadow,
119
+ opacity: boxOpacity,
120
+ };
121
+
122
+ const rectFarShadow = Object.assign({}, rectShadow); // clone
123
+ rectFarShadow.top = '0px';
124
+ rectFarShadow.boxShadow = '0px 10px 23px 4px rgba(0, 0, 0, 0.3)';
125
+
126
+ const rect = {
127
+ height: props.height,
128
+ position: 'relative',
129
+ top: '-' + theme.shapes.ticketShadowShift,
130
+ cursor: props.cursor,
131
+ transition: theme.transitions.easeOut(),
132
+ borderRadius: radius,
133
+ backgroundColor: props.color,
134
+ };
135
+
136
+ const hc = 'rgba(0,0,0,' + theme.palette.ticketHatchOpacity + ')';
137
+ const hs = theme.shapes.ticketHatchSize;
138
+ const ht = Unit.multiply(hs, 2);
139
+ const rectContentHatch = {
140
+ height: props.height ? Unit.sub(props.height, Unit.multiply(vp, 2)) : null,
141
+ position: 'relative',
142
+ padding: vp + ' ' + hp,
143
+ display: 'flex',
144
+ flexDirection: 'row',
145
+ transition: theme.transitions.easeOut(),
146
+ borderRadius: radius,
147
+ background: `repeating-linear-gradient(-45deg, ${hc}, ${hc} ${hs}, rgba(0,0,0,0) 0px, rgba(0,0,0,0) ${ht})`,
148
+ };
149
+
150
+ const hudGlyphShadow = {
151
+ position: 'absolute',
152
+ width: '34px',
153
+ height: '34px',
154
+ top: '8px',
155
+ right: '7px',
156
+ display: 'flex',
157
+ justifyContent: 'center',
158
+ alignItems: 'center',
159
+ borderRadius: '17px',
160
+ boxShadow: theme.shapes.ticketHudShadow,
161
+ backgroundColor: theme.palette.ticketHudShadow,
162
+ opacity: 1,
163
+ transition: theme.transitions.easeOut(),
164
+ };
165
+
166
+ const hudGlyphShadowNone = {
167
+ position: 'absolute',
168
+ width: '34px',
169
+ height: '34px',
170
+ top: '8px',
171
+ right: '7px',
172
+ display: 'flex',
173
+ justifyContent: 'center',
174
+ alignItems: 'center',
175
+ borderRadius: '17px',
176
+ boxShadow: theme.shapes.ticketHudShadow,
177
+ backgroundColor: theme.palette.ticketHudShadow,
178
+ opacity: 0,
179
+ transition: theme.transitions.easeOut(),
180
+ };
181
+
182
+ const hudGlyphBox = {
183
+ position: 'absolute',
184
+ width: '30px',
185
+ height: '30px',
186
+ top: '-1px',
187
+ right: '0px',
188
+ display: 'flex',
189
+ justifyContent: 'center',
190
+ alignItems: 'center',
191
+ border: '1px solid',
192
+ borderRadius: '15px',
193
+ backgroundColor: theme.palette.ticketHudBackground,
194
+ };
195
+
196
+ /******************************************************************************/
197
+
198
+ const cover = {
199
+ display: 'flex',
200
+ flexGrow: 1,
201
+ width: props.width,
202
+ height: '100%',
203
+ margin: '0px',
204
+ position: 'relative',
205
+ cursor: props.cursor,
206
+ transition: theme.transitions.easeOut(),
207
+ backgroundColor: props.color,
208
+ opacity: boxOpacity,
209
+ };
210
+
211
+ const w = props.width ? Unit.multiply(props.width, 0.5) : null;
212
+ const coverContent = {
213
+ display: 'flex',
214
+ height: props.width,
215
+ lineHeight: props.width,
216
+ margin: theme.shapes.ticketCoverTopMargin + ' 0px 0px 0px',
217
+ position: 'relative',
218
+ cursor: props.cursor,
219
+ transition: theme.transitions.easeOut(),
220
+ transform: 'rotate(90deg)', // 90 deg CW, from top to bottom
221
+ transformOrigin: w + ' ' + w,
222
+ whiteSpace: 'nowrap',
223
+ };
224
+
225
+ const backgroundText = {
226
+ position: 'absolute',
227
+ top: '-3px',
228
+ right: theme.shapes.ticketBackgroundRightMargin,
229
+ fontWeight: theme.shapes.ticketBackgroundFontWeight,
230
+ fontSize: theme.shapes.ticketBackgroundFontSize,
231
+ color: theme.palette.ticketNumberBackground,
232
+ };
233
+
234
+ const m = theme.shapes.containerMargin;
235
+ const subpaneRect = {
236
+ display: 'flex',
237
+ flexDirection: 'column',
238
+ flexGrow: 1,
239
+ justifyContent: 'flex-start',
240
+ alignItems: 'stretch',
241
+ margin: '0px ' + horizontalSpacing + ' ' + props.verticalSpacing + ' 0px',
242
+ padding: m + ' ' + m + ' ' + Unit.multiply(m, 0.5) + ' ' + m,
243
+ borderWidth: '2px',
244
+ borderStyle: 'dashed none none none',
245
+ borderColor: theme.palette.ticketSubpaneBorder,
246
+ backgroundColor: props.color,
247
+ opacity: boxOpacity,
248
+ };
249
+ const subpaneDragged = {
250
+ display: 'flex',
251
+ flexDirection: 'column',
252
+ flexGrow: 1,
253
+ justifyContent: 'flex-start',
254
+ alignItems: 'stretch',
255
+ padding: m + ' ' + m + ' ' + Unit.multiply(m, 0.5) + ' ' + m,
256
+ borderWidth: '2px',
257
+ borderStyle: 'solid',
258
+ borderColor: theme.palette.ticketSubpaneBorder,
259
+ backgroundColor: props.color,
260
+ opacity: boxOpacity,
261
+ };
262
+ const subpaneContent = {
263
+ visibility: props.hideContent ? 'hidden' : 'visible',
264
+ };
265
+
266
+ const ts = '20px';
267
+ const keyframes = {
268
+ '0%': {
269
+ transform: `translateX(-${ts}) scale(0)`,
270
+ opacity: 1,
271
+ },
272
+ '20%': {
273
+ transform: 'translateX(0px) scale(1)',
274
+ opacity: 1,
275
+ },
276
+ '100%': {
277
+ transform: `translateX(-${ts}) scale(0)`,
278
+ opacity: 1,
279
+ },
280
+ };
281
+ const flash = {
282
+ position: 'absolute',
283
+ left: '0px',
284
+ top: `calc(50% - ${ts})`,
285
+ width: '0px',
286
+ height: '0px',
287
+ borderLeft: ts + ' solid ' + theme.palette.ticketHover,
288
+ borderTop: ts + ' solid transparent',
289
+ borderRight: ts + ' solid transparent',
290
+ borderBottom: ts + ' solid transparent',
291
+ animationName: keyframes,
292
+ animationDuration: '0.7s',
293
+ animationIterationCount: '7',
294
+ opacity: 0,
295
+ };
296
+
297
+ const identicalCount = {
298
+ position: 'absolute',
299
+ right: '0px',
300
+ bottom: '0px',
301
+ };
302
+
303
+ /******************************************************************************/
304
+
305
+ return {
306
+ box,
307
+ shape,
308
+ shapePath,
309
+ hatch,
310
+ hatchPath,
311
+ hatchDef,
312
+ cornerPath,
313
+ content,
314
+ rectShadow,
315
+ rectFarShadow,
316
+ rect,
317
+ rectContentHatch,
318
+ hudGlyphShadow,
319
+ hudGlyphShadowNone,
320
+ hudGlyphBox,
321
+ cover,
322
+ coverContent,
323
+ backgroundText,
324
+ subpaneRect,
325
+ subpaneDragged,
326
+ subpaneContent,
327
+ flash,
328
+ identicalCount,
329
+ };
330
+ }
331
+
332
+ /******************************************************************************/