office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
210 lines • 11.5 kB
JavaScript
import * as tslib_1 from "tslib";
import * as React from 'react';
import { ContextualMenuItemType } from 'office-ui-fabric-react/lib/ContextualMenu';
import { DefaultButton, IconButton } from 'office-ui-fabric-react/lib/Button';
import { FocusZoneDirection } from 'office-ui-fabric-react/lib/FocusZone';
import { autobind } from 'office-ui-fabric-react/lib/Utilities';
import './ContextualMenuExample.scss';
var ContextualMenuCustomizationWithNoWrapExample = /** @class */ (function (_super) {
tslib_1.__extends(ContextualMenuCustomizationWithNoWrapExample, _super);
function ContextualMenuCustomizationWithNoWrapExample() {
return _super !== null && _super.apply(this, arguments) || this;
}
ContextualMenuCustomizationWithNoWrapExample.prototype.render = function () {
return (React.createElement(DefaultButton, { className: 'ContextualMenuButton3', text: 'Click for ContextualMenu', menuProps: {
shouldFocusOnMount: true,
directionalHint: 4 /* bottomLeftEdge */,
className: 'ms-ContextualMenu-customizationExample',
items: [
{
key: 'newItem',
name: 'New'
},
{
key: 'upload',
name: 'Upload'
},
{
key: 'divider_1',
itemType: ContextualMenuItemType.Divider
},
{
key: 'charm',
name: 'Charm',
className: 'Charm-List',
subMenuProps: {
focusZoneProps: {
direction: FocusZoneDirection.bidirectional,
checkForNoWrap: true
},
items: [
{
key: 'bulb',
name: 'Lightbulb',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'run',
name: 'Running',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'plane',
name: 'Airplane',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'page',
name: 'Page',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'cake',
name: 'Cake',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'soccer',
name: 'Soccer',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'home',
name: 'Home',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'emoji',
name: 'Emoji2',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'work',
name: 'Work',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'coffee',
name: 'Coffee',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'people',
name: 'People',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'stopwatch',
name: 'Stopwatch',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'music',
name: 'MusicInCollectionFill',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'lock',
name: 'Lock',
onRender: this._renderCharmMenuItem,
className: 'ms-ContextualMenu-customizationExample-item'
},
{
key: 'item3',
name: 'Item 3',
'data-no-horizontal-wrap': true
},
{
key: 'item4',
name: 'Item 4',
'data-no-horizontal-wrap': true
},
]
},
},
{
key: 'categories',
name: 'Categorize',
subMenuProps: {
items: [
{
key: 'categories',
name: 'categories',
categoryList: [
{
name: 'Personal',
color: 'yellow'
},
{
name: 'Work',
color: 'green'
},
{
name: 'Birthday',
color: 'blue'
},
{
name: 'Spam',
color: 'grey'
},
{
name: 'Urgent',
color: 'red'
},
{
name: 'Hobbies',
color: 'black'
},
],
onRender: this._renderCategoriesList
},
{
key: 'divider_1',
itemType: ContextualMenuItemType.Divider
},
{
key: 'clear',
name: 'Clear categories'
},
{
key: 'manage',
name: 'Manage categories'
}
]
},
}
]
} }));
};
ContextualMenuCustomizationWithNoWrapExample.prototype._renderCharmMenuItem = function (item, dismissMenu) {
return (React.createElement(IconButton, tslib_1.__assign({}, item, { iconProps: { iconName: item.name }, className: 'ms-ContextualMenu-customizationExample-icon ms-ContextualMenu-link', "data-is-focusable": true, onClick: dismissMenu, "data-no-vertical-wrap": true })));
};
ContextualMenuCustomizationWithNoWrapExample.prototype._renderCategoriesList = function (item) {
return (React.createElement("ul", { className: 'ms-ContextualMenu-customizationExample-categoriesList' },
React.createElement("li", { className: 'ms-ContextualMenu-item' }, item.categoryList.map(function (category) {
return React.createElement("button", { key: category.name, className: 'ms-ContextualMenu-link', role: 'menuitem' },
React.createElement("div", null,
React.createElement("span", { className: 'ms-ContextualMenu-icon ms-ContextualMenu-customizationExample-categorySwatch', style: { backgroundColor: category.color } }),
React.createElement("span", { className: 'ms-ContextualMenu-itemText' }, category.name)));
}))));
};
tslib_1.__decorate([
autobind
], ContextualMenuCustomizationWithNoWrapExample.prototype, "_renderCharmMenuItem", null);
return ContextualMenuCustomizationWithNoWrapExample;
}(React.Component));
export { ContextualMenuCustomizationWithNoWrapExample };
//# sourceMappingURL=ContextualMenu.CustomizationWithNoWrap.Example.js.map