private _transformContextualMenuItemOptionsToProps()

in libs/fabric/src/lib/components/button/base-button.component.ts [182:200]


  private _transformContextualMenuItemOptionsToProps(itemOptions: IContextualMenuItemOptions): IContextualMenuItem {
    const sharedProperties = omit(itemOptions, 'renderIcon', 'render');

    // Legacy render mode is used for the icon because otherwise the icon is to the right of the text (instead of the usual left)
    const iconRenderer = this.createInputJsxRenderer(itemOptions.renderIcon, { legacyRenderMode: true });
    const renderer = this.createInputJsxRenderer(itemOptions.render);

    return Object.assign(
      {},
      sharedProperties,
      iconRenderer && {
        onRenderIcon: (item: IContextualMenuItem) => iconRenderer({ contextualMenuItem: item }),
      },
      renderer &&
        ({
          onRender: (item, dismissMenu) => renderer({ item, dismissMenu }),
        } as Pick<IContextualMenuItem, 'onRender'>)
    ) as IContextualMenuItem;
  }