@angular/cdk 10.0.2 → 10.1.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.
Files changed (128) hide show
  1. package/a11y/aria-describer/aria-describer.d.ts +10 -1
  2. package/a11y/index.metadata.json +1 -1
  3. package/a11y/interactivity-checker/interactivity-checker.d.ts +11 -1
  4. package/a11y/key-manager/list-key-manager.d.ts +6 -0
  5. package/accordion/accordion.d.ts +7 -1
  6. package/accordion/index.d.ts +1 -0
  7. package/accordion/index.metadata.json +1 -1
  8. package/bundles/cdk-a11y.umd.js +63 -11
  9. package/bundles/cdk-a11y.umd.js.map +1 -1
  10. package/bundles/cdk-a11y.umd.min.js +11 -11
  11. package/bundles/cdk-a11y.umd.min.js.map +1 -1
  12. package/bundles/cdk-accordion.umd.js +12 -4
  13. package/bundles/cdk-accordion.umd.js.map +1 -1
  14. package/bundles/cdk-accordion.umd.min.js +2 -2
  15. package/bundles/cdk-accordion.umd.min.js.map +1 -1
  16. package/bundles/cdk-drag-drop.umd.js +640 -599
  17. package/bundles/cdk-drag-drop.umd.js.map +1 -1
  18. package/bundles/cdk-drag-drop.umd.min.js +8 -16
  19. package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
  20. package/bundles/cdk-overlay.umd.js +199 -42
  21. package/bundles/cdk-overlay.umd.js.map +1 -1
  22. package/bundles/cdk-overlay.umd.min.js +11 -18
  23. package/bundles/cdk-overlay.umd.min.js.map +1 -1
  24. package/bundles/cdk-platform.umd.min.js +1 -1
  25. package/bundles/cdk-platform.umd.min.js.map +1 -1
  26. package/bundles/cdk-scrolling.umd.js +9 -1
  27. package/bundles/cdk-scrolling.umd.js.map +1 -1
  28. package/bundles/cdk-scrolling.umd.min.js +7 -0
  29. package/bundles/cdk-scrolling.umd.min.js.map +1 -1
  30. package/bundles/cdk-testing-protractor.umd.min.js +1 -1
  31. package/bundles/cdk-testing-protractor.umd.min.js.map +1 -1
  32. package/bundles/cdk-testing-testbed.umd.min.js +8 -8
  33. package/bundles/cdk-testing-testbed.umd.min.js.map +1 -1
  34. package/bundles/cdk-testing.umd.js +32 -0
  35. package/bundles/cdk-testing.umd.js.map +1 -1
  36. package/bundles/cdk-testing.umd.min.js +5 -5
  37. package/bundles/cdk-testing.umd.min.js.map +1 -1
  38. package/bundles/cdk-tree.umd.js +6 -2
  39. package/bundles/cdk-tree.umd.js.map +1 -1
  40. package/bundles/cdk-tree.umd.min.js +3 -3
  41. package/bundles/cdk-tree.umd.min.js.map +1 -1
  42. package/bundles/cdk.umd.js +1 -1
  43. package/bundles/cdk.umd.js.map +1 -1
  44. package/bundles/cdk.umd.min.js +1 -1
  45. package/bundles/cdk.umd.min.js.map +1 -1
  46. package/drag-drop/directives/drag-handle.d.ts +7 -1
  47. package/drag-drop/directives/drag-placeholder.d.ts +7 -1
  48. package/drag-drop/directives/drag-preview.d.ts +7 -1
  49. package/drag-drop/directives/drag.d.ts +3 -7
  50. package/drag-drop/directives/drop-list-group.d.ts +7 -1
  51. package/drag-drop/directives/drop-list.d.ts +7 -1
  52. package/drag-drop/index.d.ts +2 -2
  53. package/drag-drop/index.metadata.json +1 -1
  54. package/esm2015/a11y/aria-describer/aria-describer.js +20 -6
  55. package/esm2015/a11y/interactivity-checker/interactivity-checker.js +16 -3
  56. package/esm2015/a11y/key-manager/list-key-manager.js +27 -2
  57. package/esm2015/accordion/accordion-item.js +7 -7
  58. package/esm2015/accordion/accordion.js +9 -2
  59. package/esm2015/accordion/index.js +2 -1
  60. package/esm2015/drag-drop/directives/drag-handle.js +11 -4
  61. package/esm2015/drag-drop/directives/drag-placeholder.js +10 -3
  62. package/esm2015/drag-drop/directives/drag-preview.js +10 -3
  63. package/esm2015/drag-drop/directives/drag.js +19 -15
  64. package/esm2015/drag-drop/directives/drop-list-group.js +9 -2
  65. package/esm2015/drag-drop/directives/drop-list.js +11 -6
  66. package/esm2015/drag-drop/index.js +3 -2
  67. package/esm2015/layout/breakpoints-observer.js +1 -1
  68. package/esm2015/overlay/dispatchers/base-overlay-dispatcher.js +51 -0
  69. package/esm2015/overlay/dispatchers/index.js +10 -0
  70. package/esm2015/overlay/dispatchers/overlay-keyboard-dispatcher.js +79 -0
  71. package/esm2015/overlay/dispatchers/overlay-outside-click-dispatcher.js +94 -0
  72. package/esm2015/overlay/index.js +5 -4
  73. package/esm2015/overlay/overlay-config.js +5 -1
  74. package/esm2015/overlay/overlay-directives.js +17 -7
  75. package/esm2015/overlay/overlay-module.js +2 -2
  76. package/esm2015/overlay/overlay-ref.js +24 -2
  77. package/esm2015/overlay/overlay-reference.js +1 -1
  78. package/esm2015/overlay/overlay.js +10 -5
  79. package/esm2015/overlay/position/overlay-position-builder.js +1 -1
  80. package/esm2015/overlay/public-api.js +2 -2
  81. package/esm2015/scrolling/public-api.js +2 -1
  82. package/esm2015/scrolling/virtual-for-of.js +1 -1
  83. package/esm2015/scrolling/virtual-scroll-repeater.js +8 -0
  84. package/esm2015/scrolling/virtual-scroll-viewport.js +2 -2
  85. package/esm2015/testing/component-harness.js +19 -1
  86. package/esm2015/testing/harness-environment.js +7 -1
  87. package/esm2015/tree/control/nested-tree-control.js +7 -3
  88. package/esm2015/version.js +1 -1
  89. package/fesm2015/a11y.js +60 -10
  90. package/fesm2015/a11y.js.map +1 -1
  91. package/fesm2015/accordion.js +13 -6
  92. package/fesm2015/accordion.js.map +1 -1
  93. package/fesm2015/cdk.js +1 -1
  94. package/fesm2015/cdk.js.map +1 -1
  95. package/fesm2015/drag-drop.js +607 -570
  96. package/fesm2015/drag-drop.js.map +1 -1
  97. package/fesm2015/overlay.js +196 -32
  98. package/fesm2015/overlay.js.map +1 -1
  99. package/fesm2015/scrolling.js +9 -1
  100. package/fesm2015/scrolling.js.map +1 -1
  101. package/fesm2015/testing.js +25 -1
  102. package/fesm2015/testing.js.map +1 -1
  103. package/fesm2015/tree.js +6 -2
  104. package/fesm2015/tree.js.map +1 -1
  105. package/overlay/dispatchers/base-overlay-dispatcher.d.ts +28 -0
  106. package/overlay/dispatchers/index.d.ts +9 -0
  107. package/overlay/{keyboard → dispatchers}/overlay-keyboard-dispatcher.d.ts +4 -10
  108. package/overlay/dispatchers/overlay-outside-click-dispatcher.d.ts +27 -0
  109. package/overlay/index.d.ts +4 -3
  110. package/overlay/index.metadata.json +1 -1
  111. package/overlay/overlay-config.d.ts +4 -0
  112. package/overlay/overlay-directives.d.ts +4 -0
  113. package/overlay/overlay-ref.d.ts +8 -2
  114. package/overlay/overlay-reference.d.ts +1 -0
  115. package/overlay/overlay.d.ts +4 -2
  116. package/overlay/public-api.d.ts +1 -1
  117. package/package.json +1 -1
  118. package/schematics/ng-add/index.js +1 -1
  119. package/scrolling/index.metadata.json +1 -1
  120. package/scrolling/public-api.d.ts +1 -0
  121. package/scrolling/virtual-for-of.d.ts +2 -1
  122. package/scrolling/virtual-scroll-repeater.d.ts +16 -0
  123. package/scrolling/virtual-scroll-viewport.d.ts +4 -4
  124. package/testing/component-harness.d.ts +12 -0
  125. package/testing/harness-environment.d.ts +1 -0
  126. package/tree/control/nested-tree-control.d.ts +7 -2
  127. package/tree/index.metadata.json +1 -1
  128. package/esm2015/overlay/keyboard/overlay-keyboard-dispatcher.js +0 -96
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"FixedSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"}]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"updateItemAndBufferSize":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}],"_updateRenderedRange":[{"__symbolic":"method"}]}},"_fixedSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["fixedSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"fixedSizeDir"},"member":"_scrollStrategy"}},"CdkFixedSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":184,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[itemSize]","providers":[{"provide":{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"},"useFactory":{"__symbolic":"reference","name":"_fixedSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"}]}]}]}],"members":{"itemSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":194,"character":3}}]}],"minBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":203,"character":3}}]}],"maxBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":211,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"DEFAULT_SCROLL_TIME":20,"ScrollDispatcher":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":22,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":30,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":27},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":30,"character":34}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":27,"character":31},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":28,"character":33},{"__symbolic":"reference","name":"any"}]}],"register":[{"__symbolic":"method"}],"deregister":[{"__symbolic":"method"}],"scrolled":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ancestorScrolled":[{"__symbolic":"method"}],"getAncestorScrollContainers":[{"__symbolic":"method"}],"_getDocument":[{"__symbolic":"method"}],"_getWindow":[{"__symbolic":"method"}],"_scrollableContainsElement":[{"__symbolic":"method"}],"_addGlobalListener":[{"__symbolic":"method"}],"_removeGlobalListener":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"_Without":{"__symbolic":"interface"},"_XOR":{"__symbolic":"interface"},"_Top":{"__symbolic":"interface"},"_Bottom":{"__symbolic":"interface"},"_Left":{"__symbolic":"interface"},"_Right":{"__symbolic":"interface"},"_Start":{"__symbolic":"interface"},"_End":{"__symbolic":"interface"},"_XAxis":{"__symbolic":"interface"},"_YAxis":{"__symbolic":"interface"},"ExtendedScrollToOptions":{"__symbolic":"interface"},"CdkScrollable":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":43,"character":1},"arguments":[{"selector":"[cdk-scrollable], [cdkScrollable]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":57,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":54,"character":47,"context":{"typeName":"HTMLElement"},"module":"./scrollable"}]},{"__symbolic":"reference","name":"ScrollDispatcher"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":56,"character":32},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":57,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"elementScrolled":[{"__symbolic":"method"}],"getElementRef":[{"__symbolic":"method"}],"scrollTo":[{"__symbolic":"method"}],"_applyScrollToOptions":[{"__symbolic":"method"}],"measureScrollOffset":[{"__symbolic":"method"}]}},"CdkScrollableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkScrollable"}],"declarations":[{"__symbolic":"reference","name":"CdkScrollable"}]}]}],"members":{}},"ScrollingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"BidiModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"PlatformModule","line":25,"character":4},{"__symbolic":"reference","name":"CdkScrollableModule"}],"exports":[{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"BidiModule","line":29,"character":4},{"__symbolic":"reference","name":"CdkScrollableModule"},{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}],"declarations":[{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}]}]}],"members":{}},"DEFAULT_RESIZE_TIME":20,"ViewportScrollPosition":{"__symbolic":"interface"},"ViewportRuler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":44,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":44,"character":27},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":44,"character":34}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":41,"character":33},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":42,"character":22},{"__symbolic":"reference","name":"any"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"getViewportSize":[{"__symbolic":"method"}],"getViewportRect":[{"__symbolic":"method"}],"getViewportScrollPosition":[{"__symbolic":"method"}],"change":[{"__symbolic":"method"}],"_getDocument":[{"__symbolic":"method"}],"_getWindow":[{"__symbolic":"method"}],"_updateViewportSize":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"CdkVirtualForOfContext":{"__symbolic":"interface"},"CdkVirtualForOf":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":73,"character":1},"arguments":[{"selector":"[cdkVirtualFor][cdkVirtualForOf]"}]}],"members":{"cdkVirtualForOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"cdkVirtualForTrackBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"cdkVirtualForTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3}}]}],"cdkVirtualForTemplateCacheSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":129,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":177,"character":7}}],null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":171,"character":33},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":173,"character":37,"context":{"typeName":"CdkVirtualForOfContext"},"module":"./virtual-for-of"}]},{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":175,"character":24},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":178,"character":14}]}],"measureRangeSize":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_onRenderedDataChange":[{"__symbolic":"method"}],"_changeDataSource":[{"__symbolic":"method"}],"_updateContext":[{"__symbolic":"method"}],"_applyChanges":[{"__symbolic":"method"}],"_cacheView":[{"__symbolic":"method"}],"_insertViewForNewItem":[{"__symbolic":"method"}],"_updateComputedContextProperties":[{"__symbolic":"method"}],"_createEmbeddedViewAt":[{"__symbolic":"method"}],"_insertViewFromCache":[{"__symbolic":"method"}],"_detachView":[{"__symbolic":"method"}]}},"VIRTUAL_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":8},"arguments":["VIRTUAL_SCROLL_STRATEGY"]},"VirtualScrollStrategy":{"__symbolic":"interface"},"CdkVirtualScrollViewport":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"CdkScrollable"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":55,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport","host":{"class":"cdk-virtual-scroll-viewport","[class.cdk-virtual-scroll-orientation-horizontal]":"orientation === \"horizontal\"","[class.cdk-virtual-scroll-orientation-vertical]":"orientation !== \"horizontal\"","$quoted$":["class","[class.cdk-virtual-scroll-orientation-horizontal]","[class.cdk-virtual-scroll-orientation-vertical]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":64,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":65,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"CdkScrollable"},"useExisting":{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}}],"template":"<!--\n Wrap the rendered content in an element that will be used to offset it based on the scroll\n position.\n-->\n<div #contentWrapper class=\"cdk-virtual-scroll-content-wrapper\">\n <ng-content></ng-content>\n</div>\n<!--\n Spacer used to force the scrolling container to the correct size for the *total* number of items\n so that the scrollbar captures the size of the entire data set.\n-->\n<div class=\"cdk-virtual-scroll-spacer\"\n [style.width]=\"_totalContentWidth\" [style.height]=\"_totalContentHeight\"></div>\n","styles":["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\n"]}]}],"members":{"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3}}]}],"scrolledIndexChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":96,"character":3}}]}],"_contentWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":102,"character":3},"arguments":["contentWrapper",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":157,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":157,"character":27},"arguments":[{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":159,"character":15}}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":165,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":154,"character":44,"context":{"typeName":"HTMLElement"},"module":"./virtual-scroll-viewport"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":155,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":156,"character":22},{"__symbolic":"reference","name":"VirtualScrollStrategy"},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":159,"character":31},{"__symbolic":"reference","name":"ScrollDispatcher"},{"__symbolic":"reference","name":"ViewportRuler"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"getDataLength":[{"__symbolic":"method"}],"getViewportSize":[{"__symbolic":"method"}],"getRenderedRange":[{"__symbolic":"method"}],"setTotalContentSize":[{"__symbolic":"method"}],"setRenderedRange":[{"__symbolic":"method"}],"getOffsetToRenderedContentStart":[{"__symbolic":"method"}],"setRenderedContentOffset":[{"__symbolic":"method"}],"scrollToOffset":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"measureScrollOffset":[{"__symbolic":"method"}],"measureRenderedContentSize":[{"__symbolic":"method"}],"measureRangeSize":[{"__symbolic":"method"}],"checkViewportSize":[{"__symbolic":"method"}],"_measureViewportSize":[{"__symbolic":"method"}],"_markChangeDetectionNeeded":[{"__symbolic":"method"}],"_doChangeDetection":[{"__symbolic":"method"}],"_calculateSpacerSize":[{"__symbolic":"method"}]}}},"origins":{"FixedSizeVirtualScrollStrategy":"./fixed-size-virtual-scroll","_fixedSizeVirtualScrollStrategyFactory":"./fixed-size-virtual-scroll","CdkFixedSizeVirtualScroll":"./fixed-size-virtual-scroll","DEFAULT_SCROLL_TIME":"./scroll-dispatcher","ScrollDispatcher":"./scroll-dispatcher","_Without":"./scrollable","_XOR":"./scrollable","_Top":"./scrollable","_Bottom":"./scrollable","_Left":"./scrollable","_Right":"./scrollable","_Start":"./scrollable","_End":"./scrollable","_XAxis":"./scrollable","_YAxis":"./scrollable","ExtendedScrollToOptions":"./scrollable","CdkScrollable":"./scrollable","CdkScrollableModule":"./scrolling-module","ScrollingModule":"./scrolling-module","DEFAULT_RESIZE_TIME":"./viewport-ruler","ViewportScrollPosition":"./viewport-ruler","ViewportRuler":"./viewport-ruler","CdkVirtualForOfContext":"./virtual-for-of","CdkVirtualForOf":"./virtual-for-of","VIRTUAL_SCROLL_STRATEGY":"./virtual-scroll-strategy","VirtualScrollStrategy":"./virtual-scroll-strategy","CdkVirtualScrollViewport":"./virtual-scroll-viewport"},"importAs":"@angular/cdk/scrolling"}
1
+ {"__symbolic":"module","version":4,"metadata":{"FixedSizeVirtualScrollStrategy":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"number"}]}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"updateItemAndBufferSize":[{"__symbolic":"method"}],"onContentScrolled":[{"__symbolic":"method"}],"onDataLengthChanged":[{"__symbolic":"method"}],"onContentRendered":[{"__symbolic":"method"}],"onRenderedOffsetChanged":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"_updateTotalContentSize":[{"__symbolic":"method"}],"_updateRenderedRange":[{"__symbolic":"method"}]}},"_fixedSizeVirtualScrollStrategyFactory":{"__symbolic":"function","parameters":["fixedSizeDir"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"fixedSizeDir"},"member":"_scrollStrategy"}},"CdkFixedSizeVirtualScroll":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":184,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport[itemSize]","providers":[{"provide":{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"},"useFactory":{"__symbolic":"reference","name":"_fixedSizeVirtualScrollStrategyFactory"},"deps":[{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"}]}]}]}],"members":{"itemSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":194,"character":3}}]}],"minBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":203,"character":3}}]}],"maxBufferPx":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":211,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"DEFAULT_SCROLL_TIME":20,"ScrollDispatcher":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":22,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":30,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":27},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":30,"character":34}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":27,"character":31},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":28,"character":33},{"__symbolic":"reference","name":"any"}]}],"register":[{"__symbolic":"method"}],"deregister":[{"__symbolic":"method"}],"scrolled":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ancestorScrolled":[{"__symbolic":"method"}],"getAncestorScrollContainers":[{"__symbolic":"method"}],"_getDocument":[{"__symbolic":"method"}],"_getWindow":[{"__symbolic":"method"}],"_scrollableContainsElement":[{"__symbolic":"method"}],"_addGlobalListener":[{"__symbolic":"method"}],"_removeGlobalListener":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"_Without":{"__symbolic":"interface"},"_XOR":{"__symbolic":"interface"},"_Top":{"__symbolic":"interface"},"_Bottom":{"__symbolic":"interface"},"_Left":{"__symbolic":"interface"},"_Right":{"__symbolic":"interface"},"_Start":{"__symbolic":"interface"},"_End":{"__symbolic":"interface"},"_XAxis":{"__symbolic":"interface"},"_YAxis":{"__symbolic":"interface"},"ExtendedScrollToOptions":{"__symbolic":"interface"},"CdkScrollable":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":43,"character":1},"arguments":[{"selector":"[cdk-scrollable], [cdkScrollable]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":57,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":54,"character":47,"context":{"typeName":"HTMLElement"},"module":"./scrollable"}]},{"__symbolic":"reference","name":"ScrollDispatcher"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":56,"character":32},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":57,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"elementScrolled":[{"__symbolic":"method"}],"getElementRef":[{"__symbolic":"method"}],"scrollTo":[{"__symbolic":"method"}],"_applyScrollToOptions":[{"__symbolic":"method"}],"measureScrollOffset":[{"__symbolic":"method"}]}},"CdkScrollableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkScrollable"}],"declarations":[{"__symbolic":"reference","name":"CdkScrollable"}]}]}],"members":{}},"ScrollingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"BidiModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/cdk/platform","name":"PlatformModule","line":25,"character":4},{"__symbolic":"reference","name":"CdkScrollableModule"}],"exports":[{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"BidiModule","line":29,"character":4},{"__symbolic":"reference","name":"CdkScrollableModule"},{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}],"declarations":[{"__symbolic":"reference","name":"CdkFixedSizeVirtualScroll"},{"__symbolic":"reference","name":"CdkVirtualForOf"},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}]}]}],"members":{}},"DEFAULT_RESIZE_TIME":20,"ViewportScrollPosition":{"__symbolic":"interface"},"ViewportRuler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":27,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":44,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":44,"character":27},"arguments":[{"__symbolic":"reference","module":"@angular/common","name":"DOCUMENT","line":44,"character":34}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/cdk/platform","name":"Platform","line":41,"character":33},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":42,"character":22},{"__symbolic":"reference","name":"any"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"getViewportSize":[{"__symbolic":"method"}],"getViewportRect":[{"__symbolic":"method"}],"getViewportScrollPosition":[{"__symbolic":"method"}],"change":[{"__symbolic":"method"}],"_getDocument":[{"__symbolic":"method"}],"_getWindow":[{"__symbolic":"method"}],"_updateViewportSize":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"CdkVirtualForOfContext":{"__symbolic":"interface"},"CdkVirtualForOf":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":74,"character":1},"arguments":[{"selector":"[cdkVirtualFor][cdkVirtualForOf]"}]}],"members":{"cdkVirtualForOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3}}]}],"cdkVirtualForTrackBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":106,"character":3}}]}],"cdkVirtualForTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":3}}]}],"cdkVirtualForTemplateCacheSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":131,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":179,"character":7}}],null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":173,"character":33},{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":175,"character":37,"context":{"typeName":"CdkVirtualForOfContext"},"module":"./virtual-for-of"}]},{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":177,"character":24},{"__symbolic":"reference","name":"CdkVirtualScrollViewport"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":180,"character":14}]}],"measureRangeSize":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"_onRenderedDataChange":[{"__symbolic":"method"}],"_changeDataSource":[{"__symbolic":"method"}],"_updateContext":[{"__symbolic":"method"}],"_applyChanges":[{"__symbolic":"method"}],"_cacheView":[{"__symbolic":"method"}],"_insertViewForNewItem":[{"__symbolic":"method"}],"_updateComputedContextProperties":[{"__symbolic":"method"}],"_createEmbeddedViewAt":[{"__symbolic":"method"}],"_insertViewFromCache":[{"__symbolic":"method"}],"_detachView":[{"__symbolic":"method"}]}},"VIRTUAL_SCROLL_STRATEGY":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":15,"character":8},"arguments":["VIRTUAL_SCROLL_STRATEGY"]},"VirtualScrollStrategy":{"__symbolic":"interface"},"CdkVirtualScrollViewport":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"CdkScrollable"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":55,"character":1},"arguments":[{"selector":"cdk-virtual-scroll-viewport","host":{"class":"cdk-virtual-scroll-viewport","[class.cdk-virtual-scroll-orientation-horizontal]":"orientation === \"horizontal\"","[class.cdk-virtual-scroll-orientation-vertical]":"orientation !== \"horizontal\"","$quoted$":["class","[class.cdk-virtual-scroll-orientation-horizontal]","[class.cdk-virtual-scroll-orientation-vertical]"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":64,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":65,"character":19},"member":"OnPush"},"providers":[{"provide":{"__symbolic":"reference","name":"CdkScrollable"},"useExisting":{"__symbolic":"reference","name":"CdkVirtualScrollViewport"}}],"template":"<!--\n Wrap the rendered content in an element that will be used to offset it based on the scroll\n position.\n-->\n<div #contentWrapper class=\"cdk-virtual-scroll-content-wrapper\">\n <ng-content></ng-content>\n</div>\n<!--\n Spacer used to force the scrolling container to the correct size for the *total* number of items\n so that the scrollbar captures the size of the entire data set.\n-->\n<div class=\"cdk-virtual-scroll-spacer\"\n [style.width]=\"_totalContentWidth\" [style.height]=\"_totalContentHeight\"></div>\n","styles":["cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\n"]}]}],"members":{"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3}}]}],"scrolledIndexChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":96,"character":3}}]}],"_contentWrapper":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":102,"character":3},"arguments":["contentWrapper",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":157,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":157,"character":27},"arguments":[{"__symbolic":"reference","name":"VIRTUAL_SCROLL_STRATEGY"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":159,"character":15}}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":165,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":154,"character":44,"context":{"typeName":"HTMLElement"},"module":"./virtual-scroll-viewport"}]},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":155,"character":42},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":156,"character":22},{"__symbolic":"reference","name":"VirtualScrollStrategy"},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":159,"character":31},{"__symbolic":"reference","name":"ScrollDispatcher"},{"__symbolic":"reference","name":"ViewportRuler"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"attach":[{"__symbolic":"method"}],"detach":[{"__symbolic":"method"}],"getDataLength":[{"__symbolic":"method"}],"getViewportSize":[{"__symbolic":"method"}],"getRenderedRange":[{"__symbolic":"method"}],"setTotalContentSize":[{"__symbolic":"method"}],"setRenderedRange":[{"__symbolic":"method"}],"getOffsetToRenderedContentStart":[{"__symbolic":"method"}],"setRenderedContentOffset":[{"__symbolic":"method"}],"scrollToOffset":[{"__symbolic":"method"}],"scrollToIndex":[{"__symbolic":"method"}],"measureScrollOffset":[{"__symbolic":"method"}],"measureRenderedContentSize":[{"__symbolic":"method"}],"measureRangeSize":[{"__symbolic":"method"}],"checkViewportSize":[{"__symbolic":"method"}],"_measureViewportSize":[{"__symbolic":"method"}],"_markChangeDetectionNeeded":[{"__symbolic":"method"}],"_doChangeDetection":[{"__symbolic":"method"}],"_calculateSpacerSize":[{"__symbolic":"method"}]}},"CdkVirtualScrollRepeater":{"__symbolic":"interface"}},"origins":{"FixedSizeVirtualScrollStrategy":"./fixed-size-virtual-scroll","_fixedSizeVirtualScrollStrategyFactory":"./fixed-size-virtual-scroll","CdkFixedSizeVirtualScroll":"./fixed-size-virtual-scroll","DEFAULT_SCROLL_TIME":"./scroll-dispatcher","ScrollDispatcher":"./scroll-dispatcher","_Without":"./scrollable","_XOR":"./scrollable","_Top":"./scrollable","_Bottom":"./scrollable","_Left":"./scrollable","_Right":"./scrollable","_Start":"./scrollable","_End":"./scrollable","_XAxis":"./scrollable","_YAxis":"./scrollable","ExtendedScrollToOptions":"./scrollable","CdkScrollable":"./scrollable","CdkScrollableModule":"./scrolling-module","ScrollingModule":"./scrolling-module","DEFAULT_RESIZE_TIME":"./viewport-ruler","ViewportScrollPosition":"./viewport-ruler","ViewportRuler":"./viewport-ruler","CdkVirtualForOfContext":"./virtual-for-of","CdkVirtualForOf":"./virtual-for-of","VIRTUAL_SCROLL_STRATEGY":"./virtual-scroll-strategy","VirtualScrollStrategy":"./virtual-scroll-strategy","CdkVirtualScrollViewport":"./virtual-scroll-viewport","CdkVirtualScrollRepeater":"./virtual-scroll-repeater"},"importAs":"@angular/cdk/scrolling"}
@@ -13,3 +13,4 @@ export * from './viewport-ruler';
13
13
  export * from './virtual-for-of';
