UNPKG

react-lightning-design-components

Version:

Salesforce Lightning Design System components built with React 16

217 lines (177 loc) 21.7 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.Row = exports.Col = undefined; var _keys = require('babel-runtime/core-js/object/keys'); var _keys2 = _interopRequireDefault(_keys); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Grid = function Grid(_ref) { var className = _ref.className, frame = _ref.frame, children = _ref.children, props = (0, _objectWithoutProperties3.default)(_ref, ['className', 'frame', 'children']); var gridClassNames = (0, _classnames2.default)(className, 'slds-grid', 'slds-grid--vertical', frame ? 'slds-grid--frame' : null); return _react2.default.createElement( 'div', (0, _extends3.default)({ className: gridClassNames }, props), children ); }; function adjustCols(colNum, large) { if (colNum > 6) { return large ? 12 : 6; } return colNum; } var Col = function Col(props) { var className = props.className, padded = props.padded, align = props.align, noFlex = props.noFlex, order = props.order, orderSmall = props.orderSmall, orderMedium = props.orderMedium, orderLarge = props.orderLarge, cols = props.cols, colsSmall = props.colsSmall, colsMedium = props.colsMedium, colsLarge = props.colsLarge, totalCols = props.totalCols, totalColsSmall = props.totalColsSmall, totalColsMedium = props.totalColsMedium, totalColsLarge = props.totalColsLarge, children = props.children, pprops = (0, _objectWithoutProperties3.default)(props, ['className', 'padded', 'align', 'noFlex', 'order', 'orderSmall', 'orderMedium', 'orderLarge', 'cols', 'colsSmall', 'colsMedium', 'colsLarge', 'totalCols', 'totalColsSmall', 'totalColsMedium', 'totalColsLarge', 'children']); var rowClassNames = (0, _classnames2.default)(className, padded ? 'slds-col--padded' + (/^(medium|large)$/.test(padded) ? '-' + padded : '') : 'slds-col', align ? 'slds-align-' + align : null, noFlex ? 'slds-no-flex' : null, order ? 'slds-order--' + order : null, orderSmall ? 'slds-small-order--' + orderSmall : null, orderMedium ? 'slds-medium-order--' + orderMedium : null, orderLarge ? 'slds-large-order--' + orderLarge : null, cols && totalCols ? 'slds-size--' + cols + '-of-' + adjustCols(totalCols, true) : null, colsSmall && totalColsSmall ? 'slds-small-size--' + colsSmall + '-of-' + adjustCols(totalColsSmall) : null, colsMedium && totalColsMedium ? 'slds-medium-size--' + colsMedium + '-of-' + adjustCols(totalColsMedium) : null, colsLarge && totalColsMedium ? 'slds-large-size--' + colsLarge + '-of-' + adjustCols(totalColsLarge, true) : null); return _react2.default.createElement( 'div', (0, _extends3.default)({ className: rowClassNames }, pprops), children ); }; exports.Col = Col; var COL_ALIGNS = ['top', 'medium', 'bottom']; Col.propTypes = { className: _propTypes2.default.string, padded: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]), align: _propTypes2.default.oneOf(COL_ALIGNS), noFlex: _propTypes2.default.bool, order: _propTypes2.default.number, orderSmall: _propTypes2.default.number, orderMedium: _propTypes2.default.number, orderLarge: _propTypes2.default.number, nowrap: _propTypes2.default.bool, cols: _propTypes2.default.number, colsSmall: _propTypes2.default.number, colsMedium: _propTypes2.default.number, colsLarge: _propTypes2.default.number, totalCols: _propTypes2.default.number, totalColsSmall: _propTypes2.default.number, totalColsMedium: _propTypes2.default.number, totalColsLarge: _propTypes2.default.number, children: _propTypes2.default.node }; Grid.propTypes = { className: _propTypes2.default.string, frame: _propTypes2.default.bool, children: _propTypes2.default.node }; var Row = exports.Row = function (_Component) { (0, _inherits3.default)(Row, _Component); function Row() { (0, _classCallCheck3.default)(this, Row); return (0, _possibleConstructorReturn3.default)(this, (Row.__proto__ || (0, _getPrototypeOf2.default)(Row)).apply(this, arguments)); } (0, _createClass3.default)(Row, [{ key: 'renderColumn', value: function renderColumn(colProps, child) { if (child.type !== _react2.default.createElement(Col, null).type) { return _react2.default.createElement( Col, colProps, child ); } /* eslint-disable no-param-reassign */ var childProps = (0, _keys2.default)(colProps).reduce(function (cprops, key) { cprops[key] = child.props[key] || colProps[key]; return cprops; }, {}); return _react2.default.cloneElement(child, childProps); } }, { key: 'render', value: function render() { var _props = this.props, className = _props.className, align = _props.align, nowrap = _props.nowrap, nowrapSmall = _props.nowrapSmall, nowrapMedium = _props.nowrapMedium, nowrapLarge = _props.nowrapLarge, cols = _props.cols, colsSmall = _props.colsSmall, colsMedium = _props.colsMedium, colsLarge = _props.colsLarge, children = _props.children, props = (0, _objectWithoutProperties3.default)(_props, ['className', 'align', 'nowrap', 'nowrapSmall', 'nowrapMedium', 'nowrapLarge', 'cols', 'colsSmall', 'colsMedium', 'colsLarge', 'children']); var rowClassNames = (0, _classnames2.default)(className, 'slds-grid', align ? 'slds-grid--align-' + align : null, nowrap ? 'slds-nowrap' : 'slds-wrap', nowrapSmall ? 'slds-nowrap--small' : null, nowrapMedium ? 'slds-nowrap--medium' : null, nowrapLarge ? 'slds-nowrap--large' : null); var totalCols = cols || function () { var cnt = 0; _react2.default.Children.forEach(children, function (child) { cnt += child.props.cols || 1; }); return cnt; }(); var colProps = { totalCols: totalCols, totalColsSmall: colsSmall || totalCols, totalColsMedium: colsMedium || totalCols, totalColsLarge: colsLarge || totalCols }; return _react2.default.createElement( 'div', (0, _extends3.default)({ className: rowClassNames }, props), _react2.default.Children.map(children, this.renderColumn.bind(this, colProps)) ); } }]); return Row; }(_react.Component); var ROW_ALIGNS = ['center', 'space', 'spread']; Row.propTypes = { className: _propTypes2.default.string, align: _propTypes2.default.oneOf(ROW_ALIGNS), nowrap: _propTypes2.default.bool, nowrapSmall: _propTypes2.default.bool, nowrapMedium: _propTypes2.default.bool, nowrapLarge: _propTypes2.default.bool, cols: _propTypes2.default.number, colsSmall: _propTypes2.default.number, colsMedium: _propTypes2.default.number, colsLarge: _propTypes2.default.number, children: _propTypes2.default.node }; exports.default = Grid; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL0dyaWQuanMiXSwibmFtZXMiOlsiR3JpZCIsImNsYXNzTmFtZSIsImZyYW1lIiwiY2hpbGRyZW4iLCJwcm9wcyIsImdyaWRDbGFzc05hbWVzIiwiYWRqdXN0Q29scyIsImNvbE51bSIsImxhcmdlIiwiQ29sIiwicGFkZGVkIiwiYWxpZ24iLCJub0ZsZXgiLCJvcmRlciIsIm9yZGVyU21hbGwiLCJvcmRlck1lZGl1bSIsIm9yZGVyTGFyZ2UiLCJjb2xzIiwiY29sc1NtYWxsIiwiY29sc01lZGl1bSIsImNvbHNMYXJnZSIsInRvdGFsQ29scyIsInRvdGFsQ29sc1NtYWxsIiwidG90YWxDb2xzTWVkaXVtIiwidG90YWxDb2xzTGFyZ2UiLCJwcHJvcHMiLCJyb3dDbGFzc05hbWVzIiwidGVzdCIsIkNPTF9BTElHTlMiLCJwcm9wVHlwZXMiLCJzdHJpbmciLCJvbmVPZlR5cGUiLCJib29sIiwib25lT2YiLCJudW1iZXIiLCJub3dyYXAiLCJub2RlIiwiUm93IiwiY29sUHJvcHMiLCJjaGlsZCIsInR5cGUiLCJjaGlsZFByb3BzIiwicmVkdWNlIiwiY3Byb3BzIiwia2V5IiwiY2xvbmVFbGVtZW50Iiwibm93cmFwU21hbGwiLCJub3dyYXBNZWRpdW0iLCJub3dyYXBMYXJnZSIsImNudCIsIkNoaWxkcmVuIiwiZm9yRWFjaCIsIm1hcCIsInJlbmRlckNvbHVtbiIsImJpbmQiLCJST1dfQUxJR05TIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLE9BQU8sU0FBUEEsSUFBTyxPQUE4QztBQUFBLE1BQTNDQyxTQUEyQyxRQUEzQ0EsU0FBMkM7QUFBQSxNQUFoQ0MsS0FBZ0MsUUFBaENBLEtBQWdDO0FBQUEsTUFBekJDLFFBQXlCLFFBQXpCQSxRQUF5QjtBQUFBLE1BQVpDLEtBQVk7O0FBQ3pELE1BQU1DLGlCQUFpQiwwQkFD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QVc7QUFDMUNVLGlCQUFPVixNQUFNbkMsS0FBTixDQUFZYSxJQUFaLElBQW9CLENBQTNCO0FBQ0QsU0FGRDtBQUdBLGVBQU9nQyxHQUFQO0FBQ0QsT0FOeUIsRUFBMUI7QUFPQSxVQUFNWCxXQUFXO0FBQ2ZqQiw0QkFEZTtBQUVmQyx3QkFBZ0JKLGFBQWFHLFNBRmQ7QUFHZkUseUJBQWlCSixjQUFjRSxTQUhoQjtBQUlmRyx3QkFBZ0JKLGFBQWFDO0FBSmQsT0FBakI7QUFNQSxhQUNFO0FBQUE7QUFBQSxpQ0FBSyxXQUFZSyxhQUFqQixJQUFzQ3RCLEtBQXRDO0FBQ0ksd0JBQU04QyxRQUFOLENBQWVFLEdBQWYsQ0FBbUJqRCxRQUFuQixFQUE2QixLQUFLa0QsWUFBTCxDQUFrQkMsSUFBbEIsQ0FBdUIsSUFBdkIsRUFBNkJoQixRQUE3QixDQUE3QjtBQURKLE9BREY7QUFLRDs7Ozs7QUFHSCxJQUFNaUIsYUFBYSxDQUNqQixRQURpQixFQUVqQixPQUZpQixFQUdqQixRQUhpQixDQUFuQjs7QUFNQWxCLElBQUlSLFNBQUosR0FBZ0I7QUFDZDVCLGFBQVcsb0JBQVU2QixNQURQO0FBRWRuQixTQUFPLG9CQUFVc0IsS0FBVixDQUFnQnNCLFVBQWhCLENBRk87QUFHZHBCLFVBQVEsb0JBQVVILElBSEo7QUFJZGMsZUFBYSxvQkFBVWQsSUFKVDtBQUtkZSxnQkFBYyxvQkFBVWYsSUFMVjtBQU1kZ0IsZUFBYSxvQkFBVWhCLElBTlQ7QUFPZGYsUUFBTSxvQkFBVWlCLE1BUEY7QUFRZGhCLGFBQVcsb0JBQVVnQixNQVJQO0FBU2RmLGNBQVksb0JBQVVlLE1BVFI7QUFVZGQsYUFBVyxvQkFBVWMsTUFWUDtBQVdkL0IsWUFBVSxvQkFBVWlDO0FBWE4sQ0FBaEI7O2tCQWVlcEMsSSIsImZpbGUiOiJHcmlkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuY29uc3QgR3JpZCA9ICh7IGNsYXNzTmFtZSwgZnJhbWUsIGNoaWxkcmVuLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IGdyaWRDbGFzc05hbWVzID0gY2xhc3NuYW1lcyhcbiAgICBjbGFzc05hbWUsICdzbGRzLWdyaWQnLCAnc2xkcy1ncmlkLS12ZXJ0aWNhbCcsXG4gICAgZnJhbWUgPyAnc2xkcy1ncmlkLS1mcmFtZScgOiBudWxsXG4gICk7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9eyBncmlkQ2xhc3NOYW1lcyB9IHsgLi4ucHJvcHMgfT5cbiAgICAgIHsgY2hpbGRyZW4gfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZnVuY3Rpb24gYWRqdXN0Q29scyhjb2xOdW0sIGxhcmdlKSB7XG4gIGlmIChjb2xOdW0gPiA2KSB7XG4gICAgcmV0dXJuIGxhcmdlID8gMTIgOiA2O1xuICB9XG4gIHJldHVybiBjb2xOdW07XG59XG5cbmV4cG9ydCBjb25zdCBDb2wgPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGNsYXNzTmFtZSwgcGFkZGVkLCBhbGlnbiwgbm9GbGV4LFxuICAgIG9yZGVyLCBvcmRlclNtYWxsLCBvcmRlck1lZGl1bSwgb3JkZXJMYXJnZSxcbiAgICBjb2xzLCBjb2xzU21hbGwsIGNvbHNNZWRpdW0sIGNvbHNMYXJnZSxcbiAgICB0b3RhbENvbHMsIHRvdGFsQ29sc1NtYWxsLCB0b3RhbENvbHNNZWRpdW0sIHRvdGFsQ29sc0xhcmdlLFxuICAgIGNoaWxkcmVuLCAuLi5wcHJvcHMsXG4gIH0gPSBwcm9wcztcbiAgY29uc3Qgcm93Q2xhc3NOYW1lcyA9IGNsYXNzbmFtZXMoXG4gICAgY2xhc3NOYW1lLFxuICAgIHBhZGRlZCA/XG4gICAgICBgc2xkcy1jb2wtLXBhZGRlZCR7L14obWVkaXVtfGxhcmdlKSQvLnRlc3QocGFkZGVkKSA/IGAtJHtwYWRkZWR9YCA6ICcnfWAgOlxuICAgICAgJ3NsZHMtY29sJyxcbiAgICBhbGlnbiA/IGBzbGRzLWFsaWduLSR7YWxpZ259YCA6IG51bGwsXG4gICAgbm9GbGV4ID8gJ3NsZHMtbm8tZmxleCcgOiBudWxsLFxuICAgIG9yZGVyID8gYHNsZHMtb3JkZXItLSR7b3JkZXJ9YCA6IG51bGwsXG4gICAgb3JkZXJTbWFsbCA/IGBzbGRzLXNtYWxsLW9yZGVyLS0ke29yZGVyU21hbGx9YCA6IG51bGwsXG4gICAgb3JkZXJNZWRpdW0gPyBgc2xkcy1tZWRpdW0tb3JkZXItLSR7b3JkZXJNZWRpdW19YCA6IG51bGwsXG4gICAgb3JkZXJMYXJnZSA/IGBzbGRzLWxhcmdlLW9yZGVyLS0ke29yZGVyTGFyZ2V9YCA6IG51bGwsXG4gICAgY29scyAmJiB0b3RhbENvbHMgPyBgc2xkcy1zaXplLS0ke2NvbHN9LW9mLSR7YWRqdXN0Q29scyh0b3RhbENvbHMsIHRydWUpfWAgOiBudWxsLFxuICAgIGNvbHNTbWFsbCAmJiB0b3RhbENvbHNTbWFsbCA/XG4gICAgICBgc2xkcy1zbWFsbC1zaXplLS0ke2NvbHNTbWFsbH0tb2YtJHthZGp1c3RDb2xzKHRvdGFsQ29sc1NtYWxsKX1gIDogbnVsbCxcbiAgICBjb2xzTWVkaXVtICYmIHRvdGFsQ29sc01lZGl1bSA/XG4gICAgICBgc2xkcy1tZWRpdW0tc2l6ZS0tJHtjb2xzTWVkaXVtfS1vZi0ke2FkanVzdENvbHModG90YWxDb2xzTWVkaXVtKX1gIDogbnVsbCxcbiAgICBjb2xzTGFyZ2UgJiYgdG90YWxDb2xzTWVkaXVtID9cbiAgICAgIGBzbGRzLWxhcmdlLXNpemUtLSR7Y29sc0xhcmdlfS1vZi0ke2FkanVzdENvbHModG90YWxDb2xzTGFyZ2UsIHRydWUpfWAgOiBudWxsXG4gICk7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9eyByb3dDbGFzc05hbWVzIH0geyAuLi5wcHJvcHMgfT5cbiAgICAgIHsgY2hpbGRyZW4gfVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgQ09MX0FMSUdOUyA9IFtcbiAgJ3RvcCcsXG4gICdtZWRpdW0nLFxuICAnYm90dG9tJyxcbl07XG5cbkNvbC5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgcGFkZGVkOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICBQcm9wVHlwZXMuYm9vbCxcbiAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICBdKSxcbiAgYWxpZ246IFByb3BUeXBlcy5vbmVPZihDT0xfQUxJR05TKSxcbiAgbm9GbGV4OiBQcm9wVHlwZXMuYm9vbCxcbiAgb3JkZXI6IFByb3BUeXBlcy5udW1iZXIsXG4gIG9yZGVyU21hbGw6IFByb3BUeXBlcy5udW1iZXIsXG4gIG9yZGVyTWVkaXVtOiBQcm9wVHlwZXMubnVtYmVyLFxuICBvcmRlckxhcmdlOiBQcm9wVHlwZXMubnVtYmVyLFxuICBub3dyYXA6IFByb3BUeXBlcy5ib29sLFxuICBjb2xzOiBQcm9wVHlwZXMubnVtYmVyLFxuICBjb2xzU21hbGw6IFByb3BUeXBlcy5udW1iZXIsXG4gIGNvbHNNZWRpdW06IFByb3BUeXBlcy5udW1iZXIsXG4gIGNvbHNMYXJnZTogUHJvcFR5cGVzLm51bWJlcixcbiAgdG90YWxDb2xzOiBQcm9wVHlwZXMubnVtYmVyLFxuICB0b3RhbENvbHNTbWFsbDogUHJvcFR5cGVzLm51bWJlcixcbiAgdG90YWxDb2xzTWVkaXVtOiBQcm9wVHlwZXMubnVtYmVyLFxuICB0b3RhbENvbHNMYXJnZTogUHJvcFR5cGVzLm51bWJlcixcbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxufTtcblxuR3JpZC5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgZnJhbWU6IFByb3BUeXBlcy5ib29sLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5leHBvcnQgY2xhc3MgUm93IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcmVuZGVyQ29sdW1uKGNvbFByb3BzLCBjaGlsZCkge1xuICAgIGlmIChjaGlsZC50eXBlICE9PSAoPENvbCAvPikudHlwZSkge1xuICAgICAgcmV0dXJuIDxDb2wgeyAuLi5jb2xQcm9wcyB9PnsgY2hpbGQgfTwvQ29sPjtcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuICAgIGNvbnN0IGNoaWxkUHJvcHMgPSBPYmplY3Qua2V5cyhjb2xQcm9wcykucmVkdWNlKChjcHJvcHMsIGtleSkgPT4ge1xuICAgICAgY3Byb3BzW2tleV0gPSBjaGlsZC5wcm9wc1trZXldIHx8IGNvbFByb3BzW2tleV07XG4gICAgICByZXR1cm4gY3Byb3BzO1xuICAgIH0sIHt9KTtcbiAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCBjaGlsZFByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjbGFzc05hbWUsIGFsaWduLCBub3dyYXAsIG5vd3JhcFNtYWxsLCBub3dyYXBNZWRpdW0sIG5vd3JhcExhcmdlLFxuICAgICAgY29scywgY29sc1NtYWxsLCBjb2xzTWVkaXVtLCBjb2xzTGFyZ2UsXG4gICAgICBjaGlsZHJlbiwgLi4ucHJvcHMsXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qgcm93Q2xhc3NOYW1lcyA9IGNsYXNzbmFtZXMoXG4gICAgICBjbGFzc05hbWUsICdzbGRzLWdyaWQnLFxuICAgICAgYWxpZ24gPyBgc2xkcy1ncmlkLS1hbGlnbi0ke2FsaWdufWAgOiBudWxsLFxuICAgICAgbm93cmFwID8gJ3NsZHMtbm93cmFwJyA6ICdzbGRzLXdyYXAnLFxuICAgICAgbm93cmFwU21hbGwgPyAnc2xkcy1ub3dyYXAtLXNtYWxsJyA6IG51bGwsXG4gICAgICBub3dyYXBNZWRpdW0gPyAnc2xkcy1ub3dyYXAtLW1lZGl1bScgOiBudWxsLFxuICAgICAgbm93cmFwTGFyZ2UgPyAnc2xkcy1ub3dyYXAtLWxhcmdlJyA6IG51bGxcbiAgICApO1xuICAgIGNvbnN0IHRvdGFsQ29scyA9IGNvbHMgfHwgKCgpID0+IHtcbiAgICAgIGxldCBjbnQgPSAwO1xuICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgIGNudCArPSBjaGlsZC5wcm9wcy5jb2xzIHx8IDE7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjbnQ7XG4gICAgfSkoKTtcbiAgICBjb25zdCBjb2xQcm9wcyA9IHtcbiAgICAgIHRvdGFsQ29scyxcbiAgICAgIHRvdGFsQ29sc1NtYWxsOiBjb2xzU21hbGwgfHwgdG90YWxDb2xzLFxuICAgICAgdG90YWxDb2xzTWVkaXVtOiBjb2xzTWVkaXVtIHx8IHRvdGFsQ29scyxcbiAgICAgIHRvdGFsQ29sc0xhcmdlOiBjb2xzTGFyZ2UgfHwgdG90YWxDb2xzLFxuICAgIH07XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXsgcm93Q2xhc3NOYW1lcyB9IHsgLi4ucHJvcHMgfT5cbiAgICAgICAgeyBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIHRoaXMucmVuZGVyQ29sdW1uLmJpbmQodGhpcywgY29sUHJvcHMpKSB9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IFJPV19BTElHTlMgPSBbXG4gICdjZW50ZXInLFxuICAnc3BhY2UnLFxuICAnc3ByZWFkJyxcbl07XG5cblJvdy5wcm9wVHlwZXMgPSB7XG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgYWxpZ246IFByb3BUeXBlcy5vbmVPZihST1dfQUxJR05TKSxcbiAgbm93cmFwOiBQcm9wVHlwZXMuYm9vbCxcbiAgbm93cmFwU21hbGw6IFByb3BUeXBlcy5ib29sLFxuICBub3dyYXBNZWRpdW06IFByb3BUeXBlcy5ib29sLFxuICBub3dyYXBMYXJnZTogUHJvcFR5cGVzLmJvb2wsXG4gIGNvbHM6IFByb3BUeXBlcy5udW1iZXIsXG4gIGNvbHNTbWFsbDogUHJvcFR5cGVzLm51bWJlcixcbiAgY29sc01lZGl1bTogUHJvcFR5cGVzLm51bWJlcixcbiAgY29sc0xhcmdlOiBQcm9wVHlwZXMubnVtYmVyLFxuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG59O1xuXG5cbmV4cG9ydCBkZWZhdWx0IEdyaWQ7XG4iXX0=