@pie-lib/tools 0.11.0-beta.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +1 -437
- package/CHANGELOG.md +127 -11
- package/lib/anchor-utils.js +1 -1
- package/lib/anchor-utils.js.map +1 -0
- package/lib/anchor.js +1 -1
- package/lib/anchor.js.map +1 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -0
- package/lib/protractor/graphic.js +1 -1
- package/lib/protractor/graphic.js.map +1 -0
- package/lib/protractor/index.js +1 -1
- package/lib/protractor/index.js.map +1 -0
- package/lib/rotatable.js +1 -1
- package/lib/rotatable.js.map +1 -0
- package/lib/ruler/graphic.js +1 -1
- package/lib/ruler/graphic.js.map +1 -0
- package/lib/ruler/index.js +1 -1
- package/lib/ruler/index.js.map +1 -0
- package/lib/ruler/unit-type.js +1 -1
- package/lib/ruler/unit-type.js.map +1 -0
- package/lib/ruler/unit.js +1 -1
- package/lib/ruler/unit.js.map +1 -0
- package/lib/style-utils.js +1 -1
- package/lib/style-utils.js.map +1 -0
- package/lib/transform-origin.js +1 -1
- package/lib/transform-origin.js.map +1 -0
- package/package.json +4 -3
- package/lib/__tests__/anchor-utils.test.js +0 -228
- package/lib/__tests__/rotatable.test.js +0 -255
- package/lib/__tests__/transform-origin.test.js +0 -63
- package/lib/protractor/__tests__/graphic.test.js +0 -27
- package/lib/protractor/__tests__/index.test.js +0 -23
- package/lib/ruler/__tests__/graphic.test.js +0 -31
- package/lib/ruler/__tests__/index.test.js +0 -51
- package/lib/ruler/__tests__/unit-type.test.js +0 -24
- package/lib/ruler/__tests__/unit.test.js +0 -30
package/lib/anchor-utils.js
CHANGED
|
@@ -246,4 +246,4 @@ var anglePoints = function anglePoints(angle) {
|
|
|
246
246
|
};
|
|
247
247
|
}
|
|
248
248
|
};
|
|
249
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hbmNob3ItdXRpbHMuanMiXSwibmFtZXMiOlsibG9nIiwidG9EZWdyZWVzIiwicmFkaWFucyIsIk1hdGgiLCJQSSIsInRvUmFkaWFucyIsImRlZ3JlZXMiLCJub3JtYWxpemVBbmdsZSIsImEiLCJ0b1BvaW50IiwicmVjdCIsImVkZ2UiLCJvdXQiLCJQb2ludCIsIngiLCJ5IiwiZGlzdGFuY2VCZXR3ZWVuIiwiZnJvbSIsInRvIiwiY2VudGVyIiwid2lkdGgiLCJoZWlnaHQiLCJmcm9tQ2VudGVyIiwicm90YXRlQXJvdW5kIiwidG9DZW50ZXIiLCJkaWZmIiwic3ViIiwiZ2V0WEFuZFkiLCJjb3JuZXIiLCJwb2ludCIsImFyY3RhbmdlbnQiLCJhdGFuMiIsImdldEFuZ2xlQW5kSHlwb3RlbnVzZSIsImh5cG90ZW51c2UiLCJzcXJ0IiwicG93IiwiZ2V0UG9zaXRpb24iLCJzaWRlIiwiYW5nbGUiLCJjYWxjQW5nbGUiLCJwb2ludHMiLCJhbmdsZVBvaW50cyIsImtleSIsInJhIiwidCIsImFuZ2xlcyIsInNpZGVzIiwiZ2V0VG9wIiwiYWJzIiwiZ2V0TGVmdCIsImdldEFuY2hvciIsIkVycm9yIiwidG9wIiwibGVmdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0EsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLDZCQUFOLENBQVo7O0FBRU8sSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVksQ0FBQ0MsT0FBRDtBQUFBLFNBQWFBLE9BQU8sSUFBSSxNQUFNQyxJQUFJLENBQUNDLEVBQWYsQ0FBcEI7QUFBQSxDQUFsQjs7OztBQUNBLElBQU1DLFNBQVMsR0FBRyxTQUFaQSxTQUFZLENBQUNDLE9BQUQ7QUFBQSxTQUFhQSxPQUFPLElBQUlILElBQUksQ0FBQ0MsRUFBTCxHQUFVLEdBQWQsQ0FBcEI7QUFBQSxDQUFsQjs7OztBQUVBLElBQU1HLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsQ0FBRCxFQUFP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Y3JCLENBQWQsQ0FBbEI7QUFDQSxNQUFNNkMsSUFBSSxHQUFHSixPQUFPLENBQUN2QyxJQUFELEVBQU9tQixLQUFQLEVBQWNyQixDQUFkLENBQXBCO0FBRUFSLEVBQUFBLEdBQUcsQ0FBQyxtQkFBRCxFQUFzQm9ELEdBQXRCLEVBQTJCLFFBQTNCLEVBQXFDQyxJQUFyQyxDQUFIO0FBQ0EsU0FBTztBQUFFRCxJQUFBQSxHQUFHLEVBQUhBLEdBQUY7QUFBT0MsSUFBQUEsSUFBSSxFQUFKQTtBQUFQLEdBQVA7QUFDRCxDQWRNOzs7O0FBZ0JQLElBQU1aLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNILEtBQUQsRUFBVztBQUM3QixNQUFJQSxLQUFLLElBQUksRUFBYixFQUFpQjtBQUNmLFdBQU87QUFBRWMsTUFBQUEsR0FBRyxFQUFFLFVBQVA7QUFBbUJDLE1BQUFBLElBQUksRUFBRTtBQUF6QixLQUFQO0FBQ0QsR0FGRCxNQUVPLElBQUlmLEtBQUssR0FBRyxFQUFSLElBQWNBLEtBQUssSUFBSSxHQUEzQixFQUFnQztBQUNyQyxXQUFPO0FBQUVjLE1BQUFBLEdBQUcsRUFBRSxhQUFQO0FBQXNCQyxNQUFBQSxJQUFJLEVBQUU7QUFBNUIsS0FBUDtBQUNELEdBRk0sTUFFQSxJQUFJZixLQUFLLEdBQUcsR0FBUixJQUFlQSxLQUFLLElBQUksR0FBNUIsRUFBaUM7QUFDdEMsV0FBTztBQUFFYyxNQUFBQSxHQUFHLEVBQUUsY0FBUDtBQUF1QkMsTUFBQUEsSUFBSSxFQUFFO0FBQTdCLEtBQVA7QUFDRCxHQUZNLE1BRUEsSUFBSWYsS0FBSyxHQUFHLEdBQVIsSUFBZUEsS0FBSyxHQUFHLEdBQTNCLEVBQWdDO0FBQ3JDLFdBQU87QUFBRWMsTUFBQUEsR0FBRyxFQUFFLFdBQVA7QUFBb0JDLE1BQUFBLElBQUksRUFBRTtBQUExQixLQUFQO0FBQ0Q7QUFDRixDQVZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJpZ0NhbGN1bGF0b3IgfSBmcm9tICd0cmlnb25vbWV0cnktY2FsY3VsYXRvcic7XG5pbXBvcnQgUG9pbnQgZnJvbSAnQG1hcGJveC9wb2ludC1nZW9tZXRyeSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VPcmlnaW4gfSBmcm9tICcuL3RyYW5zZm9ybS1vcmlnaW4nO1xuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOnRvb2xzOmFuY2hvci11dGlscycpO1xuXG5leHBvcnQgY29uc3QgdG9EZWdyZWVzID0gKHJhZGlhbnMpID0+IHJhZGlhbnMgKiAoMTgwIC8gTWF0aC5QSSk7XG5leHBvcnQgY29uc3QgdG9SYWRpYW5zID0gKGRlZ3JlZXMpID0+IGRlZ3JlZXMgKiAoTWF0aC5QSSAvIDE4MCk7XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVBbmdsZSA9IChhKSA9PiB7XG4gIGlmIChhID4gMzYwKSB7XG4gICAgcmV0dXJuIGEgJSAzNjA7XG4gIH0gZWxzZSBpZiAoYSA8IDApIHtcbiAgICByZXR1cm4gMzYwICsgKGEgJSAzNjApO1xuICB9XG4gIHJldHVybiBhO1xufTtcblxuZXhwb3J0IGNvbnN0IHRvUG9pbnQgPSAocmVjdCwgZWRnZSkgPT4ge1xuICBjb25zdCBvdXQgPSBwYXJzZU9yaWdpbihyZWN0LCBlZGdlKTtcbiAgcmV0dXJuIG5ldyBQb2ludChvdXQueCwgb3V0LnkpO1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIGRpc3RhbmNlIGJldHdlZW4gdG8gYW5jaG9yIHBvaW50cyBpbiBhIHJlY3QuXG4gKiBAcGFyYW0ge3t3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcn19IHJlY3QgLSB0aGUgcmVjdFxuICogQHBhcmFtIHtudW1iZXJ9IGRlZ3JlZXMgLSB0aGUgZGVncmVlc1xuICogQHBhcmFtIHtzdHJpbmd9IGZyb20gLSBmcm9tIGFuY2hvclxuICogQHBhcmFtIHtzdHJpbmd9IHRvIC0gdG8gYW5jaG9yXG4gKiBAcmV0dXJucyB7UG9pbnR9IHBvaW50IC0gdGhlIGRpc3RhbmNlIGFzIGEgUG9pbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGRpc3RhbmNlQmV0d2VlbiA9IChyZWN0LCBkZWdyZWVzLCBmcm9tLCB0bykgPT4ge1xuICBjb25zdCBjZW50ZXIgPSBuZXcgUG9pbnQocmVjdC53aWR0aCAvIDIsIHJlY3QuaGVpZ2h0IC8gMik7XG4gIGNvbnN0IHJhZGlhbnMgPSB0b1JhZGlhbnMoZGVncmVlcyk7XG4gIGNvbnN0IGZyb21DZW50ZXIgPSBjZW50ZXIucm90YXRlQXJvdW5kKHJhZGlhbnMsIHRvUG9pbnQocmVjdCwgZnJvbSkpO1xuICBjb25zdCB0b0NlbnRlciA9IGNlbnRlci5yb3RhdGVBcm91bmQocmFkaWFucywgdG9Qb2ludChyZWN0LCB0bykpO1xuICBjb25zdCBkaWZmID0gZnJvbUNlbnRlci5zdWIodG9DZW50ZXIpO1xuICByZXR1cm4gZGlmZjtcbn07XG5cbi8qKlxuICogRm9yIGEgY29ybmVyIHN0cmluZywgYSBwb2ludCBhbmQgYSByZWN0LCByZXR1cm4gYSByZWxhdGl2ZSB4LHkgZnJvbSB0aGF0IHBvaW50IHRvIGEgY29ybmVyLlxuICogTm90ZSB0aGF0IHRoZSB5IHZhbHVlIGRlc2NlbmRzIGFzIGl0IGdvZXMgZG93biAodW5saWtlIGZvciBhIHNjcmVlbidzIHkgdmFsdWUpLCBzbyB0aGlzIGlzIG9ubHkgcmVhbGx5IHVzZWZ1bCBmb3IgbWF0aCBmdW5jdGlvbnMuXG4gKiBAZXhhbXBsZVxuICogYGBgXG4gKiBnZXRYQW5kWSgndG9wLWxlZnQnLCB7d2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDB9LCAxMCwgMTApIC8vPT4ge3g6MTAsIHk6IC05MH1cbiAqIGBgYFxuICogQHBhcmFtIHsqfSBjb3JuZXJcbiAqIEBwYXJhbSB7Kn0gcmVjdFxuICogQHBhcmFtIHsqfSBwb2ludFxuICovXG5leHBvcnQgY29uc3QgZ2V0WEFuZFkgPSAoY29ybmVyLCByZWN0LCBwb2ludCkgPT4ge1xuICBpZiAoY29ybmVyID09PSAndG9wLWxlZnQnKSB7XG4gICAgY29uc3QgeCA9IHBvaW50LnggKiAtMTtcbiAgICBjb25zdCB5ID0gcG9pbnQueTtcbiAgICByZXR1cm4geyB4LCB5IH07XG4gIH0gZWxzZSBpZiAoY29ybmVyID09PSAnYm90dG9tLWxlZnQnKSB7XG4gICAgY29uc3QgeCA9IHBvaW50LnggKiAtMTtcbiAgICBjb25zdCB5ID0gcG9pbnQueSAtIHJlY3QuaGVpZ2h0O1xuICAgIHJldHVybiB7IHgsIHkgfTtcbiAgfSBlbHNlIGlmIChjb3JuZXIgPT09ICd0b3AtcmlnaHQnKSB7XG4gICAgY29uc3QgeCA9IHJlY3Qud2lkdGggLSBwb2ludC54O1xuICAgIGNvbnN0IHkgPSBwb2ludC55O1xuICAgIHJldHVybiB7IHgsIHkgfTtcbiAgfSBlbHNlIGlmIChjb3JuZXIgPT09ICdib3R0b20tcmlnaHQnKSB7XG4gICAgY29uc3QgeCA9IHJlY3Qud2lkdGggLSBwb2ludC54O1xuICAgIGNvbnN0IHkgPSBwb2ludC55IC0gcmVjdC5oZWlnaHQ7XG4gICAgcmV0dXJuIHsgeCwgeSB9O1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgYXJjdGFuZ2VudCA9ICh4LCB5KSA9PiB0b0RlZ3JlZXMoTWF0aC5hdGFuMih4LCB5KSk7XG5cbmV4cG9ydCBjb25zdCBnZXRBbmdsZUFuZEh5cG90ZW51c2UgPSAoY29ybmVyLCByZWN0LCBwb2ludCkgPT4ge1xuICBjb25zdCB7IHgsIHkgfSA9IGdldFhBbmRZKGNvcm5lciwgcmVjdCwgcG9pbnQpO1xuICBjb25zdCBkZWdyZWVzID0gYXJjdGFuZ2VudCh4LCB5KTtcbiAgY29uc3QgaHlwb3RlbnVzZSA9IE1hdGguc3FydChNYXRoLnBvdyh4LCAyKSArIE1hdGgucG93KHksIDIpKTtcbiAgcmV0dXJuIHsgeCwgeSwgZGVncmVlcywgaHlwb3RlbnVzZSB9O1xufTtcblxuY29uc3QgZ2V0UG9zaXRpb24gPSAoc2lkZSwgcmVjdCwgcG9pbnQsIGFuZ2xlLCBjYWxjQW5nbGUpID0+IHtcbiAgaWYgKGFuZ2xlID09PSAwKSB7XG4gICAgcmV0dXJuIHNpZGUgPT09ICdsZWZ0JyA/IHBvaW50LnggOiBwb2ludC55O1xuICB9XG4gIGNvbnN0IHBvaW50cyA9IGFuZ2xlUG9pbnRzKGFuZ2xlKTtcbiAgY29uc3Qga2V5ID0gcG9pbnRzW3NpZGVdO1xuXG4gIGNvbnN0IHsgZGVncmVlcywgaHlwb3RlbnVzZSB9ID0gZ2V0QW5nbGVBbmRIeXBvdGVudXNlKGtleSwgcmVjdCwgcG9pbnQpO1xuXG4gIGNvbnN0IHJhID0gY2FsY0FuZ2xlKGRlZ3JlZXMpO1xuXG4gIGlmIChyYSA9PT0gMCkge1xuICAgIHJldHVybiBoeXBvdGVudXNlO1xuICB9XG5cbiAgY29uc3QgdCA9IHtcbiAgICBhbmdsZXM6IHsgMDogcmEsIDE6IDkwIH0sXG4gICAgc2lkZXM6IHsgMTogaHlwb3RlbnVzZSB9LFxuICB9O1xuICBjb25zdCBvdXQgPSB0cmlnQ2FsY3VsYXRvcih0KTtcbiAgcmV0dXJuIG91dC5zaWRlc1syXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUb3AgPSAocmVjdCwgcG9pbnQsIGFuZ2xlKSA9PiB7XG4gIHJldHVybiBnZXRQb3NpdGlvbigndG9wJywgcmVjdCwgcG9pbnQsIGFuZ2xlLCAoZGVncmVlcykgPT4ge1xuICAgIHJldHVybiBNYXRoLmFicyhhbmdsZSArIGRlZ3JlZXMpO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMZWZ0ID0gKHJlY3QsIHBvaW50LCBhbmdsZSkgPT4ge1xuICByZXR1cm4gZ2V0UG9zaXRpb24oJ2xlZnQnLCByZWN0LCBwb2ludCwgYW5nbGUsIChkZWdyZWVzKSA9PiB7XG4gICAgcmV0dXJuIE1hdGguYWJzKGFuZ2xlICsgZGVncmVlcyArIDkwKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gb2YgYW4gYW5jaG9yIHdpdGhpbiBhIGJvdW5kaW5nIHJlY3QsIGlmIHRoZSBzb3VyY2UgcmVjdCBoYXMgYmVlbiByb3RhdGVkIGJ5IGFuIGFuZ2xlLlxuICogSXQgZG9lcyB0aGlzIGJ5IGZpbmRpbmcgdGhlIGFwcHJvcHJpYXRlIGNvcm5lciBvZiB0aGUgc3JjIHJlY3QsIHRoYXQgdG91Y2hlcyB0aGUgYm91bmRpbmcgcmVjdCwgY2FsY3VsYXRlc1xuICogdGhlIGh5cG90ZW51c2UgKGgpIG9mIHRoYXQgYW5jaG9yIHRvIHRoYXQgcG9pbnQuIFRoZW4gdXNpbmcgdGhhdCBwbHVzIHRoZSByb3RhdGlvbiBpdCBjYWxjdWxhdGVzXG4gKiB0aGUgc2lkZXMgb2YgdGhlIHRyaWFuZ2xlIGFuZCByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIHNpZGUgdGhhdCB0b3VjaGVzIHRoZSBib3VuZGluZyByZWN0LlxuICogQHBhcmFtIHt7d2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXJ9fSByZWN0IC0gdGhlIHJlY3Qgd2hpY2ggY29udGFpbnMgdGhlIHBvaW50XG4gKiBAcGFyYW0ge3t4Om51bWJlciwgeTogbnVtYmVyfX0gcG9pbnQgLSB0aGUgcG9pbnQgd2l0aGluIHRoZSByZWN0XG4gKiBAcGFyYW0ge251bWJlcn0gYW5nbGUgLSB0aGUgYW5nbGUgaW4gZGVncmVlcyB0aGF0IHRoZSByZWN0IGhhcyByb3RhdGVkLlxuICogQHJldHVybnMge3tsZWZ0OiBudW1iZXIsIHRvcDogbnVtYmVyfX0gcG9zaXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFuY2hvciA9IChyZWN0LCBwb2ludCwgYW5nbGUpID0+IHtcbiAgbG9nKCdbZ2V0QW5jaG9yXSByZWN0OiAnLCByZWN0LCAncG9pbnQ6JywgcG9pbnQsICdhbmdsZTogJywgYW5nbGUpO1xuICBpZiAocG9pbnQueCA+IHJlY3Qud2lkdGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHg6ICR7cG9pbnQueH0gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB3aWR0aDogJHtyZWN0LndpZHRofWApO1xuICB9XG4gIGlmIChwb2ludC55ID4gcmVjdC5oZWlnaHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHk6ICR7cG9pbnQueX0gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiBoZWlnaHQ6ICR7cmVjdC5oZWlnaHR9YCk7XG4gIH1cbiAgY29uc3QgYSA9IG5vcm1hbGl6ZUFuZ2xlKGFuZ2xlKTtcbiAgY29uc3QgdG9wID0gZ2V0VG9wKHJlY3QsIHBvaW50LCBhKTtcbiAgY29uc3QgbGVmdCA9IGdldExlZnQocmVjdCwgcG9pbnQsIGEpO1xuXG4gIGxvZygnW2dldEFuY2hvcl0gdG9wOiAnLCB0b3AsICdsZWZ0OiAnLCBsZWZ0KTtcbiAgcmV0dXJuIHsgdG9wLCBsZWZ0IH07XG59O1xuXG5jb25zdCBhbmdsZVBvaW50cyA9IChhbmdsZSkgPT4ge1xuICBpZiAoYW5nbGUgPD0gOTApIHtcbiAgICByZXR1cm4geyB0b3A6ICd0b3AtbGVmdCcsIGxlZnQ6ICdib3R0b20tbGVmdCcgfTtcbiAgfSBlbHNlIGlmIChhbmdsZSA+IDkwICYmIGFuZ2xlIDw9IDE4MCkge1xuICAgIHJldHVybiB7IHRvcDogJ2JvdHRvbS1sZWZ0JywgbGVmdDogJ2JvdHRvbS1yaWdodCcgfTtcbiAgfSBlbHNlIGlmIChhbmdsZSA+IDE4MCAmJiBhbmdsZSA8PSAyNzApIHtcbiAgICByZXR1cm4geyB0b3A6ICdib3R0b20tcmlnaHQnLCBsZWZ0OiAndG9wLXJpZ2h0JyB9O1xuICB9IGVsc2UgaWYgKGFuZ2xlID4gMjcwICYmIGFuZ2xlIDwgMzYwKSB7XG4gICAgcmV0dXJuIHsgdG9wOiAndG9wLXJpZ2h0JywgbGVmdDogJ3RvcC1sZWZ0JyB9O1xuICB9XG59O1xuIl19
|
|
249
|
+
//# sourceMappingURL=anchor-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/anchor-utils.js"],"names":["log","toDegrees","radians","Math","PI","toRadians","degrees","normalizeAngle","a","toPoint","rect","edge","out","Point","x","y","distanceBetween","from","to","center","width","height","fromCenter","rotateAround","toCenter","diff","sub","getXAndY","corner","point","arctangent","atan2","getAngleAndHypotenuse","hypotenuse","sqrt","pow","getPosition","side","angle","calcAngle","points","anglePoints","key","ra","t","angles","sides","getTop","abs","getLeft","getAnchor","Error","top","left"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA,IAAMA,GAAG,GAAG,uBAAM,6BAAN,CAAZ;;AAEO,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,OAAD;AAAA,SAAaA,OAAO,IAAI,MAAMC,IAAI,CAACC,EAAf,CAApB;AAAA,CAAlB;;;;AACA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,OAAD;AAAA,SAAaA,OAAO,IAAIH,IAAI,CAACC,EAAL,GAAU,GAAd,CAApB;AAAA,CAAlB;;;;AAEA,IAAMG,cAAc,GAAG,SAAjBA,cAAiB,CAACC,CAAD,EAAO;AACnC,MAAIA,CAAC,GAAG,GAAR,EAAa;AACX,WAAOA,CAAC,GAAG,GAAX;AACD,GAFD,MAEO,IAAIA,CAAC,GAAG,CAAR,EAAW;AAChB,WAAO,MAAOA,CAAC,GAAG,GAAlB;AACD;;AACD,SAAOA,CAAP;AACD,CAPM;;;;AASA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,IAAD,EAAOC,IAAP,EAAgB;AACrC,MAAMC,GAAG,GAAG,4BAAYF,IAAZ,EAAkBC,IAAlB,CAAZ;AACA,SAAO,IAAIE,yBAAJ,CAAUD,GAAG,CAACE,CAAd,EAAiBF,GAAG,CAACG,CAArB,CAAP;AACD,CAHM;AAKP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACN,IAAD,EAAOJ,OAAP,EAAgBW,IAAhB,EAAsBC,EAAtB,EAA6B;AAC1D,MAAMC,MAAM,GAAG,IAAIN,yBAAJ,CAAUH,IAAI,CAACU,KAAL,GAAa,CAAvB,EAA0BV,IAAI,CAACW,MAAL,GAAc,CAAxC,CAAf;AACA,MAAMnB,OAAO,GAAGG,SAAS,CAACC,OAAD,CAAzB;AACA,MAAMgB,UAAU,GAAGH,MAAM,CAACI,YAAP,CAAoBrB,OAApB,EAA6BO,OAAO,CAACC,IAAD,EAAOO,IAAP,CAApC,CAAnB;AACA,MAAMO,QAAQ,GAAGL,MAAM,CAACI,YAAP,CAAoBrB,OAApB,EAA6BO,OAAO,CAACC,IAAD,EAAOQ,EAAP,CAApC,CAAjB;AACA,MAAMO,IAAI,GAAGH,UAAU,CAACI,GAAX,CAAeF,QAAf,CAAb;AACA,SAAOC,IAAP;AACD,CAPM;AASP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAME,QAAQ,GAAG,SAAXA,QAAW,CAACC,MAAD,EAASlB,IAAT,EAAemB,KAAf,EAAyB;AAC/C,MAAID,MAAM,KAAK,UAAf,EAA2B;AACzB,QAAMd,CAAC,GAAGe,KAAK,CAACf,CAAN,GAAU,CAAC,CAArB;AACA,QAAMC,CAAC,GAAGc,KAAK,CAACd,CAAhB;AACA,WAAO;AAAED,MAAAA,CAAC,EAADA,CAAF;AAAKC,MAAAA,CAAC,EAADA;AAAL,KAAP;AACD,GAJD,MAIO,IAAIa,MAAM,KAAK,aAAf,EAA8B;AACnC,QAAMd,EAAC,GAAGe,KAAK,CAACf,CAAN,GAAU,CAAC,CAArB;;AACA,QAAMC,EAAC,GAAGc,KAAK,CAACd,CAAN,GAAUL,IAAI,CAACW,MAAzB;;AACA,WAAO;AAAEP,MAAAA,CAAC,EAADA,EAAF;AAAKC,MAAAA,CAAC,EAADA;AAAL,KAAP;AACD,GAJM,MAIA,IAAIa,MAAM,KAAK,WAAf,EAA4B;AACjC,QAAMd,GAAC,GAAGJ,IAAI,CAACU,KAAL,GAAaS,KAAK,CAACf,CAA7B;;AACA,QAAMC,GAAC,GAAGc,KAAK,CAACd,CAAhB;AACA,WAAO;AAAED,MAAAA,CAAC,EAADA,GAAF;AAAKC,MAAAA,CAAC,EAADA;AAAL,KAAP;AACD,GAJM,MAIA,IAAIa,MAAM,KAAK,cAAf,EAA+B;AACpC,QAAMd,GAAC,GAAGJ,IAAI,CAACU,KAAL,GAAaS,KAAK,CAACf,CAA7B;;AACA,QAAMC,GAAC,GAAGc,KAAK,CAACd,CAAN,GAAUL,IAAI,CAACW,MAAzB;;AACA,WAAO;AAAEP,MAAAA,CAAC,EAADA,GAAF;AAAKC,MAAAA,CAAC,EAADA;AAAL,KAAP;AACD;AACF,CAlBM;;;;AAoBA,IAAMe,UAAU,GAAG,SAAbA,UAAa,CAAChB,CAAD,EAAIC,CAAJ;AAAA,SAAUd,SAAS,CAACE,IAAI,CAAC4B,KAAL,CAAWjB,CAAX,EAAcC,CAAd,CAAD,CAAnB;AAAA,CAAnB;;;;AAEA,IAAMiB,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACJ,MAAD,EAASlB,IAAT,EAAemB,KAAf,EAAyB;AAC5D,kBAAiBF,QAAQ,CAACC,MAAD,EAASlB,IAAT,EAAemB,KAAf,CAAzB;AAAA,MAAQf,CAAR,aAAQA,CAAR;AAAA,MAAWC,CAAX,aAAWA,CAAX;;AACA,MAAMT,OAAO,GAAGwB,UAAU,CAAChB,CAAD,EAAIC,CAAJ,CAA1B;AACA,MAAMkB,UAAU,GAAG9B,IAAI,CAAC+B,IAAL,CAAU/B,IAAI,CAACgC,GAAL,CAASrB,CAAT,EAAY,CAAZ,IAAiBX,IAAI,CAACgC,GAAL,CAASpB,CAAT,EAAY,CAAZ,CAA3B,CAAnB;AACA,SAAO;AAAED,IAAAA,CAAC,EAADA,CAAF;AAAKC,IAAAA,CAAC,EAADA,CAAL;AAAQT,IAAAA,OAAO,EAAPA,OAAR;AAAiB2B,IAAAA,UAAU,EAAVA;AAAjB,GAAP;AACD,CALM;;;;AAOP,IAAMG,WAAW,GAAG,SAAdA,WAAc,CAACC,IAAD,EAAO3B,IAAP,EAAamB,KAAb,EAAoBS,KAApB,EAA2BC,SAA3B,EAAyC;AAC3D,MAAID,KAAK,KAAK,CAAd,EAAiB;AACf,WAAOD,IAAI,KAAK,MAAT,GAAkBR,KAAK,CAACf,CAAxB,GAA4Be,KAAK,CAACd,CAAzC;AACD;;AACD,MAAMyB,MAAM,GAAGC,WAAW,CAACH,KAAD,CAA1B;AACA,MAAMI,GAAG,GAAGF,MAAM,CAACH,IAAD,CAAlB;;AAEA,8BAAgCL,qBAAqB,CAACU,GAAD,EAAMhC,IAAN,EAAYmB,KAAZ,CAArD;AAAA,MAAQvB,OAAR,yBAAQA,OAAR;AAAA,MAAiB2B,UAAjB,yBAAiBA,UAAjB;;AAEA,MAAMU,EAAE,GAAGJ,SAAS,CAACjC,OAAD,CAApB;;AAEA,MAAIqC,EAAE,KAAK,CAAX,EAAc;AACZ,WAAOV,UAAP;AACD;;AAED,MAAMW,CAAC,GAAG;AACRC,IAAAA,MAAM,EAAE;AAAE,SAAGF,EAAL;AAAS,SAAG;AAAZ,KADA;AAERG,IAAAA,KAAK,EAAE;AAAE,SAAGb;AAAL;AAFC,GAAV;AAIA,MAAMrB,GAAG,GAAG,4CAAegC,CAAf,CAAZ;AACA,SAAOhC,GAAG,CAACkC,KAAJ,CAAU,CAAV,CAAP;AACD,CArBD;;AAuBO,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACrC,IAAD,EAAOmB,KAAP,EAAcS,KAAd,EAAwB;AAC5C,SAAOF,WAAW,CAAC,KAAD,EAAQ1B,IAAR,EAAcmB,KAAd,EAAqBS,KAArB,EAA4B,UAAChC,OAAD,EAAa;AACzD,WAAOH,IAAI,CAAC6C,GAAL,CAASV,KAAK,GAAGhC,OAAjB,CAAP;AACD,GAFiB,CAAlB;AAGD,CAJM;;;;AAMA,IAAM2C,OAAO,GAAG,SAAVA,OAAU,CAACvC,IAAD,EAAOmB,KAAP,EAAcS,KAAd,EAAwB;AAC7C,SAAOF,WAAW,CAAC,MAAD,EAAS1B,IAAT,EAAemB,KAAf,EAAsBS,KAAtB,EAA6B,UAAChC,OAAD,EAAa;AAC1D,WAAOH,IAAI,CAAC6C,GAAL,CAASV,KAAK,GAAGhC,OAAR,GAAkB,EAA3B,CAAP;AACD,GAFiB,CAAlB;AAGD,CAJM;AAMP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACO,IAAM4C,SAAS,GAAG,SAAZA,SAAY,CAACxC,IAAD,EAAOmB,KAAP,EAAcS,KAAd,EAAwB;AAC/CtC,EAAAA,GAAG,CAAC,oBAAD,EAAuBU,IAAvB,EAA6B,QAA7B,EAAuCmB,KAAvC,EAA8C,SAA9C,EAAyDS,KAAzD,CAAH;;AACA,MAAIT,KAAK,CAACf,CAAN,GAAUJ,IAAI,CAACU,KAAnB,EAA0B;AACxB,UAAM,IAAI+B,KAAJ,cAAgBtB,KAAK,CAACf,CAAtB,4CAAyDJ,IAAI,CAACU,KAA9D,EAAN;AACD;;AACD,MAAIS,KAAK,CAACd,CAAN,GAAUL,IAAI,CAACW,MAAnB,EAA2B;AACzB,UAAM,IAAI8B,KAAJ,cAAgBtB,KAAK,CAACd,CAAtB,6CAA0DL,IAAI,CAACW,MAA/D,EAAN;AACD;;AACD,MAAMb,CAAC,GAAGD,cAAc,CAAC+B,KAAD,CAAxB;AACA,MAAMc,GAAG,GAAGL,MAAM,CAACrC,IAAD,EAAOmB,KAAP,EAAcrB,CAAd,CAAlB;AACA,MAAM6C,IAAI,GAAGJ,OAAO,CAACvC,IAAD,EAAOmB,KAAP,EAAcrB,CAAd,CAApB;AAEAR,EAAAA,GAAG,CAAC,mBAAD,EAAsBoD,GAAtB,EAA2B,QAA3B,EAAqCC,IAArC,CAAH;AACA,SAAO;AAAED,IAAAA,GAAG,EAAHA,GAAF;AAAOC,IAAAA,IAAI,EAAJA;AAAP,GAAP;AACD,CAdM;;;;AAgBP,IAAMZ,WAAW,GAAG,SAAdA,WAAc,CAACH,KAAD,EAAW;AAC7B,MAAIA,KAAK,IAAI,EAAb,EAAiB;AACf,WAAO;AAAEc,MAAAA,GAAG,EAAE,UAAP;AAAmBC,MAAAA,IAAI,EAAE;AAAzB,KAAP;AACD,GAFD,MAEO,IAAIf,KAAK,GAAG,EAAR,IAAcA,KAAK,IAAI,GAA3B,EAAgC;AACrC,WAAO;AAAEc,MAAAA,GAAG,EAAE,aAAP;AAAsBC,MAAAA,IAAI,EAAE;AAA5B,KAAP;AACD,GAFM,MAEA,IAAIf,KAAK,GAAG,GAAR,IAAeA,KAAK,IAAI,GAA5B,EAAiC;AACtC,WAAO;AAAEc,MAAAA,GAAG,EAAE,cAAP;AAAuBC,MAAAA,IAAI,EAAE;AAA7B,KAAP;AACD,GAFM,MAEA,IAAIf,KAAK,GAAG,GAAR,IAAeA,KAAK,GAAG,GAA3B,EAAgC;AACrC,WAAO;AAAEc,MAAAA,GAAG,EAAE,WAAP;AAAoBC,MAAAA,IAAI,EAAE;AAA1B,KAAP;AACD;AACF,CAVD","sourcesContent":["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"],"file":"anchor-utils.js"}
|
package/lib/anchor.js
CHANGED
|
@@ -38,4 +38,4 @@ var Anchor = (0, _styles.withStyles)(function (theme) {
|
|
|
38
38
|
});
|
|
39
39
|
var _default = Anchor;
|
|
40
40
|
exports["default"] = _default;
|
|
41
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=anchor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/anchor.jsx"],"names":["Anchor","theme","anchor","cursor","width","height","position","borderRadius","backgroundColor","palette","primary","contrastText","transition","border","dark","light","classes","className"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,MAAM,GAAG,wBAAW,UAACC,KAAD;AAAA,SAAY;AACpCC,IAAAA,MAAM,EAAE;AACNC,MAAAA,MAAM,EAAE,SADF;AAENC,MAAAA,KAAK,EAAE,MAFD;AAGNC,MAAAA,MAAM,EAAE,MAHF;AAINC,MAAAA,QAAQ,EAAE,UAJJ;AAKNC,MAAAA,YAAY,EAAE,MALR;AAMNC,MAAAA,eAAe,4BAAqBP,KAAK,CAACQ,OAAN,CAAcC,OAAd,CAAsBC,YAA3C,MANT;AAONC,MAAAA,UAAU,EAAE,gCAPN;AAQNC,MAAAA,MAAM,0CAAmCZ,KAAK,CAACQ,OAAN,CAAcC,OAAd,CAAsBI,IAAzD,MARA;AASN,iBAAW;AACTN,QAAAA,eAAe,kCAA2BP,KAAK,CAACQ,OAAN,CAAcC,OAAd,CAAsBK,KAAjD;AADN;AATL;AAD4B,GAAZ;AAAA,CAAX,EAcX;AAAA,MAAGC,OAAH,QAAGA,OAAH;AAAA,MAAYC,SAAZ,QAAYA,SAAZ;AAAA,sBAA4B;AAAK,IAAA,SAAS,EAAE,4BAAWD,OAAO,CAACd,MAAnB,EAA2Be,SAA3B;AAAhB,IAA5B;AAAA,CAdW,CAAf;eAgBejB,M","sourcesContent":["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"],"file":"anchor.js"}
|
package/lib/index.js
CHANGED
|
@@ -40,4 +40,4 @@ exports.utils = utils;
|
|
|
40
40
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
41
|
|
|
42
42
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
43
|
-
//# sourceMappingURL=
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA","sourcesContent":["import Protractor from './protractor';\nimport Ruler from './ruler';\nimport Rotatable from './rotatable';\nimport * as utils from './anchor-utils';\n\nexport { Protractor, Ruler, Rotatable, utils };\n"],"file":"index.js"}
|
|
@@ -181,4 +181,4 @@ var _default = (0, _styles.withStyles)(function (theme) {
|
|
|
181
181
|
})(Graphic);
|
|
182
182
|
|
|
183
183
|
exports["default"] = _default;
|
|
184
|
-
//# sourceMappingURL=
|
|
184
|
+
//# sourceMappingURL=graphic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/protractor/graphic.jsx"],"names":["Line","theme","line","strokeWidth","stroke","angle","classes","major","minor","Spike","Text","text","fontSize","textAnchor","fill","Graphic","props","path","map","r","circle","React","PureComponent","PropTypes","object","isRequired"],"mappings":"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","sourcesContent":["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"],"file":"graphic.js"}
|
package/lib/protractor/index.js
CHANGED
|
@@ -117,4 +117,4 @@ var _default = (0, _styles.withStyles)(function () {
|
|
|
117
117
|
})(Protractor);
|
|
118
118
|
|
|
119
119
|
exports["default"] = _default;
|
|
120
|
-
//# sourceMappingURL=
|
|
120
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/protractor/index.jsx"],"names":["Protractor","props","classes","width","className","startPosition","origin","protractor","leftAnchor","rightAnchor","React","Component","PropTypes","object","isRequired","number","string","shape","left","top","position","bottom","right"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;IAEaA,U;;;;;;;;;;;;WAgBX,kBAAS;AACP,wBAAqD,KAAKC,KAA1D;AAAA,UAAQC,OAAR,eAAQA,OAAR;AAAA,UAAiBC,KAAjB,eAAiBA,KAAjB;AAAA,UAAwBC,SAAxB,eAAwBA,SAAxB;AAAA,UAAmCC,aAAnC,eAAmCA,aAAnC;AACA,0BACE,gCAAC,qBAAD;AACE,QAAA,SAAS,EAAED,SADb;AAEE,QAAA,aAAa,EAAEC,aAFjB;AAGE,QAAA,MAAM,EAAE,CACN;AACE,mBAAO,YADT;AAEEC,UAAAA,MAAM,YAAKH,KAAK,GAAG,KAAb,gBAAwBA,KAAK,GAAG,IAAhC;AAFR,SADM,EAKN;AACE,mBAAO,aADT;AAEEG,UAAAA,MAAM,YAAKH,KAAK,GAAG,KAAb,gBAAwBA,KAAK,GAAG,IAAhC;AAFR,SALM;AAHV,sBAcE;AAAK,QAAA,SAAS,EAAED,OAAO,CAACK,UAAxB;AAAoC,QAAA,KAAK,EAAE;AAAEJ,UAAAA,KAAK,YAAKA,KAAL;AAAP;AAA3C,sBACE,gCAAC,mBAAD,OADF,eAGE,gCAAC,kBAAD;AAAQ,QAAA,SAAS,EAAE,4BAAW,YAAX,EAAyBD,OAAO,CAACM,UAAjC;AAAnB,QAHF,eAIE,gCAAC,kBAAD;AAAQ,QAAA,SAAS,EAAE,4BAAW,aAAX,EAA0BN,OAAO,CAACO,WAAlC;AAAnB,QAJF,CAdF,CADF;AAuBD;;;EAzC6BC,kBAAMC,S;;;iCAAzBX,U,eACQ;AACjBE,EAAAA,OAAO,EAAEU,sBAAUC,MAAV,CAAiBC,UADT;AAEjBX,EAAAA,KAAK,EAAES,sBAAUG,MAAV,CAAiBD,UAFP;AAGjBV,EAAAA,SAAS,EAAEQ,sBAAUI,MAHJ;AAIjBX,EAAAA,aAAa,EAAEO,sBAAUK,KAAV,CAAgB;AAC7BC,IAAAA,IAAI,EAAEN,sBAAUG,MADa;AAE7BI,IAAAA,GAAG,EAAEP,sBAAUG;AAFc,GAAhB;AAJE,C;iCADRf,U,kBAWW;AACpBG,EAAAA,KAAK,EAAE,GADa;AAEpBE,EAAAA,aAAa,EAAE;AAAEa,IAAAA,IAAI,EAAE,CAAR;AAAWC,IAAAA,GAAG,EAAE;AAAhB;AAFK,C;;eAiCT,wBAAW;AAAA,SAAO;AAC/BZ,IAAAA,UAAU,EAAE;AAAEa,MAAAA,QAAQ,EAAE;AAAZ,KADmB;AAE/BZ,IAAAA,UAAU,EAAE;AACVY,MAAAA,QAAQ,EAAE,UADA;AAEVF,MAAAA,IAAI,EAAE,CAFI;AAGVG,MAAAA,MAAM,EAAE;AAHE,KAFmB;AAO/BZ,IAAAA,WAAW,EAAE;AACXW,MAAAA,QAAQ,EAAE,UADC;AAEXE,MAAAA,KAAK,EAAE,CAFI;AAGXD,MAAAA,MAAM,EAAE;AAHG;AAPkB,GAAP;AAAA,CAAX,EAYXrB,UAZW,C","sourcesContent":["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"],"file":"index.js"}
|
package/lib/rotatable.js
CHANGED
|
@@ -400,4 +400,4 @@ var _default = (0, _styles.withStyles)({
|
|
|
400
400
|
})(Rotatable);
|
|
401
401
|
|
|
402
402
|
exports["default"] = _default;
|
|
403
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3RhdGFibGUuanN4Il0sIm5hbWVzIjpbIkFuY2hvciIsImFuY2hvciIsInBvc2l0aW9uIiwiekluZGV4Iiwid2lkdGgiLCJoZWlnaHQiLCJjbGFzc2VzIiwibGVmdCIsInRvcCIsImNvbG9yIiwiZmlsbCIsIlJvdGF0YWJsZSIsInByb3BzIiwiaGFuZGxlIiwiQXJyYXkiLCJpc0FycmF5IiwiaGFuZGxlcyIsImZvckVhY2giLCJoIiwiZWwiLCJyb3RhdGFibGUiLCJxdWVyeVNlbGVjdG9yIiwibW91c2Vkb3duSGFuZGxlciIsInJvdGF0ZVN0YXJ0Iiwib3JpZ2luIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJvdGF0ZVN0b3AiLCJwdXNoIiwiZG9jdW1lbnQiLCJjbGllbnRXaWR0aCIsImNsaWVudEhlaWdodCIsInJvdGF0aW9uIiwic3RhdGUiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ4eSIsIm9yaWdpblRvWFkiLCJhbmNob3JUb3AiLCJhbmNob3JMZWZ0IiwiZSIsImlzUm90YXRpbmciLCJwcmV2ZW50RGVmYXVsdCIsImdldEFuY2hvciIsImdldEFuZ2xlIiwic3RhcnRBbmdsZSIsImFuZ2xlIiwiZGlmZiIsIngiLCJ5Iiwic2V0U3RhdGUiLCJyb3RhdGUiLCJjdXJyZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImRyYWciLCJjb21wdXRlZEFuY2hvciIsImZpbmQiLCJ0YXJnZXQiLCJkcmFnU3RhcnQiLCJkcmFnUG9pbnQiLCJQb2ludCIsInBhZ2VYIiwicGFnZVkiLCJ0cmFuc2xhdGUiLCJzdWIiLCJsYXN0UG9zaXRpb24iLCJzdGFydFBvc2l0aW9uIiwiYWRkTW91c2VVcEhhbmRsZXIiLCJpbml0SGFuZGxlcyIsImNsaWVudFgiLCJjbGllbnRZIiwiY2hpbGRyZW4iLCJzaG93QW5jaG9yIiwiY2xhc3NOYW1lIiwidCIsInN0eWxlIiwidHJhbnNmb3JtT3JpZ2luIiwidHJhbnNmb3JtIiwiciIsIm1vdXNlRG93biIsIm1vdXNlVXAiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJvbmVPZlR5cGUiLCJhcnJheU9mIiwibm9kZSIsImJvb2wiLCJzaGFwZSIsInN0cmluZyIsIm51bWJlciIsImRpc3BsYXkiLCJjdXJzb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLE1BQU0sR0FBRyx3QkFBVztBQUN4QkMsRUFBQUEsTUFBTSxFQUFFO0FBQ05DLElBQUFBLFFBQVEsRUFBRSxVQURKO0FBRU5DLElBQUFBLE1BQU0sRUFBRSxHQUZGO0FBR05DLElBQUFBLEtBQUssRUFBRSxPQUhEO0FBSU5DLElBQUFBLE1BQU0sRUFBRTtBQUpGO0FBRGdCLENBQVgsRUFPWixnQkFBeUM7QUFBQSxNQUF0Q0MsT0FBc0MsUUFBdENBLE9BQXNDO0FBQUEsTUFBN0JDLElBQTZCLFFBQTdCQSxJQUE2QjtBQUFBLE1BQXZCQyxHQUF1QixRQUF2QkEsR0FBdUI7QUFBQSxNQUFsQkMsS0FBa0IsUUFBbEJBLEtBQWtCO0FBQUEsTUFBWEMsSUFBVyxRQUFYQSxJQUFXO0FBQzFDRCxFQUFBQSxLQUFLLEdBQUdBLEtBQUssSUFBSSxPQUFqQjtBQUNBQyxFQUFBQSxJQUFJLEdBQUdBLElBQUksSUFBSSxPQUFmO0FBQ0Esc0JBQ0UsZ0NBQUMsbUJBQUQscUJBQ0U7QUFDRSxJQUFBLFNBQVMsRUFBRUosT0FBTyxDQUFDTCxNQURyQjtBQUVFLElBQUEsS0FBSyxFQUFFO0FBQ0xNLE1BQUFBLElBQUksRUFBRUEsSUFBSSxHQUFHLEVBRFI7QUFFTEMsTUFBQUEsR0FBRyxFQUFFQSxHQUFHLEdBQUc7QUFGTjtBQUZULGtCQU9FO0FBQVEsSUFBQSxFQUFFLEVBQUUsRUFBWjtBQUFnQixJQUFBLEVBQUUsRUFBRSxFQUFwQjtBQUF3QixJQUFBLENBQUMsRUFBRSxDQUEzQjtBQUE4QixJQUFBLFdB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LEVBQUU7QUFDVGxCLElBQUFBLFFBQVEsRUFBRSxVQUREO0FBRVR5RixJQUFBQSxPQUFPLEVBQUUsY0FGQTtBQUdUQyxJQUFBQSxNQUFNLEVBQUU7QUFIQztBQURhLENBQVgsRUFNWmpGLFNBTlksQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgeyBnZXRBbmNob3IgYXMgY2FsY0FuY2hvciwgZGlzdGFuY2VCZXR3ZWVuLCBhcmN0YW5nZW50IH0gZnJvbSAnLi9hbmNob3ItdXRpbHMnO1xuaW1wb3J0IHsgUG9ydGFsIH0gZnJvbSAncmVhY3QtcG9ydGFsJztcbmltcG9ydCBQb2ludCBmcm9tICdAbWFwYm94L3BvaW50LWdlb21ldHJ5JztcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlT3JpZ2luIH0gZnJvbSAnLi90cmFuc2Zvcm0tb3JpZ2luJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5jb25zdCBBbmNob3IgPSB3aXRoU3R5bGVzKHtcbiAgYW5jaG9yOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgekluZGV4OiAxMDAsXG4gICAgd2lkdGg6ICcyMDBweCcsXG4gICAgaGVpZ2h0OiAnODBweCcsXG4gIH0sXG59KSgoeyBjbGFzc2VzLCBsZWZ0LCB0b3AsIGNvbG9yLCBmaWxsIH0pID0+IHtcbiAgY29sb3IgPSBjb2xvciB8fCAnZ3JlZW4nO1xuICBmaWxsID0gZmlsbCB8fCAnd2hpdGUnO1xuICByZXR1cm4gKFxuICAgIDxQb3J0YWw+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5hbmNob3J9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgbGVmdDogbGVmdCAtIDEwLFxuICAgICAgICAgIHRvcDogdG9wIC0gMTAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxjaXJjbGUgY3g9ezEwfSBjeT17MTB9IHI9ezh9IHN0cm9rZVdpZHRoPXsxfSBzdHJva2U9e2NvbG9yfSBmaWxsPXtmaWxsfSAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9Qb3J0YWw+XG4gICk7XG59KTtcblxuLyoqXG4gKiBUaXAgbycgdGhlIGhhdCB0bzpcbiAqIGh0dHBzOi8vYmwub2Nrcy5vcmcvam95cmV4dXMvNzIwNzA0NFxuICovXG5leHBvcnQgY2xhc3MgUm90YXRhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5ub2RlKSwgUHJvcFR5cGVzLm5vZGVdKS5pc1JlcXVpcmVkLFxuICAgIHNob3dBbmNob3I6IFByb3BUeXBlcy5ib29sLFxuICAgIGhhbmRsZTogUHJvcFR5cGVzLmFycmF5T2YoXG4gICAgICBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgICBjbGFzczogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgICBvcmlnaW46IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICB9KSxcbiAgICApLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzdGFydFBvc2l0aW9uOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgICAgbGVmdDogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgIHRvcDogUHJvcFR5cGVzLm51bWJlcixcbiAgICB9KSxcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIHNob3dBbmNob3I6IGZhbHNlLFxuICAgIHN0YXJ0UG9zaXRpb246IHsgbGVmdDogMCwgdG9wOiAwIH0sXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGlzUm90YXRpbmc6IGZhbHNlLFxuICAgICAgcm90YXRpb246IDAsXG4gICAgICBzdGFydEFuZ2xlOiAwLFxuICAgICAgYW5nbGU6IDAsXG4gICAgICBwb3NpdGlvbjoge1xuICAgICAgICBsZWZ0OiBwcm9wcy5zdGFydFBvc2l0aW9uLmxlZnQsXG4gICAgICAgIHRvcDogcHJvcHMuc3RhcnRQb3NpdGlvbi50b3AsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5yb3RhdGVTdG9wKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmRyYWcpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMucm90YXRlKTtcblxuICAgIHRoaXMuaGFuZGxlcy5mb3JFYWNoKChoKSA9PiB7XG4gICAgICBoLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGgubW91c2Vkb3duSGFuZGxlcik7XG4gICAgICBoLmVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLnJvdGF0ZVN0b3ApO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5hZGRNb3VzZVVwSGFuZGxlcigpO1xuICAgIHRoaXMuaW5pdEhhbmRsZXMoKTtcbiAgfVxuXG4gIGluaXRIYW5kbGVzID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgaGFuZGxlIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaGFuZGxlKSkge1xuICAgICAgdGhpcy5oYW5kbGVzID0gW107XG4gICAgICBoYW5kbGUuZm9yRWFjaCgoaCkgPT4ge1xuICAgICAgICBjb25zdCBlbCA9IHRoaXMucm90YXRhYmxlLnF1ZXJ5U2VsZWN0b3IoYC4ke2guY2xhc3N9YCk7XG5cbiAgICAgICAgaWYgKGVsKSB7XG4gICAgICAgICAgY29uc3QgbW91c2Vkb3duSGFuZGxlciA9IHRoaXMucm90YXRlU3RhcnQoaC5vcmlnaW4pO1xuICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG1vdXNlZG93bkhhbmRsZXIpO1xuICAgICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLnJvdGF0ZVN0b3ApO1xuICAgICAgICAgIHRoaXMuaGFuZGxlcy5wdXNoKHsgZWwsIG1vdXNlZG93bkhhbmRsZXIgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBhZGRNb3VzZVVwSGFuZGxlciA9ICgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5yb3RhdGVTdG9wKTtcbiAgfTtcblxuICBvcmlnaW5Ub1hZID0gKG9yaWdpbikgPT4ge1xuICAgIGNvbnN0IHsgY2xpZW50V2lkdGg6IHdpZHRoLCBjbGllbnRIZWlnaHQ6IGhlaWdodCB9ID0gdGhpcy5yb3RhdGFibGU7XG4gICAgcmV0dXJuIHBhcnNlT3JpZ2luKHsgd2lkdGgsIGhlaWdodCB9LCBvcmlnaW4pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFuY2hvciBwb2ludCBmb3IgdGhlIGdpdmVuIGVsZW1lbnQsIG9yaWdpbiBhbmQgcm90YXRpb24uXG4gICAqIEByZXR1cm5zIHt7bGVmdDpudW1iZXIsIHRvcDogbnVtYmVyfX0gLSB0aGUgY28tb3JkaW5hdGVzIG9mIHRoZSBhbmNob3IgcG9pbnQgcmVsYXRpdmUgdG8gdGhlIHdob2xlIHBhZ2UuXG4gICAqL1xuICBnZXRBbmNob3IgPSAob3JpZ2luKSA9PiB7XG4gICAgY29uc3QgeyByb3RhdGlvbiB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IHRoaXMucm90YXRhYmxlO1xuICAgIGNvbnN0IHsgdG9wLCBsZWZ0IH0gPSB0aGlzLnJvdGF0YWJsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB4eSA9IHRoaXMub3JpZ2luVG9YWShvcmlnaW4pO1xuICAgIGNvbnN0IHsgdG9wOiBhbmNob3JUb3AsIGxlZnQ6IGFuY2hvckxlZnQgfSA9IGNhbGNBbmNob3IoXG4gICAgICB7XG4gICAgICAgIHdpZHRoOiBjbGllbnRXaWR0aCxcbiAgICAgICAgaGVpZ2h0OiBjbGllbnRIZWlnaHQsXG4gICAgICB9LFxuICAgICAgeHksXG4gICAgICByb3RhdGlvbixcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRvcDogdG9wICsgYW5jaG9yVG9wLFxuICAgICAgbGVmdDogbGVmdCArIGFuY2hvckxlZnQsXG4gICAgfTtcbiAgfTtcblxuICByb3RhdGVTdGFydCA9IChvcmlnaW4pID0+IChlKSA9PiB7XG4gICAgY29uc3QgeyBpc1JvdGF0aW5nIH0gPSB0aGlzLnN0YXRlO1xuICAgIGlmIChpc1JvdGF0aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgYW5jaG9yID0gdGhpcy5nZXRBbmNob3Iob3JpZ2luKTtcbiAgICBjb25zdCB7IHJvdGF0aW9uIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHsgYW5nbGU6IHN0YXJ0QW5nbGUgfSA9IHRoaXMuZ2V0QW5nbGUoYW5jaG9yLCBlKTtcblxuICAgIGxldCBkaWZmID0geyB4OiAwLCB5OiAwIH07XG4gICAgaWYgKG9yaWdpbiAhPT0gdGhpcy5zdGF0ZS5vcmlnaW4pIHtcbiAgICAgIGNvbnN0IHsgY2xpZW50V2lkdGg6IHdpZHRoLCBjbGllbnRIZWlnaHQ6IGhlaWdodCB9ID0gdGhpcy5yb3RhdGFibGU7XG4gICAgICBkaWZmID0gZGlzdGFuY2VCZXR3ZWVuKHsgd2lkdGgsIGhlaWdodCB9LCByb3RhdGlvbiwgdGhpcy5zdGF0ZS5vcmlnaW4sIG9yaWdpbik7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luLFxuICAgICAgICBpc1JvdGF0aW5nOiB0cnVlLFxuICAgICAgICBzdGFydEFuZ2xlLFxuICAgICAgICBhbmNob3IsXG4gICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgbGVmdDogdGhpcy5zdGF0ZS5wb3NpdGlvbi5sZWZ0ICsgZGlmZi54LFxuICAgICAgICAgIHRvcDogdGhpcy5zdGF0ZS5wb3NpdGlvbi50b3AgKyBkaWZmLnksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLnJvdGF0ZSk7XG4gICAgICB9LFxuICAgICk7XG4gIH07XG5cbiAgcm90YXRlU3RvcCA9IChlKSA9PiB7XG4gICAgY29uc3QgeyBpc1JvdGF0aW5nIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgaWYgKCFpc1JvdGF0aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5zZXRTdGF0ZShcbiAgICAgIHtcbiAgICAgICAgaXNSb3RhdGluZzogZmFsc2UsXG4gICAgICAgIGFuZ2xlOiB0aGlzLnN0YXRlLnJvdGF0aW9uLFxuICAgICAgICBhbmNob3I6IG51bGwsXG4gICAgICAgIGN1cnJlbnQ6IG51bGwsXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLnJvdGF0ZSk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuZHJhZyk7XG4gICAgICB9LFxuICAgICk7XG4gIH07XG5cbiAgZ2V0QW5nbGUoYW5jaG9yLCBlKSB7XG4gICAgY29uc3QgeCA9IGUuY2xpZW50WCAtIGFuY2hvci5sZWZ0O1xuICAgIGNvbnN0IHkgPSAoZS5jbGllbnRZIC0gYW5jaG9yLnRvcCkgKiAtMTtcbiAgICByZXR1cm4geyBhbmdsZTogYXJjdGFuZ2VudCh4LCB5KSwgeCwgeSB9O1xuICB9XG5cbiAgcm90YXRlID0gKGUpID0+IHtcbiAgICBjb25zdCB7IGlzUm90YXRpbmcgfSA9IHRoaXMuc3RhdGU7XG4gICAgaWYgKCFpc1JvdGF0aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgeyBzdGFydEFuZ2xlLCBhbmdsZSwgYW5jaG9yIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IHsgYW5nbGU6IGN1cnJlbnQsIHgsIHkgfSA9IHRoaXMuZ2V0QW5nbGUoYW5jaG9yLCBlKTtcbiAgICBjb25zdCBjb21wdXRlZEFuY2hvciA9IHsgeCwgeSB9O1xuICAgIGNvbnN0IGRpZmYgPSBjdXJyZW50IC0gc3RhcnRBbmdsZTtcbiAgICBjb25zdCByb3RhdGlvbiA9IGFuZ2xlICsgZGlmZjtcbiAgICB0aGlzLnNldFN0YXRlKHsgcm90YXRpb24sIGRpZmYsIGN1cnJlbnQsIGNvbXB1dGVkQW5jaG9yIH0pO1xuICB9O1xuXG4gIG1vdXNlRG93biA9IChlKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlID0gdGhpcy5oYW5kbGVzLmZpbmQoKGgpID0+IGguZWwgPT09IGUudGFyZ2V0KTtcblxuICAgIGlmICghaGFuZGxlKSB7XG4gICAgICB0aGlzLmRyYWdTdGFydChlKTtcbiAgICB9XG4gIH07XG5cbiAgZHJhZ1N0YXJ0ID0gKGUpID0+IHtcbiAgICBjb25zdCBkcmFnUG9pbnQgPSBuZXcgUG9pbnQoZS5wYWdlWCwgZS5wYWdlWSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGRyYWdQb2ludCB9LCAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmRyYWcpO1xuICAgIH0pO1xuICB9O1xuXG4gIGRyYWcgPSAoZSkgPT4ge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBjdXJyZW50ID0gbmV3IFBvaW50KGUucGFnZVgsIGUucGFnZVkpO1xuICAgIGNvbnN0IHRyYW5zbGF0ZSA9IGN1cnJlbnQuc3ViKHRoaXMuc3RhdGUuZHJhZ1BvaW50KTtcbiAgICB0aGlzLnNldFN0YXRlKHsgdHJhbnNsYXRlIH0pO1xuICB9O1xuXG4gIG1vdXNlVXAgPSAoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLnRyYW5zbGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcG9zaXRpb246IGxhc3RQb3NpdGlvbiwgdHJhbnNsYXRlIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgcG9zaXRpb24gPSB7XG4gICAgICBsZWZ0OiBsYXN0UG9zaXRpb24ubGVmdCArIHRyYW5zbGF0ZS54LFxuICAgICAgdG9wOiBsYXN0UG9zaXRpb24udG9wICsgdHJhbnNsYXRlLnksXG4gICAgfTtcblxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuZHJhZyk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHBvc2l0aW9uLCBkcmFnUG9pbnQ6IG51bGwsIHRyYW5zbGF0ZTogbnVsbCB9KTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3Nlcywgc2hvd0FuY2hvciwgY2xhc3NOYW1lIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgcm90YXRpb24sIGFuY2hvciwgb3JpZ2luLCB0cmFuc2xhdGUsIHBvc2l0aW9uIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgdCA9IHRyYW5zbGF0ZSA/IGB0cmFuc2xhdGUoJHt0cmFuc2xhdGUueH1weCwgJHt0cmFuc2xhdGUueX1weClgIDogJyc7XG5cbiAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgIGxlZnQ6IHBvc2l0aW9uLmxlZnQsXG4gICAgICB0b3A6IHBvc2l0aW9uLnRvcCxcbiAgICAgIHRyYW5zZm9ybU9yaWdpbjogb3JpZ2luLFxuICAgICAgdHJhbnNmb3JtOiBgJHt0fSByb3RhdGUoJHtyb3RhdGlvbn1kZWcpYCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucm90YXRhYmxlLCBjbGFzc05hbWUpfVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIHJlZj17KHIpID0+ICh0aGlzLnJvdGF0YWJsZSA9IHIpfVxuICAgICAgICBvbk1vdXNlRG93bj17dGhpcy5tb3VzZURvd259XG4gICAgICAgIG9uTW91c2VVcD17dGhpcy5tb3VzZVVwfVxuICAgICAgPlxuICAgICAgICB7YW5jaG9yICYmIHNob3dBbmNob3IgJiYgPEFuY2hvciB7Li4uYW5jaG9yfSAvPn1cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGVzKHtcbiAgcm90YXRhYmxlOiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgY3Vyc29yOiAnbW92ZScsXG4gIH0sXG59KShSb3RhdGFibGUpO1xuIl19
|
|
403
|
+
//# sourceMappingURL=rotatable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/rotatable.jsx"],"names":["Anchor","anchor","position","zIndex","width","height","classes","left","top","color","fill","Rotatable","props","handle","Array","isArray","handles","forEach","h","el","rotatable","querySelector","mousedownHandler","rotateStart","origin","addEventListener","rotateStop","push","document","clientWidth","clientHeight","rotation","state","getBoundingClientRect","xy","originToXY","anchorTop","anchorLeft","e","isRotating","preventDefault","getAnchor","getAngle","startAngle","angle","diff","x","y","setState","rotate","current","removeEventListener","drag","computedAnchor","find","target","dragStart","dragPoint","Point","pageX","pageY","translate","sub","lastPosition","startPosition","addMouseUpHandler","initHandles","clientX","clientY","children","showAnchor","className","t","style","transformOrigin","transform","r","mouseDown","mouseUp","React","Component","PropTypes","object","isRequired","oneOfType","arrayOf","node","bool","shape","string","number","display","cursor"],"mappings":"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","sourcesContent":["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"],"file":"rotatable.js"}
|
package/lib/ruler/graphic.js
CHANGED
|
@@ -123,4 +123,4 @@ var styles = function styles(theme) {
|
|
|
123
123
|
var _default = (0, _styles.withStyles)(styles)(Graphic);
|
|
124
124
|
|
|
125
125
|
exports["default"] = _default;
|
|
126
|
-
//# sourceMappingURL=
|
|
126
|
+
//# sourceMappingURL=graphic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ruler/graphic.jsx"],"names":["Bg","width","height","className","propTypes","PropTypes","number","isRequired","string","Graphic","props","classes","units","unit","viewBox","unitWidth","unitHeight","bg","type","map","r","React","PureComponent","object","styles","theme","stroke","strokeWidth","fill"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,EAAE,GAAG,SAALA,EAAK;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,MAAUC,MAAV,QAAUA,MAAV;AAAA,MAAkBC,SAAlB,QAAkBA,SAAlB;AAAA,sBAAkC;AAAM,IAAA,KAAK,EAAEF,KAAb;AAAoB,IAAA,MAAM,EAAEC,MAA5B;AAAoC,IAAA,EAAE,EAAE,CAAxC;AAA2C,IAAA,EAAE,EAAE,CAA/C;AAAkD,IAAA,SAAS,EAAEC;AAA7D,IAAlC;AAAA,CAAX;;AAEAH,EAAE,CAACI,SAAH,GAAe;AACbH,EAAAA,KAAK,EAAEI,sBAAUC,MAAV,CAAiBC,UADX;AAEbL,EAAAA,MAAM,EAAEG,sBAAUC,MAAV,CAAiBC,UAFZ;AAGbJ,EAAAA,SAAS,EAAEE,sBAAUG,MAAV,CAAiBD;AAHf,CAAf;;IAMaE,O;;;;;;;;;;;;WASX,kBAAS;AACP,wBAAgD,KAAKC,KAArD;AAAA,UAAQT,KAAR,eAAQA,KAAR;AAAA,UAAeC,MAAf,eAAeA,MAAf;AAAA,UAAuBS,OAAvB,eAAuBA,OAAvB;AAAA,UAAgCC,KAAhC,eAAgCA,KAAhC;AAAA,UAAuCC,IAAvC,eAAuCA,IAAvC;AACA,UAAMC,OAAO,iBAAUb,KAAV,cAAmBC,MAAnB,CAAb;AACA,UAAMa,SAAS,GAAGd,KAAK,GAAGW,KAA1B;AACA,UAAMI,UAAU,GAAGd,MAAnB;AAEA,0BACE;AAAK,QAAA,OAAO,EAAEY;AAAd,sBACE,gCAAC,EAAD;AAAI,QAAA,KAAK,EAAEb,KAAX;AAAkB,QAAA,MAAM,EAAEC,MAA1B;AAAkC,QAAA,SAAS,EAAES,OAAO,CAACM;AAArD,QADF,eAEE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAEJ,IAAI,CAACK;AAAtB,QAFF,EAGG,uBAAM,CAAN,EAASN,KAAK,GAAG,CAAjB,EAAoBO,GAApB,CAAwB,UAACC,CAAD;AAAA,4BACvB,gCAAC,gBAAD;AAAM,UAAA,KAAK,EAAEL,SAAb;AAAwB,UAAA,MAAM,EAAEC,UAAhC;AAA4C,UAAA,GAAG,EAAEI,CAAjD;AAAoD,UAAA,KAAK,EAAEA,CAA3D;AAA8D,UAAA,MAAM,EAAEP,IAAtE;AAA4E,UAAA,IAAI,EAAEO,CAAC,KAAKR;AAAxF,UADuB;AAAA,OAAxB,CAHH,CADF;AASD;;;EAxB0BS,kBAAMC,a;;;iCAAtBb,O,eACQ;AACjBR,EAAAA,KAAK,EAAEI,sBAAUC,MAAV,CAAiBC,UADP;AAEjBL,EAAAA,MAAM,EAAEG,sBAAUC,MAAV,CAAiBC,UAFR;AAGjBK,EAAAA,KAAK,EAAEP,sBAAUC,MAAV,CAAiBC,UAHP;AAIjBM,EAAAA,IAAI,EAAER,sBAAUkB,MAAV,CAAiBhB,UAJN;AAKjBI,EAAAA,OAAO,EAAEN,sBAAUkB,MAAV,CAAiBhB;AALT,C;;AAyBrB,IAAMiB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBR,IAAAA,EAAE,EAAE;AACFS,MAAAA,MAAM,EAAE,6BAAYD,KAAZ,CADN;AAEFE,MAAAA,WAAW,EAAE,KAFX;AAGFC,MAAAA,IAAI,EAAE,2BAAUH,KAAV;AAHJ;AADqB,GAAZ;AAAA,CAAf;;eAQe,wBAAWD,MAAX,EAAmBf,OAAnB,C","sourcesContent":["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"],"file":"graphic.js"}
|
package/lib/ruler/index.js
CHANGED
|
@@ -143,4 +143,4 @@ var styles = function styles(theme) {
|
|
|
143
143
|
var _default = (0, _styles.withStyles)(styles)(Ruler);
|
|
144
144
|
|
|
145
145
|
exports["default"] = _default;
|
|
146
|
-
//# sourceMappingURL=
|
|
146
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ruler/index.jsx"],"names":["Ruler","props","classes","width","height","units","measure","className","startPosition","label","tickCount","unit","type","ticks","origin","ruler","leftAnchor","rightAnchor","React","Component","PropTypes","number","isRequired","oneOf","object","string","shape","left","top","styles","theme","cursor","position","backgroundColor","palette","secondary","light","opacity","border","primary","main","right"],"mappings":"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","sourcesContent":["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"],"file":"index.js"}
|
package/lib/ruler/unit-type.js
CHANGED
|
@@ -69,4 +69,4 @@ var _default = (0, _styles.withStyles)(function (theme) {
|
|
|
69
69
|
})(UnitType);
|
|
70
70
|
|
|
71
71
|
exports["default"] = _default;
|
|
72
|
-
//# sourceMappingURL=
|
|
72
|
+
//# sourceMappingURL=unit-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ruler/unit-type.jsx"],"names":["UnitType","props","classes","label","x","y","textAlign","fill","fontSize","stroke","unitType","propTypes","PropTypes","object","isRequired","string","number","defaultProps","textAnchor","theme"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD,EAAW;AACjC,MAAQC,OAAR,GAAoED,KAApE,CAAQC,OAAR;AAAA,MAAiBC,KAAjB,GAAoEF,KAApE,CAAiBE,KAAjB;AAAA,MAAwBC,CAAxB,GAAoEH,KAApE,CAAwBG,CAAxB;AAAA,MAA2BC,CAA3B,GAAoEJ,KAApE,CAA2BI,CAA3B;AAAA,MAA8BC,SAA9B,GAAoEL,KAApE,CAA8BK,SAA9B;AAAA,MAAyCC,IAAzC,GAAoEN,KAApE,CAAyCM,IAAzC;AAAA,MAA+CC,QAA/C,GAAoEP,KAApE,CAA+CO,QAA/C;AAAA,MAAyDC,MAAzD,GAAoER,KAApE,CAAyDQ,MAAzD;AAEA,sBACE;AACE,IAAA,SAAS,EAAEP,OAAO,CAACQ,QADrB;AAEE,IAAA,CAAC,EAAEN,CAFL;AAGE,IAAA,CAAC,EAAEC,CAHL;AAIE,IAAA,UAAU,EAAEC,SAJd;AAKE,IAAA,MAAM,EAAEG,MALV;AAME,IAAA,IAAI,EAAEF,IANR;AAOE,IAAA,QAAQ,EAAEC;AAPZ,KASGL,KATH,CADF;AAaD,CAhBM;;;AAkBPH,QAAQ,CAACW,SAAT,GAAqB;AACnBT,EAAAA,OAAO,EAAEU,sBAAUC,MAAV,CAAiBC,UADP;AAEnBX,EAAAA,KAAK,EAAES,sBAAUG,MAAV,CAAiBD,UAFL;AAGnBV,EAAAA,CAAC,EAAEQ,sBAAUI,MAHM;AAInBX,EAAAA,CAAC,EAAEO,sBAAUI,MAJM;AAKnBV,EAAAA,SAAS,EAAEM,sBAAUG,MALF;AAMnBR,EAAAA,IAAI,EAAEK,sBAAUG,MANG;AAOnBP,EAAAA,QAAQ,EAAEI,sBAAUI,MAPD;AAQnBP,EAAAA,MAAM,EAAEG,sBAAUG;AARC,CAArB;AAWAf,QAAQ,CAACiB,YAAT,GAAwB;AACtBC,EAAAA,UAAU,EAAE,OADU;AAEtBV,EAAAA,QAAQ,EAAE,EAFY;AAGtBC,EAAAA,MAAM,EAAE,MAHc;AAItBL,EAAAA,CAAC,EAAE,CAJmB;AAKtBC,EAAAA,CAAC,EAAE;AALmB,CAAxB;;eAQe,wBAAW,UAACc,KAAD;AAAA,SAAY;AACpCT,IAAAA,QAAQ,kCAAO,2BAAP;AAAmBH,MAAAA,IAAI,EAAE,6BAAYY,KAAZ;AAAzB;AAD4B,GAAZ;AAAA,CAAX,EAEXnB,QAFW,C","sourcesContent":["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"],"file":"unit-type.js"}
|
package/lib/ruler/unit.js
CHANGED
|
@@ -158,4 +158,4 @@ var _default = (0, _styles.withStyles)(function (theme) {
|
|
|
158
158
|
})(Unit);
|
|
159
159
|
|
|
160
160
|
exports["default"] = _default;
|
|
161
|
-
//# sourceMappingURL=
|
|
161
|
+
//# sourceMappingURL=unit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ruler/unit.jsx"],"names":["Tick","theme","tick","stroke","x","height","bottom","classes","major","minor","y1","Ticks","count","width","map","r","propTypes","PropTypes","number","isRequired","Unit","props","index","last","config","style","transform","endTick","ticks","label","React","Component","object","bool","strokeWidth","textAnchor","fontSize","fill","base"],"mappings":"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","sourcesContent":["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"],"file":"unit.js"}
|
package/lib/style-utils.js
CHANGED
|
@@ -25,4 +25,4 @@ var fillColor = function fillColor(theme) {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
exports.fillColor = fillColor;
|
|
28
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=style-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/style-utils.js"],"names":["strokeColor","theme","palette","primary","main","fillColor","contrastText"],"mappings":";;;;;;;;;;;;;;AAAA;;AAIO,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD;AAAA,uCAAkCA,KAAK,CAACC,OAAN,CAAcC,OAAd,CAAsBC,IAAxD;AAAA,CAApB;;;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACJ,KAAD;AAAA,mCAA8BA,KAAK,CAACC,OAAN,CAAcC,OAAd,CAAsBG,YAApD;AAAA,CAAlB","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"],"file":"style-utils.js"}
|
package/lib/transform-origin.js
CHANGED
|
@@ -79,4 +79,4 @@ var parse = function parse(rect, value) {
|
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
exports.parse = parse;
|
|
82
|
-
//# sourceMappingURL=
|
|
82
|
+
//# sourceMappingURL=transform-origin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/transform-origin.jsx"],"names":["keyWordToPercent","v","endsWith","parseFloat","getValue","s","length","normalize","a","parse","rect","value","x","width","y","height","arr","split","sorted","Error"],"mappings":"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","sourcesContent":["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"],"file":"transform-origin.js"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.12.0",
|
|
7
7
|
"description": "Some interactive tools",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -18,12 +18,13 @@
|
|
|
18
18
|
"license": "ISC",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@mapbox/point-geometry": "^0.1.0",
|
|
21
|
-
"@pie-lib/style-utils": "
|
|
21
|
+
"@pie-lib/style-utils": "beta",
|
|
22
22
|
"assert": "^1.4.1",
|
|
23
23
|
"classnames": "^2.2.6",
|
|
24
24
|
"debug": "^4.1.1",
|
|
25
25
|
"invariant": "^2.2.4",
|
|
26
26
|
"lodash": "^4.17.11",
|
|
27
|
+
"prop-types": "^15.7.2",
|
|
27
28
|
"react-portal": "^4.2.0",
|
|
28
29
|
"trigonometry-calculator": "^2.0.0"
|
|
29
30
|
},
|
|
@@ -36,5 +37,5 @@
|
|
|
36
37
|
"@material-ui/core": "^3.8.3",
|
|
37
38
|
"react": "^16.8.1"
|
|
38
39
|
},
|
|
39
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "ecb1ca31aa1c24d23af00d5ad04ce73ed8871057"
|
|
40
41
|
}
|