{"version":3,"file":"angular-react-fabric-lib-components-grouped-list.mjs","sources":["../../../libs/fabric/lib/components/grouped-list/grouped-list.component.ts","../../../libs/fabric/lib/components/grouped-list/grouped-list.module.ts","../../../libs/fabric/lib/components/grouped-list/public-api.ts","../../../libs/fabric/lib/components/grouped-list/angular-react-fabric-lib-components-grouped-list.ts"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { InputRendererOptions, JsxRenderFunc, ReactWrapperComponent } from '@angular-react/core';\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  NgZone,\r\n  OnInit,\r\n  Output,\r\n  Renderer2,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { IGroup, IGroupedListProps, IGroupRenderProps } from '@fluentui/react/lib/GroupedList';\r\nimport { IListProps } from '@fluentui/react/lib/List';\r\nimport { Styled } from '@angular-react/fabric/lib/utils';\r\nimport { AngularReact } from '@angular-react/core';\r\n\r\n@AngularReact()\r\n@Styled('FabGroupedListComponent')\r\n@Component({\r\n  selector: 'fab-grouped-list',\r\n  exportAs: 'fabGroupedList',\r\n  template: `\r\n    <GroupedList\r\n      #reactNode\r\n      [componentRef]=\"componentRef\"\r\n      [theme]=\"theme\"\r\n      [styles]=\"styles\"\r\n      [className]=\"className\"\r\n      [compact]=\"compact\"\r\n      [dragDropEvents]=\"dragDropEvents\"\r\n      [dragDropHelper]=\"dragDropHelper\"\r\n      [eventsToRegister]=\"eventsToRegister\"\r\n      [groupProps]=\"groupProps\"\r\n      [groups]=\"groups\"\r\n      [items]=\"items\"\r\n      [listProps]=\"listProps\"\r\n      [selection]=\"selection\"\r\n      [selectionMode]=\"selectionMode\"\r\n      [viewport]=\"viewport\"\r\n      [usePageCache]=\"usePageCache\"\r\n      [shouldVirtualize]=\"shouldVirtualize\"\r\n      [getGroupHeight]=\"getGroupHeight\"\r\n      [RenderCell]=\"renderCell && onRenderCell\"\r\n      [GroupExpandStateChanged]=\"onGroupExpandStateChangedHandler\"\r\n    >\r\n    </GroupedList>\r\n  `,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FabGroupedListComponent extends ReactWrapperComponent<IGroupedListProps> implements OnInit {\r\n  @ViewChild('reactNode', { static: true }) protected reactNodeRef: ElementRef;\r\n\r\n  @Input() componentRef?: IGroupedListProps['componentRef'];\r\n  @Input() theme?: IGroupedListProps['theme'];\r\n  @Input() styles?: IGroupedListProps['styles'];\r\n  @Input() className?: IGroupedListProps['className'];\r\n  @Input() compact?: IGroupedListProps['compact'];\r\n  @Input() dragDropEvents?: IGroupedListProps['dragDropEvents'];\r\n  @Input() dragDropHelper?: IGroupedListProps['dragDropHelper'];\r\n  @Input() eventsToRegister?: IGroupedListProps['eventsToRegister'];\r\n  @Input() groupProps?: IGroupRenderProps;\r\n  @Input() groups?: IGroupedListProps['groups'];\r\n  @Input() items: IGroupedListProps['items'];\r\n  @Input() listProps?: IGroupedListProps['listProps'];\r\n  @Input() selection?: IGroupedListProps['selection'];\r\n  @Input() selectionMode?: IGroupedListProps['selectionMode'];\r\n  @Input() viewport?: IGroupedListProps['viewport'];\r\n  @Input() usePageCache?: IGroupedListProps['usePageCache'];\r\n  @Input() shouldVirtualize?: (props: IListProps) => boolean;\r\n  @Input() getGroupHeight?: (group: IGroup, groupIndex: number) => number;\r\n\r\n  @Input() renderCell: InputRendererOptions<ICellRenderContext>;\r\n\r\n  @Output() readonly onGroupExpandStateChanged = new EventEmitter<{ isSomeGroupExpanded: boolean }>();\r\n\r\n  private _renderCell: JsxRenderFunc<ICellRenderContext>;\r\n\r\n  constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2, ngZone: NgZone) {\r\n    super(elementRef, changeDetectorRef, renderer, { ngZone });\r\n\r\n    // coming from React context - we need to bind to this so we can access the Angular Component properties\r\n    this.onRenderCell = this.onRenderCell.bind(this);\r\n    this.onGroupExpandStateChangedHandler = this.onGroupExpandStateChangedHandler.bind(this);\r\n  }\r\n\r\n  ngOnInit() {\r\n    this._renderCell = this.createInputJsxRenderer(this.renderCell);\r\n  }\r\n\r\n  onRenderCell(nestingDepth?: number, item?: any, index?: number): React.ReactNode {\r\n    return this._renderCell({ nestingDepth, item, index });\r\n  }\r\n\r\n  onGroupExpandStateChangedHandler(isSomeGroupExpanded: boolean) {\r\n    this.onGroupExpandStateChanged.emit({\r\n      isSomeGroupExpanded,\r\n    });\r\n  }\r\n}\r\n\r\nexport interface ICellRenderContext {\r\n  nestingDepth?: number;\r\n  item?: any;\r\n  index?: number;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nimport { registerElement } from '@angular-react/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { GroupedList } from '@fluentui/react/lib/GroupedList';\r\nimport { FabGroupedListComponent } from './grouped-list.component';\r\n\r\nconst components = [FabGroupedListComponent];\r\n\r\n@NgModule({\r\n  imports: [CommonModule],\r\n  declarations: components,\r\n  exports: components,\r\n  schemas: [NO_ERRORS_SCHEMA],\r\n})\r\nexport class FabGroupedListModule {\r\n  constructor() {\r\n    // Add any React elements to the registry (used by the renderer).\r\n    registerElement('GroupedList', () => GroupedList);\r\n  }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\nexport * from './grouped-list.component';\r\nexport * from './grouped-list.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}