anim-3d-obj 1.1.22 → 1.1.26

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 (102) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +214 -154
  3. package/dist/cjs/components/Button.d.ts +6 -0
  4. package/dist/cjs/components/Button.js +19 -0
  5. package/dist/cjs/components/Button.js.map +1 -0
  6. package/dist/cjs/components/Card.d.ts +2 -0
  7. package/dist/cjs/components/Card.js +25 -0
  8. package/dist/cjs/components/Card.js.map +1 -0
  9. package/dist/cjs/components/Cuboid.d.ts +2 -0
  10. package/dist/cjs/components/Cuboid.js +29 -0
  11. package/dist/cjs/components/Cuboid.js.map +1 -0
  12. package/dist/cjs/components/Faces/Face.d.ts +3 -0
  13. package/dist/cjs/components/Faces/Face.js +84 -0
  14. package/dist/cjs/components/Faces/Face.js.map +1 -0
  15. package/dist/cjs/components/Ribbon.d.ts +2 -0
  16. package/dist/cjs/components/Ribbon.js +26 -0
  17. package/dist/cjs/components/Ribbon.js.map +1 -0
  18. package/dist/cjs/components/index.d.ts +5 -0
  19. package/dist/cjs/components/index.js +22 -0
  20. package/dist/cjs/components/index.js.map +1 -0
  21. package/dist/cjs/components/styles/AnimWrap.d.ts +2 -0
  22. package/dist/cjs/components/styles/AnimWrap.js +86 -0
  23. package/dist/cjs/components/styles/AnimWrap.js.map +1 -0
  24. package/dist/cjs/components/styles/Anims.d.ts +30 -0
  25. package/{src/lib/components/styles/Anims.ts → dist/cjs/components/styles/Anims.js} +62 -77
  26. package/dist/cjs/components/styles/Anims.js.map +1 -0
  27. package/dist/cjs/components/styles/Global.d.ts +1 -0
  28. package/dist/cjs/components/styles/Global.js +14 -0
  29. package/dist/cjs/components/styles/Global.js.map +1 -0
  30. package/dist/cjs/components/styles/Scene.d.ts +10 -0
  31. package/dist/cjs/components/styles/Scene.js +23 -0
  32. package/dist/cjs/components/styles/Scene.js.map +1 -0
  33. package/dist/cjs/index.d.ts +1 -0
  34. package/dist/cjs/index.js +20 -0
  35. package/dist/cjs/index.js.map +1 -0
  36. package/dist/esm/components/Button.d.ts +6 -0
  37. package/dist/esm/components/Button.js +12 -0
  38. package/dist/esm/components/Button.js.map +1 -0
  39. package/dist/esm/components/Card.d.ts +2 -0
  40. package/dist/esm/components/Card.js +18 -0
  41. package/dist/esm/components/Card.js.map +1 -0
  42. package/dist/esm/components/Cuboid.d.ts +2 -0
  43. package/dist/esm/components/Cuboid.js +22 -0
  44. package/dist/esm/components/Cuboid.js.map +1 -0
  45. package/dist/esm/components/Faces/Face.d.ts +3 -0
  46. package/dist/esm/components/Faces/Face.js +79 -0
  47. package/dist/esm/components/Faces/Face.js.map +1 -0
  48. package/dist/esm/components/Ribbon.d.ts +2 -0
  49. package/dist/esm/components/Ribbon.js +19 -0
  50. package/dist/esm/components/Ribbon.js.map +1 -0
  51. package/dist/esm/components/index.d.ts +5 -0
  52. package/dist/esm/components/index.js +6 -0
  53. package/dist/esm/components/index.js.map +1 -0
  54. package/dist/esm/components/styles/AnimWrap.d.ts +2 -0
  55. package/dist/esm/components/styles/AnimWrap.js +79 -0
  56. package/dist/esm/components/styles/AnimWrap.js.map +1 -0
  57. package/dist/esm/components/styles/Anims.d.ts +30 -0
  58. package/dist/{components/styles/Anims.ts → esm/components/styles/Anims.js} +58 -77
  59. package/dist/esm/components/styles/Anims.js.map +1 -0
  60. package/dist/esm/components/styles/Global.d.ts +1 -0
  61. package/dist/esm/components/styles/Global.js +8 -0
  62. package/dist/esm/components/styles/Global.js.map +1 -0
  63. package/dist/esm/components/styles/Scene.d.ts +10 -0
  64. package/dist/esm/components/styles/Scene.js +16 -0
  65. package/dist/esm/components/styles/Scene.js.map +1 -0
  66. package/dist/esm/index.d.ts +1 -0
  67. package/dist/esm/index.js +4 -0
  68. package/dist/esm/index.js.map +1 -0
  69. package/package.json +39 -61
  70. package/babel.config.json +0 -18
  71. package/dist/components/Card.tsx +0 -56
  72. package/dist/components/Cuboid.tsx +0 -61
  73. package/dist/components/Face/face.d.ts +0 -39
  74. package/dist/components/Face/index.tsx +0 -85
  75. package/dist/components/Ribbon.tsx +0 -58
  76. package/dist/components/styles/Anim.d.ts +0 -16
  77. package/dist/components/styles/AnimWrap.tsx +0 -85
  78. package/dist/components/styles/Global.ts +0 -7
  79. package/dist/components/styles/Scene.tsx +0 -37
  80. package/dist/index.ts +0 -6
  81. package/img.png +0 -0
  82. package/public/favicon.ico +0 -0
  83. package/public/index.html +0 -43
  84. package/public/manifest.json +0 -15
  85. package/public/robots.txt +0 -3
  86. package/src/App.css +0 -11
  87. package/src/App.test.tsx +0 -10
  88. package/src/App.tsx +0 -115
  89. package/src/index.tsx +0 -19
  90. package/src/lib/components/Card.tsx +0 -56
  91. package/src/lib/components/Cuboid.tsx +0 -61
  92. package/src/lib/components/Face/face.d.ts +0 -39
  93. package/src/lib/components/Face/index.tsx +0 -85
  94. package/src/lib/components/Ribbon.tsx +0 -58
  95. package/src/lib/components/styles/Anim.d.ts +0 -16
  96. package/src/lib/components/styles/AnimWrap.tsx +0 -85
  97. package/src/lib/components/styles/Global.ts +0 -7
  98. package/src/lib/components/styles/Scene.tsx +0 -37
  99. package/src/lib/index.ts +0 -6
  100. package/src/reportWebVitals.ts +0 -15
  101. package/src/setupTests.ts +0 -5
  102. package/tsconfig.json +0 -26
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 JTL (Saman)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,154 +1,214 @@
1
- # React Typescript Cuboid Builder
2
-
3
- This project allows a user to create Cuboids of any size simply by entering a set of parameters.
4
- The program does the leg work with regard to calculating translationZ depth and config on the fly.
5
-
6
- - [GIT HOME](https://github.com/mdnelles/anim-3d-objs-launcher)
7
- - [NPM HOME](https://www.npmjs.com/package/anim-3d-obj) npm i anim-3d-obj
8
-
9
- ## Examples
10
-
11
- - [6 sided Cuboid - animate X360 Y360](https://codesandbox.io/s/anim-3d-obj-all-sides-simple-bf67yg)
12
- - [3 sided Object - animate y-axis](https://codesandbox.io/s/anim-3d-obj-3-sides-wobble-y-axis-wglkms)
13
- - [Double box spin](https://codesandbox.io/s/react-anim-3d-double-box-spin-vbdhg2)
14
- - [2 sided object with animation wobble](https://codesandbox.io/s/anim-3d-obj-wobblex-mmidkg)
15
- - [Parallel divs animated x and y axis in tandem](https://codesandbox.io/s/anim-3d-obj-2-sides-simple-4057y7)
16
- - [Spinning Slab](https://codesandbox.io/s/react-anim-3d-pulse-kc8g0f)
17
-
18
- ## Config
19
-
20
- Animations are optional. Either or both of `anim1Specs` or `anim2Specs` can be applied to the object.
21
-
22
- ```typescript
23
- const anim1Specs: object = {
24
- border: "", // while testing reveal the animation wrapper
25
- degreesHi: -45, // degrees if spin
26
- degreesLow: 45, // degrees if spin
27
- delay: 0, // start delay in seconds
28
- direction: "normal", //normal alternating reverse
29
- duration: 8, // seconds
30
- fillMode: "forward", // node forward backward both
31
- iterationCount: "infinite", // number or infinte
32
- name: "Y360", // ** ANIMATIONS
33
- timing: "ease-in-out", // linear ease ease-in-out
34
- };
35
- ```
36
-
37
- `** ANIMATIONS`
38
-
39
- - X360: rotate 360 degrees on the x-axis
40
- - Y360: rotate 360 degrees on the y-axis
41
- - fadeInkf: fade object in from 0 to 1 Opacity
42
- - wobY: wobble on y-axis (degreesHi <-> degreesLow)
43
- - wobX: wobble on x-axis (degreesHi <-> degreesLow)
44
- - fwdx018: spin object on x-axis from 0 degrees to 180 degrees
45
- - fwdx1836: spin object on x-axis from 180 degrees to 360 degrees
46
- - fwdx09: spin object on x-axis from 0 degrees to 90 degrees
47
- - fwdx918: spin object on x-axis from 90 degrees to 180 degrees
48
- - fwdx1827: spin object on x-axis from 180 degrees to 270 degrees
49
- - fwdx2736: spin object on x-axis from 270 degrees to 360 degrees
50
- - fwdy018: spin object on y-axis from 0 degrees to 180 degrees
51
- - fwdy1836: spin object on y-axis from 180 degrees to 360 degrees
52
- - fwdy09: spin object on y-axis from 0 degrees to 90 degrees
53
- - fwdy918: spin object on y-axis from 90 degrees to 180 degrees
54
- - fwdy1827: spin object on y-axis from 180 degrees to 270 degrees
55
- - fwdy2736: spin object on y-axis from 270 degrees to 360 degrees
56
- - floatX: float object so is not stationary
57
- - floatShadow: float object + add shadow
58
- - pulseSM: pulse object Small
59
- - pulseMD: pulse object Medium
60
- - pulseLG: pulse object Large
61
- - noAnim: no animation place holder
62
-
63
- <>
64
-
65
- GLOBAL CONFIG
66
-
67
- ```typescript
68
- // EXAMPLE GLOBAL FACE CONFIG
69
- // This will be applied to all Faces that do not have their own custom config
70
- const global: object = {
71
- // // face individual styles (over rides global)
72
- css: `
73
- border: 1px solid #fff;
74
- background: rgb(2,0,36);
75
- background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(141,191,249,.7) 100%);
76
- color:white;
77
- text-align:center;
78
- line-height:10;
79
- backface-visibility: visible;
80
- font-family: Arial, Helvetica, sans-serif;
81
- border-radius:5px;
82
- `,
83
- body: " ",
84
- };
85
- ```
86
-
87
- <>
88
-
89
- CUSTOM CONFIG FOR INDIVIDUAL FACES
90
-
91
- ```typescript
92
- const custom: object = {
93
- // // face individual styles (over rides global)
94
- front: {
95
- css: ``,
96
- body: <Login />,
97
- },
98
- left: {
99
- css: `
100
- border: 1px solid #fff;
101
- background: rgb(2,0,36);
102
- color:white;
103
- text-align: center;
104
- line-height:8;`
105
- body: " ",
106
- },
107
- right: {
108
- css: ``,
109
- body: " ",
110
- },
111
- back: {
112
- css: ``,
113
- body: <Logout />,
114
- },
115
- bottom: {
116
- css: `
117
- background-color:rgba(141,191,249,1);
118
- -webkit-box-shadow: 0px 0px 23px 18px #858585;
119
- box-shadow: 0px 0px 23px 18px #858585;
120
- `,
121
- },
122
- ```
123
-
124
- ## Render
125
-
126
- and
127
-
128
- ```typescript
129
- <Cuboid
130
- width={250}
131
- height={300}
132
- depth={250}
133
- perspective={800}
134
- perspectiveOrigin='50% 50%'
135
- zIndex={10}
136
- anim1Specs={anim1Specs}
137
- anim2Specs={anim2Specs}
138
- custom={custom}
139
- faces={faceprops}
140
- global={global}
141
- />
142
- ```
143
-
144
- will produce the following
145
-
146
- ![Logo](https://raw.githubusercontent.com/mdnelles/objs-local/main/img.png?token=GHSAT0AAAAAABQVNJ4VATWQM4SI3LXSTDZWYVDOL7Q)
147
-
148
- ## Authors
149
-
150
- - [@mdnelles](https://github.com/mdnelles)
151
-
152
- ## License
153
-
154
- [MIT](https://choosealicense.com/licenses/mit/)
1
+ # React Typescript Cuboid Builder
2
+
3
+ This project allows a user to create Cuboids of any size simply by entering a set of parameters.
4
+ The program does the leg work with regard to calculating translationZ depth and config on the fly.
5
+
6
+ - [GIT HOME](https://github.com/mdnelles/anim-3d-objs-launcher)
7
+ - [NPM HOME](https://www.npmjs.com/package/anim-3d-obj) npm i anim-3d-obj
8
+
9
+ ## Examples
10
+
11
+ - [6 sided Cuboid - animate X360 Y360](https://codesandbox.io/s/anim-3d-obj-all-sides-simple-bf67yg-tzr2v6?file=/src/index.js)
12
+ - [3 sided Object - animate y-axis](https://codesandbox.io/s/anim-3d-obj-3-sides-wobble-y-axis-wglkms)
13
+ - [Double box spin](https://codesandbox.io/s/react-anim-3d-double-box-spin-vbdhg2)
14
+ - [2 sided object with animation wobble](https://codesandbox.io/s/anim-3d-obj-2-sided-anim-wobble-e14v3b)
15
+ - [Parallel divs animated x and y axis in tandem](https://codesandbox.io/s/anim-3d-obj-2-sides-simple-4057y7)
16
+ - [Spinning Slab](https://codesandbox.io/s/react-anim-3d-pulse-kc8g0f)
17
+ - [GIT HOME](https://github.com/mdnelles/anim-3d-objs-launcher)
18
+ - [NPM HOME](https://www.npmjs.com/package/anim-3d-obj) npm i anim-3d-obj
19
+
20
+ ## Config
21
+
22
+ Animations are optional. Either or both of `anim1Specs` or `anim2Specs` can be applied to the object.
23
+
24
+ ```typescript
25
+ const anim1Specs: object = {
26
+
27
+ border: '', // while testing reveal the animation wrapper
28
+ degreesHi: -45, // degrees if spin
29
+ degreesLow: 45, // degrees if spin
30
+ delay: 0, // start delay in seconds
31
+ direction: 'normal', //normal alternating reverse
32
+ duration: 8, // seconds
33
+ fillMode: 'forward', // node forward backward both
34
+ iterationCount: 'infinite', // number or infinte
35
+ name: 'Y360', // ** ANIMATIONS
36
+ timing: 'ease-in-out', // linear ease ease-in-out
37
+ }
38
+ =======
39
+ border: "", // while testing reveal the animation wrapper
40
+ degreesHi: -45, // degrees if spin
41
+ degreesLow: 45, // degrees if spin
42
+ delay: 0, // start delay in seconds
43
+ direction: "normal", //normal alternating reverse
44
+ duration: 8, // seconds
45
+ fillMode: "forward", // node forward backward both
46
+ iterationCount: "infinite", // number or infinte
47
+ name: "Y360", // ** ANIMATIONS
48
+ timing: "ease-in-out", // linear ease ease-in-out
49
+ };
50
+ ```
51
+
52
+ `** ANIMATIONS`
53
+
54
+ - X360: rotate 360 degrees on the x-axis
55
+ - Y360: rotate 360 degrees on the y-axis
56
+ - fadeInkf: fade object in from 0 to 1 Opacity
57
+ - wobY: wobble on y-axis (degreesHi <-> degreesLow)
58
+ - wobX: wobble on x-axis (degreesHi <-> degreesLow)
59
+ - fwdx018: spin object on x-axis from 0 degrees to 180 degrees
60
+ - fwdx1836: spin object on x-axis from 180 degrees to 360 degrees
61
+ - fwdx09: spin object on x-axis from 0 degrees to 90 degrees
62
+ - fwdx918: spin object on x-axis from 90 degrees to 180 degrees
63
+ - fwdx1827: spin object on x-axis from 180 degrees to 270 degrees
64
+ - fwdx2736: spin object on x-axis from 270 degrees to 360 degrees
65
+ - fwdy018: spin object on y-axis from 0 degrees to 180 degrees
66
+ - fwdy1836: spin object on y-axis from 180 degrees to 360 degrees
67
+ - fwdy09: spin object on y-axis from 0 degrees to 90 degrees
68
+ - fwdy918: spin object on y-axis from 90 degrees to 180 degrees
69
+ - fwdy1827: spin object on y-axis from 180 degrees to 270 degrees
70
+ - fwdy2736: spin object on y-axis from 270 degrees to 360 degrees
71
+ - floatX: float object so is not stationary
72
+ - floatShadow: float object + add shadow
73
+ - pulseSM: pulse object Small
74
+ - pulseMD: pulse object Medium
75
+ - pulseLG: pulse object Large
76
+ - # noAnim: no animation place holder
77
+ - X360: rotate 360 degrees on the x-axis
78
+ - Y360: rotate 360 degrees on the y-axis
79
+ - fadeInkf: fade object in from 0 to 1 Opacity
80
+ - wobY: wobble on y-axis (degreesHi <-> degreesLow)
81
+ - wobX: wobble on x-axis (degreesHi <-> degreesLow)
82
+ - fwdx018: spin object on x-axis from 0 degrees to 180 degrees
83
+ - fwdx1836: spin object on x-axis from 180 degrees to 360 degrees
84
+ - fwdx09: spin object on x-axis from 0 degrees to 90 degrees
85
+ - fwdx918: spin object on x-axis from 90 degrees to 180 degrees
86
+ - fwdx1827: spin object on x-axis from 180 degrees to 270 degrees
87
+ - fwdx2736: spin object on x-axis from 270 degrees to 360 degrees
88
+ - fwdy018: spin object on y-axis from 0 degrees to 180 degrees
89
+ - fwdy1836: spin object on y-axis from 180 degrees to 360 degrees
90
+ - fwdy09: spin object on y-axis from 0 degrees to 90 degrees
91
+ - fwdy918: spin object on y-axis from 90 degrees to 180 degrees
92
+ - fwdy1827: spin object on y-axis from 180 degrees to 270 degrees
93
+ - fwdy2736: spin object on y-axis from 270 degrees to 360 degrees
94
+ - floatX: float object so is not stationary
95
+ - floatShadow: float object + add shadow
96
+ - pulseSM: pulse object Small
97
+ - pulseMD: pulse object Medium
98
+ - pulseLG: pulse object Large
99
+ - noAnim: no animation place holder
100
+
101
+ <>
102
+
103
+ GLOBAL CONFIG
104
+
105
+ ```typescript
106
+ // EXAMPLE GLOBAL FACE CONFIG
107
+ // This will be applied to all Faces that do not have their own custom config
108
+ const global: object = {
109
+
110
+ // // face individual styles (over rides global)
111
+ css: `
112
+ =======
113
+ // // face individual styles (over rides global)
114
+ css: `
115
+
116
+ border: 1px solid #fff;
117
+ background: rgb(2,0,36);
118
+ background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(141,191,249,.7) 100%);
119
+ color:white;
120
+ text-align:center;
121
+ line-height:10;
122
+ backface-visibility: visible;
123
+ font-family: Arial, Helvetica, sans-serif;
124
+ border-radius:5px;
125
+ `,
126
+
127
+ body: ' ',
128
+ }
129
+ =======
130
+ body: " ",
131
+ };
132
+ ```
133
+
134
+ <>
135
+
136
+ CUSTOM CONFIG FOR INDIVIDUAL FACES
137
+
138
+ ```typescript
139
+ const custom: object = {
140
+ // // face individual styles (over rides global)
141
+ front: {
142
+ css: ``,
143
+ body: <Login />,
144
+ },
145
+ left: {
146
+ css: `
147
+ border: 1px solid #fff;
148
+ background: rgb(2,0,36);
149
+ color:white;
150
+ text-align: center;
151
+ line-height:8;`
152
+ body: " ",
153
+ },
154
+ right: {
155
+ css: ``,
156
+ body: " ",
157
+ },
158
+ back: {
159
+ css: ``,
160
+ body: <Logout />,
161
+ },
162
+ bottom: {
163
+ css: `
164
+ background-color:rgba(141,191,249,1);
165
+ -webkit-box-shadow: 0px 0px 23px 18px #858585;
166
+ box-shadow: 0px 0px 23px 18px #858585;
167
+ `,
168
+ },
169
+ ```
170
+
171
+ ## Render
172
+
173
+ and
174
+
175
+ ```typescript
176
+ <Cuboid
177
+ width={250}
178
+ height={300}
179
+ depth={250}
180
+ perspective={800}
181
+ perspectiveOrigin='50% 50%'
182
+ zIndex={10}
183
+ anim1Specs={anim1Specs}
184
+ anim2Specs={anim2Specs}
185
+ custom={custom}
186
+ faces={faceprops}
187
+ global={global}
188
+ =======
189
+ width={250}
190
+ height={300}
191
+ depth={250}
192
+ perspective={800}
193
+ perspectiveOrigin='50% 50%'
194
+ zIndex={10}
195
+ anim1Specs={anim1Specs}
196
+ anim2Specs={anim2Specs}
197
+ custom={custom}
198
+ faces={faceprops}
199
+ global={global}
200
+ />
201
+ ```
202
+
203
+ will produce the following
204
+
205
+ ![Logo](https://raw.githubusercontent.com/mdnelles/objs-local/main/img.png?token=GHSAT0AAAAAABQVNJ4VATWQM4SI3LXSTDZWYVDOL7Q)
206
+
207
+ ## Authors
208
+
209
+ - # [@mdnelles](https://github.com/mdnelles)
210
+ - [@mdnelles](https://github.com/mdnelles)
211
+
212
+ ## License
213
+
214
+ [MIT](https://choosealicense.com/licenses/mit/)
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export interface IButtonProps extends React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> {
3
+ backgroundColor?: string;
4
+ color?: string;
5
+ }
6
+ export declare const Button: React.FunctionComponent<IButtonProps>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Button = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const Button = (props) => {
9
+ const { children, backgroundColor, color, style } = props;
10
+ let _style = style || {};
11
+ /** Override Defaults */
12
+ if (backgroundColor && _style)
13
+ _style.backgroundColor = backgroundColor;
14
+ if (color && _style)
15
+ _style.color = color;
16
+ return (react_1.default.createElement("button", Object.assign({ style: _style }, props), children));
17
+ };
18
+ exports.Button = Button;
19
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/Button.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAOnB,MAAM,MAAM,GAA0C,CAAC,KAAK,EAAE,EAAE;IACnE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAE1D,IAAI,MAAM,GAAwB,KAAK,IAAI,EAAE,CAAC;IAE9C,wBAAwB;IACxB,IAAI,eAAe,IAAI,MAAM;QAAE,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;IACxE,IAAI,KAAK,IAAI,MAAM;QAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IAE1C,OAAO,CACH,wDAAQ,KAAK,EAAE,MAAM,IAAM,KAAK,GAC3B,QAAQ,CACJ,CACZ,CAAC;AACN,CAAC,CAAC;AAdW,QAAA,MAAM,UAcjB"}
@@ -0,0 +1,2 @@
1
+ import { ObjProps } from './Faces/FaceInter';
2
+ export declare const Card: (props: ObjProps) => any;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Card = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const AnimWrap_1 = require("./styles/AnimWrap");
9
+ const Scene_1 = require("./styles/Scene");
10
+ const Face_1 = __importDefault(require("./Faces/Face"));
11
+ const Global_1 = require("./styles/Global");
12
+ const Card = (props) => {
13
+ let { anim1Specs, anim2Specs, width = 5, height = 5, faces, global = {}, custom = {}, tranz = (+height / 2) | 0, perspective, perspectiveOrigin, zIndex } = props;
14
+ const buildFace = (faceType) => {
15
+ return react_1.default.createElement(Face_1.default, { width: width, height: height, depth: 0.1, faceType: faceType, id: faceType, tranz: tranz, global: global, custom: custom });
16
+ };
17
+ return (react_1.default.createElement(Scene_1.SceneStyle, { width: width, height: height, perspective: perspective, perspectiveOrigin: perspectiveOrigin, zIndex: zIndex },
18
+ react_1.default.createElement(AnimWrap_1.AnimWrap, { animSpecs: anim1Specs },
19
+ react_1.default.createElement(AnimWrap_1.AnimWrap, { animSpecs: anim2Specs },
20
+ react_1.default.createElement(Global_1.ObjWrapper, null,
21
+ !!faces && !!faces.front ? buildFace('front') : null,
22
+ !!faces && !!faces.back ? buildFace('back') : null)))));
23
+ };
24
+ exports.Card = Card;
25
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../../src/components/Card.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gDAA6C;AAC7C,0CAA4C;AAE5C,wDAAgC;AAChC,4CAA6C;AAEtC,MAAM,IAAI,GAAG,CAAC,KAAe,EAAO,EAAE;IACzC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAElK,MAAM,SAAS,GAAG,CAAC,QAAa,EAAO,EAAE;QACrC,OAAO,8BAAC,cAAI,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;IAC9I,CAAC,CAAC;IAEF,OAAO,CACH,8BAAC,kBAAU,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;QACpH,8BAAC,mBAAQ,IAAC,SAAS,EAAE,UAAU;YAC3B,8BAAC,mBAAQ,IAAC,SAAS,EAAE,UAAU;gBAC3B,8BAAC,mBAAU;oBACN,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;oBACpD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1C,CACN,CACJ,CACF,CAChB,CAAC;AACN,CAAC,CAAC;AAnBW,QAAA,IAAI,QAmBf"}
@@ -0,0 +1,2 @@
1
+ import { ObjProps } from './Faces/FaceInter';
2
+ export declare const Cuboid: (props: ObjProps) => any;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Cuboid = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const AnimWrap_1 = require("./styles/AnimWrap");
9
+ const Scene_1 = require("./styles/Scene");
10
+ const Face_1 = __importDefault(require("./Faces/Face"));
11
+ const Global_1 = require("./styles/Global");
12
+ const Cuboid = (props) => {
13
+ let { anim1Specs, anim2Specs, width = 5, height = 5, depth = 5, faces, global = {}, custom = {}, tranz = (+height / 2) | 0, perspective, perspectiveOrigin, zIndex } = props;
14
+ const buildFace = (faceType) => {
15
+ return react_1.default.createElement(Face_1.default, { width: width, height: height, depth: depth, faceType: faceType, id: faceType, tranz: tranz, global: global, custom: custom });
16
+ };
17
+ return (react_1.default.createElement(Scene_1.SceneStyle, { width: width, height: height, perspective: perspective, perspectiveOrigin: perspectiveOrigin, zIndex: zIndex },
18
+ react_1.default.createElement(AnimWrap_1.AnimWrap, { animSpecs: anim1Specs },
19
+ react_1.default.createElement(AnimWrap_1.AnimWrap, { animSpecs: anim2Specs },
20
+ react_1.default.createElement(Global_1.ObjWrapper, null,
21
+ !!faces && !!faces.front ? buildFace('front') : null,
22
+ !!faces && !!faces.right ? buildFace('right') : null,
23
+ !!faces && !!faces.back ? buildFace('back') : null,
24
+ !!faces && !!faces.left ? buildFace('left') : null,
25
+ !!faces && !!faces.top ? buildFace('top') : null,
26
+ !!faces && !!faces.bottom ? buildFace('bottom') : null)))));
27
+ };
28
+ exports.Cuboid = Cuboid;
29
+ //# sourceMappingURL=Cuboid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cuboid.js","sourceRoot":"","sources":["../../../src/components/Cuboid.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gDAA6C;AAC7C,0CAA4C;AAE5C,wDAAgC;AAChC,4CAA6C;AAEtC,MAAM,MAAM,GAAG,CAAC,KAAe,EAAO,EAAE;IAC3C,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE7K,MAAM,SAAS,GAAG,CAAC,QAAa,EAAO,EAAE;QACrC,OAAO,8BAAC,cAAI,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;IAChJ,CAAC,CAAC;IAEF,OAAO,CACH,8BAAC,kBAAU,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;QACpH,8BAAC,mBAAQ,IAAC,SAAS,EAAE,UAAU;YAC3B,8BAAC,mBAAQ,IAAC,SAAS,EAAE,UAAU;gBAC3B,8BAAC,mBAAU;oBACN,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;oBACpD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;oBACpD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;oBAClD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;oBAClD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;oBAChD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAC9C,CACN,CACJ,CACF,CAChB,CAAC;AACN,CAAC,CAAC;AAvBW,QAAA,MAAM,UAuBjB"}
@@ -0,0 +1,3 @@
1
+ import { FaceProps } from './FaceInter';
2
+ declare const Face: (props: FaceProps) => JSX.Element;
3
+ export default Face;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const styled_components_1 = __importDefault(require("styled-components"));
7
+ const react_1 = __importDefault(require("react"));
8
+ const Face = (props) => {
9
+ let { depth = 10, faceType, global = {}, height = 10, custom = false, tranz = 80, width = 100 } = props;
10
+ let transform;
11
+ let styles = !!custom[faceType] && !!custom[faceType].css ? custom[faceType].css : global.css;
12
+ const body = !!custom[faceType] && !!custom[faceType].body ? custom[faceType].body : global.body;
13
+ if (faceType === 'bottom') {
14
+ tranz = +height - +depth / 2;
15
+ height = +depth;
16
+ transform = `transform: rotateX(-90deg) translateZ(${tranz}px);`;
17
+ //styles = !!custom["top"] ? custom : global;
18
+ }
19
+ else if (faceType === 'top') {
20
+ height = +depth;
21
+ if (!!depth)
22
+ tranz = +depth / 2;
23
+ transform = `transform: rotateX(90deg) translateZ(${tranz}px);`;
24
+ }
25
+ else if (faceType === 'front') {
26
+ if (!!depth)
27
+ tranz = +depth / 2;
28
+ transform = `transform: rotateY(0deg) translateZ(${tranz}px);`;
29
+ }
30
+ else if (faceType === 'back') {
31
+ if (!!depth)
32
+ tranz = +depth / 2;
33
+ transform = `transform: rotateY(180deg) translateZ(${tranz}px);`;
34
+ }
35
+ else if (faceType === 'right') {
36
+ if (height > width && !depth) {
37
+ tranz = -(+height / 2 - +width);
38
+ width = +height;
39
+ }
40
+ else if (width > height && !depth) {
41
+ tranz = +height / 2;
42
+ height = +width;
43
+ }
44
+ else {
45
+ tranz = +width - +depth / 2;
46
+ width = +depth;
47
+ }
48
+ transform = `transform: rotateY(90deg) translateZ(${tranz}px);`;
49
+ // topr is to of Ribbon which points back
50
+ }
51
+ else if (faceType === 'topr') {
52
+ height = +depth;
53
+ if (!!depth)
54
+ tranz = +depth / 2;
55
+ //let offset = depth / 2;
56
+ transform = `transform: rotateX(90deg) translateZ(${tranz}px ); `;
57
+ }
58
+ else {
59
+ if (height > width && !depth) {
60
+ tranz = -(+height / 2 - +width);
61
+ width = +height;
62
+ }
63
+ else if (width > height && !depth) {
64
+ tranz = +height / 2;
65
+ height = +width;
66
+ }
67
+ else {
68
+ tranz = +depth / 2;
69
+ width = +depth;
70
+ }
71
+ transform = `transform: rotateY(-90deg) translateZ(${tranz}px);`;
72
+ }
73
+ //const BackFlip: any = styled.section``;
74
+ const Specs = styled_components_1.default.section `
75
+ ${styles}
76
+ width: ${width}px;
77
+ position: absolute;
78
+ height: ${height}px;
79
+ ${transform};
80
+ `;
81
+ return react_1.default.createElement(Specs, null, body);
82
+ };
83
+ exports.default = Face;
84
+ //# sourceMappingURL=Face.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Face.js","sourceRoot":"","sources":["../../../../src/components/Faces/Face.tsx"],"names":[],"mappings":";;;;;AAAA,0EAAuC;AACvC,kDAA0B;AAG1B,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAe,EAAE;IAC3C,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC;IAExG,IAAI,SAAS,CAAC;IACd,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAC9F,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IACjG,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACvB,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;QAC7B,MAAM,GAAG,CAAC,KAAK,CAAC;QAChB,SAAS,GAAG,yCAAyC,KAAK,MAAM,CAAC;QACjE,6CAA6C;KAChD;SAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;QAC3B,MAAM,GAAG,CAAC,KAAK,CAAC;QAChB,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;QAChC,SAAS,GAAG,wCAAwC,KAAK,MAAM,CAAC;KACnE;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;QAC7B,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;QAChC,SAAS,GAAG,uCAAuC,KAAK,MAAM,CAAC;KAClE;SAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;QAC5B,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;QAChC,SAAS,GAAG,yCAAyC,KAAK,MAAM,CAAC;KACpE;SAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;QAC7B,IAAI,MAAM,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE;YAC1B,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,KAAK,GAAG,CAAC,MAAM,CAAC;SACnB;aAAM,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE;YACjC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,MAAM,GAAG,CAAC,KAAK,CAAC;SACnB;aAAM;YACH,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YAC5B,KAAK,GAAG,CAAC,KAAK,CAAC;SAClB;QACD,SAAS,GAAG,wCAAwC,KAAK,MAAM,CAAC;QAChE,yCAAyC;KAC5C;SAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;QAC5B,MAAM,GAAG,CAAC,KAAK,CAAC;QAChB,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;QAChC,yBAAyB;QACzB,SAAS,GAAG,wCAAwC,KAAK,SAAS,CAAC;KACtE;SAAM;QACH,IAAI,MAAM,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE;YAC1B,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,KAAK,GAAG,CAAC,MAAM,CAAC;SACnB;aAAM,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE;YACjC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,MAAM,GAAG,CAAC,KAAK,CAAC;SACnB;aAAM;YACH,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YACnB,KAAK,GAAG,CAAC,KAAK,CAAC;SAClB;QACD,SAAS,GAAG,yCAAyC,KAAK,MAAM,CAAC;KACpE;IAED,yCAAyC;IAEzC,MAAM,KAAK,GAAQ,2BAAM,CAAC,OAAO,CAAA;UAC3B,MAAM;iBACC,KAAK;;kBAEJ,MAAM;UACd,SAAS;KACd,CAAC;IAEF,OAAO,8BAAC,KAAK,QAAE,IAAI,CAAS,CAAC;AACjC,CAAC,CAAC;AAEF,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ObjProps } from './Faces/FaceInter';
2
+ export declare const Ribbon: (props: ObjProps) => any;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Ribbon = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const AnimWrap_1 = require("./styles/AnimWrap");
9
+ const Scene_1 = require("./styles/Scene");
10
+ const Face_1 = __importDefault(require("./Faces/Face"));
11
+ const Global_1 = require("./styles/Global");
12
+ const Ribbon = (props) => {
13
+ let { anim1Specs, anim2Specs, width = 5, height = 5, depth = 5, faces, global = {}, custom = {}, tranz = (+height / 2) | 0, perspective, perspectiveOrigin, zIndex } = props;
14
+ const buildFace = (faceType) => {
15
+ return react_1.default.createElement(Face_1.default, { width: width, height: height, depth: depth, faceType: faceType, id: faceType, tranz: tranz, global: global, custom: custom });
16
+ };
17
+ return (react_1.default.createElement(Scene_1.SceneStyle, { width: width, height: height, perspective: perspective, perspectiveOrigin: perspectiveOrigin, zIndex: zIndex },
18
+ react_1.default.createElement(AnimWrap_1.AnimWrap, { animSpecs: anim1Specs },
19
+ react_1.default.createElement(AnimWrap_1.AnimWrap, { animSpecs: anim2Specs },
20
+ react_1.default.createElement(Global_1.ObjWrapper, null,
21
+ !!faces && !!faces.bottom ? buildFace('bottom') : null,
22
+ !!faces && !!faces.back ? buildFace('back') : null,
23
+ !!faces && !!faces.top ? buildFace('topr') : null)))));
24
+ };
25
+ exports.Ribbon = Ribbon;
26
+ //# sourceMappingURL=Ribbon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ribbon.js","sourceRoot":"","sources":["../../../src/components/Ribbon.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gDAA6C;AAC7C,0CAA4C;AAE5C,wDAAgC;AAChC,4CAA6C;AAEtC,MAAM,MAAM,GAAG,CAAC,KAAe,EAAO,EAAE;IAC3C,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE7K,MAAM,SAAS,GAAG,CAAC,QAAa,EAAO,EAAE;QACrC,OAAO,8BAAC,cAAI,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAI,CAAC;IAChJ,CAAC,CAAC;IAEF,OAAO,CACH,8BAAC,kBAAU,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;QACpH,8BAAC,mBAAQ,IAAC,SAAS,EAAE,UAAU;YAC3B,8BAAC,mBAAQ,IAAC,SAAS,EAAE,UAAU;gBAC3B,8BAAC,mBAAU;oBACN,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;oBACtD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;oBAClD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CACzC,CACN,CACJ,CACF,CAChB,CAAC;AACN,CAAC,CAAC;AApBW,QAAA,MAAM,UAoBjB"}