14
14
  export * from './virtual-scroll-strategy';
15
15
  export * from './virtual-scroll-viewport';
16
+ export * from './virtual-scroll-repeater';
@@ -9,6 +9,7 @@ import { CollectionViewer, DataSource, ListRange } from '@angular/cdk/collection
9
9
  import { DoCheck, IterableDiffers, NgIterable, NgZone, OnDestroy, TemplateRef, TrackByFunction, ViewContainerRef } from '@angular/core';
10
10
  import { Observable, Subject } from 'rxjs';
11
11
  import { CdkVirtualScrollViewport } from './virtual-scroll-viewport';
12
+ import { CdkVirtualScrollRepeater } from './virtual-scroll-repeater';
12
13
  /** The context for an item rendered by `CdkVirtualForOf` */
13
14
  export declare type CdkVirtualForOfContext<T> = {
14
15
  /** The item value. */
@@ -32,7 +33,7 @@ export declare type CdkVirtualForOfContext<T> = {
32
33
  * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling
33
34
  * container.
34
35
  */
35
- export declare class CdkVirtualForOf<T> implements CollectionViewer, DoCheck, OnDestroy {
36
+ export declare class CdkVirtualForOf<T> implements CdkVirtualScrollRepeater<T>, CollectionViewer, DoCheck, OnDestroy {
36
37
  /** The view container to add items to. */
37
38
  private _viewContainerRef;
38
39
  /** The template to use when stamping out new items. */
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google LLC All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ import { Observable } from 'rxjs';
9
+ import { ListRange } from '@angular/cdk/collections';
10
+ /**
11
+ * An item to be repeated by the VirtualScrollViewport
12
+ */
13
+ export interface CdkVirtualScrollRepeater<T> {
14
+ dataStream: Observable<T[] | ReadonlyArray<T>>;
15
+ measureRangeSize(range: ListRange, orientation: 'horizontal' | 'vertical'): number;
16
+ }
@@ -11,9 +11,9 @@ import { ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit } from '@angul
11
11
  import { Observable } from 'rxjs';
12
12
  import { ScrollDispatcher } from './scroll-dispatcher';
13
13
  import { CdkScrollable } from './scrollable';
14
- import { CdkVirtualForOf } from './virtual-for-of';
15
14
  import { VirtualScrollStrategy } from './virtual-scroll-strategy';
16
15
  import { ViewportRuler } from './viewport-ruler';
16
+ import { CdkVirtualScrollRepeater } from './virtual-scroll-repeater';
17
17
  /** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */
18
18
  export declare class CdkVirtualScrollViewport extends CdkScrollable implements OnInit, OnDestroy {
19
19
  elementRef: ElementRef<HTMLElement>;
@@ -52,7 +52,7 @@ export declare class CdkVirtualScrollViewport extends CdkScrollable implements O
52
52
  private _dataLength;
53
53
  /** The size of the viewport (in pixels). */
54
54
  private _viewportSize;
55
- /** the currently attached CdkVirtualForOf. */
55
+ /** the currently attached CdkVirtualScrollRepeater. */
56
56
  private _forOf;
57
57
  /** The last rendered content offset that was set. */
58
58
  private _renderedContentOffset;
@@ -75,8 +75,8 @@ export declare class CdkVirtualScrollViewport extends CdkScrollable implements O
75
75
  viewportRuler?: ViewportRuler);
76
76
  ngOnInit(): void;
77
77
  ngOnDestroy(): void;
78
- /** Attaches a `CdkVirtualForOf` to this viewport. */
79
- attach(forOf: CdkVirtualForOf<any>): void;
78
+ /** Attaches a `CdkVirtualScrollRepeater` to this viewport. */
79
+ attach(forOf: CdkVirtualScrollRepeater<any>): void;
80
80
  /** Detaches the current `CdkVirtualForOf`. */
81
81
  detach(): void;
82
82
  /** Gets the length of the data bound to this viewport (in number of items). */
@@ -175,6 +175,8 @@ export interface LocatorFactory {
175
175
  * - `await lf.locatorForAll('span')()` gets `[]`.
176
176
  */
177
177
  locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>[]>;
178
+ /** @return A `HarnessLoader` rooted at the root element of this `LocatorFactory`. */
179
+ rootHarnessLoader(): Promise<HarnessLoader>;
178
180
  /**
179
181
  * Gets a `HarnessLoader` instance for an element under the root of this `LocatorFactory`.
180
182
  * @param selector The selector for the root element.
@@ -316,6 +318,16 @@ export declare abstract class ComponentHarness {
316
318
  */
317
319
  protected waitForTasksOutsideAngular(): Promise<void>;
318
320
  }
321
+ /**
322
+ * Base class for component harnesses that authors should extend if they anticipate that consumers
323
+ * of the harness may want to access other harnesses within the `<ng-content>` of the component.
324
+ */
325
+ export declare abstract class ContentContainerComponentHarness<S extends string = string> extends ComponentHarness implements HarnessLoader {
326
+ getChildLoader(selector: S): Promise<HarnessLoader>;
327
+ getAllChildLoaders(selector: S): Promise<HarnessLoader[]>;
328
+ getHarness<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<T>;
329
+ getAllHarnesses<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<T[]>;
330
+ }
319
331
  /** Constructor for a ComponentHarness subclass. */
320
332
  export interface ComponentHarnessConstructor<T extends ComponentHarness> {
321
333
  new (locatorFactory: LocatorFactory): T;
@@ -21,6 +21,7 @@ export declare abstract class HarnessEnvironment<E> implements HarnessLoader, Lo
21
21
  locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>>;
22
22
  locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T> | null>;
23
23
  locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>[]>;
24
+ rootHarnessLoader(): Promise<HarnessLoader>;
24
25
  harnessLoaderFor(selector: string): Promise<HarnessLoader>;
25
26
  harnessLoaderForOptional(selector: string): Promise<HarnessLoader | null>;
26
27
  harnessLoaderForAll(selector: string): Promise<HarnessLoader[]>;
@@ -7,11 +7,16 @@
7
7
  */
8
8
  import { Observable } from 'rxjs';
9
9
  import { BaseTreeControl } from './base-tree-control';
10
+ /** Optional set of configuration that can be provided to the NestedTreeControl. */
11
+ export interface NestedTreeControlOptions<T, K> {
12
+ trackBy?: (dataNode: T) => K;
13
+ }
10
14
  /** Nested tree control. Able to expand/collapse a subtree recursively for NestedNode type. */
11
- export declare class NestedTreeControl<T> extends BaseTreeControl<T> {
15
+ export declare class NestedTreeControl<T, K = T> extends BaseTreeControl<T, K> {
12
16
  getChildren: (dataNode: T) => (Observable<T[]> | T[] | undefined | null);
17
+ options?: NestedTreeControlOptions<T, K> | undefined;
13
18
  /** Construct with nested tree function getChildren. */
14
- constructor(getChildren: (dataNode: T) => (Observable<T[]> | T[] | undefined | null));
19
+ constructor(getChildren: (dataNode: T) => (Observable<T[]> | T[] | undefined | null), options?: NestedTreeControlOptions<T, K> | undefined);
15
20
  /**
16
21
  * Expands all dataNodes in the tree.
17
22
  *
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"BaseTreeControl":{"__symbolic":"class","arity":2,"members":{"getDescendants":[{"__symbolic":"method"}],"expandAll":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"collapse":[{"__symbolic":"method"}],"isExpanded":[{"__symbolic":"method"}],"toggleDescendants":[{"__symbolic":"method"}],"collapseAll":[{"__symbolic":"method"}],"expandDescendants":[{"__symbolic":"method"}],"collapseDescendants":[{"__symbolic":"method"}],"_trackByValue":[{"__symbolic":"method"}]}},"FlatTreeControlOptions":{"__symbolic":"interface"},"FlatTreeControl":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","name":"BaseTreeControl"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":20,"character":23,"module":"./control/flat-tree-control"},{"__symbolic":"error","message":"Expression form not supported","line":20,"character":69,"module":"./control/flat-tree-control"},{"__symbolic":"reference","name":"any","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":21,"character":46,"context":{"typeName":"T"},"module":"./control/flat-tree-control"},{"__symbolic":"error","message":"Could not resolve type","line":21,"character":49,"context":{"typeName":"K"},"module":"./control/flat-tree-control"}]}]}],"getDescendants":[{"__symbolic":"method"}],"expandAll":[{"__symbolic":"method"}]}},"NestedTreeControl":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"BaseTreeControl"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":15,"character":34,"module":"./control/nested-tree-control"}]}],"expandAll":[{"__symbolic":"method"}],"getDescendants":[{"__symbolic":"method"}],"_getDescendants":[{"__symbolic":"method"}]}},"TreeControl":{"__symbolic":"interface"},"CdkNestedTreeNode":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"CdkTreeNode"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":30,"character":1},"arguments":[{"selector":"cdk-nested-tree-node","exportAs":"cdkNestedTreeNode","host":{"[attr.aria-expanded]":"isExpanded","[attr.role]":"role","class":"cdk-tree-node cdk-nested-tree-node","$quoted$":["[attr.aria-expanded]","[attr.role]","class"]},"providers":[{"provide":{"__symbolic":"reference","name":"CdkTreeNode"},"useExisting":{"__symbolic":"reference","name":"CdkNestedTreeNode"}},{"provide":{"__symbolic":"reference","name":"CDK_TREE_NODE_OUTLET_NODE"},"useExisting":{"__symbolic":"reference","name":"CdkNestedTreeNode"}}]}]}],"members":{"nodeOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":51,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkTreeNodeOutlet"},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":58,"character":48,"context":{"typeName":"HTMLElement"},"module":"./nested-node"}]},{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":60,"character":34}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"updateChildrenNodes":[{"__symbolic":"method"}],"_clear":[{"__symbolic":"method"}],"_getNodeOutlet":[{"__symbolic":"method"}]}},"CdkTreeNodeOutletContext":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":25,"character":20,"context":{"typeName":"T"},"module":"./node"}]}]}},"CdkTreeNodeDef":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":34,"character":1},"arguments":[{"selector":"[cdkTreeNodeDef]","inputs":["when: cdkTreeNodeDefWhen"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"CdkTreeNodePadding":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":22,"character":1},"arguments":[{"selector":"[cdkTreeNodePadding]"}]}],"members":{"level":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3},"arguments":["cdkTreeNodePadding"]}]}],"indent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3},"arguments":["cdkTreeNodePaddingIndent"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":77,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"CdkTreeNode"},{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":75,"character":25},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":76,"character":43,"context":{"typeName":"HTMLElement"},"module":"./padding"}]},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":77,"character":40}]}],"ngOnDestroy":[{"__symbolic":"method"}],"_paddingIndent":[{"__symbolic":"method"}],"_setPadding":[{"__symbolic":"method"}]}},"CDK_TREE_NODE_OUTLET_NODE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":20,"character":45},"arguments":["CDK_TREE_NODE_OUTLET_NODE"]},"CdkTreeNodeOutlet":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"[cdkTreeNodeOutlet]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":7},"arguments":[{"__symbolic":"reference","name":"CDK_TREE_NODE_OUTLET_NODE"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":32,"character":42}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":31,"character":28},{"__symbolic":"reference","name":"any"}]}]}},"CdkTree":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":53,"character":1},"arguments":[{"selector":"cdk-tree","exportAs":"cdkTree","template":"<ng-container cdkTreeNodeOutlet></ng-container>","host":{"class":"cdk-tree","role":"tree","$quoted$":["class","role"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":61,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":67,"character":19},"member":"Default"}}]}],"members":{"dataSource":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"treeControl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":3}}]}],"trackBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3}}]}],"_nodeOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":111,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkTreeNodeOutlet"},{"static":true}]}]}],"_nodeDefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":114,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkTreeNodeDef"},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":129,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":130,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"_switchDataSource":[{"__symbolic":"method"}],"_observeRenderChanges":[{"__symbolic":"method"}],"renderNodeChanges":[{"__symbolic":"method"}],"_getNodeDef":[{"__symbolic":"method"}],"insertNode":[{"__symbolic":"method"}]}},"CdkTreeNode":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":296,"character":1},"arguments":[{"selector":"cdk-tree-node","exportAs":"cdkTreeNode","host":{"[attr.aria-expanded]":"isExpanded","[attr.aria-level]":"role === \"treeitem\" ? level : null","[attr.role]":"role","class":"cdk-tree-node","$quoted$":["[attr.aria-expanded]","[attr.aria-level]","[attr.role]","class"]}}]}],"members":{"role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":342,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":344,"character":48,"context":{"typeName":"HTMLElement"},"module":"./tree"}]},{"__symbolic":"reference","name":"CdkTree"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"_setRoleFromData":[{"__symbolic":"method"}],"_setRoleFromChildren":[{"__symbolic":"method"}]},"statics":{"mostRecentTreeNode":null}},"getTreeNoValidDataSourceError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["A valid data source must be provided."]}},"getTreeMultipleDefaultNodeDefsError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["There can only be one default row without a when predicate function."]}},"getTreeMissingMatchingNodeDefError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Could not find a matching node definition for the provided node data."]}},"getTreeControlMissingError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Could not find a tree control for the tree."]}},"getTreeControlFunctionsMissingError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Could not find functions for nested/flat tree in tree control."]}},"CdkTreeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":27,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkNestedTreeNode"},{"__symbolic":"reference","name":"CdkTreeNodeDef"},{"__symbolic":"reference","name":"CdkTreeNodePadding"},{"__symbolic":"reference","name":"CdkTreeNodeToggle"},{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","name":"CdkTreeNode"},{"__symbolic":"reference","name":"CdkTreeNodeOutlet"}],"declarations":[{"__symbolic":"reference","name":"CdkNestedTreeNode"},{"__symbolic":"reference","name":"CdkTreeNodeDef"},{"__symbolic":"reference","name":"CdkTreeNodePadding"},{"__symbolic":"reference","name":"CdkTreeNodeToggle"},{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","name":"CdkTreeNode"},{"__symbolic":"reference","name":"CdkTreeNodeOutlet"}],"providers":[{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusMonitor","line":30,"character":14},{"__symbolic":"reference","name":"CdkTreeNodeDef"}]}]}],"members":{}},"CdkTreeNodeToggle":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"[cdkTreeNodeToggle]"}]}],"members":{"recursive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3},"arguments":["cdkTreeNodeToggleRecursive"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","name":"CdkTreeNode"}]}],"_toggle":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":32,"character":3},"arguments":["click",["$event"]]}]}]}}},"origins":{"BaseTreeControl":"./control/base-tree-control","FlatTreeControlOptions":"./control/flat-tree-control","FlatTreeControl":"./control/flat-tree-control","NestedTreeControl":"./control/nested-tree-control","TreeControl":"./control/tree-control","CdkNestedTreeNode":"./nested-node","CdkTreeNodeOutletContext":"./node","CdkTreeNodeDef":"./node","CdkTreeNodePadding":"./padding","CDK_TREE_NODE_OUTLET_NODE":"./outlet","CdkTreeNodeOutlet":"./outlet","CdkTree":"./tree","CdkTreeNode":"./tree","getTreeNoValidDataSourceError":"./tree-errors","getTreeMultipleDefaultNodeDefsError":"./tree-errors","getTreeMissingMatchingNodeDefError":"./tree-errors","getTreeControlMissingError":"./tree-errors","getTreeControlFunctionsMissingError":"./tree-errors","CdkTreeModule":"./tree-module","CdkTreeNodeToggle":"./toggle"},"importAs":"@angular/cdk/tree"}
1
+ {"__symbolic":"module","version":4,"metadata":{"BaseTreeControl":{"__symbolic":"class","arity":2,"members":{"getDescendants":[{"__symbolic":"method"}],"expandAll":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"collapse":[{"__symbolic":"method"}],"isExpanded":[{"__symbolic":"method"}],"toggleDescendants":[{"__symbolic":"method"}],"collapseAll":[{"__symbolic":"method"}],"expandDescendants":[{"__symbolic":"method"}],"collapseDescendants":[{"__symbolic":"method"}],"_trackByValue":[{"__symbolic":"method"}]}},"FlatTreeControlOptions":{"__symbolic":"interface"},"FlatTreeControl":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","name":"BaseTreeControl"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":20,"character":23,"module":"./control/flat-tree-control"},{"__symbolic":"error","message":"Expression form not supported","line":20,"character":69,"module":"./control/flat-tree-control"},{"__symbolic":"reference","name":"any","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":21,"character":46,"context":{"typeName":"T"},"module":"./control/flat-tree-control"},{"__symbolic":"error","message":"Could not resolve type","line":21,"character":49,"context":{"typeName":"K"},"module":"./control/flat-tree-control"}]}]}],"getDescendants":[{"__symbolic":"method"}],"expandAll":[{"__symbolic":"method"}]}},"NestedTreeControlOptions":{"__symbolic":"interface"},"NestedTreeControl":{"__symbolic":"class","arity":2,"extends":{"__symbolic":"reference","name":"BaseTreeControl"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":20,"character":26,"module":"./control/nested-tree-control"},{"__symbolic":"reference","name":"any","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":21,"character":48,"context":{"typeName":"T"},"module":"./control/nested-tree-control"},{"__symbolic":"error","message":"Could not resolve type","line":21,"character":51,"context":{"typeName":"K"},"module":"./control/nested-tree-control"}]}]}],"expandAll":[{"__symbolic":"method"}],"getDescendants":[{"__symbolic":"method"}],"_getDescendants":[{"__symbolic":"method"}]}},"TreeControl":{"__symbolic":"interface"},"CdkNestedTreeNode":{"__symbolic":"class","arity":1,"extends":{"__symbolic":"reference","name":"CdkTreeNode"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":30,"character":1},"arguments":[{"selector":"cdk-nested-tree-node","exportAs":"cdkNestedTreeNode","host":{"[attr.aria-expanded]":"isExpanded","[attr.role]":"role","class":"cdk-tree-node cdk-nested-tree-node","$quoted$":["[attr.aria-expanded]","[attr.role]","class"]},"providers":[{"provide":{"__symbolic":"reference","name":"CdkTreeNode"},"useExisting":{"__symbolic":"reference","name":"CdkNestedTreeNode"}},{"provide":{"__symbolic":"reference","name":"CDK_TREE_NODE_OUTLET_NODE"},"useExisting":{"__symbolic":"reference","name":"CdkNestedTreeNode"}}]}]}],"members":{"nodeOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":51,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkTreeNodeOutlet"},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":58,"character":48,"context":{"typeName":"HTMLElement"},"module":"./nested-node"}]},{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":60,"character":34}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"updateChildrenNodes":[{"__symbolic":"method"}],"_clear":[{"__symbolic":"method"}],"_getNodeOutlet":[{"__symbolic":"method"}]}},"CdkTreeNodeOutletContext":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Could not resolve type","line":25,"character":20,"context":{"typeName":"T"},"module":"./node"}]}]}},"CdkTreeNodeDef":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":34,"character":1},"arguments":[{"selector":"[cdkTreeNodeDef]","inputs":["when: cdkTreeNodeDefWhen"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"CdkTreeNodePadding":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":22,"character":1},"arguments":[{"selector":"[cdkTreeNodePadding]"}]}],"members":{"level":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3},"arguments":["cdkTreeNodePadding"]}]}],"indent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3},"arguments":["cdkTreeNodePaddingIndent"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":77,"character":15}}]],"parameters":[{"__symbolic":"reference","name":"CdkTreeNode"},{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":75,"character":25},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":76,"character":43,"context":{"typeName":"HTMLElement"},"module":"./padding"}]},{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":77,"character":40}]}],"ngOnDestroy":[{"__symbolic":"method"}],"_paddingIndent":[{"__symbolic":"method"}],"_setPadding":[{"__symbolic":"method"}]}},"CDK_TREE_NODE_OUTLET_NODE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":20,"character":45},"arguments":["CDK_TREE_NODE_OUTLET_NODE"]},"CdkTreeNodeOutlet":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"[cdkTreeNodeOutlet]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":7},"arguments":[{"__symbolic":"reference","name":"CDK_TREE_NODE_OUTLET_NODE"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":32,"character":42}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":31,"character":28},{"__symbolic":"reference","name":"any"}]}]}},"CdkTree":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":53,"character":1},"arguments":[{"selector":"cdk-tree","exportAs":"cdkTree","template":"<ng-container cdkTreeNodeOutlet></ng-container>","host":{"class":"cdk-tree","role":"tree","$quoted$":["class","role"]},"encapsulation":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewEncapsulation","line":61,"character":17},"member":"None"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":67,"character":19},"member":"Default"}}]}],"members":{"dataSource":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"treeControl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":3}}]}],"trackBy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3}}]}],"_nodeOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":111,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkTreeNodeOutlet"},{"static":true}]}]}],"_nodeDefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":114,"character":3},"arguments":[{"__symbolic":"reference","name":"CdkTreeNodeDef"},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"IterableDiffers","line":129,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":130,"character":42}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"_switchDataSource":[{"__symbolic":"method"}],"_observeRenderChanges":[{"__symbolic":"method"}],"renderNodeChanges":[{"__symbolic":"method"}],"_getNodeDef":[{"__symbolic":"method"}],"insertNode":[{"__symbolic":"method"}]}},"CdkTreeNode":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":296,"character":1},"arguments":[{"selector":"cdk-tree-node","exportAs":"cdkTreeNode","host":{"[attr.aria-expanded]":"isExpanded","[attr.aria-level]":"role === \"treeitem\" ? level : null","[attr.role]":"role","class":"cdk-tree-node","$quoted$":["[attr.aria-expanded]","[attr.aria-level]","[attr.role]","class"]}}]}],"members":{"role":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":342,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":344,"character":48,"context":{"typeName":"HTMLElement"},"module":"./tree"}]},{"__symbolic":"reference","name":"CdkTree"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"focus":[{"__symbolic":"method"}],"_setRoleFromData":[{"__symbolic":"method"}],"_setRoleFromChildren":[{"__symbolic":"method"}]},"statics":{"mostRecentTreeNode":null}},"getTreeNoValidDataSourceError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["A valid data source must be provided."]}},"getTreeMultipleDefaultNodeDefsError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["There can only be one default row without a when predicate function."]}},"getTreeMissingMatchingNodeDefError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Could not find a matching node definition for the provided node data."]}},"getTreeControlMissingError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Could not find a tree control for the tree."]}},"getTreeControlFunctionsMissingError":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"Error"},"arguments":["Could not find functions for nested/flat tree in tree control."]}},"CdkTreeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":27,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"CdkNestedTreeNode"},{"__symbolic":"reference","name":"CdkTreeNodeDef"},{"__symbolic":"reference","name":"CdkTreeNodePadding"},{"__symbolic":"reference","name":"CdkTreeNodeToggle"},{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","name":"CdkTreeNode"},{"__symbolic":"reference","name":"CdkTreeNodeOutlet"}],"declarations":[{"__symbolic":"reference","name":"CdkNestedTreeNode"},{"__symbolic":"reference","name":"CdkTreeNodeDef"},{"__symbolic":"reference","name":"CdkTreeNodePadding"},{"__symbolic":"reference","name":"CdkTreeNodeToggle"},{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","name":"CdkTreeNode"},{"__symbolic":"reference","name":"CdkTreeNodeOutlet"}],"providers":[{"__symbolic":"reference","module":"@angular/cdk/a11y","name":"FocusMonitor","line":30,"character":14},{"__symbolic":"reference","name":"CdkTreeNodeDef"}]}]}],"members":{}},"CdkTreeNodeToggle":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":16,"character":1},"arguments":[{"selector":"[cdkTreeNodeToggle]"}]}],"members":{"recursive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3},"arguments":["cdkTreeNodeToggleRecursive"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"CdkTree"},{"__symbolic":"reference","name":"CdkTreeNode"}]}],"_toggle":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":32,"character":3},"arguments":["click",["$event"]]}]}]}}},"origins":{"BaseTreeControl":"./control/base-tree-control","FlatTreeControlOptions":"./control/flat-tree-control","FlatTreeControl":"./control/flat-tree-control","NestedTreeControlOptions":"./control/nested-tree-control","NestedTreeControl":"./control/nested-tree-control","TreeControl":"./control/tree-control","CdkNestedTreeNode":"./nested-node","CdkTreeNodeOutletContext":"./node","CdkTreeNodeDef":"./node","CdkTreeNodePadding":"./padding","CDK_TREE_NODE_OUTLET_NODE":"./outlet","CdkTreeNodeOutlet":"./outlet","CdkTree":"./tree","CdkTreeNode":"./tree","getTreeNoValidDataSourceError":"./tree-errors","getTreeMultipleDefaultNodeDefsError":"./tree-errors","getTreeMissingMatchingNodeDefError":"./tree-errors","getTreeControlMissingError":"./tree-errors","getTreeControlFunctionsMissingError":"./tree-errors","CdkTreeModule":"./tree-module","CdkTreeNodeToggle":"./toggle"},"importAs":"@angular/cdk/tree"}
@@ -1,96 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { DOCUMENT } from '@angular/common';
9
- import { Inject, Injectable, Optional, SkipSelf, } from '@angular/core';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "@angular/common";
12
- /**
13
- * Service for dispatching keyboard events that land on the body to appropriate overlay ref,
14
- * if any. It maintains a list of attached overlays to determine best suited overlay based
15
- * on event target and order of overlay opens.
16
- */
17
- export class OverlayKeyboardDispatcher {
18
- constructor(document) {
19
- /** Currently attached overlays in the order they were attached. */
20
- this._attachedOverlays = [];
21
- /** Keyboard event listener that will be attached to the body. */
22
- this._keydownListener = (event) => {
23
- const overlays = this._attachedOverlays;
24
- for (let i = overlays.length - 1; i > -1; i--) {
25
- // Dispatch the keydown event to the top overlay which has subscribers to its keydown events.
26
- // We want to target the most recent overlay, rather than trying to match where the event came
27
- // from, because some components might open an overlay, but keep focus on a trigger element
28
- // (e.g. for select and autocomplete). We skip overlays without keydown event subscriptions,
29
- // because we don't want overlays that don't handle keyboard events to block the ones below
30
- // them that do.
31
- if (overlays[i]._keydownEvents.observers.length > 0) {
32
- overlays[i]._keydownEvents.next(event);
33
- break;
34
- }
35
- }
36
- };
37
- this._document = document;
38
- }
39
- ngOnDestroy() {
40
- this._detach();
41
- }
42
- /** Add a new overlay to the list of attached overlay refs. */
43
- add(overlayRef) {
44
- // Ensure that we don't get the same overlay multiple times.
45
- this.remove(overlayRef);
46
- // Lazily start dispatcher once first overlay is added
47
- if (!this._isAttached) {
48
- this._document.body.addEventListener('keydown', this._keydownListener);
49
- this._isAttached = true;
50
- }
51
- this._attachedOverlays.push(overlayRef);
52
- }
53
- /** Remove an overlay from the list of attached overlay refs. */
54
- remove(overlayRef) {
55
- const index = this._attachedOverlays.indexOf(overlayRef);
56
- if (index > -1) {
57
- this._attachedOverlays.splice(index, 1);
58
- }
59
- // Remove the global listener once there are no more overlays.
60
- if (this._attachedOverlays.length === 0) {
61
- this._detach();
62
- }
63
- }
64
- /** Detaches the global keyboard event listener. */
65
- _detach() {
66
- if (this._isAttached) {
67
- this._document.body.removeEventListener('keydown', this._keydownListener);
68
- this._isAttached = false;
69
- }
70
- }
71
- }
72
- OverlayKeyboardDispatcher.ɵprov = i0.ɵɵdefineInjectable({ factory: function OverlayKeyboardDispatcher_Factory() { return new OverlayKeyboardDispatcher(i0.ɵɵinject(i1.DOCUMENT)); }, token: OverlayKeyboardDispatcher, providedIn: "root" });
73
- OverlayKeyboardDispatcher.decorators = [
74
- { type: Injectable, args: [{ providedIn: 'root' },] }
75
- ];
76
- OverlayKeyboardDispatcher.ctorParameters = () => [
77
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
78
- ];
79
- /** @docs-private @deprecated @breaking-change 8.0.0 */
80
- export function OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY(dispatcher, _document) {
81
- return dispatcher || new OverlayKeyboardDispatcher(_document);
82
- }
83
- /** @docs-private @deprecated @breaking-change 8.0.0 */
84
- export const OVERLAY_KEYBOARD_DISPATCHER_PROVIDER = {
85
- // If there is already an OverlayKeyboardDispatcher available, use that.
86
- // Otherwise, provide a new one.
87
- provide: OverlayKeyboardDispatcher,
88
- deps: [
89
- [new Optional(), new SkipSelf(), OverlayKeyboardDispatcher],
90
- // Coerce to `InjectionToken` so that the `deps` match the "shape"
91
- // of the type expected by Angular
92
- DOCUMENT
93
- ],
94
- useFactory: OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY
95
- };
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1rZXlib2FyZC1kaXNwYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9vdmVybGF5L2tleWJvYXJkL292ZXJsYXkta2V5Ym9hcmQtZGlzcGF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBR1YsUUFBUSxFQUNSLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQzs7O0FBSXZCOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBUXBDLFlBQThCLFFBQWE7UUFOM0MsbUVBQW1FO1FBQ25FLHNCQUFpQixHQUF1QixFQUFFLENBQUM7UUFpRDNDLGlFQUFpRTtRQUN6RCxxQkFBZ0IsR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFFeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdDLDZGQUE2RjtnQkFDN0YsOEZBQThGO2dCQUM5RiwyRkFBMkY7Z0JBQzNGLDRGQUE0RjtnQkFDNUYsMkZBQTJGO2dCQUMzRixnQkFBZ0I7Z0JBQ2hCLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDbkQsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3ZDLE1BQU07aUJBQ1A7YUFDRjtRQUNILENBQUMsQ0FBQTtRQTNEQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsOERBQThEO0lBQzlELEdBQUcsQ0FBQyxVQUE0QjtRQUM5Qiw0REFBNEQ7UUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4QixzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLE1BQU0sQ0FBQyxVQUE0QjtRQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFFRCw4REFBOEQ7UUFDOUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBRUQsbURBQW1EO0lBQzNDLE9BQU87UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7OztZQW5ERixVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzs7NENBU2pCLE1BQU0sU0FBQyxRQUFROztBQWdFOUIsdURBQXVEO0FBQ3ZELE1BQU0sVUFBVSw0Q0FBNEMsQ0FDeEQsVUFBcUMsRUFBRSxTQUFjO0lBQ3ZELE9BQU8sVUFBVSxJQUFJLElBQUkseUJBQXlCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELHVEQUF1RDtBQUN2RCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRztJQUNsRCx3RUFBd0U7SUFDeEUsZ0NBQWdDO0lBQ2hDLE9BQU8sRUFBRSx5QkFBeUI7SUFDbEMsSUFBSSxFQUFFO1FBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUseUJBQXlCLENBQUM7UUFFM0Qsa0VBQWtFO1FBQ2xFLGtDQUFrQztRQUNsQyxRQUErQjtLQUNoQztJQUNELFVBQVUsRUFBRSw0Q0FBNEM7Q0FDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPdmVybGF5UmVmZXJlbmNlfSBmcm9tICcuLi9vdmVybGF5LXJlZmVyZW5jZSc7XG5cblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBkaXNwYXRjaGluZyBrZXlib2FyZCBldmVudHMgdGhhdCBsYW5kIG9uIHRoZSBib2R5IHRvIGFwcHJvcHJpYXRlIG92ZXJsYXkgcmVmLFxuICogaWYgYW55LiBJdCBtYWludGFpbnMgYSBsaXN0IG9mIGF0dGFjaGVkIG92ZXJsYXlzIHRvIGRldGVybWluZSBiZXN0IHN1aXRlZCBvdmVybGF5IGJhc2VkXG4gKiBvbiBldmVudCB0YXJnZXQgYW5kIG9yZGVyIG9mIG92ZXJsYXkgb3BlbnMuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlLZXlib2FyZERpc3BhdGNoZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKiBDdXJyZW50bHkgYXR0YWNoZWQgb3ZlcmxheXMgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhdHRhY2hlZC4gKi9cbiAgX2F0dGFjaGVkT3ZlcmxheXM6IE92ZXJsYXlSZWZlcmVuY2VbXSA9IFtdO1xuXG4gIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudDtcbiAgcHJpdmF0ZSBfaXNBdHRhY2hlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBkb2N1bWVudDogYW55KSB7XG4gICAgdGhpcy5fZG9jdW1lbnQgPSBkb2N1bWVudDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2RldGFjaCgpO1xuICB9XG5cbiAgLyoqIEFkZCBhIG5ldyBvdmVybGF5IHRvIHRoZSBsaXN0IG9mIGF0dGFjaGVkIG92ZXJsYXkgcmVmcy4gKi9cbiAgYWRkKG92ZXJsYXlSZWY6IE92ZXJsYXlSZWZlcmVuY2UpOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgdGhhdCB3ZSBkb24ndCBnZXQgdGhlIHNhbWUgb3ZlcmxheSBtdWx0aXBsZSB0aW1lcy5cbiAgICB0aGlzLnJlbW92ZShvdmVybGF5UmVmKTtcblxuICAgIC8vIExhemlseSBzdGFydCBkaXNwYXRjaGVyIG9uY2UgZmlyc3Qgb3ZlcmxheSBpcyBhZGRlZFxuICAgIGlmICghdGhpcy5faXNBdHRhY2hlZCkge1xuICAgICAgdGhpcy5fZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fa2V5ZG93bkxpc3RlbmVyKTtcbiAgICAgIHRoaXMuX2lzQXR0YWNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMuX2F0dGFjaGVkT3ZlcmxheXMucHVzaChvdmVybGF5UmVmKTtcbiAgfVxuXG4gIC8qKiBSZW1vdmUgYW4gb3ZlcmxheSBmcm9tIHRoZSBsaXN0IG9mIGF0dGFjaGVkIG92ZXJsYXkgcmVmcy4gKi9cbiAgcmVtb3ZlKG92ZXJsYXlSZWY6IE92ZXJsYXlSZWZlcmVuY2UpOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX2F0dGFjaGVkT3ZlcmxheXMuaW5kZXhPZihvdmVybGF5UmVmKTtcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLl9hdHRhY2hlZE92ZXJsYXlzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRoZSBnbG9iYWwgbGlzdGVuZXIgb25jZSB0aGVyZSBhcmUgbm8gbW9yZSBvdmVybGF5cy5cbiAgICBpZiAodGhpcy5fYXR0YWNoZWRPdmVybGF5cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuX2RldGFjaCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBEZXRhY2hlcyB0aGUgZ2xvYmFsIGtleWJvYXJkIGV2ZW50IGxpc3RlbmVyLiAqL1xuICBwcml2YXRlIF9kZXRhY2goKSB7XG4gICAgaWYgKHRoaXMuX2lzQXR0YWNoZWQpIHtcbiAgICAgIHRoaXMuX2RvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuX2tleWRvd25MaXN0ZW5lcik7XG4gICAgICB0aGlzLl9pc0F0dGFjaGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEtleWJvYXJkIGV2ZW50IGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBhdHRhY2hlZCB0byB0aGUgYm9keS4gKi9cbiAgcHJpdmF0ZSBfa2V5ZG93bkxpc3RlbmVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgY29uc3Qgb3ZlcmxheXMgPSB0aGlzLl9hdHRhY2hlZE92ZXJsYXlzO1xuXG4gICAgZm9yIChsZXQgaSA9IG92ZXJsYXlzLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XG4gICAgICAvLyBEaXNwYXRjaCB0aGUga2V5ZG93biBldmVudCB0byB0aGUgdG9wIG92ZXJsYXkgd2hpY2ggaGFzIHN1YnNjcmliZXJzIHRvIGl0cyBrZXlkb3duIGV2ZW50cy5cbiAgICAgIC8vIFdlIHdhbnQgdG8gdGFyZ2V0IHRoZSBtb3N0IHJlY2VudCBvdmVybGF5LCByYXRoZXIgdGhhbiB0cnlpbmcgdG8gbWF0Y2ggd2hlcmUgdGhlIGV2ZW50IGNhbWVcbiAgICAgIC8vIGZyb20sIGJlY2F1c2Ugc29tZSBjb21wb25lbnRzIG1pZ2h0IG9wZW4gYW4gb3ZlcmxheSwgYnV0IGtlZXAgZm9jdXMgb24gYSB0cmlnZ2VyIGVsZW1lbnRcbiAgICAgIC8vIChlLmcuIGZvciBzZWxlY3QgYW5kIGF1dG9jb21wbGV0ZSkuIFdlIHNraXAgb3ZlcmxheXMgd2l0aG91dCBrZXlkb3duIGV2ZW50IHN1YnNjcmlwdGlvbnMsXG4gICAgICAvLyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgb3ZlcmxheXMgdGhhdCBkb24ndCBoYW5kbGUga2V5Ym9hcmQgZXZlbnRzIHRvIGJsb2NrIHRoZSBvbmVzIGJlbG93XG4gICAgICAvLyB0aGVtIHRoYXQgZG8uXG4gICAgICBpZiAob3ZlcmxheXNbaV0uX2tleWRvd25FdmVudHMub2JzZXJ2ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgb3ZlcmxheXNbaV0uX2tleWRvd25FdmVudHMubmV4dChldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8qKiBAZG9jcy1wcml2YXRlIEBkZXByZWNhdGVkIEBicmVha2luZy1jaGFuZ2UgOC4wLjAgKi9cbmV4cG9ydCBmdW5jdGlvbiBPVkVSTEFZX0tFWUJPQVJEX0RJU1BBVENIRVJfUFJPVklERVJfRkFDVE9SWShcbiAgICBkaXNwYXRjaGVyOiBPdmVybGF5S2V5Ym9hcmREaXNwYXRjaGVyLCBfZG9jdW1lbnQ6IGFueSkge1xuICByZXR1cm4gZGlzcGF0Y2hlciB8fCBuZXcgT3ZlcmxheUtleWJvYXJkRGlzcGF0Y2hlcihfZG9jdW1lbnQpO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSBAZGVwcmVjYXRlZCBAYnJlYWtpbmctY2hhbmdlIDguMC4wICovXG5leHBvcnQgY29uc3QgT1ZFUkxBWV9LRVlCT0FSRF9ESVNQQVRDSEVSX1BST1ZJREVSID0ge1xuICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGFuIE92ZXJsYXlLZXlib2FyZERpc3BhdGNoZXIgYXZhaWxhYmxlLCB1c2UgdGhhdC5cbiAgLy8gT3RoZXJ3aXNlLCBwcm92aWRlIGEgbmV3IG9uZS5cbiAgcHJvdmlkZTogT3ZlcmxheUtleWJvYXJkRGlzcGF0Y2hlcixcbiAgZGVwczogW1xuICAgIFtuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIE92ZXJsYXlLZXlib2FyZERpc3BhdGNoZXJdLFxuXG4gICAgLy8gQ29lcmNlIHRvIGBJbmplY3Rpb25Ub2tlbmAgc28gdGhhdCB0aGUgYGRlcHNgIG1hdGNoIHRoZSBcInNoYXBlXCJcbiAgICAvLyBvZiB0aGUgdHlwZSBleHBlY3RlZCBieSBBbmd1bGFyXG4gICAgRE9DVU1FTlQgYXMgSW5qZWN0aW9uVG9rZW48YW55PlxuICBdLFxuICB1c2VGYWN0b3J5OiBPVkVSTEFZX0tFWUJPQVJEX0RJU1BBVENIRVJfUFJPVklERVJfRkFDVE9SWVxufTtcbiJdfQ==