@plait/core 0.29.0 → 0.30.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.
@@ -102,7 +102,7 @@ const applyToDraft = (board, selection, viewport, theme, op) => {
102
102
  selection = op.newProperties;
103
103
  }
104
104
  else {
105
- selection.ranges = newProperties.ranges;
105
+ selection = newProperties;
106
106
  }
107
107
  }
108
108
  break;
@@ -143,4 +143,4 @@ export const GeneralTransforms = {
143
143
  }
144
144
  }
145
145
  };
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3RyYW5zZm9ybXMvZ2VuZXJhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE9BQU8sRUFBWSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFPMUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFNBQTJCLEVBQUUsUUFBa0IsRUFBRSxLQUFpQixFQUFFLEVBQWtCLEVBQUUsRUFBRTtJQUMvSCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFDYixLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQzFCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXBDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDWCxvREFBb0QsSUFBSSx3REFBd0QsQ0FDbkgsQ0FBQzthQUNMO1lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2QyxNQUFNO1NBQ1Q7UUFDRCxLQUFLLGFBQWEsQ0FBQyxDQUFD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QUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFFLFdBQVcsQ0FBQyxTQUFTLENBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO2FBQzVGO2lCQUFNO2dCQUNILEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQzFCO1lBRUQsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFFLFdBQVcsQ0FBQyxRQUFRLENBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3BGLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUM3RDtJQUNMLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wZXJhdGlvbic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBjcmVhdGVEcmFmdCwgZmluaXNoRHJhZnQsIGlzRHJhZnQgfSBmcm9tICdpbW1lcic7XG5pbXBvcnQgeyBWaWV3cG9ydCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdmlld3BvcnQnO1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZWxlY3Rpb24nO1xuaW1wb3J0IHsgQW5jZXN0b3IsIFBsYWl0Tm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBQYXRoIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wYXRoJztcbmltcG9ydCB7IFBsYWl0VGhlbWUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RoZW1lJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmFsVHJhbnNmb3JtcyB7XG4gICAgdHJhbnNmb3JtOiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wOiBQbGFpdE9wZXJhdGlvbikgPT4gdm9pZDtcbn1cblxuY29uc3QgYXBwbHlUb0RyYWZ0ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwsIHZpZXdwb3J0OiBWaWV3cG9ydCwgdGhlbWU6IFBsYWl0VGhlbWUsIG9wOiBQbGFpdE9wZXJhdGlvbikgPT4ge1xuICAgIHN3aXRjaCAob3AudHlwZSkge1xuICAgICAgICBjYXNlICdpbnNlcnRfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aCwgbm9kZSB9ID0gb3A7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBQbGFpdE5vZGUucGFyZW50KGJvYXJkLCBwYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICBpZiAoIXBhcmVudC5jaGlsZHJlbiB8fCBpbmRleCA+IHBhcmVudC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBDYW5ub3QgYXBwbHkgYW4gXCJpbnNlcnRfbm9kZVwiIG9wZXJhdGlvbiBhdCBwYXRoIFske3BhdGh9XSBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBwYXN0IHRoZSBlbmQgb2YgdGhlIG5vZGUuYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhcmVudC5jaGlsZHJlbi5zcGxpY2UoaW5kZXgsIDAsIG5vZGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAncmVtb3ZlX25vZGUnOiB7XG4gICAgICAgICAgICBjb25zdCB7IHBhdGggfSA9IG9wO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gUGxhaXROb2RlLnBhcmVudChib2FyZCwgcGF0aCk7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgaWYgKCFwYXJlbnQuY2hpbGRyZW4gfHwgaW5kZXggPiBwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgQ2Fubm90IGFwcGx5IGFuIFwiaW5zZXJ0X25vZGVcIiBvcGVyYXRpb24gYXQgcGF0aCBbJHtwYXRofV0gYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBub2RlLmBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdtb3ZlX25vZGUnOiB7XG4gICAgICAgICAgICBjb25zdCB7IHBhdGgsIG5ld1BhdGggfSA9IG9wO1xuXG4gICAgICAgICAgICBpZiAoUGF0aC5pc0FuY2VzdG9yKHBhdGgsIG5ld1BhdGgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgbW92ZSBhIHBhdGggWyR7cGF0aH1dIHRvIG5ldyBwYXRoIFske25ld1BhdGh9XSBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBpbnNpZGUgaXRzZWxmLmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBub2RlID0gUGxhaXROb2RlLmdldChib2FyZCwgcGF0aCk7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBQbGFpdE5vZGUucGFyZW50KGJvYXJkLCBwYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICAvLyBUaGlzIGlzIHRyaWNreSwgYnV0IHNpbmNlIHRoZSBgcGF0aGAgYW5kIGBuZXdQYXRoYCBib3RoIHJlZmVyIHRvXG4gICAgICAgICAgICAvLyB0aGUgc2FtZSBzbmFwc2hvdCBpbiB0aW1lLCB0aGVyZSdzIGEgbWlzbWF0Y2guIEFmdGVyIGVpdGhlclxuICAgICAgICAgICAgLy8gcmVtb3ZpbmcgdGhlIG9yaWdpbmFsIHBvc2l0aW9uLCB0aGUgc2Vjb25kIHN0ZXAncyBwYXRoIGNhbiBiZSBvdXRcbiAgICAgICAgICAgIC8vIG9mIGRhdGUuIFNvIGluc3RlYWQgb2YgdXNpbmcgdGhlIGBvcC5uZXdQYXRoYCBkaXJlY3RseSwgd2VcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybSBgb3AucGF0aGAgdG8gYXNjZXJ0YWluIHdoYXQgdGhlIGBuZXdQYXRoYCB3b3VsZCBiZSBhZnRlclxuICAgICAgICAgICAgLy8gdGhlIG9wZXJhdGlvbiB3YXMgYXBwbGllZC5cbiAgICAgICAgICAgIHBhcmVudC5jaGlsZHJlbj8uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIGNvbnN0IHRydWVQYXRoID0gUGF0aC50cmFuc2Zvcm0ocGF0aCwgb3ApITtcbiAgICAgICAgICAgIGNvbnN0IG5ld1BhcmVudCA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIFBhdGgucGFyZW50KHRydWVQYXRoKSkgYXMgQW5jZXN0b3I7XG4gICAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IHRydWVQYXRoW3RydWVQYXRoLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICBuZXdQYXJlbnQuY2hpbGRyZW4/LnNwbGljZShuZXdJbmRleCwgMCwgbm9kZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzZXRfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aCwgcHJvcGVydGllcywgbmV3UHJvcGVydGllcyB9ID0gb3A7XG5cbiAgICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHNldCBwcm9wZXJ0aWVzIG9uIHRoZSByb290IG5vZGUhYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwYXRoKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbmV3UHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbmV3UHJvcGVydGllc1trZXldO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5vZGVba2V5XTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBub2RlW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHByb3BlcnRpZXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgZGVmaW5lZCwgYnV0IGFyZSBub3cgbWlzc2luZywgbXVzdCBiZSBkZWxldGVkXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFuZXdQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5vZGVba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NldF92aWV3cG9ydCc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmV3UHJvcGVydGllcyB9ID0gb3A7XG4gICAgICAgICAgICBpZiAobmV3UHJvcGVydGllcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdmlld3BvcnQgPSBuZXdQcm9wZXJ0aWVzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodmlld3BvcnQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVZpZXdwb3J0LmlzVmlld3BvcnQobmV3UHJvcGVydGllcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgQ2Fubm90IGFwcGx5IGFuIGluY29tcGxldGUgXCJzZXRfdmlld3BvcnRcIiBvcGVyYXRpb24gcHJvcGVydGllcyAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdQcm9wZXJ0aWVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0gd2hlbiB0aGVyZSBpcyBubyBjdXJyZW50IHZpZXdwb3J0LmBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmlld3BvcnQgPSB7IC4uLm5ld1Byb3BlcnRpZXMgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBuZXdQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbmV3UHJvcGVydGllc1trZXldO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmlld3BvcnRba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NldF9zZWxlY3Rpb24nOiB7XG4gICAgICAgICAgICBjb25zdCB7IG5ld1Byb3BlcnRpZXMgfSA9IG9wO1xuICAgICAgICAgICAgaWYgKG5ld1Byb3BlcnRpZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9IG5ld1Byb3BlcnRpZXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb24gPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gb3AubmV3UHJvcGVydGllcztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24ucmFuZ2VzID0gbmV3UHJvcGVydGllcy5yYW5nZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2V0X3RoZW1lJzoge1xuICAgICAgICAgICAgY29uc3QgeyBuZXdQcm9wZXJ0aWVzIH0gPSBvcDtcbiAgICAgICAgICAgIHRoZW1lID0gbmV3UHJvcGVydGllcyBhcyBQbGFpdFRoZW1lO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgc2VsZWN0aW9uLCB2aWV3cG9ydCwgdGhlbWUgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBHZW5lcmFsVHJhbnNmb3JtczogR2VuZXJhbFRyYW5zZm9ybXMgPSB7XG4gICAgLyoqXG4gICAgICogVHJhbnNmb3JtIHRoZSBib2FyZCBieSBhbiBvcGVyYXRpb24uXG4gICAgICovXG4gICAgdHJhbnNmb3JtKGJvYXJkOiBQbGFpdEJvYXJkLCBvcDogUGxhaXRPcGVyYXRpb24pOiB2b2lkIHtcbiAgICAgICAgYm9hcmQuY2hpbGRyZW4gPSBjcmVhdGVEcmFmdChib2FyZC5jaGlsZHJlbik7XG4gICAgICAgIGxldCB2aWV3cG9ydCA9IGJvYXJkLnZpZXdwb3J0ICYmIGNyZWF0ZURyYWZ0KGJvYXJkLnZpZXdwb3J0KTtcbiAgICAgICAgbGV0IHNlbGVjdGlvbiA9IGJvYXJkLnNlbGVjdGlvbiAmJiBjcmVhdGVEcmFmdChib2FyZC5zZWxlY3Rpb24pO1xuICAgICAgICBsZXQgdGhlbWUgPSBib2FyZC50aGVtZSAmJiBjcmVhdGVEcmFmdChib2FyZC50aGVtZSk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gYXBwbHlUb0RyYWZ0KGJvYXJkLCBzZWxlY3Rpb24sIHZpZXdwb3J0LCB0aGVtZSwgb3ApO1xuICAgICAgICAgICAgdmlld3BvcnQgPSBzdGF0ZS52aWV3cG9ydDtcbiAgICAgICAgICAgIHNlbGVjdGlvbiA9IHN0YXRlLnNlbGVjdGlvbjtcbiAgICAgICAgICAgIHRoZW1lID0gc3RhdGUudGhlbWU7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBib2FyZC5jaGlsZHJlbiA9IGZpbmlzaERyYWZ0KGJvYXJkLmNoaWxkcmVuKTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIGJvYXJkLnNlbGVjdGlvbiA9IGlzRHJhZnQoc2VsZWN0aW9uKSA/IChmaW5pc2hEcmFmdChzZWxlY3Rpb24pIGFzIFNlbGVjdGlvbikgOiBzZWxlY3Rpb247XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJvYXJkLnNlbGVjdGlvbiA9IG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJvYXJkLnZpZXdwb3J0ID0gaXNEcmFmdCh2aWV3cG9ydCkgPyAoZmluaXNoRHJhZnQodmlld3BvcnQpIGFzIFZpZXdwb3J0KSA6IHZpZXdwb3J0O1xuICAgICAgICAgICAgYm9hcmQudGhlbWUgPSBpc0RyYWZ0KHRoZW1lKSA/IGZpbmlzaERyYWZ0KHRoZW1lKSA6IHRoZW1lO1xuICAgICAgICB9XG4gICAgfVxufTtcbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3RyYW5zZm9ybXMvZ2VuZXJhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWxELE9BQU8sRUFBWSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFPMUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFNBQTJCLEVBQUUsUUFBa0IsRUFBRSxLQUFpQixFQUFFLEVBQWtCLEVBQUUsRUFBRTtJQUMvSCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7UUFDYixLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQzFCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXBDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDWCxvREFBb0QsSUFBSSx3REFBd0QsQ0FDbkgsQ0FBQzthQUNMO1lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2QyxNQUFNO1NBQ1Q7UUFDRCxLQUFLLGFBQWEsQ0FBQyxDQUFD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QUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxXQUFXLENBQUMsU0FBUyxDQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzthQUM1RjtpQkFBTTtnQkFDSCxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQzthQUMxQjtZQUVELEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBRSxXQUFXLENBQUMsUUFBUSxDQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNwRixLQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDN0Q7SUFDTCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0T3BlcmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9vcGVyYXRpb24nO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgY3JlYXRlRHJhZnQsIGZpbmlzaERyYWZ0LCBpc0RyYWZ0IH0gZnJvbSAnaW1tZXInO1xuaW1wb3J0IHsgVmlld3BvcnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXdwb3J0JztcbmltcG9ydCB7IFNlbGVjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VsZWN0aW9uJztcbmltcG9ydCB7IEFuY2VzdG9yLCBQbGFpdE5vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgUGF0aCB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGF0aCc7XG5pbXBvcnQgeyBQbGFpdFRoZW1lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90aGVtZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhbFRyYW5zZm9ybXMge1xuICAgIHRyYW5zZm9ybTogKGJvYXJkOiBQbGFpdEJvYXJkLCBvcDogUGxhaXRPcGVyYXRpb24pID0+IHZvaWQ7XG59XG5cbmNvbnN0IGFwcGx5VG9EcmFmdCA9IChib2FyZDogUGxhaXRCb2FyZCwgc2VsZWN0aW9uOiBTZWxlY3Rpb24gfCBudWxsLCB2aWV3cG9ydDogVmlld3BvcnQsIHRoZW1lOiBQbGFpdFRoZW1lLCBvcDogUGxhaXRPcGVyYXRpb24pID0+IHtcbiAgICBzd2l0Y2ggKG9wLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnaW5zZXJ0X25vZGUnOiB7XG4gICAgICAgICAgICBjb25zdCB7IHBhdGgsIG5vZGUgfSA9IG9wO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gUGxhaXROb2RlLnBhcmVudChib2FyZCwgcGF0aCk7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgaWYgKCFwYXJlbnQuY2hpbGRyZW4gfHwgaW5kZXggPiBwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgQ2Fubm90IGFwcGx5IGFuIFwiaW5zZXJ0X25vZGVcIiBvcGVyYXRpb24gYXQgcGF0aCBbJHtwYXRofV0gYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBub2RlLmBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAwLCBub2RlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3JlbW92ZV9ub2RlJzoge1xuICAgICAgICAgICAgY29uc3QgeyBwYXRoIH0gPSBvcDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IFBsYWl0Tm9kZS5wYXJlbnQoYm9hcmQsIHBhdGgpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuIHx8IGluZGV4ID4gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYENhbm5vdCBhcHBseSBhbiBcImluc2VydF9ub2RlXCIgb3BlcmF0aW9uIGF0IHBhdGggWyR7cGF0aH1dIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIHBhc3QgdGhlIGVuZCBvZiB0aGUgbm9kZS5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmVudC5jaGlsZHJlbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnbW92ZV9ub2RlJzoge1xuICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBuZXdQYXRoIH0gPSBvcDtcblxuICAgICAgICAgICAgaWYgKFBhdGguaXNBbmNlc3RvcihwYXRoLCBuZXdQYXRoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IG1vdmUgYSBwYXRoIFske3BhdGh9XSB0byBuZXcgcGF0aCBbJHtuZXdQYXRofV0gYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gaXMgaW5zaWRlIGl0c2VsZi5gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGgpO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gUGxhaXROb2RlLnBhcmVudChib2FyZCwgcGF0aCk7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgLy8gVGhpcyBpcyB0cmlja3ksIGJ1dCBzaW5jZSB0aGUgYHBhdGhgIGFuZCBgbmV3UGF0aGAgYm90aCByZWZlciB0b1xuICAgICAgICAgICAgLy8gdGhlIHNhbWUgc25hcHNob3QgaW4gdGltZSwgdGhlcmUncyBhIG1pc21hdGNoLiBBZnRlciBlaXRoZXJcbiAgICAgICAgICAgIC8vIHJlbW92aW5nIHRoZSBvcmlnaW5hbCBwb3NpdGlvbiwgdGhlIHNlY29uZCBzdGVwJ3MgcGF0aCBjYW4gYmUgb3V0XG4gICAgICAgICAgICAvLyBvZiBkYXRlLiBTbyBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBgb3AubmV3UGF0aGAgZGlyZWN0bHksIHdlXG4gICAgICAgICAgICAvLyB0cmFuc2Zvcm0gYG9wLnBhdGhgIHRvIGFzY2VydGFpbiB3aGF0IHRoZSBgbmV3UGF0aGAgd291bGQgYmUgYWZ0ZXJcbiAgICAgICAgICAgIC8vIHRoZSBvcGVyYXRpb24gd2FzIGFwcGxpZWQuXG4gICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4/LnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICBjb25zdCB0cnVlUGF0aCA9IFBhdGgudHJhbnNmb3JtKHBhdGgsIG9wKSE7XG4gICAgICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBQYXRoLnBhcmVudCh0cnVlUGF0aCkpIGFzIEFuY2VzdG9yO1xuICAgICAgICAgICAgY29uc3QgbmV3SW5kZXggPSB0cnVlUGF0aFt0cnVlUGF0aC5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgbmV3UGFyZW50LmNoaWxkcmVuPy5zcGxpY2UobmV3SW5kZXgsIDAsIG5vZGUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2V0X25vZGUnOiB7XG4gICAgICAgICAgICBjb25zdCB7IHBhdGgsIHByb3BlcnRpZXMsIG5ld1Byb3BlcnRpZXMgfSA9IG9wO1xuXG4gICAgICAgICAgICBpZiAocGF0aC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBzZXQgcHJvcGVydGllcyBvbiB0aGUgcm9vdCBub2RlIWApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBub2RlID0gUGxhaXROb2RlLmdldChib2FyZCwgcGF0aCk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG5ld1Byb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG5ld1Byb3BlcnRpZXNba2V5XTtcblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBub2RlW2tleV07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBwcm9wZXJ0aWVzIHRoYXQgd2VyZSBwcmV2aW91c2x5IGRlZmluZWQsIGJ1dCBhcmUgbm93IG1pc3NpbmcsIG11c3QgYmUgZGVsZXRlZFxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgIGlmICghbmV3UHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBub2RlW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzZXRfdmlld3BvcnQnOiB7XG4gICAgICAgICAgICBjb25zdCB7IG5ld1Byb3BlcnRpZXMgfSA9IG9wO1xuICAgICAgICAgICAgaWYgKG5ld1Byb3BlcnRpZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHZpZXdwb3J0ID0gbmV3UHJvcGVydGllcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFWaWV3cG9ydC5pc1ZpZXdwb3J0KG5ld1Byb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYENhbm5vdCBhcHBseSBhbiBpbmNvbXBsZXRlIFwic2V0X3ZpZXdwb3J0XCIgb3BlcmF0aW9uIHByb3BlcnRpZXMgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UHJvcGVydGllc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9IHdoZW4gdGhlcmUgaXMgbm8gY3VycmVudCB2aWV3cG9ydC5gXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0ID0geyAuLi5uZXdQcm9wZXJ0aWVzIH07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gbmV3UHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG5ld1Byb3BlcnRpZXNba2V5XTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZpZXdwb3J0W2tleV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzZXRfc2VsZWN0aW9uJzoge1xuICAgICAgICAgICAgY29uc3QgeyBuZXdQcm9wZXJ0aWVzIH0gPSBvcDtcbiAgICAgICAgICAgIGlmIChuZXdQcm9wZXJ0aWVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24gPSBuZXdQcm9wZXJ0aWVzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbiA9IG9wLm5ld1Byb3BlcnRpZXM7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gbmV3UHJvcGVydGllcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzZXRfdGhlbWUnOiB7XG4gICAgICAgICAgICBjb25zdCB7IG5ld1Byb3BlcnRpZXMgfSA9IG9wO1xuICAgICAgICAgICAgdGhlbWUgPSBuZXdQcm9wZXJ0aWVzIGFzIFBsYWl0VGhlbWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzZWxlY3Rpb24sIHZpZXdwb3J0LCB0aGVtZSB9O1xufTtcblxuZXhwb3J0IGNvbnN0IEdlbmVyYWxUcmFuc2Zvcm1zOiBHZW5lcmFsVHJhbnNmb3JtcyA9IHtcbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm0gdGhlIGJvYXJkIGJ5IGFuIG9wZXJhdGlvbi5cbiAgICAgKi9cbiAgICB0cmFuc2Zvcm0oYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wOiBQbGFpdE9wZXJhdGlvbik6IHZvaWQge1xuICAgICAgICBib2FyZC5jaGlsZHJlbiA9IGNyZWF0ZURyYWZ0KGJvYXJkLmNoaWxkcmVuKTtcbiAgICAgICAgbGV0IHZpZXdwb3J0ID0gYm9hcmQudmlld3BvcnQgJiYgY3JlYXRlRHJhZnQoYm9hcmQudmlld3BvcnQpO1xuICAgICAgICBsZXQgc2VsZWN0aW9uID0gYm9hcmQuc2VsZWN0aW9uICYmIGNyZWF0ZURyYWZ0KGJvYXJkLnNlbGVjdGlvbik7XG4gICAgICAgIGxldCB0aGVtZSA9IGJvYXJkLnRoZW1lICYmIGNyZWF0ZURyYWZ0KGJvYXJkLnRoZW1lKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBhcHBseVRvRHJhZnQoYm9hcmQsIHNlbGVjdGlvbiwgdmlld3BvcnQsIHRoZW1lLCBvcCk7XG4gICAgICAgICAgICB2aWV3cG9ydCA9IHN0YXRlLnZpZXdwb3J0O1xuICAgICAgICAgICAgc2VsZWN0aW9uID0gc3RhdGUuc2VsZWN0aW9uO1xuICAgICAgICAgICAgdGhlbWUgPSBzdGF0ZS50aGVtZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGJvYXJkLmNoaWxkcmVuID0gZmluaXNoRHJhZnQoYm9hcmQuY2hpbGRyZW4pO1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgYm9hcmQuc2VsZWN0aW9uID0gaXNEcmFmdChzZWxlY3Rpb24pID8gKGZpbmlzaERyYWZ0KHNlbGVjdGlvbikgYXMgU2VsZWN0aW9uKSA6IHNlbGVjdGlvbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYm9hcmQuc2VsZWN0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm9hcmQudmlld3BvcnQgPSBpc0RyYWZ0KHZpZXdwb3J0KSA/IChmaW5pc2hEcmFmdCh2aWV3cG9ydCkgYXMgVmlld3BvcnQpIDogdmlld3BvcnQ7XG4gICAgICAgICAgICBib2FyZC50aGVtZSA9IGlzRHJhZnQodGhlbWUpID8gZmluaXNoRHJhZnQodGhlbWUpIDogdGhlbWU7XG4gICAgICAgIH1cbiAgICB9XG59O1xuIl19
@@ -10,7 +10,7 @@ export const SelectionTransforms = {
10
10
  };
