UNPKG

@uifabric/experiments

Version:

Experimental React components for building experiences for Office 365.

66 lines 2.6 kB
import * as tslib_1 from "tslib"; import * as React from 'react'; import { BaseState } from '../../utilities/BaseState'; import { getRTL, KeyCodes } from '../../Utilities'; var CollapsibleSectionState = /** @class */ (function (_super) { tslib_1.__extends(CollapsibleSectionState, _super); function CollapsibleSectionState(props) { var _this = _super.call(this, props, { controlledProps: ['collapsed'] }) || this; _this._titleElement = React.createRef(); _this._onClick = function (ev) { _this.setState({ collapsed: !_this.state.collapsed }); ev.preventDefault(); ev.stopPropagation(); }; _this._onRootKeyDown = function (ev) { var rootKey = getRTL() ? KeyCodes.right : KeyCodes.left; switch (ev.which) { case rootKey: if (_this._titleElement && _this._titleElement.current && ev.target !== _this._titleElement.current) { _this._titleElement.current.focus(); ev.preventDefault(); ev.stopPropagation(); } break; default: break; } }; _this._onKeyDown = function (ev) { var collapsed = _this.state.collapsed; var collapseKey = getRTL() ? KeyCodes.right : KeyCodes.left; var expandKey = getRTL() ? KeyCodes.left : KeyCodes.right; switch (ev.which) { case collapseKey: if (!collapsed) { _this.setState({ collapsed: true }); break; } return; case expandKey: if (collapsed) { _this.setState({ collapsed: false }); break; } return; default: return; } ev.preventDefault(); ev.stopPropagation(); }; _this.state = { collapsed: !!props.defaultCollapsed, onClick: _this._onClick, onKeyDown: _this._onKeyDown, onRootKeyDown: _this._onRootKeyDown, titleElementRef: _this._titleElement }; return _this; } return CollapsibleSectionState; }(BaseState)); export { CollapsibleSectionState }; //# sourceMappingURL=CollapsibleSection.state.js.map