{"version":3,"file":"mikael-sundstrom-resize-observer.mjs","sources":["../../src/resize.directive.ts","../../src/resize.module.ts","../../src/mikael-sundstrom-resize-observer.ts"],"sourcesContent":["import { Directive, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Output } from '@angular/core'\r\n\r\n@Directive({\r\n\tselector: '[resized]'\r\n})\r\nexport class ResizeDirective implements OnInit, OnDestroy {\r\n\tprivate observer: ResizeObserver\r\n\tprivate oldRect?: DOMRectReadOnly\r\n\r\n\t@Output() public readonly resized\r\n\r\n\tpublic constructor(\r\n\t\tprivate readonly element: ElementRef,\r\n\t\tprivate readonly zone: NgZone\r\n\t) {\r\n\t\tthis.resized = new EventEmitter<ResizeEvent>()\r\n\t\tthis.observer = new ResizeObserver(entries => this.zone.run(() => this.observe(entries)))\r\n\t}\r\n\r\n\tpublic ngOnInit(): void {\r\n\t\tthis.observer.observe(this.element.nativeElement)\r\n\t}\r\n\r\n\tpublic ngOnDestroy(): void {\r\n\t\tthis.observer.disconnect()\r\n\t}\r\n\r\n\tprivate observe(entries: ResizeObserverEntry[]): void {\r\n\t\tconst domSize = entries[0]\r\n\t\tconst resizedEvent = new ResizeEvent(domSize.contentRect, this.oldRect)\r\n\t\tthis.oldRect = domSize.contentRect\r\n\t\tthis.resized.emit(resizedEvent)\r\n\t}\r\n}\r\n\r\nexport class ResizeEvent {\r\n\tpublic newRect: DOMRectReadOnly\r\n\tpublic oldRect?: DOMRectReadOnly\r\n\tpublic isFirst: boolean\r\n\r\n\tpublic constructor(newRect: DOMRectReadOnly, oldRect: DOMRectReadOnly | undefined) {\r\n\t\tthis.newRect = newRect\r\n\t\tthis.oldRect = oldRect\r\n\t\tthis.isFirst = oldRect == null\r\n\t}\r\n}","import { NgModule } from '@angular/core'\r\nimport { ResizeDirective } from './resize.directive'\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tResizeDirective\r\n\t],\r\n\timports: [\r\n\t],\r\n\texports: [\r\n\t\tResizeDirective\r\n\t]\r\n})\r\nexport class ResizeObserverModule { }","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,eAAe,CAAA;IAM3B,WACkB,CAAA,OAAmB,EACnB,IAAY,EAAA;AADZ,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AACnB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;AAE7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAe,CAAA;QAC9C,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;KACzF;IAEM,QAAQ,GAAA;QACd,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;KACjD;IAEM,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;KAC1B;AAEO,IAAA,OAAO,CAAC,OAA8B,EAAA;AAC7C,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAC1B,QAAA,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;AACvE,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAA;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;KAC/B;;4GA3BW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gGAAf,eAAe,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,WAAW;iBACrB,CAAA;sHAK0B,OAAO,EAAA,CAAA;sBAAhC,MAAM;;MA0BK,WAAW,CAAA;IAKvB,WAAmB,CAAA,OAAwB,EAAE,OAAoC,EAAA;AAChF,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AACtB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAA;KAC9B;AACD;;MChCY,oBAAoB,CAAA;;iHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,YAAA,EAAA,CAR/B,eAAe,CAAA,EAAA,OAAA,EAAA,CAKf,eAAe,CAAA,EAAA,CAAA,CAAA;kHAGJ,oBAAoB,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE;wBACb,eAAe;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE;wBACR,eAAe;AACf,qBAAA;iBACD,CAAA;;;ACZD;;AAEG;;;;"}