@tft/interact 12.5.2 → 12.5.3

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.
Files changed (47) hide show
  1. package/bundles/tft-interact.umd.js +137 -30
  2. package/bundles/tft-interact.umd.js.map +1 -1
  3. package/esm2015/lib/directives/account-for-scale.directive.ngfactory.js.map +1 -0
  4. package/esm2015/lib/directives/apply-scale.directive.ngfactory.js.map +1 -0
  5. package/esm2015/lib/directives/auto-scroll.directive.js +54 -0
  6. package/esm2015/lib/directives/auto-scroll.directive.js.map +1 -0
  7. package/esm2015/lib/directives/auto-scroll.directive.metadata.json +1 -0
  8. package/esm2015/lib/directives/auto-scroll.directive.ngfactory.js.map +1 -0
  9. package/esm2015/lib/directives/drag-preview.directive.ngfactory.js.map +1 -0
  10. package/esm2015/lib/directives/drag-root.directive.ngfactory.js.map +1 -0
  11. package/esm2015/lib/directives/draggable.directive.js +24 -3
  12. package/esm2015/lib/directives/draggable.directive.js.map +1 -1
  13. package/esm2015/lib/directives/draggable.directive.metadata.json +1 -1
  14. package/esm2015/lib/directives/draggable.directive.ngfactory.js.map +1 -0
  15. package/esm2015/lib/directives/dropzone.directive.js +4 -2
  16. package/esm2015/lib/directives/dropzone.directive.js.map +1 -1
  17. package/esm2015/lib/directives/dropzone.directive.metadata.json +1 -1
  18. package/esm2015/lib/directives/dropzone.directive.ngfactory.js.map +1 -0
  19. package/esm2015/lib/directives/gesturable.directive.ngfactory.js.map +1 -0
  20. package/esm2015/lib/directives/index.js +1 -0
  21. package/esm2015/lib/directives/index.js.map +1 -1
  22. package/esm2015/lib/directives/index.metadata.json +1 -1
  23. package/esm2015/lib/directives/resizable.directive.js +48 -22
  24. package/esm2015/lib/directives/resizable.directive.js.map +1 -1
  25. package/esm2015/lib/directives/resizable.directive.metadata.json +1 -1
  26. package/esm2015/lib/directives/resizable.directive.ngfactory.js.map +1 -0
  27. package/esm2015/lib/interact.module.js +2 -1
  28. package/esm2015/lib/interact.module.js.map +1 -1
  29. package/esm2015/lib/interact.module.metadata.json +1 -1
  30. package/esm2015/lib/interact.module.ngfactory.js.map +1 -0
  31. package/esm2015/lib/pipes/array-of-n.pipe.ngfactory.js.map +1 -0
  32. package/esm2015/lib/services/interact.service.ngfactory.js.map +1 -0
  33. package/esm2015/tft-interact.js +2 -2
  34. package/esm2015/tft-interact.js.map +1 -1
  35. package/esm2015/tft-interact.metadata.json +1 -1
  36. package/fesm2015/tft-interact.js +129 -30
  37. package/fesm2015/tft-interact.js.map +1 -1
  38. package/lib/directives/auto-scroll.directive.d.ts +31 -0
  39. package/lib/directives/draggable.directive.d.ts +5 -1
  40. package/lib/directives/dropzone.directive.d.ts +2 -0
  41. package/lib/directives/index.d.ts +1 -0
  42. package/lib/directives/resizable.directive.d.ts +7 -2
  43. package/package.json +1 -1
  44. package/tft-interact-12.5.3.tgz +0 -0
  45. package/tft-interact.d.ts +2 -2
  46. package/tft-interact.metadata.json +1 -1
  47. package/tft-interact-12.5.2.tgz +0 -0
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"ResizableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":13,"character":1},"arguments":[{"selector":"[tftResizable]","host":{"[style.touchAction]":"this.resizeDisabled ? \"auto\" : \"none\"","[style.position]":"position","[style.boxSizing]":"\"border-box\"","$quoted$":["[style.touchAction]","[style.position]","[style.boxSizing]"]}}]}],"members":{"enableResizeDefault":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"resizeConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"interactableId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"resizeDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"resizeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":40,"character":3}}]}],"resizeMove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":41,"character":3}}]}],"resizeInertiaStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":42,"character":3}}]}],"resizeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":60,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":60,"character":12}]}],null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":63,"character":5}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":64,"character":5}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":65,"character":5}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":66,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":66,"character":17}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":59,"character":15},{"__symbolic":"error","message":"Could not resolve type","line":60,"character":41,"context":{"typeName":"Document"}},{"__symbolic":"reference","module":"../services/interact.service","name":"InteractService","line":61,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":62,"character":22},{"__symbolic":"reference","module":"./drag-root.directive","name":"DragRootDirective","line":63,"character":40},{"__symbolic":"reference","module":"./account-for-scale.directive","name":"AccountForScaleDirective","line":64,"character":47},{"__symbolic":"reference","module":"./draggable.directive","name":"DraggableDirective","line":65,"character":40},{"__symbolic":"reference","module":"./dropzone.directive","name":"DropzoneDirective","line":66,"character":51}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"resizeListener":[{"__symbolic":"method"}],"initiateResizeEvents":[{"__symbolic":"method"}],"mapResizeEvent":[{"__symbolic":"method"}],"alignDimensionsWithInputs":[{"__symbolic":"method"}],"addResizePropertiesToElement":[{"__symbolic":"method"}]}}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"ResizableDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":20,"character":1},"arguments":[{"selector":"[tftResizable]","host":{"[style.touchAction]":"this.resizeDisabled ? \"auto\" : \"none\"","[style.position]":"position","[style.boxSizing]":"\"border-box\"","$quoted$":["[style.touchAction]","[style.position]","[style.boxSizing]"]}}]}],"members":{"enableResizeDefault":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"resizeConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"interactableId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"resizeDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"resizeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":47,"character":3}}]}],"resizeMove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":48,"character":3}}]}],"resizeInertiaStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":49,"character":3}}]}],"resizeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":50,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":70,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":70,"character":12}]}],null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":73,"character":5}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":74,"character":5}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":75,"character":5}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":76,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":76,"character":17}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":77,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":77,"character":17}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":69,"character":15},{"__symbolic":"error","message":"Could not resolve type","line":70,"character":41,"context":{"typeName":"Document"}},{"__symbolic":"reference","module":"../services/interact.service","name":"InteractService","line":71,"character":29},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":72,"character":22},{"__symbolic":"reference","module":"./drag-root.directive","name":"DragRootDirective","line":73,"character":40},{"__symbolic":"reference","module":"./account-for-scale.directive","name":"AccountForScaleDirective","line":74,"character":47},{"__symbolic":"reference","module":"./draggable.directive","name":"DraggableDirective","line":75,"character":40},{"__symbolic":"reference","module":"./dropzone.directive","name":"DropzoneDirective","line":76,"character":51},{"__symbolic":"reference","module":"./auto-scroll.directive","name":"AutoScrollDirective","line":77,"character":53}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"resizeListener":[{"__symbolic":"method"}],"initiateResizeEvents":[{"__symbolic":"method"}],"mapResizeEvent":[{"__symbolic":"method"}],"alignDimensionsWithInputs":[{"__symbolic":"method"}],"addResizePropertiesToElement":[{"__symbolic":"method"}],"subscribeToScrollEvents":[{"__symbolic":"method"}]}}}}]
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.directive.ngfactory.js","sourceRoot":"","sources":["../../../../../../libs/interact/src/lib/directives/resizable.directive.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\ni0.ComponentFactory;\n"]}
@@ -1,7 +1,7 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { ArrayOfNPipe } from './pipes/array-of-n.pipe';
4
- import { ApplyScaleDirective, DraggableDirective, DragRootDirective, AccountForScaleDirective, GesturableDirective, ResizableDirective, DropzoneDirective, DragPreviewDirective } from './directives';
4
+ import { ApplyScaleDirective, DraggableDirective, DragRootDirective, AutoScrollDirective, AccountForScaleDirective, GesturableDirective, ResizableDirective, DropzoneDirective, DragPreviewDirective } from './directives';
5
5
  import { InteractService } from './services/interact.service';
