{"version":3,"file":"angular-react-fabric-lib-components-panel.mjs","sources":["../../../libs/fabric/lib/components/panel/panel.component.ts","../../../libs/fabric/lib/components/panel/panel.module.ts","../../../libs/fabric/lib/components/panel/public-api.ts","../../../libs/fabric/lib/components/panel/angular-react-fabric-lib-components-panel.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 { IPanelHeaderRenderer, IPanelProps } from '@fluentui/react/lib/Panel';\r\nimport { Styled } from '@angular-react/fabric/lib/utils';\r\nimport { AngularReact } from '@angular-react/core';\r\n\r\n@AngularReact()\r\n@Styled('FabPanelComponent')\r\n@Component({\r\n  selector: 'fab-panel',\r\n  exportAs: 'fabPanel',\r\n  template: `\r\n    <Panel\r\n      #reactNode\r\n      [componentRef]=\"componentRef\"\r\n      [isOpen]=\"isOpen\"\r\n      [hasCloseButton]=\"hasCloseButton\"\r\n      [isLightDismiss]=\"isLightDismiss\"\r\n      [isHiddenOnDismiss]=\"isHiddenOnDismiss\"\r\n      [isBlocking]=\"isBlocking\"\r\n      [isFooterAtBottom]=\"isFooterAtBottom\"\r\n      [headerText]=\"headerText\"\r\n      [styles]=\"styles\"\r\n      [theme]=\"theme\"\r\n      [className]=\"className\"\r\n      [type]=\"type\"\r\n      [customWidth]=\"customWidth\"\r\n      [closeButtonAriaLabel]=\"closeButtonAriaLabel\"\r\n      [headerClassName]=\"headerClassName\"\r\n      [elementToFocusOnDismiss]=\"elementToFocusOnDismiss\"\r\n      [ignoreExternalFocusing]=\"ignoreExternalFocusing\"\r\n      [forceFocusInsideTrap]=\"forceFocusInsideTrap\"\r\n      [firstFocusableSelector]=\"firstFocusableSelector\"\r\n      [focusTrapZoneProps]=\"focusTrapZoneProps\"\r\n      [layerProps]=\"layerProps\"\r\n      [componentId]=\"componentId\"\r\n      [RenderHeader]=\"renderHeader && onRenderHeader\"\r\n      [RenderNavigation]=\"renderNavigation && onRenderNavigation\"\r\n      [RenderNavigationContent]=\"renderNavigationContent && onRenderNavigationContent\"\r\n      [RenderBody]=\"renderBody && onRenderBody\"\r\n      [RenderFooter]=\"renderFooter && onRenderFooter\"\r\n      [RenderFooterContent]=\"renderFooterContent && onRenderFooterContent\"\r\n      [Dismiss]=\"onDismissHandler\"\r\n      (onOpen)=\"onOpen.emit($event)\"\r\n      (onOpened)=\"onOpened.emit($event)\"\r\n      (onDismissed)=\"onDismissed.emit($event)\"\r\n      (onLightDismissClick)=\"onLightDismissClick.emit($event)\"\r\n    >\r\n      <ReactContent><ng-content></ng-content></ReactContent>\r\n    </Panel>\r\n  `,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FabPanelComponent extends ReactWrapperComponent<IPanelProps> implements OnInit {\r\n  @ViewChild('reactNode', { static: true }) protected reactNodeRef: ElementRef;\r\n\r\n  @Input() componentRef?: IPanelProps['componentRef'];\r\n  @Input() isOpen?: IPanelProps['isOpen'];\r\n  @Input() hasCloseButton?: IPanelProps['hasCloseButton'];\r\n  @Input() isLightDismiss?: IPanelProps['isLightDismiss'];\r\n  @Input() isHiddenOnDismiss?: IPanelProps['isHiddenOnDismiss'];\r\n  @Input() isBlocking?: IPanelProps['isBlocking'];\r\n  @Input() isFooterAtBottom?: IPanelProps['isFooterAtBottom'];\r\n  @Input() headerText?: IPanelProps['headerText'];\r\n  @Input() styles?: IPanelProps['styles'];\r\n  @Input() theme?: IPanelProps['theme'];\r\n  @Input() className?: IPanelProps['className'];\r\n  @Input() type?: IPanelProps['type'];\r\n  @Input() customWidth?: IPanelProps['customWidth'];\r\n  @Input() closeButtonAriaLabel?: IPanelProps['closeButtonAriaLabel'];\r\n  @Input() headerClassName?: IPanelProps['headerClassName'];\r\n  @Input() elementToFocusOnDismiss?: IPanelProps['elementToFocusOnDismiss'];\r\n  @Input() ignoreExternalFocusing?: IPanelProps['ignoreExternalFocusing'];\r\n  @Input() forceFocusInsideTrap?: IPanelProps['forceFocusInsideTrap'];\r\n  @Input() firstFocusableSelector?: IPanelProps['firstFocusableSelector'];\r\n  @Input() focusTrapZoneProps?: IPanelProps['focusTrapZoneProps'];\r\n  @Input() layerProps?: IPanelProps['layerProps'];\r\n  @Input() componentId?: IPanelProps['componentId'];\r\n\r\n  @Input() renderNavigation?: InputRendererOptions<IPanelProps>;\r\n  @Input() renderNavigationContent?: InputRendererOptions<IPanelProps>;\r\n  @Input() renderHeader?: InputRendererOptions<IPanelHeaderRenderContext>;\r\n  @Input() renderBody?: InputRendererOptions<IPanelProps>;\r\n  @Input() renderFooter?: InputRendererOptions<IPanelProps>;\r\n  @Input() renderFooterContent?: InputRendererOptions<IPanelProps>;\r\n\r\n  @Output() readonly onLightDismissClick = new EventEmitter<void>();\r\n  @Output() readonly onOpen = new EventEmitter<void>();\r\n  @Output() readonly onOpened = new EventEmitter<void>();\r\n  @Output() readonly onDismiss = new EventEmitter<{ ev?: Event }>();\r\n  @Output() readonly onDismissed = new EventEmitter<void>();\r\n\r\n  private _renderHeader: JsxRenderFunc<IPanelHeaderRenderContext>;\r\n  onRenderNavigation: (props?: IPanelProps, defaultRender?: JsxRenderFunc<IPanelProps>) => JSX.Element;\r\n  onRenderNavigationContent: (props?: IPanelProps, defaultRender?: JsxRenderFunc<IPanelProps>) => JSX.Element;\r\n  onRenderBody: (props?: IPanelProps, defaultRender?: JsxRenderFunc<IPanelProps>) => JSX.Element;\r\n  onRenderFooter: (props?: IPanelProps, defaultRender?: JsxRenderFunc<IPanelProps>) => JSX.Element;\r\n  onRenderFooterContent: (props?: IPanelProps, defaultRender?: JsxRenderFunc<IPanelProps>) => JSX.Element;\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.onRenderHeader = this.onRenderHeader.bind(this);\r\n    this.onDismissHandler = this.onDismissHandler.bind(this);\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.onRenderNavigation = this.createRenderPropHandler(this.renderNavigation);\r\n    this.onRenderNavigationContent = this.createRenderPropHandler(this.renderNavigationContent);\r\n    this._renderHeader = this.createInputJsxRenderer(this.renderHeader);\r\n    this.onRenderBody = this.createRenderPropHandler(this.renderBody);\r\n    this.onRenderFooter = this.createRenderPropHandler(this.renderFooter);\r\n    this.onRenderFooterContent = this.createRenderPropHandler(this.renderFooterContent);\r\n  }\r\n\r\n  onRenderHeader(\r\n    props?: IPanelProps,\r\n    defaultRender?: IPanelHeaderRenderer,\r\n    headerTextId?: string | undefined\r\n  ): JSX.Element {\r\n    if (!this.renderHeader) {\r\n      return typeof defaultRender === 'function' ? defaultRender(props, defaultRender, headerTextId) : null;\r\n    }\r\n\r\n    return this._renderHeader({ props, headerTextId });\r\n  }\r\n\r\n  onDismissHandler(ev?: React.SyntheticEvent<HTMLElement>) {\r\n    this.onDismiss.emit({\r\n      ev: ev && ev.nativeEvent,\r\n    });\r\n  }\r\n}\r\n\r\n/**\r\n * Counterpart of `IPanelHeaderRenderer`.\r\n */\r\nexport interface IPanelHeaderRenderContext {\r\n  props?: IPanelProps;\r\n  headerTextId?: string | undefined;\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 { Panel } from '@fluentui/react/lib/Panel';\r\nimport { FabPanelComponent } from './panel.component';\r\n\r\nconst components = [FabPanelComponent];\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 FabPanelModule {\r\n  constructor() {\r\n    // Add any React elements to the registry (used by the renderer).\r\n    registerElement('Panel', () => Panel);\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 './panel.component';\r\nexport * from './panel.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}