11
11
  export function addSelectionWithTemporaryElements(board, elements) {
12
12
  const timeoutId = setTimeout(() => {
13
- setSelection(board, { ranges: [] });
13
+ setSelection(board, null);
14
14
  }, 0);
15
15
  let ref = getTemporaryRef(board);
16
16
  if (ref) {
@@ -23,4 +23,4 @@ export function addSelectionWithTemporaryElements(board, elements) {
23
23
  BOARD_TO_TEMPORARY_ELEMENTS.set(board, { timeoutId, elements });
24
24
  }
25
25
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdHJhbnNmb3Jtcy9zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBaUIsRUFBRSxTQUEyQjtJQUN2RSxNQUFNLFNBQVMsR0FBMEIsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUMxSCxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFPRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBd0I7SUFDcEQsWUFBWTtJQUNaLGlDQUFpQztDQUNwQyxDQUFDO0FBRUYsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLEtBQWlCLEVBQUUsUUFBd0I7SUFDekYsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUM5QixZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ04sSUFBSSxHQUFHLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLElBQUksR0FBRyxFQUFFO1FBQ0wsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QixNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckYsR0FBRyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7S0FDN0I7U0FBTTtRQUNILDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUNuRTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXRTZWxlY3Rpb25PcGVyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wZXJhdGlvbic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBCT0FSRF9UT19URU1QT1JBUllfRUxFTUVOVFMgfSBmcm9tICcuLi91dGlscy93ZWFrLW1hcHMnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IGdldFRlbXBvcmFyeVJlZiB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1zZWxlY3Rpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0U2VsZWN0aW9uKGJvYXJkOiBQbGFpdEJvYXJkLCBzZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwpIHtcbiAgICBjb25zdCBvcGVyYXRpb246IFNldFNlbGVjdGlvbk9wZXJhdGlvbiA9IHsgdHlwZTogJ3NldF9zZWxlY3Rpb24nLCBwcm9wZXJ0aWVzOiBib2FyZC5zZWxlY3Rpb24sIG5ld1Byb3BlcnRpZXM6IHNlbGVjdGlvbiB9O1xuICAgIGJvYXJkLmFwcGx5KG9wZXJhdGlvbik7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uVHJhbnNmb3JtcyB7XG4gICAgc2V0U2VsZWN0aW9uOiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNlbGVjdGlvbjogU2VsZWN0aW9uIHwgbnVsbCkgPT4gdm9pZDtcbiAgICBhZGRTZWxlY3Rpb25XaXRoVGVtcG9yYXJ5RWxlbWVudHM6IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgU2VsZWN0aW9uVHJhbnNmb3JtczogU2VsZWN0aW9uVHJhbnNmb3JtcyA9IHtcbiAgICBzZXRTZWxlY3Rpb24sXG4gICAgYWRkU2VsZWN0aW9uV2l0aFRlbXBvcmFyeUVsZW1lbnRzXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkU2VsZWN0aW9uV2l0aFRlbXBvcmFyeUVsZW1lbnRzKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogUGxhaXRFbGVtZW50W10pIHtcbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2V0U2VsZWN0aW9uKGJvYXJkLCB7IHJhbmdlczogW10gfSk7XG4gICAgfSwgMCk7XG4gICAgbGV0IHJlZiA9IGdldFRlbXBvcmFyeVJlZihib2FyZCk7XG4gICAgaWYgKHJlZikge1xuICAgICAgICBjbGVhclRpbWVvdXQocmVmLnRpbWVvdXRJZCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50cyA9IHJlZi5lbGVtZW50cztcbiAgICAgICAgcmVmLmVsZW1lbnRzLnB1c2goLi4uZWxlbWVudHMuZmlsdGVyKGVsZW1lbnQgPT4gIWN1cnJlbnRFbGVtZW50cy5pbmNsdWRlcyhlbGVtZW50KSkpO1xuICAgICAgICByZWYudGltZW91dElkID0gdGltZW91dElkO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIEJPQVJEX1RPX1RFTVBPUkFSWV9FTEVNRU5UUy5zZXQoYm9hcmQsIHsgdGltZW91dElkLCBlbGVtZW50cyB9KTtcbiAgICB9XG59XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvdHJhbnNmb3Jtcy9zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBaUIsRUFBRSxTQUEyQjtJQUN2RSxNQUFNLFNBQVMsR0FBMEIsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUMxSCxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFPRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBd0I7SUFDcEQsWUFBWTtJQUNaLGlDQUFpQztDQUNwQyxDQUFDO0FBRUYsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLEtBQWlCLEVBQUUsUUFBd0I7SUFDekYsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUM5QixZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNOLElBQUksR0FBRyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxJQUFJLEdBQUcsRUFBRTtRQUNMLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUIsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNyQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLEdBQUcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0tBQzdCO1NBQU07UUFDSCwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDbkU7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2V0U2VsZWN0aW9uT3BlcmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9vcGVyYXRpb24nO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZWxlY3Rpb24nO1xuaW1wb3J0IHsgQk9BUkRfVE9fVEVNUE9SQVJZX0VMRU1FTlRTIH0gZnJvbSAnLi4vdXRpbHMvd2Vhay1tYXBzJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBnZXRUZW1wb3JhcnlSZWYgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtc2VsZWN0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNlbGVjdGlvbihib2FyZDogUGxhaXRCb2FyZCwgc2VsZWN0aW9uOiBTZWxlY3Rpb24gfCBudWxsKSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uOiBTZXRTZWxlY3Rpb25PcGVyYXRpb24gPSB7IHR5cGU6ICdzZXRfc2VsZWN0aW9uJywgcHJvcGVydGllczogYm9hcmQuc2VsZWN0aW9uLCBuZXdQcm9wZXJ0aWVzOiBzZWxlY3Rpb24gfTtcbiAgICBib2FyZC5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvblRyYW5zZm9ybXMge1xuICAgIHNldFNlbGVjdGlvbjogKGJvYXJkOiBQbGFpdEJvYXJkLCBzZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwpID0+IHZvaWQ7XG4gICAgYWRkU2VsZWN0aW9uV2l0aFRlbXBvcmFyeUVsZW1lbnRzOiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IFNlbGVjdGlvblRyYW5zZm9ybXM6IFNlbGVjdGlvblRyYW5zZm9ybXMgPSB7XG4gICAgc2V0U2VsZWN0aW9uLFxuICAgIGFkZFNlbGVjdGlvbldpdGhUZW1wb3JhcnlFbGVtZW50c1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlbGVjdGlvbldpdGhUZW1wb3JhcnlFbGVtZW50cyhib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSB7XG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldFNlbGVjdGlvbihib2FyZCwgbnVsbCk7XG4gICAgfSwgMCk7XG4gICAgbGV0IHJlZiA9IGdldFRlbXBvcmFyeVJlZihib2FyZCk7XG4gICAgaWYgKHJlZikge1xuICAgICAgICBjbGVhclRpbWVvdXQocmVmLnRpbWVvdXRJZCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50cyA9IHJlZi5lbGVtZW50cztcbiAgICAgICAgcmVmLmVsZW1lbnRzLnB1c2goLi4uZWxlbWVudHMuZmlsdGVyKGVsZW1lbnQgPT4gIWN1cnJlbnRFbGVtZW50cy5pbmNsdWRlcyhlbGVtZW50KSkpO1xuICAgICAgICByZWYudGltZW91dElkID0gdGltZW91dElkO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIEJPQVJEX1RPX1RFTVBPUkFSWV9FTEVNRU5UUy5zZXQoYm9hcmQsIHsgdGltZW91dElkLCBlbGVtZW50cyB9KTtcbiAgICB9XG59XG4iXX0=
@@ -2,43 +2,45 @@ import { PlaitBoard } from '../interfaces/board';
2
2
  import { depthFirstRecursion, getIsRecursionFunc } from './tree';
3
3
  import { BOARD_TO_SELECTED_ELEMENT } from './weak-maps';
4
4
  import { Selection } from '../interfaces/selection';
5
- export const getHitElements = (board, selection, match = () => true) => {
6
- const realSelection = selection || board.selection;
7
- const selectedElements = [];
8
- const isCollapsed = realSelection && realSelection.ranges.length === 1 && Selection.isCollapsed(realSelection.ranges[0]);
5
+ export const getHitElementsBySelection = (board, selection, match = () => true) => {
6
+ const newSelection = selection || board.selection;
7
+ const rectangleHitElements = [];
8
+ const isCollapsed = newSelection && Selection.isCollapsed(newSelection);
9
+ if (isCollapsed) {
10
+ const hitElement = getHitElementByPoint(board, newSelection.anchor, match);
11
+ if (hitElement) {
12
+ return [hitElement];
13
+ }
14
+ else {
15
+ return [];
16
+ }
17
+ }
18
+ depthFirstRecursion(board, node => {
19
+ if (!PlaitBoard.isBoard(node) && match(node) && board.isRectangleHit(node, newSelection)) {
20
+ rectangleHitElements.push(node);
21
+ }
22
+ }, getIsRecursionFunc(board), true);
23
+ return rectangleHitElements;
24
+ };
25
+ export const getHitElementByPoint = (board, point, match = () => true) => {
26
+ let rectangleHitElement = undefined;
27
+ let hitElement = undefined;
9
28
  depthFirstRecursion(board, node => {
10
- if (selectedElements.length > 0 && isCollapsed) {
29
+ if (hitElement) {
11
30
  return;
12
31
  }
13
- if (!PlaitBoard.isBoard(node) &&
14
- match(node) &&
15
- realSelection &&
16
- realSelection.ranges.some(range => {
17
- return board.isHitSelection(node, range);
18
- })) {
19
- selectedElements.push(node);
32
+ if (PlaitBoard.isBoard(node) || !match(node)) {
33
+ return;
34
+ }
35
+ if (board.isHit(node, point)) {
36
+ hitElement = node;
37
+ return;
38
+ }
39
+ if (!rectangleHitElement && board.isRectangleHit(node, { anchor: point, focus: point })) {
40
+ rectangleHitElement = node;
20
41
  }
21
42
  }, getIsRecursionFunc(board), true);
22
- return selectedElements;
23
- };
24
- export const getHitElementOfRoot = (board, rootElements, range) => {
25
- const newRootElements = [...rootElements].reverse();
26
- return newRootElements.find(item => {
27
- return board.isHitSelection(item, range);
28
- });
29
- };
30
- export const isHitElements = (board, elements, ranges) => {
31
- let isIntersectionElements = false;
32
- if (elements.length) {
33
- elements.map(item => {
34
- if (!isIntersectionElements) {
35
- isIntersectionElements = ranges.some(range => {
36
- return board.isHitSelection(item, range);
37
- });
38
- }
39
- });
40
- }
41
- return isIntersectionElements;
43
+ return hitElement || rectangleHitElement;
42
44
  };
43
45
  export const cacheSelectedElements = (board, selectedElements) => {
44
46
  BOARD_TO_SELECTED_ELEMENT.set(board, selectedElements);
@@ -62,4 +64,4 @@ export const isSelectedElement = (board, element) => {
62
64
  const selectedElements = getSelectedElements(board);
63
65
  return !!selectedElements.find(value => value === element);
64
66
  };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3V0aWxzL3NlbGVjdGVkLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBUyxNQUFNLHlCQUF5QixDQUFDO0FBRzNELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsU0FBcUIsRUFBRSxRQUE0QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUMvSCxNQUFNLGFBQWEsR0FBRyxTQUFTLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUNuRCxNQUFNLGdCQUFnQixHQUFtQixFQUFFLENBQUM7SUFDNUMsTUFBTSxXQUFXLEdBQUcsYUFBYSxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6SCxtQkFBbUIsQ0FDZixLQUFLLEVBQ0wsSUFBSSxDQUFDLEVBQUU7UUFDSCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksV0FBVyxFQUFFO1lBQzVDLE9BQU87U0FDVjtRQUNELElBQ0ksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN6QixLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ1gsYUFBYTtZQUNiLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxFQUNKO1lBQ0UsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0lBQ0wsQ0FBQyxFQUNELGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUN6QixJQUFJLENBQ1AsQ0FBQztJQUNGLE9BQU8sZ0JBQWdCLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFlBQTRCLEVBQUUsS0FBWSxFQUFFLEVBQUU7SUFDakcsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMvQixPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxRQUF3QixFQUFFLE1BQWUsRUFBRSxFQUFFO0lBQzFGLElBQUksc0JBQXNCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNqQixRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDekIsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDekMsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFDRCxPQUFPLHNCQUFzQixDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBaUIsRUFBRSxnQkFBZ0MsRUFBRSxFQUFFO0lBQ3pGLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNyRCxPQUFPLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUMzRSxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBcUIsRUFBRSxFQUFFO0lBQzlFLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDaEYscUJBQXFCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDdEQscUJBQXFCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFxQixFQUFFLEVBQUU7SUFDMUUsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7QUFDL0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgQW5jZXN0b3IgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgZGVwdGhGaXJzdFJlY3Vyc2lvbiwgZ2V0SXNSZWN1cnNpb25GdW5jIH0gZnJvbSAnLi90cmVlJztcbmltcG9ydCB7IEJPQVJEX1RPX1NFTEVDVEVEX0VMRU1FTlQgfSBmcm9tICcuL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBTZWxlY3Rpb24sIFJhbmdlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZWxlY3Rpb24nO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IGdldEhpdEVsZW1lbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzZWxlY3Rpb24/OiBTZWxlY3Rpb24sIG1hdGNoOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZSkgPT4ge1xuICAgIGNvbnN0IHJlYWxTZWxlY3Rpb24gPSBzZWxlY3Rpb24gfHwgYm9hcmQuc2VsZWN0aW9uO1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgY29uc3QgaXNDb2xsYXBzZWQgPSByZWFsU2VsZWN0aW9uICYmIHJlYWxTZWxlY3Rpb24ucmFuZ2VzLmxlbmd0aCA9PT0gMSAmJiBTZWxlY3Rpb24uaXNDb2xsYXBzZWQocmVhbFNlbGVjdGlvbi5yYW5nZXNbMF0pO1xuICAgIGRlcHRoRmlyc3RSZWN1cnNpb248QW5jZXN0b3I+KFxuICAgICAgICBib2FyZCxcbiAgICAgICAgbm9kZSA9PiB7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAwICYmIGlzQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICFQbGFpdEJvYXJkLmlzQm9hcmQobm9kZSkgJiZcbiAgICAgICAgICAgICAgICBtYXRjaChub2RlKSAmJlxuICAgICAgICAgICAgICAgIHJlYWxTZWxlY3Rpb24gJiZcbiAgICAgICAgICAgICAgICByZWFsU2VsZWN0aW9uLnJhbmdlcy5zb21lKHJhbmdlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvYXJkLmlzSGl0U2VsZWN0aW9uKG5vZGUsIHJhbmdlKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50cy5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBnZXRJc1JlY3Vyc2lvbkZ1bmMoYm9hcmQpLFxuICAgICAgICB0cnVlXG4gICAgKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRFbGVtZW50cztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaXRFbGVtZW50T2ZSb290ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCByb290RWxlbWVudHM6IFBsYWl0RWxlbWVudFtdLCByYW5nZTogUmFuZ2UpID0+IHtcbiAgICBjb25zdCBuZXdSb290RWxlbWVudHMgPSBbLi4ucm9vdEVsZW1lbnRzXS5yZXZlcnNlKCk7XG4gICAgcmV0dXJuIG5ld1Jvb3RFbGVtZW50cy5maW5kKGl0ZW0gPT4ge1xuICAgICAgICByZXR1cm4gYm9hcmQuaXNIaXRTZWxlY3Rpb24oaXRlbSwgcmFuZ2UpO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSGl0RWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgcmFuZ2VzOiBSYW5nZVtdKSA9PiB7XG4gICAgbGV0IGlzSW50ZXJzZWN0aW9uRWxlbWVudHMgPSBmYWxzZTtcbiAgICBpZiAoZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIGVsZW1lbnRzLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmICghaXNJbnRlcnNlY3Rpb25FbGVtZW50cykge1xuICAgICAgICAgICAgICAgIGlzSW50ZXJzZWN0aW9uRWxlbWVudHMgPSByYW5nZXMuc29tZShyYW5nZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBib2FyZC5pc0hpdFNlbGVjdGlvbihpdGVtLCByYW5nZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaXNJbnRlcnNlY3Rpb25FbGVtZW50cztcbn07XG5cbmV4cG9ydCBjb25zdCBjYWNoZVNlbGVjdGVkRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNlbGVjdGVkRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVC5zZXQoYm9hcmQsIHNlbGVjdGVkRWxlbWVudHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVC5nZXQoYm9hcmQpIHx8IFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFNlbGVjdGVkRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgWy4uLnNlbGVjdGVkRWxlbWVudHMsIGVsZW1lbnRdKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCBuZXdTZWxlY3RlZEVsZW1lbnRzID0gc2VsZWN0ZWRFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IGVsZW1lbnQpO1xuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgbmV3U2VsZWN0ZWRFbGVtZW50cyk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHMoYm9hcmQsIFtdKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGVkRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiAhIXNlbGVjdGVkRWxlbWVudHMuZmluZCh2YWx1ZSA9PiB2YWx1ZSA9PT0gZWxlbWVudCk7XG59O1xuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3V0aWxzL3NlbGVjdGVkLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXBELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQ3JDLEtBQWlCLEVBQ2pCLFNBQXFCLEVBQ3JCLFFBQTRDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDeEQsRUFBRTtJQUNBLE1BQU0sWUFBWSxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUMsU0FBc0IsQ0FBQztJQUMvRCxNQUFNLG9CQUFvQixHQUFtQixFQUFFLENBQUM7SUFDaEQsTUFBTSxXQUFXLEdBQUcsWUFBWSxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEUsSUFBSSxXQUFXLEVBQUU7UUFDYixNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLFVBQVUsRUFBRTtZQUNaLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN2QjthQUFNO1lBQ0gsT0FBTyxFQUFFLENBQUM7U0FDYjtLQUNKO0lBQ0QsbUJBQW1CLENBQ2YsS0FBSyxFQUNMLElBQUksQ0FBQyxFQUFFO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FB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QyxLQUFLLENBQUMsQ0FBQztJQUNwRCxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7QUFDL0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgQW5jZXN0b3IgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgZGVwdGhGaXJzdFJlY3Vyc2lvbiwgZ2V0SXNSZWN1cnNpb25GdW5jIH0gZnJvbSAnLi90cmVlJztcbmltcG9ydCB7IEJPQVJEX1RPX1NFTEVDVEVEX0VMRU1FTlQgfSBmcm9tICcuL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50JztcblxuZXhwb3J0IGNvbnN0IGdldEhpdEVsZW1lbnRzQnlTZWxlY3Rpb24gPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgc2VsZWN0aW9uPzogU2VsZWN0aW9uLFxuICAgIG1hdGNoOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZVxuKSA9PiB7XG4gICAgY29uc3QgbmV3U2VsZWN0aW9uID0gc2VsZWN0aW9uIHx8IGJvYXJkLnNlbGVjdGlvbiBhcyBTZWxlY3Rpb247XG4gICAgY29uc3QgcmVjdGFuZ2xlSGl0RWxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgY29uc3QgaXNDb2xsYXBzZWQgPSBuZXdTZWxlY3Rpb24gJiYgU2VsZWN0aW9uLmlzQ29sbGFwc2VkKG5ld1NlbGVjdGlvbik7XG4gICAgaWYgKGlzQ29sbGFwc2VkKSB7XG4gICAgICAgIGNvbnN0IGhpdEVsZW1lbnQgPSBnZXRIaXRFbGVtZW50QnlQb2ludChib2FyZCwgbmV3U2VsZWN0aW9uLmFuY2hvciwgbWF0Y2gpO1xuICAgICAgICBpZiAoaGl0RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIFtoaXRFbGVtZW50XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZXB0aEZpcnN0UmVjdXJzaW9uPEFuY2VzdG9yPihcbiAgICAgICAgYm9hcmQsXG4gICAgICAgIG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzQm9hcmQobm9kZSkgJiYgbWF0Y2gobm9kZSkgJiYgYm9hcmQuaXNSZWN0YW5nbGVIaXQobm9kZSwgbmV3U2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZUhpdEVsZW1lbnRzLnB1c2gobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldElzUmVjdXJzaW9uRnVuYyhib2FyZCksXG4gICAgICAgIHRydWVcbiAgICApO1xuICAgIHJldHVybiByZWN0YW5nbGVIaXRFbGVtZW50cztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaXRFbGVtZW50QnlQb2ludCA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBwb2ludDogUG9pbnQsXG4gICAgbWF0Y2g6IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG4pOiB1bmRlZmluZWQgfCBQbGFpdEVsZW1lbnQgPT4ge1xuICAgIGxldCByZWN0YW5nbGVIaXRFbGVtZW50OiBQbGFpdEVsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IGhpdEVsZW1lbnQ6IFBsYWl0RWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBkZXB0aEZpcnN0UmVjdXJzaW9uPEFuY2VzdG9yPihcbiAgICAgICAgYm9hcmQsXG4gICAgICAgIG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKGhpdEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoUGxhaXRCb2FyZC5pc0JvYXJkKG5vZGUpIHx8ICFtYXRjaChub2RlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChib2FyZC5pc0hpdChub2RlLCBwb2ludCkpIHtcbiAgICAgICAgICAgICAgICBoaXRFbGVtZW50ID0gbm9kZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJlY3RhbmdsZUhpdEVsZW1lbnQgJiYgYm9hcmQuaXNSZWN0YW5nbGVIaXQobm9kZSwgeyBhbmNob3I6IHBvaW50LCBmb2N1czogcG9pbnQgfSkpIHtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGVIaXRFbGVtZW50ID0gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0SXNSZWN1cnNpb25GdW5jKGJvYXJkKSxcbiAgICAgICAgdHJ1ZVxuICAgICk7XG4gICAgcmV0dXJuIGhpdEVsZW1lbnQgfHwgcmVjdGFuZ2xlSGl0RWxlbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBjYWNoZVNlbGVjdGVkRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNlbGVjdGVkRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVC5zZXQoYm9hcmQsIHNlbGVjdGVkRWxlbWVudHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVC5nZXQoYm9hcmQpIHx8IFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFNlbGVjdGVkRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgWy4uLnNlbGVjdGVkRWxlbWVudHMsIGVsZW1lbnRdKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCBuZXdTZWxlY3RlZEVsZW1lbnRzID0gc2VsZWN0ZWRFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IGVsZW1lbnQpO1xuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgbmV3U2VsZWN0ZWRFbGVtZW50cyk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHMoYm9hcmQsIFtdKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGVkRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiAhIXNlbGVjdGVkRWxlbWVudHMuZmluZCh2YWx1ZSA9PiB2YWx1ZSA9PT0gZWxlbWVudCk7XG59O1xuIl19
@@ -75,43 +75,45 @@ const Selection = {
75
75
  }
76
76
  };
77
77
 
78
- const getHitElements = (board, selection, match = () => true) => {
79
- const realSelection = selection || board.selection;
80
- const selectedElements = [];
81
- const isCollapsed = realSelection && realSelection.ranges.length === 1 && Selection.isCollapsed(realSelection.ranges[0]);
78
+ const getHitElementsBySelection = (board, selection, match = () => true) => {
79
+ const newSelection = selection || board.selection;
80
+ const rectangleHitElements = [];
81
+ const isCollapsed = newSelection && Selection.isCollapsed(newSelection);
82
+ if (isCollapsed) {
83
+ const hitElement = getHitElementByPoint(board, newSelection.anchor, match);
84
+ if (hitElement) {
85
+ return [hitElement];
86
+ }
87
+ else {
88
+ return [];
89
+ }
90
+ }
82
91
  depthFirstRecursion(board, node => {
83
- if (selectedElements.length > 0 && isCollapsed) {
92
+ if (!PlaitBoard.isBoard(node) && match(node) && board.isRectangleHit(node, newSelection)) {
93
+ rectangleHitElements.push(node);
94
+ }
95
+ }, getIsRecursionFunc(board), true);
96
+ return rectangleHitElements;
97
+ };
98
+ const getHitElementByPoint = (board, point, match = () => true) => {
99
+ let rectangleHitElement = undefined;
100
+ let hitElement = undefined;
101
+ depthFirstRecursion(board, node => {
102
+ if (hitElement) {
103
+ return;
104
+ }
105
+ if (PlaitBoard.isBoard(node) || !match(node)) {
106
+ return;
107
+ }
108
+ if (board.isHit(node, point)) {
109
+ hitElement = node;
84
110
  return;
85
111
  }
86
- if (!PlaitBoard.isBoard(node) &&
87
- match(node) &&
88
- realSelection &&
89
- realSelection.ranges.some(range => {
90
- return board.isHitSelection(node, range);
91
- })) {
92
- selectedElements.push(node);
112
+ if (!rectangleHitElement && board.isRectangleHit(node, { anchor: point, focus: point })) {
113
+ rectangleHitElement = node;
93
114
  }
94
115
  }, getIsRecursionFunc(board), true);
95
- return selectedElements;
96
- };
97
- const getHitElementOfRoot = (board, rootElements, range) => {
98
- const newRootElements = [...rootElements].reverse();
99
- return newRootElements.find(item => {
100
- return board.isHitSelection(item, range);
101
- });
102
- };
103
- const isHitElements = (board, elements, ranges) => {
104
- let isIntersectionElements = false;
105
- if (elements.length) {
106
- elements.map(item => {
107
- if (!isIntersectionElements) {
108
- isIntersectionElements = ranges.some(range => {
109
- return board.isHitSelection(item, range);
110
- });
111
- }
112
- });
113
- }
114
- return isIntersectionElements;
116
+ return hitElement || rectangleHitElement;
115
117
  };
116
118
  const cacheSelectedElements = (board, selectedElements) => {
117
119
  BOARD_TO_SELECTED_ELEMENT.set(board, selectedElements);
@@ -443,12 +445,24 @@ const ELEMENT_TO_COMPONENT = new WeakMap();
443
445
 
444
446
  const RectangleClient = {
445
447
  isHit: (origin, target) => {
448
+ return RectangleClient.isHitX(origin, target) && RectangleClient.isHitY(origin, target);
449
+ },
450
+ isHitX: (origin, target) => {
446
451
  const minX = origin.x < target.x ? origin.x : target.x;
447
452
  const maxX = origin.x + origin.width > target.x + target.width ? origin.x + origin.width : target.x + target.width;
453
+ // float calculate error( eg: 1.4210854715202004e-14 > 0)
454
+ if (Math.floor(maxX - minX - origin.width - target.width) <= 0) {
455
+ return true;
456
+ }
457
+ else {
458
+ return false;
459
+ }
460
+ },
461
+ isHitY: (origin, target) => {
448
462
  const minY = origin.y < target.y ? origin.y : target.y;
449
463
  const maxY = origin.y + origin.height > target.y + target.height ? origin.y + origin.height : target.y + target.height;
450
464
  // float calculate error( eg: 1.4210854715202004e-14 > 0)
451
- if (Math.floor(maxX - minX - origin.width - target.width) <= 0 && Math.floor(maxY - minY - origin.height - target.height) <= 0) {
465
+ if (Math.floor(maxY - minY - origin.height - target.height) <= 0) {
452
466
  return true;
453
467
  }
454
468
  else {
@@ -506,6 +520,25 @@ const RectangleClient = {
506
520
  },
507
521
  getConnectionPoint: (rectangle, point) => {
508
522
  return [rectangle.x + rectangle.width * point[0], rectangle.y + rectangle.height * point[1]];
523
+ },
524
+ expand(rectangle, left, top = left, right = left, bottom = top) {
525
+ return {
526
+ x: rectangle.x - left,
527
+ y: rectangle.y - top,
528
+ width: rectangle.width + left + right,
529
+ height: rectangle.height + top + bottom
530
+ };
531
+ },
532
+ getGapCenter(rectangle1, rectangle2, isHorizontal) {
533
+ const axis = isHorizontal ? 'y' : 'x';
534
+ const side = isHorizontal ? 'height' : 'width';
535
+ const align = [rectangle1[axis], rectangle1[axis] + rectangle1[side], rectangle2[axis], rectangle2[axis] + rectangle2[side]];
536
+ const sortArr = align.sort((a, b) => a - b);
537
+ return (sortArr[1] + sortArr[2]) / 2;
538
+ },
539
+ isPointInRectangle(rectangle, point) {
540
+ const x = point[0], y = point[1];
541
+ return x > rectangle.x && x < rectangle.x + rectangle.width && y > rectangle.y && y < rectangle.y + rectangle.height;
509
542
  }
510
543
  };
511
544
 
@@ -2160,7 +2193,7 @@ const applyToDraft = (board, selection, viewport, theme, op) => {
2160
2193
  selection = op.newProperties;
2161
2194
  }
2162
2195
  else {
2163
- selection.ranges = newProperties.ranges;
2196
+ selection = newProperties;
2164
2197
  }
2165
2198
  }
2166
2199
  break;
@@ -2257,22 +2290,22 @@ function withSelection(board) {
2257
2290
  }
2258
2291
  const options = board.getPluginOptions(PlaitPluginKey.withSelection);
2259
2292
  const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
2260
- const range = { anchor: point, focus: point };
2261
- const hitElements = getHitElements(board, { ranges: [range] });
2293
+ const selection = { anchor: point, focus: point };
2294
+ const hitElement = getHitElementByPoint(board, point);
2262
2295
  const selectedElements = getSelectedElements(board);
2263
- if (hitElements.length === 1 && selectedElements.includes(hitElements[0]) && !options.isDisabledSelect) {
2296
+ if (hitElement && selectedElements.includes(hitElement) && !options.isDisabledSelect) {
2264
2297
  pointerDown(event);
2265
2298
  return;
2266
2299
  }
2267
2300
  if (PlaitBoard.isPointer(board, PlaitPointerType.selection) &&
2268
- hitElements.length === 0 &&
2301
+ !hitElement &&
2269
2302
  options.isMultiple &&
2270
2303
  !options.isDisabledSelect) {
2271
2304
  selectionRectangleG?.remove();
2272
2305
  start = point;
2273
2306
  preventTouchMove(board, event, true);
2274
2307
  }
2275
- Transforms.setSelection(board, { ranges: [range] });
2308
+ Transforms.setSelection(board, selection);
2276
2309
  pointerDown(event);
2277
2310
  };
2278
2311
  board.globalPointerMove = (event) => {
@@ -2288,7 +2321,7 @@ function withSelection(board) {
2288
2321
  end = movedTarget;
2289
2322
  throttleRAF(() => {
2290
2323
  if (start && end) {
2291
- Transforms.setSelection(board, { ranges: [{ anchor: start, focus: end }] });
2324
+ Transforms.setSelection(board, { anchor: start, focus: end });
2292
2325
  }
2293
2326
  });
2294
2327
  setSelectionMoving(board);
@@ -2307,7 +2340,7 @@ function withSelection(board) {
2307
2340
  if (start && end) {
2308
2341
  selectionMovingG?.remove();
2309
2342
  clearSelectionMoving(board);
2310
- Transforms.setSelection(board, { ranges: [{ anchor: start, focus: end }] });
2343
+ Transforms.setSelection(board, { anchor: start, focus: end });
2311
2344
  }
2312
2345
  if (PlaitBoard.isFocus(board)) {
2313
2346
  const isInBoard = event.target instanceof Node && PlaitBoard.getBoardContainer(board).contains(event.target);
@@ -2336,7 +2369,7 @@ function withSelection(board) {
2336
2369
  if (board.operations.find(value => value.type === 'set_selection')) {
2337
2370
  selectionRectangleG?.remove();
2338
2371
  const temporaryElements = getTemporaryElements(board);
2339
- let elements = temporaryElements ? temporaryElements : getHitElements(board);
2372
+ let elements = temporaryElements ? temporaryElements : getHitElementsBySelection(board);
2340
2373
  if (!options.isMultiple && elements.length > 1) {
2341
2374
  elements = [elements[0]];
2342
2375
  }
@@ -2429,7 +2462,7 @@ const SelectionTransforms = {
2429
2462
  };
2430
2463
  function addSelectionWithTemporaryElements(board, elements) {
2431
2464
  const timeoutId = setTimeout(() => {
2432
- setSelection(board, { ranges: [] });
2465
+ setSelection(board, null);
2433
2466
  }, 0);
2434
2467
  let ref = getTemporaryRef(board);
2435
2468
  if (ref) {
@@ -2692,7 +2725,8 @@ function createBoard(children, options) {
2692
2725
  redrawElement: (context, previousContext) => { },
2693
2726
  destroyElement: (context) => { },
2694
2727
  isWithinSelection: element => false,
2695
- isHitSelection: element => false,
2728
+ isRectangleHit: element => false,
2729
+ isHit: element => false,
2696
2730
  isRecursion: element => true,
2697
2731
  isMovable: element => false,
2698
2732
  getRectangle: element => null,
@@ -2705,7 +2739,8 @@ function createBoard(children, options) {
2705
2739
  pointerOut: pointer => { },
2706
2740
  pointerLeave: pointer => { },
2707
2741
  globalPointerMove: pointer => { },
2708
- globalPointerUp: pointer => { }
2742
+ globalPointerUp: pointer => { },
2743
+ isImageBindingAllowed: (element) => false,
2709
2744
  };
2710
2745
  return board;
2711
2746
  }
@@ -3265,17 +3300,18 @@ function withMoving(board) {
3265
3300
  board.pointerDown = (event) => {
3266
3301
  const host = BOARD_TO_HOST.get(board);
3267
3302
  const point = transformPoint(board, toPoint(event.x, event.y, host));
3268
- const range = { anchor: point, focus: point };
3269
3303
  let movableElements = board.children.filter(item => board.isMovable(item));
3270
3304
  if (movableElements.length && !isPreventTouchMove(board)) {
3271
3305
  startPoint = point;
3272
- const selectedRootElements = getSelectedElements(board).filter(item => movableElements.includes(item));
3273
- const hitElement = getHitElementOfRoot(board, movableElements, range);
3274
- if (hitElement && selectedRootElements.includes(hitElement)) {
3275
- activeElements = selectedRootElements;
3276
- }
3277
- else if (hitElement) {
3278
- activeElements = [hitElement];
3306
+ const selectedMovableElements = getSelectedElements(board).filter(item => movableElements.includes(item));
3307
+ const hitElement = getHitElementByPoint(board, point);
3308
+ if (hitElement && movableElements.includes(hitElement)) {
3309
+ if (selectedMovableElements.includes(hitElement)) {
3310
+ activeElements = selectedMovableElements;
3311
+ }
3312
+ else {
3313
+ activeElements = [hitElement];
3314
+ }
3279
3315
  }
3280
3316
  if (activeElements.length > 0) {
3281
3317
  preventTouchMove(board, event, true);
@@ -4222,5 +4258,5 @@ function createModModifierKeys() {
4222
4258
  * Generated bundle index. Do not edit.
4223
4259
  */
4224
4260
 
4225
- export { A, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_TOUCH_REF, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRESS_AND_MOVE_BUFFER, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElementComponent, PlaitContextService, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, ResizeCursorClass, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createSelectionRectangleG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRectangle, drawRoundRectangle, fakeNodeWeakMap, findElements, getBoardRectangle, getClipboardByKey, getClipboardDataByMedia, getDataFromClipboard, getElementById, getElementHostBBox, getHitElementOfRoot, getHitElements, getIsRecursionFunc, getMovingElements, getNearestPointBetweenPointAndSegment, getNearestPointBetweenPointAndSegments, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getTemporaryRef, getTextFromClipboard, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, handleTouchTarget, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isHitElements, isInPlaitBoard, isLineHitLine, isMainPointer, isNullOrUndefined, isPointInEllipse, isPointInPolygon, isPointInRoundRectangle, isPolylineHitRectangle, isPreventTouchMove, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, preventTouchMove, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setClipboardData, setClipboardDataByMedia, setClipboardDataByText, setIsFromScrolling, setIsFromViewportChange, setPathStrokeLinecap, setSVGViewBox, setSelectionMoving, setStrokeLinecap, shouldClear, shouldMerge, shouldSave, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateForeignObjectWidth, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
4261
+ export { A, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_TOUCH_REF, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRESS_AND_MOVE_BUFFER, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElementComponent, PlaitContextService, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, ResizeCursorClass, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createSelectionRectangleG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRectangle, drawRoundRectangle, fakeNodeWeakMap, findElements, getBoardRectangle, getClipboardByKey, getClipboardDataByMedia, getDataFromClipboard, getElementById, getElementHostBBox, getHitElementByPoint, getHitElementsBySelection, getIsRecursionFunc, getMovingElements, getNearestPointBetweenPointAndSegment, getNearestPointBetweenPointAndSegments, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getTemporaryRef, getTextFromClipboard, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, handleTouchTarget, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isInPlaitBoard, isLineHitLine, isMainPointer, isNullOrUndefined, isPointInEllipse, isPointInPolygon, isPointInRoundRectangle, isPolylineHitRectangle, isPreventTouchMove, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, preventTouchMove, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setClipboardData, setClipboardDataByMedia, setClipboardDataByText, setIsFromScrolling, setIsFromViewportChange, setPathStrokeLinecap, setSVGViewBox, setSelectionMoving, setStrokeLinecap, shouldClear, shouldMerge, shouldSave, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateForeignObjectWidth, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
4226
4262
  //# sourceMappingURL=plait-core.mjs.map