6
6
  import { INTERACT_ROOT_CONFIG } from './models';
7
7
  const EXPORTS = [
@@ -10,6 +10,7 @@ const EXPORTS = [
10
10
  DropzoneDirective,
11
11
  GesturableDirective,
12
12
  DragRootDirective,
13
+ AutoScrollDirective,
13
14
  AccountForScaleDirective,
14
15
  ApplyScaleDirective,
15
16
  DragPreviewDirective,
@@ -1 +1 @@
1
- {"version":3,"file":"interact.module.js","sourceRoot":"","sources":["../../../../../libs/interact/src/lib/interact.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACtM,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAsB,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAIpE,MAAM,OAAO,GAAG;IACd,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,wBAAwB;IACxB,mBAAmB;IACnB,oBAAoB;IACpB,YAAY;CACb,CAAC;AAaF,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,OAAO,CAAC,MAA0B;QACvC,MAAM,aAAa,GAAuB,EAAC,gBAAgB,EAAE,IAAI,EAAC,CAAA;QAClE,OAAO;YACL,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,kCAAM,aAAa,GAAK,MAAM,CAAC,EAAE;gBAC1E,eAAe;aAChB;SACF,CAAC;IACJ,CAAC;;;YApBF,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,kEAAkE;gBAClE,YAAY,EAAE;oBACZ,GAAG,OAAO;iBACX;gBACD,OAAO,EAAE;oBACP,GAAG,OAAO;iBACX;aACF","sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ArrayOfNPipe } from './pipes/array-of-n.pipe';\nimport { ApplyScaleDirective, DraggableDirective, DragRootDirective, AccountForScaleDirective, GesturableDirective, ResizableDirective, DropzoneDirective, DragPreviewDirective } from './directives';\nimport { InteractService } from './services/interact.service';\nimport { InteractRootConfig, INTERACT_ROOT_CONFIG } from './models';\n\n\n\nconst EXPORTS = [\n DraggableDirective,\n ResizableDirective,\n DropzoneDirective,\n GesturableDirective,\n DragRootDirective,\n AccountForScaleDirective,\n ApplyScaleDirective,\n DragPreviewDirective,\n ArrayOfNPipe,\n];\n\n\n@NgModule({\n imports: [CommonModule],\n // providers: [{ provide: INTERACT_ROOT_CONFIG, useValue: 'px' }],\n declarations: [\n ...EXPORTS,\n ],\n exports: [\n ...EXPORTS\n ]\n})\nexport class InteractModule {\n static forRoot(config: InteractRootConfig): ModuleWithProviders<InteractModule> {\n const defaultConfig: InteractRootConfig = {cssDimensionUnit: 'px'}\n return {\n ngModule: InteractModule,\n providers: [\n { provide: INTERACT_ROOT_CONFIG, useValue: {...defaultConfig, ...config} },\n InteractService\n ]\n };\n }\n}\n"]}
1
+ {"version":3,"file":"interact.module.js","sourceRoot":"","sources":["../../../../../libs/interact/src/lib/interact.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC3N,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAsB,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAIpE,MAAM,OAAO,GAAG;IACd,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,wBAAwB;IACxB,mBAAmB;IACnB,oBAAoB;IACpB,YAAY;CACb,CAAC;AAaF,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,OAAO,CAAC,MAA0B;QACvC,MAAM,aAAa,GAAuB,EAAC,gBAAgB,EAAE,IAAI,EAAC,CAAA;QAClE,OAAO;YACL,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,kCAAM,aAAa,GAAK,MAAM,CAAC,EAAE;gBAC1E,eAAe;aAChB;SACF,CAAC;IACJ,CAAC;;;YApBF,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,kEAAkE;gBAClE,YAAY,EAAE;oBACZ,GAAG,OAAO;iBACX;gBACD,OAAO,EAAE;oBACP,GAAG,OAAO;iBACX;aACF","sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ArrayOfNPipe } from './pipes/array-of-n.pipe';\nimport { ApplyScaleDirective, DraggableDirective, DragRootDirective, AutoScrollDirective, AccountForScaleDirective, GesturableDirective, ResizableDirective, DropzoneDirective, DragPreviewDirective } from './directives';\nimport { InteractService } from './services/interact.service';\nimport { InteractRootConfig, INTERACT_ROOT_CONFIG } from './models';\n\n\n\nconst EXPORTS = [\n DraggableDirective,\n ResizableDirective,\n DropzoneDirective,\n GesturableDirective,\n DragRootDirective,\n AutoScrollDirective,\n AccountForScaleDirective,\n ApplyScaleDirective,\n DragPreviewDirective,\n ArrayOfNPipe,\n];\n\n\n@NgModule({\n imports: [CommonModule],\n // providers: [{ provide: INTERACT_ROOT_CONFIG, useValue: 'px' }],\n declarations: [\n ...EXPORTS,\n ],\n exports: [\n ...EXPORTS\n ]\n})\nexport class InteractModule {\n static forRoot(config: InteractRootConfig): ModuleWithProviders<InteractModule> {\n const defaultConfig: InteractRootConfig = {cssDimensionUnit: 'px'}\n return {\n ngModule: InteractModule,\n providers: [\n { provide: INTERACT_ROOT_CONFIG, useValue: {...defaultConfig, ...config} },\n InteractService\n ]\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{"InteractModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":23,"character":12}],"declarations":[{"__symbolic":"reference","module":"./directives","name":"DraggableDirective","line":10,"character":2},{"__symbolic":"reference","module":"./directives","name":"ResizableDirective","line":11,"character":2},{"__symbolic":"reference","module":"./directives","name":"DropzoneDirective","line":12,"character":2},{"__symbolic":"reference","module":"./directives","name":"GesturableDirective","line":13,"character":2},{"__symbolic":"reference","module":"./directives","name":"DragRootDirective","line":14,"character":2},{"__symbolic":"reference","module":"./directives","name":"AccountForScaleDirective","line":15,"character":2},{"__symbolic":"reference","module":"./directives","name":"ApplyScaleDirective","line":16,"character":2},{"__symbolic":"reference","module":"./directives","name":"DragPreviewDirective","line":17,"character":2},{"__symbolic":"reference","module":"./pipes/array-of-n.pipe","name":"ArrayOfNPipe","line":18,"character":2}],"exports":[{"__symbolic":"reference","module":"./directives","name":"DraggableDirective","line":10,"character":2},{"__symbolic":"reference","module":"./directives","name":"ResizableDirective","line":11,"character":2},{"__symbolic":"reference","module":"./directives","name":"DropzoneDirective","line":12,"character":2},{"__symbolic":"reference","module":"./directives","name":"GesturableDirective","line":13,"character":2},{"__symbolic":"reference","module":"./directives","name":"DragRootDirective","line":14,"character":2},{"__symbolic":"reference","module":"./directives","name":"AccountForScaleDirective","line":15,"character":2},{"__symbolic":"reference","module":"./directives","name":"ApplyScaleDirective","line":16,"character":2},{"__symbolic":"reference","module":"./directives","name":"DragPreviewDirective","line":17,"character":2},{"__symbolic":"reference","module":"./pipes/array-of-n.pipe","name":"ArrayOfNPipe","line":18,"character":2}]}]}]}}}]
1
+ [{"__symbolic":"module","version":4,"metadata":{"InteractModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":23,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":24,"character":12}],"declarations":[{"__symbolic":"reference","module":"./directives","name":"DraggableDirective","line":10,"character":2},{"__symbolic":"reference","module":"./directives","name":"ResizableDirective","line":11,"character":2},{"__symbolic":"reference","module":"./directives","name":"DropzoneDirective","line":12,"character":2},{"__symbolic":"reference","module":"./directives","name":"GesturableDirective","line":13,"character":2},{"__symbolic":"reference","module":"./directives","name":"DragRootDirective","line":14,"character":2},{"__symbolic":"reference","module":"./directives","name":"AutoScrollDirective","line":15,"character":2},{"__symbolic":"reference","module":"./directives","name":"AccountForScaleDirective","line":16,"character":2},{"__symbolic":"reference","module":"./directives","name":"ApplyScaleDirective","line":17,"character":2},{"__symbolic":"reference","module":"./directives","name":"DragPreviewDirective","line":18,"character":2},{"__symbolic":"reference","module":"./pipes/array-of-n.pipe","name":"ArrayOfNPipe","line":19,"character":2}],"exports":[{"__symbolic":"reference","module":"./directives","name":"DraggableDirective","line":10,"character":2},{"__symbolic":"reference","module":"./directives","name":"ResizableDirective","line":11,"character":2},{"__symbolic":"reference","module":"./directives","name":"DropzoneDirective","line":12,"character":2},{"__symbolic":"reference","module":"./directives","name":"GesturableDirective","line":13,"character":2},{"__symbolic":"reference","module":"./directives","name":"DragRootDirective","line":14,"character":2},{"__symbolic":"reference","module":"./directives","name":"AutoScrollDirective","line":15,"character":2},{"__symbolic":"reference","module":"./directives","name":"AccountForScaleDirective","line":16,"character":2},{"__symbolic":"reference","module":"./directives","name":"ApplyScaleDirective","line":17,"character":2},{"__symbolic":"reference","module":"./directives","name":"DragPreviewDirective","line":18,"character":2},{"__symbolic":"reference","module":"./pipes/array-of-n.pipe","name":"ArrayOfNPipe","line":19,"character":2}]}]}]}}}]
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interact.module.ngfactory.js","sourceRoot":"","sources":["../../../../../libs/interact/src/lib/interact.module.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\nimport * as i1 from './interact.module';\nimport * as i2 from '@angular/common';\nimport * as i3 from './directives/draggable.directive';\nimport * as i4 from './directives/resizable.directive';\nimport * as i5 from './directives/dropzone.directive';\nimport * as i6 from './directives/gesturable.directive';\nimport * as i7 from './directives/drag-root.directive';\nimport * as i8 from './directives/auto-scroll.directive';\nimport * as i9 from './directives/account-for-scale.directive';\nimport * as i10 from './directives/apply-scale.directive';\nimport * as i11 from './directives/drag-preview.directive';\nimport * as i12 from './pipes/array-of-n.pipe';\nexport const InteractModuleNgFactory:i0.NgModuleFactory<i1.InteractModule> = (null as any);\nvar _decl0_0:i2.NgClass = (<any>(null as any));\nvar _decl0_1:i2.NgComponentOutlet = (<any>(null as any));\nvar _decl0_2:i2.NgForOf<any,any> = (<any>(null as any));\nvar _decl0_3:i2.NgIf<any> = (<any>(null as any));\nvar _decl0_4:i2.NgTemplateOutlet = (<any>(null as any));\nvar _decl0_5:i2.NgStyle = (<any>(null as any));\nvar _decl0_6:i2.NgSwitch = (<any>(null as any));\nvar _decl0_7:i2.NgSwitchCase = (<any>(null as any));\nvar _decl0_8:i2.NgSwitchDefault = (<any>(null as any));\nvar _decl0_9:i2.NgPlural = (<any>(null as any));\nvar _decl0_10:i2.NgPluralCase = (<any>(null as any));\nvar _decl0_11:i3.DraggableDirective<any> = (<any>(null as any));\nvar _decl0_12:i4.ResizableDirective = (<any>(null as any));\nvar _decl0_13:i5.DropzoneDirective = (<any>(null as any));\nvar _decl0_14:i6.GesturableDirective<any> = (<any>(null as any));\nvar _decl0_15:i7.DragRootDirective = (<any>(null as any));\nvar _decl0_16:i8.AutoScrollDirective = (<any>(null as any));\nvar _decl0_17:i9.AccountForScaleDirective = (<any>(null as any));\nvar _decl0_18:i10.ApplyScaleDirective = (<any>(null as any));\nvar _decl0_19:i11.DragPreviewDirective<any> = (<any>(null as any));\nvar _decl0_20:i2.AsyncPipe = (<any>(null as any));\nvar _decl0_21:i2.UpperCasePipe = (<any>(null as any));\nvar _decl0_22:i2.LowerCasePipe = (<any>(null as any));\nvar _decl0_23:i2.JsonPipe = (<any>(null as any));\nvar _decl0_24:i2.SlicePipe = (<any>(null as any));\nvar _decl0_25:i2.DecimalPipe = (<any>(null as any));\nvar _decl0_26:i2.PercentPipe = (<any>(null as any));\nvar _decl0_27:i2.TitleCasePipe = (<any>(null as any));\nvar _decl0_28:i2.CurrencyPipe = (<any>(null as any));\nvar _decl0_29:i2.DatePipe = (<any>(null as any));\nvar _decl0_30:i2.I18nPluralPipe = (<any>(null as any));\nvar _decl0_31:i2.I18nSelectPipe = (<any>(null as any));\nvar _decl0_32:i2.KeyValuePipe = (<any>(null as any));\nvar _decl0_34:i12.ArrayOfNPipe = (<any>(null as any));\nvar _decl0_35:i2.CommonModule = (<any>(null as any));\nvar _decl0_36:i0.TemplateRef<any> = (<any>(null as any));\nvar _decl0_37:i0.ElementRef<any> = (<any>(null as any));\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-of-n.pipe.ngfactory.js","sourceRoot":"","sources":["../../../../../../libs/interact/src/lib/pipes/array-of-n.pipe.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\ni0.ComponentFactory;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interact.service.ngfactory.js","sourceRoot":"","sources":["../../../../../../libs/interact/src/lib/services/interact.service.ngfactory.ts"],"names":[],"mappings":"","sourcesContent":["import * as i0 from '@angular/core';\ni0.ComponentFactory;\n"]}
@@ -2,6 +2,6 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './index';
5
- export { AccountForScaleDirective as ɵf, ApplyScaleDirective as ɵg, DragPreviewDirective as ɵh, DragRootDirective as ɵe, DraggableDirective as ɵa, DropzoneDirective as ɵc, GesturableDirective as ɵd, ResizableDirective as ɵb } from './lib/directives';
6
- export { ArrayOfNPipe as ɵi } from './lib/pipes/array-of-n.pipe';
5
+ export { AccountForScaleDirective as ɵg, ApplyScaleDirective as ɵh, AutoScrollDirective as ɵf, DragPreviewDirective as ɵi, DragRootDirective as ɵe, DraggableDirective as ɵa, DropzoneDirective as ɵc, GesturableDirective as ɵd, ResizableDirective as ɵb } from './lib/directives';
6
+ export { ArrayOfNPipe as ɵj } from './lib/pipes/array-of-n.pipe';
7
7
  //# sourceMappingURL=tft-interact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tft-interact.js","sourceRoot":"","sources":["../../../../libs/interact/src/tft-interact.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AAExB,OAAO,EAAC,wBAAwB,IAAI,EAAE,EAAC,mBAAmB,IAAI,EAAE,EAAC,oBAAoB,IAAI,EAAE,EAAC,iBAAiB,IAAI,EAAE,EAAC,kBAAkB,IAAI,EAAE,EAAC,iBAAiB,IAAI,EAAE,EAAC,mBAAmB,IAAI,EAAE,EAAC,kBAAkB,IAAI,EAAE,EAAC,MAAM,kBAAkB,CAAC;AACjP,OAAO,EAAC,YAAY,IAAI,EAAE,EAAC,MAAM,6BAA6B,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {AccountForScaleDirective as ɵf,ApplyScaleDirective as ɵg,DragPreviewDirective as ɵh,DragRootDirective as ɵe,DraggableDirective as ɵa,DropzoneDirective as ɵc,GesturableDirective as ɵd,ResizableDirective as ɵb} from './lib/directives';\nexport {ArrayOfNPipe as ɵi} from './lib/pipes/array-of-n.pipe';"]}
1
+ {"version":3,"file":"tft-interact.js","sourceRoot":"","sources":["../../../../libs/interact/src/tft-interact.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AAExB,OAAO,EAAC,wBAAwB,IAAI,EAAE,EAAC,mBAAmB,IAAI,EAAE,EAAC,mBAAmB,IAAI,EAAE,EAAC,oBAAoB,IAAI,EAAE,EAAC,iBAAiB,IAAI,EAAE,EAAC,kBAAkB,IAAI,EAAE,EAAC,iBAAiB,IAAI,EAAE,EAAC,mBAAmB,IAAI,EAAE,EAAC,kBAAkB,IAAI,EAAE,EAAC,MAAM,kBAAkB,CAAC;AAC3Q,OAAO,EAAC,YAAY,IAAI,EAAE,EAAC,MAAM,6BAA6B,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {AccountForScaleDirective as ɵg,ApplyScaleDirective as ɵh,AutoScrollDirective as ɵf,DragPreviewDirective as ɵi,DragRootDirective as ɵe,DraggableDirective as ɵa,DropzoneDirective as ɵc,GesturableDirective as ɵd,ResizableDirective as ɵb} from './lib/directives';\nexport {ArrayOfNPipe as ɵj} from './lib/pipes/array-of-n.pipe';"]}
@@ -1 +1 @@
1
- [{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./index"},{"from":"./lib/directives","export":[{"name":"AccountForScaleDirective","as":"ɵf"},{"name":"ApplyScaleDirective","as":"ɵg"},{"name":"DragPreviewDirective","as":"ɵh"},{"name":"DragRootDirective","as":"ɵe"},{"name":"DraggableDirective","as":"ɵa"},{"name":"DropzoneDirective","as":"ɵc"},{"name":"GesturableDirective","as":"ɵd"},{"name":"ResizableDirective","as":"ɵb"}]},{"from":"./lib/pipes/array-of-n.pipe","export":[{"name":"ArrayOfNPipe","as":"ɵi"}]}]}]
1
+ [{"__symbolic":"module","version":4,"metadata":{},"exports":[{"from":"./index"},{"from":"./lib/directives","export":[{"name":"AccountForScaleDirective","as":"ɵg"},{"name":"ApplyScaleDirective","as":"ɵh"},{"name":"AutoScrollDirective","as":"ɵf"},{"name":"DragPreviewDirective","as":"ɵi"},{"name":"DragRootDirective","as":"ɵe"},{"name":"DraggableDirective","as":"ɵa"},{"name":"DropzoneDirective","as":"ɵc"},{"name":"GesturableDirective","as":"ɵd"},{"name":"ResizableDirective","as":"ɵb"}]},{"from":"./lib/pipes/array-of-n.pipe","export":[{"name":"ArrayOfNPipe","as":"ɵj"}]}]}]
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, InjectionToken, Injectable, RendererFactory2, NgZone, Optional, Inject, Directive, ElementRef, Input, EventEmitter, Renderer2, Output, TemplateRef, Self, ViewContainerRef, SkipSelf, ContentChild, HostBinding, NgModule } from '@angular/core';
2
+ import { Pipe, InjectionToken, Injectable, RendererFactory2, NgZone, Optional, Inject, Directive, ElementRef, Input, EventEmitter, Renderer2, HostBinding, Output, TemplateRef, Self, HostListener, ViewContainerRef, SkipSelf, ContentChild, NgModule } from '@angular/core';
3
3
  import { DOCUMENT, CommonModule } from '@angular/common';
4
4
  import interact from 'interactjs';
5
- import { BehaviorSubject, combineLatest } from 'rxjs';
6
- import { shareReplay, tap, map } from 'rxjs/operators';
5
+ import { BehaviorSubject, combineLatest, Subject } from 'rxjs';
6
+ import { shareReplay, tap, map, scan } from 'rxjs/operators';
7
7
 
8
8
  class ArrayOfNPipe {
9
9
  /**
@@ -271,6 +271,7 @@ class DropzoneDirective {
271
271
  this.interactService = interactService;
272
272
  this.account_for_scale_dir = account_for_scale_dir;
273
273
  this.dropzoneConfig = {};
274
+ this.position = 'relative';
274
275
  // proxies to pass interact events through to consumer of directive
275
276
  this.dropActivate = new EventEmitter();
276
277
  this.dragEnter = new EventEmitter();
@@ -343,7 +344,7 @@ DropzoneDirective.decorators = [
343
344
  { type: Directive, args: [{
344
345
  selector: '[tftDropzone]',
345
346
  host: {
346
- '[id]': 'dropzoneId',
347
+ '[id]': 'dropzoneId'
347
348
  }
348
349
  },] }
349
350
  ];
@@ -357,6 +358,7 @@ DropzoneDirective.propDecorators = {
357
358
  dropzoneId: [{ type: Input }],
358
359
  dropzoneConfig: [{ type: Input }],
359
360
  dropzoneData: [{ type: Input }],
361
+ position: [{ type: Input }, { type: HostBinding, args: ['style.position',] }],
360
362
  dropActivate: [{ type: Output }],
361
363
  dragEnter: [{ type: Output }],
362
364
  dragLeave: [{ type: Output }],
@@ -442,10 +444,61 @@ DragRootDirective.ctorParameters = () => [
442
444
  { type: AccountForScaleDirective, decorators: [{ type: Optional }, { type: Self }] }
443
445
  ];
444
446
 
447
+ ;
448
+ /**
449
+ * Use to apply scale to the element and tell the drag and resize directives to account for the scale when
450
+ * @example <div tftAccountForScale [scale]="2.5"> <div tftDraggable> </div> </div>
451
+ * @note if `dragRoot` is used this directive should be used on the same element to ensure that the drag
452
+ * element accounts for scale
453
+ */
454
+ class AutoScrollDirective {
455
+ constructor(el) {
456
+ this.el = el;
457
+ /**
458
+ * Limit minimum time between scroll events in milliseconds
459
+ */
460
+ this.autoScrollConfig = {
461
+ margin: 50,
462
+ distance: 3,
463
+ interval: 50,
464
+ speed: 300,
465
+ enabled: true
466
+ };
467
+ this.scrollDeltaObserver = new Subject();
468
+ const { scrollTop, scrollLeft } = el.nativeElement;
469
+ this.scrollSubject = new BehaviorSubject({ scrollTop, scrollLeft });
470
+ this.scrollObserver = this.scrollSubject.pipe(scan((previous, current) => {
471
+ const scrollTop = current.scrollTop - previous.scrollTop;
472
+ const scrollLeft = current.scrollLeft - previous.scrollLeft;
473
+ this.scrollDeltaObserver.next({ scrollTop, scrollLeft });
474
+ return current;
475
+ }), shareReplay(1));
476
+ this.scrollObserver.subscribe();
477
+ }
478
+ // this setup allows consumers to set x, y scale independently or just set them both with scale
479
+ scroll(scrollEvent) {
480
+ const target = scrollEvent.target;
481
+ const { scrollTop, scrollLeft } = target;
482
+ this.scrollSubject.next({ scrollTop, scrollLeft });
483
+ }
484
+ }
485
+ AutoScrollDirective.decorators = [
486
+ { type: Directive, args: [{
487
+ selector: '[tftAutoScroll]'
488
+ },] }
489
+ ];
490
+ AutoScrollDirective.ctorParameters = () => [
491
+ { type: ElementRef }
492
+ ];
493
+ AutoScrollDirective.propDecorators = {
494
+ autoScrollConfig: [{ type: Input }],
495
+ scroll: [{ type: HostListener, args: ['scroll', ['$event'],] }]
496
+ };
497
+
445
498
  /** @dynamic */
446
499
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
447
500
  class DraggableDirective {
448
- constructor(el, interactService, renderer, _viewContainerRef, _document, account_for_scale_dir, dropzone_dir, drag_root_dir) {
501
+ constructor(el, interactService, renderer, _viewContainerRef, _document, account_for_scale_dir, dropzone_dir, drag_root_dir, auto_scroll_dir) {
449
502
  this.el = el;
450
503
  this.interactService = interactService;
451
504
  this.renderer = renderer;
@@ -454,6 +507,7 @@ class DraggableDirective {
454
507
  this.account_for_scale_dir = account_for_scale_dir;
455
508
  this.dropzone_dir = dropzone_dir;
456
509
  this.drag_root_dir = drag_root_dir;
510
+ this.auto_scroll_dir = auto_scroll_dir;
457
511
  /* zIndex while dragging*/
458
512
  this.dragZIndex = 10000;
459
513
  this.enableDragDefault = true;
@@ -580,7 +634,10 @@ class DraggableDirective {
580
634
  return typeof num === 'number' && !isNaN(num);
581
635
  }
582
636
  initiateDragEvents(dragConfig, nativeElement) {
583
- return interact(nativeElement).draggable(Object.assign(Object.assign({}, dragConfig), { enabled: !(this.disabled || this.dragDisabled) }))
637
+ const defaultDragConfig = Object.assign(Object.assign(Object.assign({}, dragConfig), { enabled: !(this.disabled || this.dragDisabled) }), (this.auto_scroll_dir && {
638
+ autoScroll: Object.assign(Object.assign({}, this.auto_scroll_dir.autoScrollConfig), { container: this.auto_scroll_dir.el.nativeElement })
639
+ }));
640
+ return interact(nativeElement).draggable(defaultDragConfig)
584
641
  .on('dragstart', (event) => {
585
642
  var _a, _b, _c;
586
643
  const interaction = event.interaction;
@@ -608,6 +665,10 @@ class DraggableDirective {
608
665
  this.renderer.setStyle(this.el.nativeElement, 'display', 'none');
609
666
  }
610
667
  }
668
+ // subscribe to scroll events if they are there, by only subscribing on dragstart we avoid wasting subscriptions on interactables that aren't be dragged
669
+ if (this.auto_scroll_dir) {
670
+ this.subscribeToScrollEvents();
671
+ }
611
672
  this.dragStart.emit(this.mapDragEvent(event));
612
673
  })
613
674
  .on('dragmove', (event) => {
@@ -629,6 +690,10 @@ class DraggableDirective {
629
690
  }
630
691
  this.renderer.setStyle(this.el.nativeElement, 'display', '');
631
692
  this.dragEnd.emit(mappedEvent);
693
+ // unsubscribe from scroll events if subscribed
694
+ if (this.auto_scroll_dir) {
695
+ this.scrollEventsSubscription.unsubscribe();
696
+ }
632
697
  if (this.el.nativeElement !== this.previewRef) {
633
698
  // we do this in a timeout, so that we don't remove before the dropzone can get the boundingElementRect
634
699
  setTimeout(() => {
@@ -637,6 +702,13 @@ class DraggableDirective {
637
702
  }
638
703
  });
639
704
  }
705
+ subscribeToScrollEvents() {
706
+ this.scrollEventsSubscription = this.auto_scroll_dir.scrollDeltaObserver.subscribe(({ scrollLeft, scrollTop }) => {
707
+ const deltaX = this.scale ? scrollLeft / this.scale : scrollLeft;
708
+ const deltaY = this.scale ? scrollTop / this.scale : scrollTop;
709
+ this.interactService.updateDeltas(this.interactableId, this.registryId, { deltaX, deltaY }, this.previewRef);
710
+ });
711
+ }
640
712
  }
641
713
  DraggableDirective.decorators = [
642
714
  { type: Directive, args: [{
@@ -657,7 +729,8 @@ DraggableDirective.ctorParameters = () => [
657
729
  { type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
658
730
  { type: AccountForScaleDirective, decorators: [{ type: Optional }] },
659
731
  { type: DropzoneDirective, decorators: [{ type: Optional }, { type: SkipSelf }] },
660
- { type: DragRootDirective, decorators: [{ type: Optional }, { type: SkipSelf }] }
732
+ { type: DragRootDirective, decorators: [{ type: Optional }, { type: SkipSelf }] },
733
+ { type: AutoScrollDirective, decorators: [{ type: Optional }, { type: SkipSelf }] }
661
734
  ];
662
735
  DraggableDirective.propDecorators = {
663
736
  x: [{ type: Input }],
@@ -699,7 +772,7 @@ function getPreviewInsertionPoint(documentRef) {
699
772
 
700
773
  /** @dynamic */
701
774
  class ResizableDirective {
702
- constructor(el, _document, interactService, renderer, drag_root_dir, account_for_scale_dir, draggable_dir, dropzone_dir) {
775
+ constructor(el, _document, interactService, renderer, drag_root_dir, account_for_scale_dir, draggable_dir, dropzone_dir, auto_scroll_dir) {
703
776
  var _a;
704
777
  this.el = el;
705
778
  this._document = _document;
@@ -709,6 +782,7 @@ class ResizableDirective {
709
782
  this.account_for_scale_dir = account_for_scale_dir;
710
783
  this.draggable_dir = draggable_dir;
711
784
  this.dropzone_dir = dropzone_dir;
785
+ this.auto_scroll_dir = auto_scroll_dir;
712
786
  this.enableResizeDefault = true;
713
787
  // TODO: should this be an input with default or should consuming user set display in styles each time
714
788
  this.position = 'absolute';
@@ -720,6 +794,7 @@ class ResizableDirective {
720
794
  this.defaultConfig = {
721
795
  edges: { left: true, right: true, bottom: true, top: true }
722
796
  };
797
+ this.activeEdges = { left: false, right: false, top: false, bottom: false };
723
798
  this.dragRootEl = ((_a = drag_root_dir === null || drag_root_dir === void 0 ? void 0 : drag_root_dir.el) === null || _a === void 0 ? void 0 : _a.nativeElement) || this._document.body;
724
799
  }
725
800
  get scale() {
@@ -753,23 +828,16 @@ class ResizableDirective {
753
828
  this.interactService.destroyInteractable(this.interactableId, this.registryId);
754
829
  }
755
830
  resizeListener(event) {
831
+ const element = this.el.nativeElement;
756
832
  const scale = this.scale;
757
- let deltaX;
758
- let deltaY;
759
- let height;
760
- let width;
761
- if (scale) {
762
- deltaX = event.deltaRect.left / scale;
763
- deltaY = event.deltaRect.top / scale;
764
- height = event.rect.height / scale;
765
- width = event.rect.width / scale;
766
- }
767
- else {
768
- deltaX = event.deltaRect.left;
769
- deltaY = event.deltaRect.top;
770
- width = event.rect.width;
771
- height = event.rect.height;
772
- }
833
+ const { deltaRect } = event;
834
+ const deltaX = deltaRect.left / scale;
835
+ const deltaY = deltaRect.top / scale;
836
+ // We get the width and height directly from the native element because
837
+ // the event dimension can get out of sync when resizing with autoScroll
838
+ const rect = element.getBoundingClientRect();
839
+ const width = (rect.width + deltaRect.width) / scale;
840
+ const height = (rect.height + deltaRect.height) / scale;
773
841
  this.interactService.updateSize(this.interactableId, this.registryId, { deltaX, deltaY, width, height }, this.el.nativeElement);
774
842
  }
775
843
  /**
@@ -782,9 +850,18 @@ class ResizableDirective {
782
850
  initiateResizeEvents(resizeConfig, nativeElement) {
783
851
  var _a;
784
852
  // TODO: This should try and get interactable from tft_draggable if it exists
853
+ const defaultResizeConfig = Object.assign(Object.assign(Object.assign({}, resizeConfig), { enabled: !this.resizeDisabled }), (this.auto_scroll_dir && {
854
+ autoScroll: Object.assign(Object.assign({}, this.auto_scroll_dir.autoScrollConfig), { container: this.auto_scroll_dir.el.nativeElement })
855
+ }));
785
856
  const interactable = ((_a = this.draggable_dir) === null || _a === void 0 ? void 0 : _a.interactable) || interact(nativeElement);
786
- return interactable.resizable(Object.assign(Object.assign({}, resizeConfig), { enabled: !this.resizeDisabled }))
787
- .on('resizestart', (event) => { this.resizeStart.emit(this.mapResizeEvent(event)); })
857
+ return interactable.resizable(defaultResizeConfig)
858
+ .on('resizestart', (event) => {
859
+ this.activeEdges = event.edges;
860
+ if (this.auto_scroll_dir) {
861
+ this.subscribeToScrollEvents();
862
+ }
863
+ this.resizeStart.emit(this.mapResizeEvent(event));
864
+ })
788
865
  .on('resizemove', (event) => {
789
866
  if (this.enableResizeDefault) {
790
867
  this.resizeListener(event);
@@ -793,11 +870,17 @@ class ResizableDirective {
793
870
  this.resizeMove.emit(mappedEvent);
794
871
  })
795
872
  .on('resizeinertiastart', (event) => this.resizeInertiaStart.emit(this.mapResizeEvent(event)))
796
- .on('resizeend', (event) => this.resizeEnd.emit(this.mapResizeEvent(event)));
873
+ .on('resizeend', (event) => {
874
+ if (this.auto_scroll_dir) {
875
+ this.scrollEventsSubscription.unsubscribe();
876
+ }
877
+ this.activeEdges = { left: false, right: false, top: false, bottom: false };
878
+ this.resizeEnd.emit(this.mapResizeEvent(event));
879
+ });
797
880
  }
798
881
  mapResizeEvent(event) {
799
882
  var _a, _b;
800
- const target = event.target;
883
+ const target = this.el.nativeElement;
801
884
  const relatedTarget = (_b = (_a = this.draggable_dir) === null || _a === void 0 ? void 0 : _a.dropzone_dir) === null || _b === void 0 ? void 0 : _b.el.nativeElement;
802
885
  const scale = this.scale;
803
886
  const positionInDropTarget = target && relatedTarget
@@ -822,6 +905,20 @@ class ResizableDirective {
822
905
  addResizePropertiesToElement(nativeElement) {
823
906
  this.renderer.setProperty(nativeElement, 'resizeRef', this);
824
907
  }
908
+ subscribeToScrollEvents() {
909
+ this.scrollEventsSubscription = this.auto_scroll_dir.scrollDeltaObserver.subscribe(({ scrollLeft, scrollTop }) => {
910
+ const scale = this.scale;
911
+ const target = this.el.nativeElement;
912
+ const { width: prevWidth, height: prevHeight } = target.getBoundingClientRect();
913
+ const deltaHeight = scrollTop * (this.activeEdges.top ? -1 : this.activeEdges.bottom ? 1 : 0);
914
+ const deltaWidth = scrollLeft * (this.activeEdges.left ? -1 : this.activeEdges.right ? 1 : 0);
915
+ const height = (prevHeight + deltaHeight) / scale;
916
+ const width = (prevWidth + deltaWidth) / scale;
917
+ const deltaX = this.activeEdges.left ? (scrollLeft / scale) : 0;
918
+ const deltaY = this.activeEdges.top ? (scrollTop / scale) : 0;
919
+ this.interactService.updateSize(this.interactableId, this.registryId, { deltaX, deltaY, width, height }, this.el.nativeElement);
920
+ });
921
+ }
825
922
  }
826
923
  ResizableDirective.decorators = [
827
924
  { type: Directive, args: [{
@@ -847,7 +944,8 @@ ResizableDirective.ctorParameters = () => [
847
944
  { type: DragRootDirective, decorators: [{ type: Optional }] },
848
945
  { type: AccountForScaleDirective, decorators: [{ type: Optional }] },
849
946
  { type: DraggableDirective, decorators: [{ type: Optional }] },
850
- { type: DropzoneDirective, decorators: [{ type: Optional }, { type: SkipSelf }] }
947
+ { type: DropzoneDirective, decorators: [{ type: Optional }, { type: SkipSelf }] },
948
+ { type: AutoScrollDirective, decorators: [{ type: Optional }, { type: SkipSelf }] }
851
949
  ];
852
950
  ResizableDirective.propDecorators = {
853
951
  enableResizeDefault: [{ type: Input }],
@@ -968,6 +1066,7 @@ const EXPORTS = [
968
1066
  DropzoneDirective,
969
1067
  GesturableDirective,
970
1068
  DragRootDirective,
1069
+ AutoScrollDirective,
971
1070
  AccountForScaleDirective,
972
1071
  ApplyScaleDirective,
973
1072
  DragPreviewDirective,
@@ -1002,5 +1101,5 @@ InteractModule.decorators = [
1002
1101
  * Generated bundle index. Do not edit.
1003
1102
  */
1004
1103
 
1005
- export { AccountForScaleDirective, ApplyScaleDirective, ArrayOfNPipe, DEFAULT_REGISTRY_ID, DragPreviewDirective, DragRootDirective, DraggableDirective, DropzoneDirective, GesturableDirective, INTERACT_ROOT_CONFIG, InteractModule, ResizableDirective, TFT_DRAG_PREVIEW, cloneElement$1 as cloneElement, defaultDelta, defaultPosition, defaultSize, getClosestMatchingAncestor, getRootNode, DraggableDirective as ɵa, ResizableDirective as ɵb, DropzoneDirective as ɵc, GesturableDirective as ɵd, DragRootDirective as ɵe, AccountForScaleDirective as ɵf, ApplyScaleDirective as ɵg, DragPreviewDirective as ɵh, ArrayOfNPipe as ɵi };
1104
+ export { AccountForScaleDirective, ApplyScaleDirective, ArrayOfNPipe, AutoScrollDirective, DEFAULT_REGISTRY_ID, DragPreviewDirective, DragRootDirective, DraggableDirective, DropzoneDirective, GesturableDirective, INTERACT_ROOT_CONFIG, InteractModule, ResizableDirective, TFT_DRAG_PREVIEW, cloneElement$1 as cloneElement, defaultDelta, defaultPosition, defaultSize, getClosestMatchingAncestor, getRootNode, DraggableDirective as ɵa, ResizableDirective as ɵb, DropzoneDirective as ɵc, GesturableDirective as ɵd, DragRootDirective as ɵe, AutoScrollDirective as ɵf, AccountForScaleDirective as ɵg, ApplyScaleDirective as ɵh, DragPreviewDirective as ɵi, ArrayOfNPipe as ɵj };
1006
1105
  //# sourceMappingURL=tft-interact.js.map