horizontal-resizer.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. "use strict";
  2. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  3. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  4. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  5. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  6. return c > 3 && r && Object.defineProperty(target, key, r), r;
  7. };
  8. Object.defineProperty(exports, "__esModule", { value: true });
  9. exports.HorizontalResizer = void 0;
  10. const lit_element_1 = require("lit-element");
  11. let HorizontalResizer = class HorizontalResizer extends lit_element_1.LitElement {
  12. constructor() {
  13. super();
  14. this._emitMove = (e) => {
  15. const n = e.clientX - this.lastPosX;
  16. this.lastPosX = e.clientX;
  17. const event = new CustomEvent("resize-x", {
  18. detail: n,
  19. bubbles: true,
  20. composed: true,
  21. });
  22. this.dispatchEvent(event);
  23. };
  24. this._endResize = () => {
  25. this.lastPosX = -1;
  26. window.removeEventListener("mousemove", this._emitMove);
  27. window.removeEventListener("mouseup", this._endResize);
  28. };
  29. this.lastPosX = -1;
  30. }
  31. render() {
  32. return lit_element_1.html ` <div @mousedown=${(e) => this._startResize(e)}></div> `;
  33. }
  34. _startResize(e) {
  35. this.lastPosX = e.clientX;
  36. window.addEventListener("mousemove", this._emitMove);
  37. window.addEventListener("mouseup", this._endResize);
  38. }
  39. };
  40. HorizontalResizer.styles = lit_element_1.css `
  41. :host {
  42. min-width: 3px;
  43. background-color: lightgray;
  44. cursor: col-resize;
  45. }
  46. div {
  47. width: 100%;
  48. height: 100%;
  49. }
  50. `;
  51. HorizontalResizer = __decorate([
  52. lit_element_1.customElement("horizontal-resizer")
  53. ], HorizontalResizer);
  54. exports.HorizontalResizer = HorizontalResizer;
  55. //# sourceMappingURL=horizontal-resizer.js.map