horizontal-resizer.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 `
  33. <div @mousedown=${(e) => this._startResize(e)}></div>
  34. `;
  35. }
  36. _startResize(e) {
  37. this.lastPosX = e.clientX;
  38. window.addEventListener("mousemove", this._emitMove);
  39. window.addEventListener("mouseup", this._endResize);
  40. }
  41. };
  42. HorizontalResizer.styles = lit_element_1.css `
  43. :host {
  44. min-width:3px;
  45. background-color:lightgray;
  46. cursor:col-resize;
  47. }
  48. div{
  49. width:100%;
  50. height:100%;
  51. }
  52. `;
  53. HorizontalResizer = __decorate([
  54. lit_element_1.customElement('horizontal-resizer')
  55. ], HorizontalResizer);
  56. exports.HorizontalResizer = HorizontalResizer;
  57. //# sourceMappingURL=horizontal-resizer.js.map