@pie-lib/tools 0.26.2 → 0.26.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.
package/LICENSE.md ADDED
@@ -0,0 +1,5 @@
1
+ Copyright 2019 CoreSpring Inc
2
+
3
+ Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
4
+
5
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
package/esm/index.css ADDED
@@ -0,0 +1,847 @@
1
+ /*
2
+ * MathQuill {VERSION}, by Han, Jeanine, and Mary
3
+ * http://mathquill.com | maintainers@mathquill.com
4
+ *
5
+ * This Source Code Form is subject to the terms of the
6
+ * Mozilla Public License, v. 2.0. If a copy of the MPL
7
+ * was not distributed with this file, You can obtain
8
+ * one at http://mozilla.org/MPL/2.0/.
9
+ */
10
+ @font-face {
11
+ font-family: Symbola;
12
+ src: url(fonts/Symbola.eot);
13
+ src: local("Symbola Regular"), local("Symbola"), url(fonts/Symbola.woff2) format("woff2"), url(fonts/Symbola.woff) format("woff"), url(fonts/Symbola.ttf) format("truetype"), url(fonts/Symbola.svg#Symbola) format("svg");
14
+ }
15
+ .mq-editable-field {
16
+ display: -moz-inline-box;
17
+ display: inline-block;
18
+ }
19
+ .mq-editable-field .mq-cursor {
20
+ border-left: 1px solid black;
21
+ margin-left: -1px;
22
+ position: relative;
23
+ z-index: 1;
24
+ padding: 0;
25
+ display: -moz-inline-box;
26
+ display: inline-block;
27
+ }
28
+ .mq-editable-field .mq-cursor.mq-blink {
29
+ visibility: hidden;
30
+ }
31
+ .mq-editable-field,
32
+ .mq-math-mode .mq-editable-field {
33
+ border: 1px solid gray;
34
+ }
35
+ .mq-editable-field.mq-focused,
36
+ .mq-math-mode .mq-editable-field.mq-focused {
37
+ -webkit-box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0;
38
+ -moz-box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0;
39
+ box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0;
40
+ border-color: #709AC0;
41
+ border-radius: 1px;
42
+ }
43
+ .mq-math-mode .mq-editable-field {
44
+ margin: 1px;
45
+ }
46
+ .mq-editable-field .mq-latex-command-input {
47
+ color: inherit;
48
+ font-family: "Courier New", monospace;
49
+ border: 1px solid gray;
50
+ padding-right: 1px;
51
+ margin-right: 1px;
52
+ margin-left: 2px;
53
+ }
54
+ .mq-editable-field .mq-latex-command-input.mq-empty {
55
+ background: transparent;
56
+ }
57
+ .mq-editable-field .mq-latex-command-input.mq-hasCursor {
58
+ border-color: ActiveBorder;
59
+ }
60
+ .mq-editable-field.mq-empty:after,
61
+ .mq-editable-field.mq-text-mode:after,
62
+ .mq-math-mode .mq-empty:after {
63
+ visibility: hidden;
64
+ content: 'c';
65
+ }
66
+ .mq-editable-field .mq-cursor:only-child:after,
67
+ .mq-editable-field .mq-textarea + .mq-cursor:last-child:after {
68
+ visibility: hidden;
69
+ content: 'c';
70
+ }
71
+ .mq-editable-field .mq-text-mode .mq-cursor:only-child:after {
72
+ content: '';
73
+ }
74
+ .mq-editable-field.mq-text-mode {
75
+ overflow-x: auto;
76
+ overflow-y: hidden;
77
+ }
78
+ .mq-root-block,
79
+ .mq-math-mode .mq-root-block {
80
+ display: -moz-inline-box;
81
+ display: inline-block;
82
+ width: 100%;
83
+ padding: 2px;
84
+ -webkit-box-sizing: border-box;
85
+ -moz-box-sizing: border-box;
86
+ box-sizing: border-box;
87
+ white-space: nowrap;
88
+ overflow: hidden;
89
+ vertical-align: middle;
90
+ }
91
+ .mq-math-mode {
92
+ font-variant: normal;
93
+ font-weight: normal;
94
+ font-style: normal;
95
+ font-size: 115%;
96
+ line-height: 1;
97
+ display: -moz-inline-box;
98
+ display: inline-block;
99
+ }
100
+ .mq-math-mode .mq-non-leaf,
101
+ .mq-math-mode .mq-scaled {
102
+ display: -moz-inline-box;
103
+ display: inline-block;
104
+ }
105
+ .mq-math-mode var,
106
+ .mq-math-mode .mq-text-mode,
107
+ .mq-math-mode .mq-nonSymbola {
108
+ font-family: "Times New Roman", Symbola, serif;
109
+ line-height: 0.9;
110
+ }
111
+ .mq-math-mode * {
112
+ font-size: inherit;
113
+ line-height: inherit;
114
+ margin: 0;
115
+ padding: 0;
116
+ border-color: black;
117
+ -webkit-user-select: none;
118
+ -moz-user-select: none;
119
+ user-select: none;
120
+ box-sizing: border-box;
121
+ }
122
+ .mq-math-mode .mq-empty {
123
+ background: transparent;
124
+ }
125
+ .mq-math-mode.mq-empty {
126
+ background: transparent;
127
+ }
128
+ .mq-math-mode .mq-text-mode {
129
+ display: inline-block;
130
+ white-space: pre;
131
+ }
132
+ .mq-math-mode .mq-text-mode.mq-hasCursor {
133
+ box-shadow: inset darkgray 0 0.1em 0.2em;
134
+ padding: 0 0.1em;
135
+ margin: 0 -0.1em;
136
+ min-width: 1ex;
137
+ }
138
+ .mq-math-mode .mq-font {
139
+ font: 1em "Times New Roman", Symbola, serif;
140
+ }
141
+ .mq-math-mode .mq-font * {
142
+ font-family: inherit;
143
+ font-style: inherit;
144
+ }
145
+ .mq-math-mode b,
146
+ .mq-math-mode b.mq-font {
147
+ font-weight: bolder;
148
+ }
149
+ .mq-math-mode var,
150
+ .mq-math-mode i,
151
+ .mq-math-mode i.mq-font {
152
+ font-style: italic;
153
+ }
154
+ .mq-math-mode var.mq-f {
155
+ margin-right: 0.2em;
156
+ margin-left: 0.1em;
157
+ }
158
+ .mq-math-mode .mq-roman var.mq-f {
159
+ margin: 0;
160
+ }
161
+ .mq-math-mode big {
162
+ font-size: 200%;
163
+ }
164
+ .mq-math-mode .mq-int > big {
165
+ display: inline-block;
166
+ -webkit-transform: scaleX(0.7);
167
+ -moz-transform: scaleX(0.7);
168
+ -ms-transform: scaleX(0.7);
169
+ -o-transform: scaleX(0.7);
170
+ transform: scaleX(0.7);
171
+ vertical-align: -0.16em;
172
+ }
173
+ .mq-math-mode .mq-int > .mq-supsub {
174
+ font-size: 80%;
175
+ vertical-align: -1.1em;
176
+ padding-right: 0.2em;
177
+ }
178
+ .mq-math-mode .mq-int > .mq-supsub > .mq-sup > .mq-sup-inner {
179
+ vertical-align: 1.3em;
180
+ }
181
+ .mq-math-mode .mq-int > .mq-supsub > .mq-sub {
182
+ margin-left: -0.35em;
183
+ }
184
+ .mq-math-mode .mq-roman {
185
+ font-style: normal;
186
+ }
187
+ .mq-math-mode .mq-sans-serif {
188
+ font-family: sans-serif, Symbola, serif;
189
+ }
190
+ .mq-math-mode .mq-monospace {
191
+ font-family: monospace, Symbola, serif;
192
+ }
193
+ .mq-math-mode .mq-overleftrightarrow {
194
+ margin-top: 0.35em;
195
+ position: relative;
196
+ }
197
+ .mq-math-mode .mq-overleftrightarrow .mq-overleftrightarrow-inner {
198
+ display: inline-block;
199
+ position: relative;
200
+ padding-top: 0.35em;
201
+ border-top: 0.14em solid #4d4d4d;
202
+ margin: 0 0.1em;
203
+ min-width: 1em;
204
+ text-align: center;
205
+ }
206
+ .mq-math-mode .mq-overleftrightarrow .mq-overleftrightarrow-inner .mq-empty {
207
+ min-width: 1em;
208
+ margin-top: 0.1em;
209
+ display: inline-block;
210
+ }
211
+ .mq-math-mode .mq-overleftrightarrow .mq-overleftrightarrow-inner .mq-overleftrightarrow-inner-right {
212
+ display: block;
213
+ position: absolute;
214
+ top: -0.562em;
215
+ right: -0.4em;
216
+ font-size: 0.75em;
217
+ font-family: "LearnosityIconsRegular";
218
+ line-height: 1em;
219
+ text-align: right;
220
+ }
221
+ .mq-math-mode .mq-overleftrightarrow .mq-overleftrightarrow-inner .mq-overleftrightarrow-inner-left {
222
+ display: block;
223
+ position: absolute;
224
+ top: -0.562em;
225
+ left: -0.4em;
226
+ font-size: 0.75em;
227
+ font-family: "LearnosityIconsRegular";
228
+ line-height: 1em;
229
+ text-align: left;
230
+ }
231
+ .mq-math-mode .mq-overline .mq-overline-inner {
232
+ display: inline-block;
233
+ padding-top: 0.2em;
234
+ border-top: 0.14em solid #4d4d4d;
235
+ margin-left: 0.1em;
236
+ padding-right: 0.1em;
237
+ text-align: center;
238
+ }
239
+ .mq-math-mode .mq-overline .mq-overline-inner .mq-empty {
240
+ min-width: 1em;
241
+ margin-top: 0.1em;
242
+ display: inline-block;
243
+ }
244
+ .mq-math-mode .mq-overline .mq-overline-inner .mq-overline-inner-right,
245
+ .mq-math-mode .mq-overline .mq-overline-inner .mq-overline-inner-left {
246
+ display: none;
247
+ }
248
+ .mq-math-mode .mq-longdiv {
249
+ padding-top: 0.2em;
250
+ }
251
+ .mq-math-mode .mq-longdiv .mq-longdiv-curve-border {
252
+ border-top-right-radius: 100em;
253
+ border-bottom-right-radius: 100em;
254
+ font-size: 1.4em;
255
+ display: inline;
256
+ padding-top: 0.2em;
257
+ margin-right: -0.12em;
258
+ max-width: 2px;
259
+ width: 2px;
260
+ }
261
+ .mq-math-mode .mq-longdiv .mq-longdiv-inner {
262
+ font-size: 1em;
263
+ border-top: 1px solid grey;
264
+ border-radius: 0px 0px 0px 10px;
265
+ min-width: 1em;
266
+ text-align: center;
267
+ padding-left: 0.2em;
268
+ margin-left: -0.2em;
269
+ margin-right: 0.15em;
270
+ padding-top: 0.19em;
271
+ padding-left: 0.44em;
272
+ display: inline;
273
+ }
274
+ .mq-math-mode .mq-longdiv .mq-longdiv-inner .mq-empty {
275
+ min-width: 1.5em;
276
+ display: inline-block;
277
+ }
278
+ .mq-math-mode .mq-underline {
279
+ border-bottom: 1px solid black;
280
+ margin-bottom: 1px;
281
+ }
282
+ .mq-math-mode .mq-underline.mq-empty {
283
+ min-width: 1em;
284
+ }
285
+ .mq-math-mode .mq-overarc {
286
+ border-top: 1px solid black;
287
+ -webkit-border-top-right-radius: 50% 0.3em;
288
+ -moz-border-radius-topright: 50% 0.3em;
289
+ border-top-right-radius: 50% 0.3em;
290
+ -webkit-border-top-left-radius: 50% 0.3em;
291
+ -moz-border-radius-topleft: 50% 0.3em;
292
+ border-top-left-radius: 50% 0.3em;
293
+ margin-top: 1px;
294
+ padding-top: 0.15em;
295
+ }
296
+ .mq-math-mode .mq-overarrow {
297
+ margin-top: 0.35em;
298
+ position: relative;
299
+ }
300
+ .mq-math-mode .mq-overarrow .mq-overarrow-inner {
301
+ display: inline-block;
302
+ position: relative;
303
+ padding-top: 0.35em;
304
+ border-top: 0.14em solid #4d4d4d;
305
+ margin: 0 0.1em;
306
+ min-width: 1em;
307
+ text-align: center;
308
+ }
309
+ .mq-math-mode .mq-overarrow .mq-overarrow-inner .mq-empty {
310
+ min-width: 1em;
311
+ margin-top: 0.1em;
312
+ display: inline-block;
313
+ }
314
+ .mq-math-mode .mq-overarrow .mq-overarrow-inner .mq-overarrow-inner-right {
315
+ display: block;
316
+ position: absolute;
317
+ top: -0.562em;
318
+ right: -0.4em;
319
+ font-size: 0.75em;
320
+ font-family: "LearnosityIconsRegular";
321
+ line-height: 1em;
322
+ text-align: right;
323
+ }
324
+ .mq-math-mode .mq-overarrow .mq-overarrow-inner .mq-overarrow-inner-left {
325
+ display: none;
326
+ position: absolute;
327
+ top: -0.562em;
328
+ left: -0.4em;
329
+ font-size: 0.75em;
330
+ font-family: "LearnosityIconsRegular";
331
+ line-height: 1em;
332
+ text-align: left;
333
+ }
334
+ .mq-math-mode .mq-overarrow.mq-arrow-left .mq-overarrow-inner .mq-overarrow-inner-right {
335
+ display: none;
336
+ }
337
+ .mq-math-mode .mq-overarrow.mq-arrow-left .mq-overarrow-inner .mq-overarrow-inner-left {
338
+ display: block;
339
+ }
340
+ .mq-math-mode .mq-overarrow.mq-arrow-both {
341
+ vertical-align: text-bottom;
342
+ }
343
+ .mq-math-mode .mq-overarrow.mq-arrow-both.mq-empty {
344
+ min-height: 1.23em;
345
+ }
346
+ .mq-math-mode .mq-overarrow.mq-arrow-both.mq-empty:after {
347
+ top: -0.34em;
348
+ }
349
+ .mq-math-mode .mq-overarrow.mq-arrow-both:before {
350
+ -moz-transform: scaleX(-1);
351
+ -o-transform: scaleX(-1);
352
+ -webkit-transform: scaleX(-1);
353
+ transform: scaleX(-1);
354
+ filter: FlipH;
355
+ -ms-filter: "FlipH";
356
+ }
357
+ .mq-math-mode .mq-overarrow.mq-arrow-both:after {
358
+ display: block;
359
+ position: relative;
360
+ top: -2.3em;
361
+ font-size: 0.5em;
362
+ line-height: 0em;
363
+ content: "\27A4";
364
+ visibility: visible;
365
+ text-align: right;
366
+ }
367
+ .mq-math-mode .mq-xarrow {
368
+ position: relative;
369
+ font-size: 70%;
370
+ text-align: center;
371
+ padding: 0 0.2em;
372
+ vertical-align: 0.9em;
373
+ }
374
+ .mq-math-mode .mq-xarrow .mq-xarrow-over {
375
+ border-bottom: 1px solid black;
376
+ display: block;
377
+ padding: 0.1em 0.1em 0.2em 0.1em;
378
+ position: relative;
379
+ }
380
+ .mq-math-mode .mq-xarrow .mq-xarrow-under {
381
+ float: left;
382
+ padding: 0em 0.1em 0.2em 0.1em;
383
+ position: relative;
384
+ top: 0.2em;
385
+ margin-bottom: 0.2em;
386
+ }
387
+ .mq-math-mode .mq-xarrow .mq-xarrow-over:before {
388
+ display: block;
389
+ position: absolute;
390
+ font-size: 0.6em;
391
+ height: 1em;
392
+ bottom: -0.62em;
393
+ content: "\27A4";
394
+ right: -0.3em;
395
+ }
396
+ .mq-math-mode .mq-xarrow.mq-arrow-left .mq-xarrow-over:before {
397
+ -moz-transform: scaleX(-1);
398
+ -o-transform: scaleX(-1);
399
+ -webkit-transform: scaleX(-1);
400
+ transform: scaleX(-1);
401
+ filter: FlipH;
402
+ -ms-filter: "FlipH";
403
+ right: auto;
404
+ left: -0.3em;
405
+ }
406
+ .mq-math-mode .mq-binary-operator {
407
+ padding: 0 0.2em;
408
+ display: -moz-inline-box;
409
+ display: inline-block;
410
+ }
411
+ .mq-math-mode .mq-supsub {
412
+ text-align: left;
413
+ font-size: 90%;
414
+ vertical-align: -0.5em;
415
+ }
416
+ .mq-math-mode .mq-supsub.mq-sup-only {
417
+ vertical-align: 0.5em;
418
+ }
419
+ .mq-math-mode .mq-supsub.mq-sup-only .mq-sup {
420
+ display: inline-block;
421
+ vertical-align: text-bottom;
422
+ }
423
+ .mq-math-mode .mq-supsub .mq-sup {
424
+ display: block;
425
+ }
426
+ .mq-math-mode .mq-supsub .mq-sub {
427
+ display: block;
428
+ float: left;
429
+ }
430
+ .mq-math-mode .mq-supsub .mq-binary-operator {
431
+ padding: 0 0.1em;
432
+ }
433
+ .mq-math-mode .mq-supsub .mq-fraction {
434
+ font-size: 70%;
435
+ }
436
+ .mq-math-mode sup.mq-nthroot {
437
+ font-size: 80%;
438
+ vertical-align: 0.8em;
439
+ margin-right: -0.6em;
440
+ margin-left: 0.2em;
441
+ min-width: 0.5em;
442
+ }
443
+ .mq-math-mode .mq-paren {
444
+ padding: 0 0.1em;
445
+ vertical-align: top;
446
+ -webkit-transform-origin: center 0.06em;
447
+ -moz-transform-origin: center 0.06em;
448
+ -ms-transform-origin: center 0.06em;
449
+ -o-transform-origin: center 0.06em;
450
+ transform-origin: center 0.06em;
451
+ }
452
+ .mq-math-mode .mq-paren.mq-ghost {
453
+ color: silver;
454
+ }
455
+ .mq-math-mode .mq-paren + span {
456
+ margin-top: 0.1em;
457
+ margin-bottom: 0.1em;
458
+ }
459
+ .mq-math-mode .mq-array {
460
+ vertical-align: middle;
461
+ text-align: center;
462
+ }
463
+ .mq-math-mode .mq-array > span {
464
+ display: block;
465
+ }
466
+ .mq-math-mode .mq-operator-name {
467
+ font-family: Symbola, "Times New Roman", serif;
468
+ line-height: 0.9;
469
+ font-style: normal;
470
+ }
471
+ .mq-math-mode var.mq-operator-name.mq-first {
472
+ padding-left: 0.2em;
473
+ }
474
+ .mq-math-mode var.mq-operator-name.mq-last,
475
+ .mq-math-mode .mq-supsub.mq-after-operator-name {
476
+ padding-right: 0.2em;
477
+ }
478
+ .mq-math-mode .mq-fraction {
479
+ font-size: 90%;
480
+ text-align: center;
481
+ vertical-align: -0.4em;
482
+ padding: 0 0.2em;
483
+ }
484
+ .mq-math-mode .mq-fraction,
485
+ .mq-math-mode .mq-large-operator,
486
+ .mq-math-mode x:-moz-any-link {
487
+ display: -moz-groupbox;
488
+ }
489
+ .mq-math-mode .mq-fraction,
490
+ .mq-math-mode .mq-large-operator,
491
+ .mq-math-mode x:-moz-any-link,
492
+ .mq-math-mode x:default {
493
+ display: inline-block;
494
+ }
495
+ .mq-math-mode .mq-underset.mq-tilde-vector .mq-under {
496
+ line-height: 0.6em;
497
+ }
498
+ .mq-math-mode .mq-numerator,
499
+ .mq-math-mode .mq-denominator,
500
+ .mq-math-mode .mq-dot-recurring,
501
+ .mq-math-mode .mq-over,
502
+ .mq-math-mode .mq-under {
503
+ display: block;
504
+ }
505
+ .mq-math-mode .mq-numerator,
506
+ .mq-math-mode .mq-over {
507
+ padding: 0 0.1em;
508
+ margin-bottom: 0.2em;
509
+ }
510
+ .mq-math-mode .mq-denominator {
511
+ border-top: 1px solid;
512
+ float: right;
513
+ width: 100%;
514
+ padding: 0.3em 0.1em 0.1em;
515
+ }
516
+ .mq-math-mode .mq-dot-recurring {
517
+ text-align: center;
518
+ height: 0.6em;
519
+ }
520
+ .mq-math-mode .mq-overunder {
521
+ text-align: center;
522
+ position: relative;
523
+ top: 0.01em;
524
+ }
525
+ .mq-math-mode .mq-overunder .mq-font {
526
+ font-family: inherit;
527
+ }
528
+ .mq-math-mode .mq-overunder.mq-underset {
529
+ vertical-align: text-top;
530
+ }
531
+ .mq-math-mode .mq-overunder.mq-underset .mq-under,
532
+ .mq-math-mode .mq-overunder.mq-overset .mq-over {
533
+ display: block;
534
+ font-size: 0.7em;
535
+ }
536
+ .mq-math-mode .mq-sqrt-prefix {
537
+ padding-top: 0;
538
+ position: relative;
539
+ top: 0.1em;
540
+ vertical-align: top;
541
+ -webkit-transform-origin: top;
542
+ -moz-transform-origin: top;
543
+ -ms-transform-origin: top;
544
+ -o-transform-origin: top;
545
+ transform-origin: top;
546
+ }
547
+ .mq-math-mode .mq-sqrt-stem {
548
+ border-top: 1px solid;
549
+ margin-top: 1px;
550
+ padding-left: 0.15em;
551
+ padding-right: 0.2em;
552
+ margin-right: 0.1em;
553
+ padding-top: 1px;
554
+ }
555
+ .mq-math-mode .mq-diacritic-above {
556
+ display: block;
557
+ text-align: center;
558
+ line-height: 0.4em;
559
+ }
560
+ .mq-math-mode .mq-diacritic-stem {
561
+ display: block;
562
+ text-align: center;
563
+ }
564
+ .mq-math-mode .mq-hat-prefix {
565
+ display: block;
566
+ text-align: center;
567
+ line-height: 0.95em;
568
+ margin-bottom: -0.7em;
569
+ transform: scaleX(1.5);
570
+ -moz-transform: scaleX(1.5);
571
+ -o-transform: scaleX(1.5);
572
+ -webkit-transform: scaleX(1.5);
573
+ }
574
+ .mq-math-mode .mq-hat-stem {
575
+ display: block;
576
+ }
577
+ .mq-math-mode .mq-large-operator {
578
+ vertical-align: -0.2em;
579
+ padding: 0.2em;
580
+ text-align: center;
581
+ vertical-align: middle;
582
+ }
583
+ .mq-math-mode .mq-large-operator .mq-from,
584
+ .mq-math-mode .mq-large-operator big,
585
+ .mq-math-mode .mq-large-operator .mq-to {
586
+ display: block;
587
+ }
588
+ .mq-math-mode .mq-large-operator .mq-from,
589
+ .mq-math-mode .mq-large-operator .mq-to {
590
+ font-size: 80%;
591
+ }
592
+ .mq-math-mode .mq-large-operator .mq-from {
593
+ float: right;
594
+ /* take out of normal flow to manipulate baseline */
595
+ width: 100%;
596
+ }
597
+ .mq-math-mode .mq-lim {
598
+ text-align: center;
599
+ }
600
+ .mq-math-mode .mq-lim span {
601
+ display: block;
602
+ }
603
+ .mq-math-mode .mq-lim .mq-approaches {
604
+ font-size: 80%;
605
+ float: right;
606
+ /* take out of normal flow to manipulate baseline */
607
+ width: 100%;
608
+ }
609
+ .mq-math-mode .mq-lim .mq-approaches span > span {
610
+ display: inline;
611
+ }
612
+ .mq-math-mode .mq-matrix {
613
+ vertical-align: middle;
614
+ margin-left: 0.1em;
615
+ margin-right: 0.1em;
616
+ }
617
+ .mq-math-mode .mq-matrix table {
618
+ width: auto;
619
+ border-bottom: none;
620
+ border-spacing: 3px;
621
+ border-collapse: separate;
622
+ }
623
+ .mq-math-mode .mq-matrix table.mq-rows-1 {
624
+ /* better alignment when there's just one row */
625
+ vertical-align: middle;
626
+ margin-bottom: 1px;
627
+ }
628
+ .mq-math-mode .mq-matrix td {
629
+ border: 1px dotted #ffffff;
630
+ width: auto;
631
+ /* defensive resets */
632
+ padding: 0.1em 0.3em;
633
+ vertical-align: baseline;
634
+ }
635
+ .mq-math-mode .mq-matrix td.mq-empty {
636
+ border: 1px dotted black;
637
+ }
638
+ .mq-math-mode,
639
+ .mq-math-mode .mq-editable-field {
640
+ cursor: text;
641
+ font-family: Symbola, "Times New Roman", serif;
642
+ }
643
+ .mq-math-mode .mq-abs {
644
+ border-left: 1px solid black;
645
+ border-right: 1px solid black;
646
+ padding-left: 0.2em;
647
+ padding-right: 0.2em;
648
+ margin-left: 0.1em;
649
+ margin-right: 0.1em;
650
+ }
651
+ .mq-math-mode .mq-lrnplaceholder {
652
+ margin-left: 0.05em;
653
+ margin-right: 0.05em;
654
+ }
655
+ .mq-math-mode .mq-parallelogram {
656
+ position: relative;
657
+ overflow: hidden;
658
+ line-height: 1em;
659
+ margin-top: -0.5em;
660
+ }
661
+ .mq-math-mode .mq-parallelogram .mq-parallelogram-inner {
662
+ position: relative;
663
+ top: 0.23em;
664
+ font-size: 2em;
665
+ }
666
+ .mq-math-mode,
667
+ .mq-math-mode .mq-editable-field {
668
+ cursor: text;
669
+ font-family: Symbola, "Times New Roman", serif;
670
+ }
671
+ .mq-math-mode .mq-longdiv .mq-longdiv-curve-border,
672
+ .mq-math-mode .mq-editable-field .mq-longdiv .mq-longdiv-curve-border {
673
+ font-size: 1.33em;
674
+ }
675
+ .mq-overarrow {
676
+ min-width: 0.5em;
677
+ border-top: 1px solid black;
678
+ margin-top: 1px;
679
+ padding-top: 0.2em;
680
+ text-align: center;
681
+ }
682
+ .mq-overarrow:before {
683
+ display: block;
684
+ position: relative;
685
+ top: -0.34em;
686
+ font-size: 0.5em;
687
+ line-height: 0em;
688
+ content: "\27A4";
689
+ text-align: right;
690
+ }
691
+ .mq-overarrow.mq-arrow-left:before {
692
+ -moz-transform: scaleX(-1);
693
+ -o-transform: scaleX(-1);
694
+ -webkit-transform: scaleX(-1);
695
+ transform: scaleX(-1);
696
+ filter: FlipH;
697
+ -ms-filter: "FlipH";
698
+ }
699
+ .mq-overarrow.mq-arrow-both {
700
+ vertical-align: text-bottom;
701
+ }
702
+ .mq-overarrow.mq-arrow-both.mq-empty {
703
+ min-height: 1.23em;
704
+ }
705
+ .mq-overarrow.mq-arrow-both.mq-empty:after {
706
+ top: -0.34em;
707
+ }
708
+ .mq-overarrow.mq-arrow-both:before {
709
+ -moz-transform: scaleX(-1);
710
+ -o-transform: scaleX(-1);
711
+ -webkit-transform: scaleX(-1);
712
+ transform: scaleX(-1);
713
+ filter: FlipH;
714
+ -ms-filter: "FlipH";
715
+ }
716
+ .mq-overarrow.mq-arrow-both:after {
717
+ display: block;
718
+ position: relative;
719
+ top: -2.3em;
720
+ font-size: 0.5em;
721
+ line-height: 0em;
722
+ content: "\27A4";
723
+ visibility: visible;
724
+ text-align: right;
725
+ }
726
+ .mq-math-mode .mq-selection,
727
+ .mq-editable-field .mq-selection,
728
+ .mq-math-mode .mq-selection .mq-non-leaf,
729
+ .mq-editable-field .mq-selection .mq-non-leaf,
730
+ .mq-math-mode .mq-selection .mq-scaled,
731
+ .mq-editable-field .mq-selection .mq-scaled {
732
+ background: #B4D5FE !important;
733
+ background: Highlight !important;
734
+ color: HighlightText;
735
+ border-color: HighlightText;
736
+ }
737
+ .mq-math-mode .mq-selection .mq-matrixed,
738
+ .mq-editable-field .mq-selection .mq-matrixed {
739
+ background: #39F !important;
740
+ }
741
+ .mq-math-mode .mq-selection .mq-matrixed-container,
742
+ .mq-editable-field .mq-selection .mq-matrixed-container {
743
+ filter: progid:DXImageTransform.Microsoft.Chroma(color='#3399FF') !important;
744
+ }
745
+ .mq-math-mode .mq-selection.mq-blur,
746
+ .mq-editable-field .mq-selection.mq-blur,
747
+ .mq-math-mode .mq-selection.mq-blur .mq-non-leaf,
748
+ .mq-editable-field .mq-selection.mq-blur .mq-non-leaf,
749
+ .mq-math-mode .mq-selection.mq-blur .mq-scaled,
750
+ .mq-editable-field .mq-selection.mq-blur .mq-scaled,
751
+ .mq-math-mode .mq-selection.mq-blur .mq-matrixed,
752
+ .mq-editable-field .mq-selection.mq-blur .mq-matrixed {
753
+ background: #D4D4D4 !important;
754
+ color: black;
755
+ border-color: black;
756
+ }
757
+ .mq-math-mode .mq-selection.mq-blur .mq-matrixed-container,
758
+ .mq-editable-field .mq-selection.mq-blur .mq-matrixed-container {
759
+ filter: progid:DXImageTransform.Microsoft.Chroma(color='#D4D4D4') !important;
760
+ }
761
+ .mq-editable-field .mq-textarea,
762
+ .mq-math-mode .mq-textarea {
763
+ position: relative;
764
+ -webkit-user-select: text;
765
+ -moz-user-select: text;
766
+ user-select: text;
767
+ }
768
+ .mq-editable-field .mq-textarea > textarea,
769
+ .mq-math-mode .mq-textarea > textarea {
770
+ opacity: 0;
771
+ overflow: hidden;
772
+ }
773
+ .mq-editable-field .mq-textarea *,
774
+ .mq-math-mode .mq-textarea *,
775
+ .mq-editable-field .mq-selectable,
776
+ .mq-math-mode .mq-selectable {
777
+ -webkit-user-select: text;
778
+ -moz-user-select: text;
779
+ user-select: text;
780
+ position: absolute;
781
+ clip: rect(1em 1em 1em 1em);
782
+ -webkit-transform: scale(0);
783
+ -moz-transform: scale(0);
784
+ -ms-transform: scale(0);
785
+ -o-transform: scale(0);
786
+ transform: scale(0);
787
+ resize: none;
788
+ width: 1px;
789
+ height: 1px;
790
+ box-sizing: content-box;
791
+ }
792
+ .mq-math-mode .mq-matrixed {
793
+ background: white;
794
+ display: -moz-inline-box;
795
+ display: inline-block;
796
+ }
797
+ .mq-math-mode .mq-matrixed-container {
798
+ filter: progid:DXImageTransform.Microsoft.Chroma(color='white');
799
+ margin-top: -0.1em;
800
+ }
801
+ .mq-math-mode .mq-matrix table {
802
+ border-spacing: 2px;
803
+ }
804
+ button .mq-math-mode .mq-matrix table.mq-rows-2 td,
805
+ button .mq-math-mode .mq-matrix table.mq-rows-3 td {
806
+ font-size: 0.3em;
807
+ width: 0.9em;
808
+ }
809
+ button .mq-math-mode .mq-matrix table.mq-rows-2 {
810
+ margin-bottom: -2px;
811
+ }
812
+ button .mq-math-mode .mq-matrix table.mq-rows-1 {
813
+ margin-bottom: 3px;
814
+ }
815
+ button .mq-math-mode .mq-matrix table.mq-rows-1 td {
816
+ font-size: 0.6em;
817
+ width: 1.1em;
818
+ margin-bottom: 3px;
819
+ }
820
+ button .mq-math-mode .mq-matrix .matrix-edit-content-row {
821
+ display: inline-block;
822
+ text-align: center;
823
+ vertical-align: middle;
824
+ }
825
+ button .mq-math-mode .mq-matrix .matrix-edit-content-row p {
826
+ font-size: 0.7em;
827
+ }
828
+ button .mq-math-mode .mq-matrix .matrix-edit-content-col {
829
+ display: inline-block;
830
+ text-align: center;
831
+ vertical-align: middle;
832
+ }
833
+ button .mq-math-mode .mq-matrix .matrix-edit-content-col p {
834
+ padding: 0 0.15em;
835
+ font-size: 0.7em;
836
+ }
837
+ button .mq-math-mode .mq-matrix .mq-paren {
838
+ transform: scale(1.13, 1.77);
839
+ padding: 0;
840
+ display: inline-block;
841
+ }
842
+ button .matrix-edit .mq-empty {
843
+ padding: 0.1em;
844
+ margin: 0.1em;
845
+ font-size: 0.4em;
846
+ width: 0.8em;
847
+ }
package/esm/index.js CHANGED
@@ -7,7 +7,7 @@ import classNames from 'classnames';
7
7
  import { trigCalculator } from 'trigonometry-calculator';
8
8
  import Point from '@mapbox/point-geometry';
9
9
  import debug from 'debug';
10
- import { Portal } from 'react-portal';
10
+ import ReactDOM from 'react-dom';
11
11
 
12
12
  function _extends() {
13
13
  _extends = Object.assign || function (target) {
@@ -438,6 +438,132 @@ var anchorUtils = /*#__PURE__*/Object.freeze({
438
438
  toRadians: toRadians
439
439
  });
440
440
 
441
+ var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
442
+
443
+ var _createClass$1 = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
444
+
445
+ function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
446
+
447
+ function _possibleConstructorReturn$1(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
448
+
449
+ function _inherits$1(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
450
+
451
+ var Portal$2 = function (_React$Component) {
452
+ _inherits$1(Portal, _React$Component);
453
+
454
+ function Portal() {
455
+ _classCallCheck$1(this, Portal);
456
+
457
+ return _possibleConstructorReturn$1(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments));
458
+ }
459
+
460
+ _createClass$1(Portal, [{
461
+ key: 'componentWillUnmount',
462
+ value: function componentWillUnmount() {
463
+ if (this.defaultNode) {
464
+ document.body.removeChild(this.defaultNode);
465
+ }
466
+ this.defaultNode = null;
467
+ }
468
+ }, {
469
+ key: 'render',
470
+ value: function render() {
471
+ if (!canUseDOM) {
472
+ return null;
473
+ }
474
+ if (!this.props.node && !this.defaultNode) {
475
+ this.defaultNode = document.createElement('div');
476
+ document.body.appendChild(this.defaultNode);
477
+ }
478
+ return ReactDOM.createPortal(this.props.children, this.props.node || this.defaultNode);
479
+ }
480
+ }]);
481
+
482
+ return Portal;
483
+ }(React.Component);
484
+
485
+ Portal$2.propTypes = {
486
+ children: PropTypes.node.isRequired,
487
+ node: PropTypes.any
488
+ };
489
+
490
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
491
+
492
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
493
+
494
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
495
+
496
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
497
+
498
+ var Portal$1 = function (_React$Component) {
499
+ _inherits(Portal, _React$Component);
500
+
501
+ function Portal() {
502
+ _classCallCheck(this, Portal);
503
+
504
+ return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments));
505
+ }
506
+
507
+ _createClass(Portal, [{
508
+ key: 'componentDidMount',
509
+ value: function componentDidMount() {
510
+ this.renderPortal();
511
+ }
512
+ }, {
513
+ key: 'componentDidUpdate',
514
+ value: function componentDidUpdate(props) {
515
+ this.renderPortal();
516
+ }
517
+ }, {
518
+ key: 'componentWillUnmount',
519
+ value: function componentWillUnmount() {
520
+ ReactDOM.unmountComponentAtNode(this.defaultNode || this.props.node);
521
+ if (this.defaultNode) {
522
+ document.body.removeChild(this.defaultNode);
523
+ }
524
+ this.defaultNode = null;
525
+ this.portal = null;
526
+ }
527
+ }, {
528
+ key: 'renderPortal',
529
+ value: function renderPortal(props) {
530
+ if (!this.props.node && !this.defaultNode) {
531
+ this.defaultNode = document.createElement('div');
532
+ document.body.appendChild(this.defaultNode);
533
+ }
534
+
535
+ var children = this.props.children;
536
+ // https://gist.github.com/jimfb/d99e0678e9da715ccf6454961ef04d1b
537
+ if (typeof this.props.children.type === 'function') {
538
+ children = React.cloneElement(this.props.children);
539
+ }
540
+
541
+ this.portal = ReactDOM.unstable_renderSubtreeIntoContainer(this, children, this.props.node || this.defaultNode);
542
+ }
543
+ }, {
544
+ key: 'render',
545
+ value: function render() {
546
+ return null;
547
+ }
548
+ }]);
549
+
550
+ return Portal;
551
+ }(React.Component);
552
+
553
+
554
+ Portal$1.propTypes = {
555
+ children: PropTypes.node.isRequired,
556
+ node: PropTypes.any
557
+ };
558
+
559
+ var Portal = void 0;
560
+
561
+ if (ReactDOM.createPortal) {
562
+ Portal = Portal$2;
563
+ } else {
564
+ Portal = Portal$1;
565
+ }
566
+
441
567
  const Anchor = withStyles({
442
568
  anchor: {
443
569
  position: 'absolute',
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/style-utils.js","../src/protractor/graphic.jsx","../src/anchor.jsx","../src/transform-origin.jsx","../src/anchor-utils.js","../src/rotatable.jsx","../src/protractor/index.jsx","../src/ruler/unit-type.jsx","../src/ruler/unit.jsx","../src/ruler/graphic.jsx","../src/ruler/index.jsx"],"sourcesContent":["import { noSelect } from '@pie-lib/style-utils';\n\nexport { noSelect };\n\nexport const strokeColor = (theme) => `var(--ruler-stroke, ${theme.palette.primary.main})`;\n\nexport const fillColor = (theme) => `var(--ruler-bg, ${theme.palette.primary.contrastText})`;\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport range from 'lodash/range';\nimport PropTypes from 'prop-types';\nimport { strokeColor, noSelect } from '../style-utils';\n\nconst Line = withStyles((theme) => ({\n line: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n },\n}))(({ angle, classes, major, minor }) => (\n <line\n transform={`rotate(${angle}, 50.5,50)`}\n className={classes.line}\n style={{}}\n x1=\"1\"\n x2={major ? 10 : minor ? 6 : 3}\n y1=\"50\"\n y2=\"50\"\n />\n));\n\nconst Spike = withStyles((theme) => ({\n line: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n },\n}))(({ angle, classes }) => (\n <line transform={`rotate(${angle}, 50.5,50)`} className={classes.line} style={{}} x1=\"15\" x2={'46'} y1=\"50\" y2=\"50\" />\n));\n\nconst Text = withStyles((theme) => ({\n text: {\n fontSize: '2.5px',\n textAnchor: 'middle',\n fill: strokeColor(theme),\n ...noSelect(),\n },\n}))(({ angle, classes }) => (\n <text transform={`rotate(${angle - 90}, 50.5, 50)`} className={classes.text} x=\"50\" y=\"12.5\">\n {angle}\n </text>\n));\n\nexport class Graphic extends React.PureComponent {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n };\n\n render() {\n const { classes } = this.props;\n return (\n <svg viewBox=\"0 0 102 61\">\n <path className={classes.path} d=\"M 1,50 A 1,1 0 0 1 100,50 L 100,60 L 1,60 Z\" fill=\"none\" />\n {range(0, 181).map((r) => (\n <Line minor={r % 5 === 0} major={r % 10 === 0} angle={r} key={r} />\n ))}\n {range(0, 181, 10).map((r) => (\n <React.Fragment key={r}>\n <Spike angle={r} />\n <Text angle={r} />\n </React.Fragment>\n ))}\n <circle r=\"4\" cx=\"50.5\" cy=\"50\" className={classes.circle} />\n <line className={classes.line} x1=\"48.5\" x2=\"52.5\" y1=\"50\" y2=\"50\" />\n <line className={classes.line} transform={'rotate(90 50.5 50)'} x1=\"48.5\" x2=\"52.5\" y1=\"50\" y2=\"50\" />\n </svg>\n );\n }\n}\n\nexport default withStyles((theme) => ({\n path: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n },\n line: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n },\n circle: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n fill: 'none',\n },\n}))(Graphic);\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst Anchor = withStyles((theme) => ({\n anchor: {\n cursor: 'pointer',\n width: '20px',\n height: '20px',\n position: 'absolute',\n borderRadius: '10px',\n backgroundColor: `var(--ruler-bg, ${theme.palette.primary.contrastText})`,\n transition: 'background-color 200ms ease-in',\n border: `solid 1px var(--ruler-stroke, ${theme.palette.primary.dark})`,\n '&:hover': {\n backgroundColor: `var(--ruler-bg-hover, ${theme.palette.primary.light})`,\n },\n },\n}))(({ classes, className }) => <div className={classNames(classes.anchor, className)} />);\n\nexport default Anchor;\n","const keyWordToPercent = (v) => {\n if (v === 'left' || v === 'top') {\n return 0;\n } else if (v === 'right' || v === 'bottom') {\n return 100;\n } else if (v === 'center') {\n return 50;\n } else if (v.endsWith('%')) {\n return parseFloat(v);\n } else {\n return v;\n }\n};\n\nconst getValue = (s, length) => {\n if (s.endsWith('px')) {\n return parseFloat(s);\n } else {\n s = keyWordToPercent(s);\n const v = length * (s / 100);\n return v;\n }\n};\n\nconst normalize = (a) => {\n if (a[0] === 'bottom' || a[0] === 'top' || a[1] === 'left' || a[1] === 'right') {\n return [a[1], a[0]];\n } else {\n return a;\n }\n};\n\n/**\n * Parse a transform origin string to x/y values.\n * @param {{width: number, height: number}} rect\n * @param {string} value\n * @returns {x:number, y:number}\n */\nexport const parse = (rect, value) => {\n if (!value) {\n return {\n x: rect.width / 2,\n y: rect.height / 2,\n };\n }\n const arr = value.split(' ');\n if (arr.length === 1) {\n //1 val\n const x = getValue(arr[0], rect.width);\n const y = getValue('50%', rect.height);\n return { x, y };\n } else if (arr.length === 2) {\n const sorted = normalize(arr);\n const x = getValue(sorted[0], rect.width);\n const y = getValue(sorted[1], rect.height);\n return { x, y };\n } else if (arr.length === 3) {\n throw new Error('transform-origin values with 3 fields not supported.');\n }\n};\n","import { trigCalculator } from 'trigonometry-calculator';\nimport Point from '@mapbox/point-geometry';\nimport debug from 'debug';\nimport { parse as parseOrigin } from './transform-origin';\nconst log = debug('@pie-lib:tools:anchor-utils');\n\nexport const toDegrees = (radians) => radians * (180 / Math.PI);\nexport const toRadians = (degrees) => degrees * (Math.PI / 180);\n\nexport const normalizeAngle = (a) => {\n if (a > 360) {\n return a % 360;\n } else if (a < 0) {\n return 360 + (a % 360);\n }\n return a;\n};\n\nexport const toPoint = (rect, edge) => {\n const out = parseOrigin(rect, edge);\n return new Point(out.x, out.y);\n};\n\n/**\n * Get the distance between to anchor points in a rect.\n * @param {{width: number, height: number}} rect - the rect\n * @param {number} degrees - the degrees\n * @param {string} from - from anchor\n * @param {string} to - to anchor\n * @returns {Point} point - the distance as a Point\n */\nexport const distanceBetween = (rect, degrees, from, to) => {\n const center = new Point(rect.width / 2, rect.height / 2);\n const radians = toRadians(degrees);\n const fromCenter = center.rotateAround(radians, toPoint(rect, from));\n const toCenter = center.rotateAround(radians, toPoint(rect, to));\n const diff = fromCenter.sub(toCenter);\n return diff;\n};\n\n/**\n * For a corner string, a point and a rect, return a relative x,y from that point to a corner.\n * Note that the y value descends as it goes down (unlike for a screen's y value), so this is only really useful for math functions.\n * @example\n * ```\n * getXAndY('top-left', {width: 100, height: 100}, 10, 10) //=> {x:10, y: -90}\n * ```\n * @param {*} corner\n * @param {*} rect\n * @param {*} point\n */\nexport const getXAndY = (corner, rect, point) => {\n if (corner === 'top-left') {\n const x = point.x * -1;\n const y = point.y;\n return { x, y };\n } else if (corner === 'bottom-left') {\n const x = point.x * -1;\n const y = point.y - rect.height;\n return { x, y };\n } else if (corner === 'top-right') {\n const x = rect.width - point.x;\n const y = point.y;\n return { x, y };\n } else if (corner === 'bottom-right') {\n const x = rect.width - point.x;\n const y = point.y - rect.height;\n return { x, y };\n }\n};\n\nexport const arctangent = (x, y) => toDegrees(Math.atan2(x, y));\n\nexport const getAngleAndHypotenuse = (corner, rect, point) => {\n const { x, y } = getXAndY(corner, rect, point);\n const degrees = arctangent(x, y);\n const hypotenuse = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n return { x, y, degrees, hypotenuse };\n};\n\nconst getPosition = (side, rect, point, angle, calcAngle) => {\n if (angle === 0) {\n return side === 'left' ? point.x : point.y;\n }\n const points = anglePoints(angle);\n const key = points[side];\n\n const { degrees, hypotenuse } = getAngleAndHypotenuse(key, rect, point);\n\n const ra = calcAngle(degrees);\n\n if (ra === 0) {\n return hypotenuse;\n }\n\n const t = {\n angles: { 0: ra, 1: 90 },\n sides: { 1: hypotenuse },\n };\n const out = trigCalculator(t);\n return out.sides[2];\n};\n\nexport const getTop = (rect, point, angle) => {\n return getPosition('top', rect, point, angle, (degrees) => {\n return Math.abs(angle + degrees);\n });\n};\n\nexport const getLeft = (rect, point, angle) => {\n return getPosition('left', rect, point, angle, (degrees) => {\n return Math.abs(angle + degrees + 90);\n });\n};\n\n/**\n * Calculate the position of an anchor within a bounding rect, if the source rect has been rotated by an angle.\n * It does this by finding the appropriate corner of the src rect, that touches the bounding rect, calculates\n * the hypotenuse (h) of that anchor to that point. Then using that plus the rotation it calculates\n * the sides of the triangle and returns the length of the side that touches the bounding rect.\n * @param {{width: number, height: number}} rect - the rect which contains the point\n * @param {{x:number, y: number}} point - the point within the rect\n * @param {number} angle - the angle in degrees that the rect has rotated.\n * @returns {{left: number, top: number}} position\n */\nexport const getAnchor = (rect, point, angle) => {\n log('[getAnchor] rect: ', rect, 'point:', point, 'angle: ', angle);\n if (point.x > rect.width) {\n throw new Error(`x: ${point.x} cannot be greater than width: ${rect.width}`);\n }\n if (point.y > rect.height) {\n throw new Error(`y: ${point.y} cannot be greater than height: ${rect.height}`);\n }\n const a = normalizeAngle(angle);\n const top = getTop(rect, point, a);\n const left = getLeft(rect, point, a);\n\n log('[getAnchor] top: ', top, 'left: ', left);\n return { top, left };\n};\n\nconst anglePoints = (angle) => {\n if (angle <= 90) {\n return { top: 'top-left', left: 'bottom-left' };\n } else if (angle > 90 && angle <= 180) {\n return { top: 'bottom-left', left: 'bottom-right' };\n } else if (angle > 180 && angle <= 270) {\n return { top: 'bottom-right', left: 'top-right' };\n } else if (angle > 270 && angle < 360) {\n return { top: 'top-right', left: 'top-left' };\n }\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getAnchor as calcAnchor, distanceBetween, arctangent } from './anchor-utils';\nimport { Portal } from 'react-portal';\nimport Point from '@mapbox/point-geometry';\nimport { parse as parseOrigin } from './transform-origin';\nimport classNames from 'classnames';\n\nconst Anchor = withStyles({\n anchor: {\n position: 'absolute',\n zIndex: 100,\n width: '200px',\n height: '80px',\n },\n})(({ classes, left, top, color, fill }) => {\n color = color || 'green';\n fill = fill || 'white';\n return (\n <Portal>\n <svg\n className={classes.anchor}\n style={{\n left: left - 10,\n top: top - 10,\n }}\n >\n <circle cx={10} cy={10} r={8} strokeWidth={1} stroke={color} fill={fill} />\n </svg>\n </Portal>\n );\n});\n\n/**\n * Tip o' the hat to:\n * https://bl.ocks.org/joyrexus/7207044\n */\nexport class Rotatable extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n showAnchor: PropTypes.bool,\n handle: PropTypes.arrayOf(\n PropTypes.shape({\n class: PropTypes.string.isRequired,\n origin: PropTypes.string,\n }),\n ),\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n showAnchor: false,\n startPosition: { left: 0, top: 0 },\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isRotating: false,\n rotation: 0,\n startAngle: 0,\n angle: 0,\n position: {\n left: props.startPosition.left,\n top: props.startPosition.top,\n },\n };\n }\n\n componentWillUnmount() {\n document.removeEventListener('mouseup', this.rotateStop);\n document.removeEventListener('mousemove', this.drag);\n document.removeEventListener('mousemove', this.rotate);\n\n this.handles.forEach((h) => {\n h.el.removeEventListener('mousedown', h.mousedownHandler);\n h.el.removeEventListener('mouseup', this.rotateStop);\n });\n }\n\n componentDidMount() {\n this.addMouseUpHandler();\n this.initHandles();\n }\n\n initHandles = () => {\n const { handle } = this.props;\n\n if (Array.isArray(handle)) {\n this.handles = [];\n handle.forEach((h) => {\n const el = this.rotatable.querySelector(`.${h.class}`);\n\n if (el) {\n const mousedownHandler = this.rotateStart(h.origin);\n el.addEventListener('mousedown', mousedownHandler);\n el.addEventListener('mouseup', this.rotateStop);\n this.handles.push({ el, mousedownHandler });\n }\n });\n }\n };\n\n addMouseUpHandler = () => {\n document.addEventListener('mouseup', this.rotateStop);\n };\n\n originToXY = (origin) => {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n return parseOrigin({ width, height }, origin);\n };\n\n /**\n * Get the anchor point for the given element, origin and rotation.\n * @returns {{left:number, top: number}} - the co-ordinates of the anchor point relative to the whole page.\n */\n getAnchor = (origin) => {\n const { rotation } = this.state;\n const { clientWidth, clientHeight } = this.rotatable;\n const { top, left } = this.rotatable.getBoundingClientRect();\n const xy = this.originToXY(origin);\n const { top: anchorTop, left: anchorLeft } = calcAnchor(\n {\n width: clientWidth,\n height: clientHeight,\n },\n xy,\n rotation,\n );\n\n return {\n top: top + anchorTop,\n left: left + anchorLeft,\n };\n };\n\n rotateStart = (origin) => (e) => {\n const { isRotating } = this.state;\n if (isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const anchor = this.getAnchor(origin);\n const { rotation } = this.state;\n const { angle: startAngle } = this.getAngle(anchor, e);\n\n let diff = { x: 0, y: 0 };\n if (origin !== this.state.origin) {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n diff = distanceBetween({ width, height }, rotation, this.state.origin, origin);\n }\n\n this.setState(\n {\n origin,\n isRotating: true,\n startAngle,\n anchor,\n position: {\n left: this.state.position.left + diff.x,\n top: this.state.position.top + diff.y,\n },\n },\n () => {\n document.addEventListener('mousemove', this.rotate);\n },\n );\n };\n\n rotateStop = (e) => {\n const { isRotating } = this.state;\n\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n this.setState(\n {\n isRotating: false,\n angle: this.state.rotation,\n anchor: null,\n current: null,\n },\n () => {\n document.removeEventListener('mousemove', this.rotate);\n document.removeEventListener('mousemove', this.drag);\n },\n );\n };\n\n getAngle(anchor, e) {\n const x = e.clientX - anchor.left;\n const y = (e.clientY - anchor.top) * -1;\n return { angle: arctangent(x, y), x, y };\n }\n\n rotate = (e) => {\n const { isRotating } = this.state;\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const { startAngle, angle, anchor } = this.state;\n const { angle: current, x, y } = this.getAngle(anchor, e);\n const computedAnchor = { x, y };\n const diff = current - startAngle;\n const rotation = angle + diff;\n this.setState({ rotation, diff, current, computedAnchor });\n };\n\n mouseDown = (e) => {\n const handle = this.handles.find((h) => h.el === e.target);\n\n if (!handle) {\n this.dragStart(e);\n }\n };\n\n dragStart = (e) => {\n const dragPoint = new Point(e.pageX, e.pageY);\n this.setState({ dragPoint }, () => {\n document.addEventListener('mousemove', this.drag);\n });\n };\n\n drag = (e) => {\n e.preventDefault();\n const current = new Point(e.pageX, e.pageY);\n const translate = current.sub(this.state.dragPoint);\n this.setState({ translate });\n };\n\n mouseUp = () => {\n if (!this.state.translate) {\n return;\n }\n\n const { position: lastPosition, translate } = this.state;\n\n const position = {\n left: lastPosition.left + translate.x,\n top: lastPosition.top + translate.y,\n };\n\n document.removeEventListener('mousemove', this.drag);\n this.setState({ position, dragPoint: null, translate: null });\n };\n\n render() {\n const { children, classes, showAnchor, className } = this.props;\n const { rotation, anchor, origin, translate, position } = this.state;\n\n const t = translate ? `translate(${translate.x}px, ${translate.y}px)` : '';\n\n const style = {\n left: position.left,\n top: position.top,\n transformOrigin: origin,\n transform: `${t} rotate(${rotation}deg)`,\n };\n\n return (\n <div\n className={classNames(classes.rotatable, className)}\n style={style}\n ref={(r) => (this.rotatable = r)}\n onMouseDown={this.mouseDown}\n onMouseUp={this.mouseUp}\n >\n {anchor && showAnchor && <Anchor {...anchor} />}\n {children}\n </div>\n );\n }\n}\n\nexport default withStyles({\n rotatable: {\n position: 'relative',\n display: 'inline-block',\n cursor: 'move',\n },\n})(Rotatable);\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport Graphic from './graphic';\nimport Anchor from '../anchor';\nimport Rotatable from '../rotatable';\nimport classNames from 'classnames';\n\nexport class Protractor extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n width: PropTypes.number.isRequired,\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n width: 450,\n startPosition: { left: 0, top: 0 },\n };\n\n render() {\n const { classes, width, className, startPosition } = this.props;\n return (\n <Rotatable\n className={className}\n startPosition={startPosition}\n handle={[\n {\n class: 'leftAnchor',\n origin: `${width * 0.495}px ${width * 0.49}px`,\n },\n {\n class: 'rightAnchor',\n origin: `${width * 0.495}px ${width * 0.49}px`,\n },\n ]}\n >\n <div className={classes.protractor} style={{ width: `${width}px` }}>\n <Graphic />\n\n <Anchor className={classNames('leftAnchor', classes.leftAnchor)} />\n <Anchor className={classNames('rightAnchor', classes.rightAnchor)} />\n </div>\n </Rotatable>\n );\n }\n}\n\nexport default withStyles(() => ({\n protractor: { position: 'relative' },\n leftAnchor: {\n position: 'absolute',\n left: 0,\n bottom: 0,\n },\n rightAnchor: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n },\n}))(Protractor);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { noSelect, strokeColor } from '../style-utils';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport const UnitType = (props) => {\n const { classes, label, x, y, textAlign, fill, fontSize, stroke } = props;\n\n return (\n <text\n className={classes.unitType}\n x={x}\n y={y}\n textAnchor={textAlign}\n stroke={stroke}\n fill={fill}\n fontSize={fontSize}\n >\n {label}\n </text>\n );\n};\n\nUnitType.propTypes = {\n classes: PropTypes.object.isRequired,\n label: PropTypes.string.isRequired,\n x: PropTypes.number,\n y: PropTypes.number,\n textAlign: PropTypes.string,\n fill: PropTypes.string,\n fontSize: PropTypes.number,\n stroke: PropTypes.string,\n};\n\nUnitType.defaultProps = {\n textAnchor: 'start',\n fontSize: 11,\n stroke: 'none',\n x: 8,\n y: 14,\n};\n\nexport default withStyles((theme) => ({\n unitType: { ...noSelect(), fill: strokeColor(theme) },\n}))(UnitType);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { noSelect, strokeColor } from '../style-utils';\nimport range from 'lodash/range';\n\nconst Tick = withStyles((theme) => ({\n tick: {\n stroke: strokeColor(theme),\n },\n}))(({ x, height, bottom, classes, major, minor }) => {\n const y1 = major ? bottom - height * 2 : minor ? bottom - height * 1.5 : bottom - height;\n\n return <line y1={y1} y2={bottom} x1={x} x2={x} className={classes.tick} />;\n});\n\nconst Ticks = ({ count, width, height }) => {\n return (\n <React.Fragment>\n {range(1, count).map((r) => {\n return (\n <Tick\n key={r}\n value={r}\n x={r * (width / count)}\n major={r % (count / 2) === 0}\n minor={r % (count / 4) === 0}\n bottom={height}\n height={10}\n />\n );\n })}\n </React.Fragment>\n );\n};\n\nTicks.propTypes = {\n count: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n};\n\nexport class Unit extends React.Component {\n static propTypes = {\n index: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n classes: PropTypes.object.isRequired,\n last: PropTypes.bool.isRequired,\n config: PropTypes.object.isRequired,\n };\n\n render() {\n const { index, width, height, classes, last, config } = this.props;\n\n const style = {\n transform: `translate(${width * (index - 1)}px, 0px)`,\n };\n return (\n <g style={style}>\n {!last && <line x1={width} y1={0} x2={width} y2={height} className={classes.endTick} />}\n\n <Ticks count={config.ticks} width={width} height={height} />\n <text width={width} className={classes.label} x={width - 5} y={15}>\n {index}\n </text>\n </g>\n );\n }\n}\n\nexport default withStyles((theme) => ({\n endTick: {\n stroke: strokeColor(theme),\n strokeWidth: 1,\n },\n label: {\n textAnchor: 'end',\n fontSize: '12px',\n fill: strokeColor(theme),\n ...noSelect(),\n },\n base: {\n fill: 'none',\n stroke: 'red',\n },\n}))(Unit);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport UnitType from './unit-type';\nimport range from 'lodash/range';\nimport Unit from './unit';\nimport { strokeColor, fillColor } from '../style-utils';\n\nconst Bg = ({ width, height, className }) => <rect width={width} height={height} cx={0} cy={0} className={className} />;\n\nBg.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n className: PropTypes.string.isRequired,\n};\n\nexport class Graphic extends React.PureComponent {\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n units: PropTypes.number.isRequired,\n unit: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n render() {\n const { width, height, classes, units, unit } = this.props;\n const viewBox = `0 0 ${width} ${height}`;\n const unitWidth = width / units;\n const unitHeight = height;\n\n return (\n <svg viewBox={viewBox}>\n <Bg width={width} height={height} className={classes.bg} />\n <UnitType label={unit.type} />\n {range(1, units + 1).map((r) => (\n <Unit width={unitWidth} height={unitHeight} key={r} index={r} config={unit} last={r === units} />\n ))}\n </svg>\n );\n }\n}\nconst styles = (theme) => ({\n bg: {\n stroke: strokeColor(theme),\n strokeWidth: '2px',\n fill: fillColor(theme),\n },\n});\n\nexport default withStyles(styles)(Graphic);\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Rotatable from '../rotatable';\nimport classNames from 'classnames';\nimport RulerGraphic from './graphic';\nimport PropTypes from 'prop-types';\nimport Anchor from '../anchor';\n\nexport class Ruler extends React.Component {\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n units: PropTypes.number.isRequired,\n measure: PropTypes.oneOf(['imperial', 'metric']).isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired,\n }),\n label: PropTypes.string,\n tickCount: PropTypes.number,\n };\n\n static defaultProps = {\n width: 480,\n height: 60,\n measure: 'imperial',\n units: 12,\n };\n\n render() {\n const { classes, width, height, units, measure, className, startPosition, label, tickCount } = this.props;\n\n const unit =\n measure === 'imperial'\n ? {\n type: label,\n ticks: tickCount && tickCount % 4 === 0 ? tickCount : 16,\n }\n : {\n type: label,\n ticks: 10,\n };\n return (\n <Rotatable\n className={className}\n startPosition={startPosition}\n handle={[\n { class: 'leftAnchor', origin: 'bottom right' },\n { class: 'rightAnchor', origin: 'bottom left' },\n ]}\n >\n <div className={classes.ruler} style={{ width: `${width}px`, height: `${height}px` }}>\n <RulerGraphic width={width} height={height} units={units} unit={unit} />\n <Anchor className={classNames('leftAnchor', classes.leftAnchor)} />\n <Anchor className={classNames('rightAnchor', classes.rightAnchor)} />\n </div>\n </Rotatable>\n );\n }\n}\nconst styles = (theme) => ({\n ruler: {\n cursor: 'move',\n position: 'relative',\n backgroundColor: theme.palette.secondary.light,\n opacity: 1.0,\n border: `solid 0px ${theme.palette.primary.main}`,\n },\n leftAnchor: {\n left: '-10px',\n top: '40%',\n },\n rightAnchor: {\n right: '-10px',\n top: '40%',\n },\n});\n\nexport default withStyles(styles)(Ruler);\n"],"names":["strokeColor","theme","palette","primary","main","fillColor","contrastText","Line","withStyles","line","strokeWidth","stroke","angle","classes","major","minor","Spike","Text","text","fontSize","textAnchor","fill","noSelect","Graphic","React","PureComponent","render","props","path","range","map","r","circle","propTypes","PropTypes","object","isRequired","Anchor","anchor","cursor","width","height","position","borderRadius","backgroundColor","transition","border","dark","light","className","classNames","keyWordToPercent","v","endsWith","parseFloat","getValue","s","length","normalize","a","parse","rect","value","x","y","arr","split","sorted","Error","log","debug","toDegrees","radians","Math","PI","toRadians","degrees","normalizeAngle","toPoint","edge","out","parseOrigin","Point","distanceBetween","from","to","center","fromCenter","rotateAround","toCenter","diff","sub","getXAndY","corner","point","arctangent","atan2","getAngleAndHypotenuse","hypotenuse","sqrt","pow","getPosition","side","calcAngle","points","anglePoints","key","ra","t","angles","sides","trigCalculator","getTop","abs","getLeft","getAnchor","top","left","zIndex","color","Rotatable","Component","constructor","initHandles","handle","Array","isArray","handles","forEach","h","el","rotatable","querySelector","class","mousedownHandler","rotateStart","origin","addEventListener","rotateStop","push","addMouseUpHandler","document","originToXY","clientWidth","clientHeight","rotation","state","getBoundingClientRect","xy","anchorTop","anchorLeft","calcAnchor","e","isRotating","preventDefault","startAngle","getAngle","setState","rotate","current","removeEventListener","drag","computedAnchor","mouseDown","find","target","dragStart","dragPoint","pageX","pageY","translate","mouseUp","lastPosition","startPosition","componentWillUnmount","componentDidMount","clientX","clientY","children","showAnchor","style","transformOrigin","transform","oneOfType","arrayOf","node","bool","shape","string","number","defaultProps","display","Protractor","protractor","leftAnchor","rightAnchor","bottom","right","UnitType","label","textAlign","unitType","Tick","tick","y1","Ticks","count","Unit","index","last","config","endTick","ticks","base","Bg","units","unit","viewBox","unitWidth","unitHeight","bg","type","styles","Ruler","measure","tickCount","ruler","oneOf","secondary","opacity"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/style-utils.js","../src/protractor/graphic.jsx","../src/anchor.jsx","../src/transform-origin.jsx","../src/anchor-utils.js","../../../node_modules/react-portal/es/utils.js","../../../node_modules/react-portal/es/Portal.js","../../../node_modules/react-portal/es/LegacyPortal.js","../../../node_modules/react-portal/es/PortalCompat.js","../src/rotatable.jsx","../src/protractor/index.jsx","../src/ruler/unit-type.jsx","../src/ruler/unit.jsx","../src/ruler/graphic.jsx","../src/ruler/index.jsx"],"sourcesContent":["import { noSelect } from '@pie-lib/style-utils';\n\nexport { noSelect };\n\nexport const strokeColor = (theme) => `var(--ruler-stroke, ${theme.palette.primary.main})`;\n\nexport const fillColor = (theme) => `var(--ruler-bg, ${theme.palette.primary.contrastText})`;\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport range from 'lodash/range';\nimport PropTypes from 'prop-types';\nimport { strokeColor, noSelect } from '../style-utils';\n\nconst Line = withStyles((theme) => ({\n line: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n },\n}))(({ angle, classes, major, minor }) => (\n <line\n transform={`rotate(${angle}, 50.5,50)`}\n className={classes.line}\n style={{}}\n x1=\"1\"\n x2={major ? 10 : minor ? 6 : 3}\n y1=\"50\"\n y2=\"50\"\n />\n));\n\nconst Spike = withStyles((theme) => ({\n line: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n },\n}))(({ angle, classes }) => (\n <line transform={`rotate(${angle}, 50.5,50)`} className={classes.line} style={{}} x1=\"15\" x2={'46'} y1=\"50\" y2=\"50\" />\n));\n\nconst Text = withStyles((theme) => ({\n text: {\n fontSize: '2.5px',\n textAnchor: 'middle',\n fill: strokeColor(theme),\n ...noSelect(),\n },\n}))(({ angle, classes }) => (\n <text transform={`rotate(${angle - 90}, 50.5, 50)`} className={classes.text} x=\"50\" y=\"12.5\">\n {angle}\n </text>\n));\n\nexport class Graphic extends React.PureComponent {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n };\n\n render() {\n const { classes } = this.props;\n return (\n <svg viewBox=\"0 0 102 61\">\n <path className={classes.path} d=\"M 1,50 A 1,1 0 0 1 100,50 L 100,60 L 1,60 Z\" fill=\"none\" />\n {range(0, 181).map((r) => (\n <Line minor={r % 5 === 0} major={r % 10 === 0} angle={r} key={r} />\n ))}\n {range(0, 181, 10).map((r) => (\n <React.Fragment key={r}>\n <Spike angle={r} />\n <Text angle={r} />\n </React.Fragment>\n ))}\n <circle r=\"4\" cx=\"50.5\" cy=\"50\" className={classes.circle} />\n <line className={classes.line} x1=\"48.5\" x2=\"52.5\" y1=\"50\" y2=\"50\" />\n <line className={classes.line} transform={'rotate(90 50.5 50)'} x1=\"48.5\" x2=\"52.5\" y1=\"50\" y2=\"50\" />\n </svg>\n );\n }\n}\n\nexport default withStyles((theme) => ({\n path: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n },\n line: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n },\n circle: {\n strokeWidth: '0.2',\n stroke: strokeColor(theme),\n fill: 'none',\n },\n}))(Graphic);\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nconst Anchor = withStyles((theme) => ({\n anchor: {\n cursor: 'pointer',\n width: '20px',\n height: '20px',\n position: 'absolute',\n borderRadius: '10px',\n backgroundColor: `var(--ruler-bg, ${theme.palette.primary.contrastText})`,\n transition: 'background-color 200ms ease-in',\n border: `solid 1px var(--ruler-stroke, ${theme.palette.primary.dark})`,\n '&:hover': {\n backgroundColor: `var(--ruler-bg-hover, ${theme.palette.primary.light})`,\n },\n },\n}))(({ classes, className }) => <div className={classNames(classes.anchor, className)} />);\n\nexport default Anchor;\n","const keyWordToPercent = (v) => {\n if (v === 'left' || v === 'top') {\n return 0;\n } else if (v === 'right' || v === 'bottom') {\n return 100;\n } else if (v === 'center') {\n return 50;\n } else if (v.endsWith('%')) {\n return parseFloat(v);\n } else {\n return v;\n }\n};\n\nconst getValue = (s, length) => {\n if (s.endsWith('px')) {\n return parseFloat(s);\n } else {\n s = keyWordToPercent(s);\n const v = length * (s / 100);\n return v;\n }\n};\n\nconst normalize = (a) => {\n if (a[0] === 'bottom' || a[0] === 'top' || a[1] === 'left' || a[1] === 'right') {\n return [a[1], a[0]];\n } else {\n return a;\n }\n};\n\n/**\n * Parse a transform origin string to x/y values.\n * @param {{width: number, height: number}} rect\n * @param {string} value\n * @returns {x:number, y:number}\n */\nexport const parse = (rect, value) => {\n if (!value) {\n return {\n x: rect.width / 2,\n y: rect.height / 2,\n };\n }\n const arr = value.split(' ');\n if (arr.length === 1) {\n //1 val\n const x = getValue(arr[0], rect.width);\n const y = getValue('50%', rect.height);\n return { x, y };\n } else if (arr.length === 2) {\n const sorted = normalize(arr);\n const x = getValue(sorted[0], rect.width);\n const y = getValue(sorted[1], rect.height);\n return { x, y };\n } else if (arr.length === 3) {\n throw new Error('transform-origin values with 3 fields not supported.');\n }\n};\n","import { trigCalculator } from 'trigonometry-calculator';\nimport Point from '@mapbox/point-geometry';\nimport debug from 'debug';\nimport { parse as parseOrigin } from './transform-origin';\nconst log = debug('@pie-lib:tools:anchor-utils');\n\nexport const toDegrees = (radians) => radians * (180 / Math.PI);\nexport const toRadians = (degrees) => degrees * (Math.PI / 180);\n\nexport const normalizeAngle = (a) => {\n if (a > 360) {\n return a % 360;\n } else if (a < 0) {\n return 360 + (a % 360);\n }\n return a;\n};\n\nexport const toPoint = (rect, edge) => {\n const out = parseOrigin(rect, edge);\n return new Point(out.x, out.y);\n};\n\n/**\n * Get the distance between to anchor points in a rect.\n * @param {{width: number, height: number}} rect - the rect\n * @param {number} degrees - the degrees\n * @param {string} from - from anchor\n * @param {string} to - to anchor\n * @returns {Point} point - the distance as a Point\n */\nexport const distanceBetween = (rect, degrees, from, to) => {\n const center = new Point(rect.width / 2, rect.height / 2);\n const radians = toRadians(degrees);\n const fromCenter = center.rotateAround(radians, toPoint(rect, from));\n const toCenter = center.rotateAround(radians, toPoint(rect, to));\n const diff = fromCenter.sub(toCenter);\n return diff;\n};\n\n/**\n * For a corner string, a point and a rect, return a relative x,y from that point to a corner.\n * Note that the y value descends as it goes down (unlike for a screen's y value), so this is only really useful for math functions.\n * @example\n * ```\n * getXAndY('top-left', {width: 100, height: 100}, 10, 10) //=> {x:10, y: -90}\n * ```\n * @param {*} corner\n * @param {*} rect\n * @param {*} point\n */\nexport const getXAndY = (corner, rect, point) => {\n if (corner === 'top-left') {\n const x = point.x * -1;\n const y = point.y;\n return { x, y };\n } else if (corner === 'bottom-left') {\n const x = point.x * -1;\n const y = point.y - rect.height;\n return { x, y };\n } else if (corner === 'top-right') {\n const x = rect.width - point.x;\n const y = point.y;\n return { x, y };\n } else if (corner === 'bottom-right') {\n const x = rect.width - point.x;\n const y = point.y - rect.height;\n return { x, y };\n }\n};\n\nexport const arctangent = (x, y) => toDegrees(Math.atan2(x, y));\n\nexport const getAngleAndHypotenuse = (corner, rect, point) => {\n const { x, y } = getXAndY(corner, rect, point);\n const degrees = arctangent(x, y);\n const hypotenuse = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n return { x, y, degrees, hypotenuse };\n};\n\nconst getPosition = (side, rect, point, angle, calcAngle) => {\n if (angle === 0) {\n return side === 'left' ? point.x : point.y;\n }\n const points = anglePoints(angle);\n const key = points[side];\n\n const { degrees, hypotenuse } = getAngleAndHypotenuse(key, rect, point);\n\n const ra = calcAngle(degrees);\n\n if (ra === 0) {\n return hypotenuse;\n }\n\n const t = {\n angles: { 0: ra, 1: 90 },\n sides: { 1: hypotenuse },\n };\n const out = trigCalculator(t);\n return out.sides[2];\n};\n\nexport const getTop = (rect, point, angle) => {\n return getPosition('top', rect, point, angle, (degrees) => {\n return Math.abs(angle + degrees);\n });\n};\n\nexport const getLeft = (rect, point, angle) => {\n return getPosition('left', rect, point, angle, (degrees) => {\n return Math.abs(angle + degrees + 90);\n });\n};\n\n/**\n * Calculate the position of an anchor within a bounding rect, if the source rect has been rotated by an angle.\n * It does this by finding the appropriate corner of the src rect, that touches the bounding rect, calculates\n * the hypotenuse (h) of that anchor to that point. Then using that plus the rotation it calculates\n * the sides of the triangle and returns the length of the side that touches the bounding rect.\n * @param {{width: number, height: number}} rect - the rect which contains the point\n * @param {{x:number, y: number}} point - the point within the rect\n * @param {number} angle - the angle in degrees that the rect has rotated.\n * @returns {{left: number, top: number}} position\n */\nexport const getAnchor = (rect, point, angle) => {\n log('[getAnchor] rect: ', rect, 'point:', point, 'angle: ', angle);\n if (point.x > rect.width) {\n throw new Error(`x: ${point.x} cannot be greater than width: ${rect.width}`);\n }\n if (point.y > rect.height) {\n throw new Error(`y: ${point.y} cannot be greater than height: ${rect.height}`);\n }\n const a = normalizeAngle(angle);\n const top = getTop(rect, point, a);\n const left = getLeft(rect, point, a);\n\n log('[getAnchor] top: ', top, 'left: ', left);\n return { top, left };\n};\n\nconst anglePoints = (angle) => {\n if (angle <= 90) {\n return { top: 'top-left', left: 'bottom-left' };\n } else if (angle > 90 && angle <= 180) {\n return { top: 'bottom-left', left: 'bottom-right' };\n } else if (angle > 180 && angle <= 270) {\n return { top: 'bottom-right', left: 'top-right' };\n } else if (angle > 270 && angle < 360) {\n return { top: 'top-right', left: 'top-left' };\n }\n};\n","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport { canUseDOM } from './utils';\n\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n _classCallCheck(this, Portal);\n\n return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments));\n }\n\n _createClass(Portal, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n this.defaultNode = null;\n }\n }, {\n key: 'render',\n value: function render() {\n if (!canUseDOM) {\n return null;\n }\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n return ReactDOM.createPortal(this.props.children, this.props.node || this.defaultNode);\n }\n }]);\n\n return Portal;\n}(React.Component);\n\nPortal.propTypes = {\n children: PropTypes.node.isRequired,\n node: PropTypes.any\n};\n\nexport default Portal;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// This file is a fallback for a consumer who is not yet on React 16\n// as createPortal was introduced in React 16\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n _classCallCheck(this, Portal);\n\n return _possibleConstructorReturn(this, (Portal.__proto__ || Object.getPrototypeOf(Portal)).apply(this, arguments));\n }\n\n _createClass(Portal, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.renderPortal();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(props) {\n this.renderPortal();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n ReactDOM.unmountComponentAtNode(this.defaultNode || this.props.node);\n if (this.defaultNode) {\n document.body.removeChild(this.defaultNode);\n }\n this.defaultNode = null;\n this.portal = null;\n }\n }, {\n key: 'renderPortal',\n value: function renderPortal(props) {\n if (!this.props.node && !this.defaultNode) {\n this.defaultNode = document.createElement('div');\n document.body.appendChild(this.defaultNode);\n }\n\n var children = this.props.children;\n // https://gist.github.com/jimfb/d99e0678e9da715ccf6454961ef04d1b\n if (typeof this.props.children.type === 'function') {\n children = React.cloneElement(this.props.children);\n }\n\n this.portal = ReactDOM.unstable_renderSubtreeIntoContainer(this, children, this.props.node || this.defaultNode);\n }\n }, {\n key: 'render',\n value: function render() {\n return null;\n }\n }]);\n\n return Portal;\n}(React.Component);\n\nexport default Portal;\n\n\nPortal.propTypes = {\n children: PropTypes.node.isRequired,\n node: PropTypes.any\n};","import ReactDOM from 'react-dom';\n\nimport Portalv4 from './Portal';\nimport LegacyPortal from './LegacyPortal';\n\nvar Portal = void 0;\n\nif (ReactDOM.createPortal) {\n Portal = Portalv4;\n} else {\n Portal = LegacyPortal;\n}\n\nexport default Portal;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getAnchor as calcAnchor, distanceBetween, arctangent } from './anchor-utils';\nimport { Portal } from 'react-portal';\nimport Point from '@mapbox/point-geometry';\nimport { parse as parseOrigin } from './transform-origin';\nimport classNames from 'classnames';\n\nconst Anchor = withStyles({\n anchor: {\n position: 'absolute',\n zIndex: 100,\n width: '200px',\n height: '80px',\n },\n})(({ classes, left, top, color, fill }) => {\n color = color || 'green';\n fill = fill || 'white';\n return (\n <Portal>\n <svg\n className={classes.anchor}\n style={{\n left: left - 10,\n top: top - 10,\n }}\n >\n <circle cx={10} cy={10} r={8} strokeWidth={1} stroke={color} fill={fill} />\n </svg>\n </Portal>\n );\n});\n\n/**\n * Tip o' the hat to:\n * https://bl.ocks.org/joyrexus/7207044\n */\nexport class Rotatable extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n showAnchor: PropTypes.bool,\n handle: PropTypes.arrayOf(\n PropTypes.shape({\n class: PropTypes.string.isRequired,\n origin: PropTypes.string,\n }),\n ),\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n showAnchor: false,\n startPosition: { left: 0, top: 0 },\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isRotating: false,\n rotation: 0,\n startAngle: 0,\n angle: 0,\n position: {\n left: props.startPosition.left,\n top: props.startPosition.top,\n },\n };\n }\n\n componentWillUnmount() {\n document.removeEventListener('mouseup', this.rotateStop);\n document.removeEventListener('mousemove', this.drag);\n document.removeEventListener('mousemove', this.rotate);\n\n this.handles.forEach((h) => {\n h.el.removeEventListener('mousedown', h.mousedownHandler);\n h.el.removeEventListener('mouseup', this.rotateStop);\n });\n }\n\n componentDidMount() {\n this.addMouseUpHandler();\n this.initHandles();\n }\n\n initHandles = () => {\n const { handle } = this.props;\n\n if (Array.isArray(handle)) {\n this.handles = [];\n handle.forEach((h) => {\n const el = this.rotatable.querySelector(`.${h.class}`);\n\n if (el) {\n const mousedownHandler = this.rotateStart(h.origin);\n el.addEventListener('mousedown', mousedownHandler);\n el.addEventListener('mouseup', this.rotateStop);\n this.handles.push({ el, mousedownHandler });\n }\n });\n }\n };\n\n addMouseUpHandler = () => {\n document.addEventListener('mouseup', this.rotateStop);\n };\n\n originToXY = (origin) => {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n return parseOrigin({ width, height }, origin);\n };\n\n /**\n * Get the anchor point for the given element, origin and rotation.\n * @returns {{left:number, top: number}} - the co-ordinates of the anchor point relative to the whole page.\n */\n getAnchor = (origin) => {\n const { rotation } = this.state;\n const { clientWidth, clientHeight } = this.rotatable;\n const { top, left } = this.rotatable.getBoundingClientRect();\n const xy = this.originToXY(origin);\n const { top: anchorTop, left: anchorLeft } = calcAnchor(\n {\n width: clientWidth,\n height: clientHeight,\n },\n xy,\n rotation,\n );\n\n return {\n top: top + anchorTop,\n left: left + anchorLeft,\n };\n };\n\n rotateStart = (origin) => (e) => {\n const { isRotating } = this.state;\n if (isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const anchor = this.getAnchor(origin);\n const { rotation } = this.state;\n const { angle: startAngle } = this.getAngle(anchor, e);\n\n let diff = { x: 0, y: 0 };\n if (origin !== this.state.origin) {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n diff = distanceBetween({ width, height }, rotation, this.state.origin, origin);\n }\n\n this.setState(\n {\n origin,\n isRotating: true,\n startAngle,\n anchor,\n position: {\n left: this.state.position.left + diff.x,\n top: this.state.position.top + diff.y,\n },\n },\n () => {\n document.addEventListener('mousemove', this.rotate);\n },\n );\n };\n\n rotateStop = (e) => {\n const { isRotating } = this.state;\n\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n this.setState(\n {\n isRotating: false,\n angle: this.state.rotation,\n anchor: null,\n current: null,\n },\n () => {\n document.removeEventListener('mousemove', this.rotate);\n document.removeEventListener('mousemove', this.drag);\n },\n );\n };\n\n getAngle(anchor, e) {\n const x = e.clientX - anchor.left;\n const y = (e.clientY - anchor.top) * -1;\n return { angle: arctangent(x, y), x, y };\n }\n\n rotate = (e) => {\n const { isRotating } = this.state;\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const { startAngle, angle, anchor } = this.state;\n const { angle: current, x, y } = this.getAngle(anchor, e);\n const computedAnchor = { x, y };\n const diff = current - startAngle;\n const rotation = angle + diff;\n this.setState({ rotation, diff, current, computedAnchor });\n };\n\n mouseDown = (e) => {\n const handle = this.handles.find((h) => h.el === e.target);\n\n if (!handle) {\n this.dragStart(e);\n }\n };\n\n dragStart = (e) => {\n const dragPoint = new Point(e.pageX, e.pageY);\n this.setState({ dragPoint }, () => {\n document.addEventListener('mousemove', this.drag);\n });\n };\n\n drag = (e) => {\n e.preventDefault();\n const current = new Point(e.pageX, e.pageY);\n const translate = current.sub(this.state.dragPoint);\n this.setState({ translate });\n };\n\n mouseUp = () => {\n if (!this.state.translate) {\n return;\n }\n\n const { position: lastPosition, translate } = this.state;\n\n const position = {\n left: lastPosition.left + translate.x,\n top: lastPosition.top + translate.y,\n };\n\n document.removeEventListener('mousemove', this.drag);\n this.setState({ position, dragPoint: null, translate: null });\n };\n\n render() {\n const { children, classes, showAnchor, className } = this.props;\n const { rotation, anchor, origin, translate, position } = this.state;\n\n const t = translate ? `translate(${translate.x}px, ${translate.y}px)` : '';\n\n const style = {\n left: position.left,\n top: position.top,\n transformOrigin: origin,\n transform: `${t} rotate(${rotation}deg)`,\n };\n\n return (\n <div\n className={classNames(classes.rotatable, className)}\n style={style}\n ref={(r) => (this.rotatable = r)}\n onMouseDown={this.mouseDown}\n onMouseUp={this.mouseUp}\n >\n {anchor && showAnchor && <Anchor {...anchor} />}\n {children}\n </div>\n );\n }\n}\n\nexport default withStyles({\n rotatable: {\n position: 'relative',\n display: 'inline-block',\n cursor: 'move',\n },\n})(Rotatable);\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\nimport Graphic from './graphic';\nimport Anchor from '../anchor';\nimport Rotatable from '../rotatable';\nimport classNames from 'classnames';\n\nexport class Protractor extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n width: PropTypes.number.isRequired,\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n width: 450,\n startPosition: { left: 0, top: 0 },\n };\n\n render() {\n const { classes, width, className, startPosition } = this.props;\n return (\n <Rotatable\n className={className}\n startPosition={startPosition}\n handle={[\n {\n class: 'leftAnchor',\n origin: `${width * 0.495}px ${width * 0.49}px`,\n },\n {\n class: 'rightAnchor',\n origin: `${width * 0.495}px ${width * 0.49}px`,\n },\n ]}\n >\n <div className={classes.protractor} style={{ width: `${width}px` }}>\n <Graphic />\n\n <Anchor className={classNames('leftAnchor', classes.leftAnchor)} />\n <Anchor className={classNames('rightAnchor', classes.rightAnchor)} />\n </div>\n </Rotatable>\n );\n }\n}\n\nexport default withStyles(() => ({\n protractor: { position: 'relative' },\n leftAnchor: {\n position: 'absolute',\n left: 0,\n bottom: 0,\n },\n rightAnchor: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n },\n}))(Protractor);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { noSelect, strokeColor } from '../style-utils';\nimport { withStyles } from '@material-ui/core/styles';\n\nexport const UnitType = (props) => {\n const { classes, label, x, y, textAlign, fill, fontSize, stroke } = props;\n\n return (\n <text\n className={classes.unitType}\n x={x}\n y={y}\n textAnchor={textAlign}\n stroke={stroke}\n fill={fill}\n fontSize={fontSize}\n >\n {label}\n </text>\n );\n};\n\nUnitType.propTypes = {\n classes: PropTypes.object.isRequired,\n label: PropTypes.string.isRequired,\n x: PropTypes.number,\n y: PropTypes.number,\n textAlign: PropTypes.string,\n fill: PropTypes.string,\n fontSize: PropTypes.number,\n stroke: PropTypes.string,\n};\n\nUnitType.defaultProps = {\n textAnchor: 'start',\n fontSize: 11,\n stroke: 'none',\n x: 8,\n y: 14,\n};\n\nexport default withStyles((theme) => ({\n unitType: { ...noSelect(), fill: strokeColor(theme) },\n}))(UnitType);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { noSelect, strokeColor } from '../style-utils';\nimport range from 'lodash/range';\n\nconst Tick = withStyles((theme) => ({\n tick: {\n stroke: strokeColor(theme),\n },\n}))(({ x, height, bottom, classes, major, minor }) => {\n const y1 = major ? bottom - height * 2 : minor ? bottom - height * 1.5 : bottom - height;\n\n return <line y1={y1} y2={bottom} x1={x} x2={x} className={classes.tick} />;\n});\n\nconst Ticks = ({ count, width, height }) => {\n return (\n <React.Fragment>\n {range(1, count).map((r) => {\n return (\n <Tick\n key={r}\n value={r}\n x={r * (width / count)}\n major={r % (count / 2) === 0}\n minor={r % (count / 4) === 0}\n bottom={height}\n height={10}\n />\n );\n })}\n </React.Fragment>\n );\n};\n\nTicks.propTypes = {\n count: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n};\n\nexport class Unit extends React.Component {\n static propTypes = {\n index: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n classes: PropTypes.object.isRequired,\n last: PropTypes.bool.isRequired,\n config: PropTypes.object.isRequired,\n };\n\n render() {\n const { index, width, height, classes, last, config } = this.props;\n\n const style = {\n transform: `translate(${width * (index - 1)}px, 0px)`,\n };\n return (\n <g style={style}>\n {!last && <line x1={width} y1={0} x2={width} y2={height} className={classes.endTick} />}\n\n <Ticks count={config.ticks} width={width} height={height} />\n <text width={width} className={classes.label} x={width - 5} y={15}>\n {index}\n </text>\n </g>\n );\n }\n}\n\nexport default withStyles((theme) => ({\n endTick: {\n stroke: strokeColor(theme),\n strokeWidth: 1,\n },\n label: {\n textAnchor: 'end',\n fontSize: '12px',\n fill: strokeColor(theme),\n ...noSelect(),\n },\n base: {\n fill: 'none',\n stroke: 'red',\n },\n}))(Unit);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport UnitType from './unit-type';\nimport range from 'lodash/range';\nimport Unit from './unit';\nimport { strokeColor, fillColor } from '../style-utils';\n\nconst Bg = ({ width, height, className }) => <rect width={width} height={height} cx={0} cy={0} className={className} />;\n\nBg.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n className: PropTypes.string.isRequired,\n};\n\nexport class Graphic extends React.PureComponent {\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n units: PropTypes.number.isRequired,\n unit: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n render() {\n const { width, height, classes, units, unit } = this.props;\n const viewBox = `0 0 ${width} ${height}`;\n const unitWidth = width / units;\n const unitHeight = height;\n\n return (\n <svg viewBox={viewBox}>\n <Bg width={width} height={height} className={classes.bg} />\n <UnitType label={unit.type} />\n {range(1, units + 1).map((r) => (\n <Unit width={unitWidth} height={unitHeight} key={r} index={r} config={unit} last={r === units} />\n ))}\n </svg>\n );\n }\n}\nconst styles = (theme) => ({\n bg: {\n stroke: strokeColor(theme),\n strokeWidth: '2px',\n fill: fillColor(theme),\n },\n});\n\nexport default withStyles(styles)(Graphic);\n","import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\nimport Rotatable from '../rotatable';\nimport classNames from 'classnames';\nimport RulerGraphic from './graphic';\nimport PropTypes from 'prop-types';\nimport Anchor from '../anchor';\n\nexport class Ruler extends React.Component {\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n units: PropTypes.number.isRequired,\n measure: PropTypes.oneOf(['imperial', 'metric']).isRequired,\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired,\n }),\n label: PropTypes.string,\n tickCount: PropTypes.number,\n };\n\n static defaultProps = {\n width: 480,\n height: 60,\n measure: 'imperial',\n units: 12,\n };\n\n render() {\n const { classes, width, height, units, measure, className, startPosition, label, tickCount } = this.props;\n\n const unit =\n measure === 'imperial'\n ? {\n type: label,\n ticks: tickCount && tickCount % 4 === 0 ? tickCount : 16,\n }\n : {\n type: label,\n ticks: 10,\n };\n return (\n <Rotatable\n className={className}\n startPosition={startPosition}\n handle={[\n { class: 'leftAnchor', origin: 'bottom right' },\n { class: 'rightAnchor', origin: 'bottom left' },\n ]}\n >\n <div className={classes.ruler} style={{ width: `${width}px`, height: `${height}px` }}>\n <RulerGraphic width={width} height={height} units={units} unit={unit} />\n <Anchor className={classNames('leftAnchor', classes.leftAnchor)} />\n <Anchor className={classNames('rightAnchor', classes.rightAnchor)} />\n </div>\n </Rotatable>\n );\n }\n}\nconst styles = (theme) => ({\n ruler: {\n cursor: 'move',\n position: 'relative',\n backgroundColor: theme.palette.secondary.light,\n opacity: 1.0,\n border: `solid 0px ${theme.palette.primary.main}`,\n },\n leftAnchor: {\n left: '-10px',\n top: '40%',\n },\n rightAnchor: {\n right: '-10px',\n top: '40%',\n },\n});\n\nexport default withStyles(styles)(Ruler);\n"],"names":["strokeColor","theme","palette","primary","main","fillColor","contrastText","Line","withStyles","line","strokeWidth","stroke","angle","classes","major","minor","Spike","Text","text","fontSize","textAnchor","fill","noSelect","Graphic","React","PureComponent","render","props","path","range","map","r","circle","propTypes","PropTypes","object","isRequired","Anchor","anchor","cursor","width","height","position","borderRadius","backgroundColor","transition","border","dark","light","className","classNames","keyWordToPercent","v","endsWith","parseFloat","getValue","s","length","normalize","a","parse","rect","value","x","y","arr","split","sorted","Error","log","debug","toDegrees","radians","Math","PI","toRadians","degrees","normalizeAngle","toPoint","edge","out","parseOrigin","Point","distanceBetween","from","to","center","fromCenter","rotateAround","toCenter","diff","sub","getXAndY","corner","point","arctangent","atan2","getAngleAndHypotenuse","hypotenuse","sqrt","pow","getPosition","side","calcAngle","points","anglePoints","key","ra","t","angles","sides","trigCalculator","getTop","abs","getLeft","getAnchor","top","left","_createClass","_classCallCheck","_possibleConstructorReturn","_inherits","Portal","Portalv4","LegacyPortal","zIndex","color","Rotatable","Component","constructor","initHandles","handle","Array","isArray","handles","forEach","h","el","rotatable","querySelector","class","mousedownHandler","rotateStart","origin","addEventListener","rotateStop","push","addMouseUpHandler","document","originToXY","clientWidth","clientHeight","rotation","state","getBoundingClientRect","xy","anchorTop","anchorLeft","calcAnchor","e","isRotating","preventDefault","startAngle","getAngle","setState","rotate","current","removeEventListener","drag","computedAnchor","mouseDown","find","target","dragStart","dragPoint","pageX","pageY","translate","mouseUp","lastPosition","startPosition","componentWillUnmount","componentDidMount","clientX","clientY","children","showAnchor","style","transformOrigin","transform","oneOfType","arrayOf","node","bool","shape","string","number","defaultProps","display","Protractor","protractor","leftAnchor","rightAnchor","bottom","right","UnitType","label","textAlign","unitType","Tick","tick","y1","Ticks","count","Unit","index","last","config","endTick","ticks","base","Bg","units","unit","viewBox","unitWidth","unitHeight","bg","type","styles","Ruler","measure","tickCount","ruler","oneOf","secondary","opacity"],"mappings":"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","x_google_ignoreList":[5,6,7,8]}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.26.2",
6
+ "version": "0.26.3",
7
7
  "description": "Some interactive tools",
8
8
  "keywords": [
9
9
  "react",
@@ -18,7 +18,7 @@
18
18
  "license": "ISC",
19
19
  "dependencies": {
20
20
  "@mapbox/point-geometry": "^0.1.0",
21
- "@pie-lib/style-utils": "^0.18.2",
21
+ "@pie-lib/style-utils": "^0.18.3",
22
22
  "assert": "^1.4.1",
23
23
  "classnames": "^2.2.6",
24
24
  "debug": "^4.1.1",
@@ -37,7 +37,7 @@
37
37
  "@material-ui/core": "^3.8.3",
38
38
  "react": "^16.8.1"
39
39
  },
40
- "gitHead": "8a327571bd64249e4c88c0c8e750d16d6213f535",
40
+ "gitHead": "3b10dbe1c14708ccf9a9e8af8f1eafec6ed7dd2d",
41
41
  "exports": {
42
42
  ".": {
43
43
  "import": "./esm/index.js",