UNPKG

adui

Version:

<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>

227 lines (226 loc) 31 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } var React = _interopRequireWildcard(require("react")); var _enzyme = require("enzyme"); var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer")); var _sinon = _interopRequireDefault(require("sinon")); var _2 = _interopRequireDefault(require("..")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } window.ResizeObserver = window.ResizeObserver || jest.fn().mockImplementation(function () { return { disconnect: jest.fn(), observe: jest.fn(), unobserve: jest.fn() }; }); var dataSource = [{ one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }, { one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }, { one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }, { one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }, { one: "阿萨德", two: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", four: "阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德阿萨德", three: "阿萨德阿萨德阿萨德阿萨德阿萨德" }]; describe("Table", function () { beforeAll(function () { Element.prototype.getBoundingClientRect = jest.fn(function () { return { width: 500, height: 600, top: 0, left: 0, bottom: 0, right: 0, x: 0, y: 0, toJSON: function toJSON() {} }; }); }); it("headerAffixed 检测", function () { var wrapper = (0, _enzyme.mount)(React.createElement(_2["default"], { dataSource: dataSource, headerAffixed: true }, React.createElement(_2["default"].Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", popover: "\u8868\u5934\u63D0\u793A\u5185\u5BB9", width: "100px", fixed: "left" }), React.createElement(_2["default"].Column, { fixed: "right", dataIndex: "two", title: "\u7B2Cer\u9879", width: 300 }), React.createElement(_2["default"].Column, { dataIndex: "s", title: "\u7B2Csi\u9879", width: "10%", align: "center", render: function render() { return "这些撒大声地"; } }), React.createElement(_2["default"].Column, { dataIndex: "three", title: "\u7B2Csan\u9879" }), React.createElement(_2["default"].Column, { dataIndex: "four", title: "\u7B2Csi\u9879", width: 300, align: "right" }))); global.innerWidth = 500; global.dispatchEvent(new Event("resize")); global.dispatchEvent(new Event("scroll")); wrapper.instance().handleMainTableScroll(); wrapper.instance().componentWillUnmount(); }); it("height 与 headerAffixed 不能同时使用 验证", function () { var stub = _sinon["default"].stub(console, "error"); (0, _enzyme.mount)(React.createElement(_2["default"], { dataSource: dataSource, height: 500, headerAffixed: true }, React.createElement(_2["default"].Column, { dataIndex: "one", title: "\u534A\u89D2\u62EC\u53F7\u5916(\u534A\u89D2\u62EC\u53F7\u5185\u6D4B\u8BD5)", popover: "\u8868\u5934\u63D0\u793A\u5185\u5BB9", width: 100, fixed: "left" }))); expect(stub.calledOnce).toBe(true); stub.restore(); }); it("height 检测", function () { var wrapper = (0, _enzyme.mount)(React.createElement(_2["default"], { dataSource: dataSource, height: 200 }, React.createElement(_2["default"].Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", popover: "\u8868\u5934\u63D0\u793A\u5185\u5BB9", width: 100, fixed: "left" }), React.createElement(_2["default"].Column, { fixed: "right", dataIndex: "two", title: "\u7B2Cer\u9879", width: 300 }), React.createElement(_2["default"].Column, { dataIndex: "s", title: "\u7B2Csi\u9879", width: 300, align: "center", render: function render() { return "这些撒大声地"; } }), React.createElement(_2["default"].Column, { dataIndex: "three", title: "\u7B2Csan\u9879" }), React.createElement(_2["default"].Column, { dataIndex: "four", title: "\u7B2Csi\u9879", width: 300, align: "right" }))); global.innerWidth = 500; global.innerHeight = 500; global.dispatchEvent(new Event("resize")); global.dispatchEvent(new Event("scroll")); wrapper.instance().handleMainTableScroll(); }); it("Column width 在 fixed 时必须设置 验证", function () { var stub = _sinon["default"].stub(console, "error"); (0, _enzyme.mount)(React.createElement(_2["default"], { dataSource: dataSource }, React.createElement(_2["default"].Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", fixed: "left" }))); expect(stub.calledOnce).toBe(true); stub.restore(); }); it("loading 快照", function () { var wrapper = _reactTestRenderer["default"].create(React.createElement(_2["default"], { loading: true, dataSource: dataSource }, React.createElement(_2["default"].Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", fixed: "left" }))); expect(wrapper).toMatchSnapshot(); }); it("合并单元格快照", function () { var wrapper = _reactTestRenderer["default"].create(React.createElement(_2["default"], { dataSource: dataSource, getCellProps: function getCellProps(_, __, rowIndex, colIndex) { if (rowIndex === 0 && colIndex === 0) { return { rowSpan: 2, colSpan: 2 }; } if (rowIndex === 3 && colIndex === 2) { return { rowSpan: 2, colSpan: 1 }; } if (rowIndex === 3 && colIndex === 3) { return { rowSpan: 2, colSpan: 1 }; } if (rowIndex === 2 && colIndex === 0) { return { rowSpan: 1, colSpan: 1 }; } return {}; } }, React.createElement(_2["default"].Column, { dataIndex: "one", title: "\u7B2C\u4E00\u9879", fixed: true }), React.createElement(_2["default"].Column, { dataIndex: "two", title: "\u7B2Cer\u9879", fixed: true }), React.createElement(_2["default"].Column, { dataIndex: "three", title: "\u7B2C3\u9879", align: "center" }), React.createElement(_2["default"].Column, { dataIndex: "four", title: "\u7B2C\u56DB\u9879", align: "center", fixed: "right" }))); expect(wrapper).toMatchSnapshot(); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9lbnp5bWUiLCJfcmVhY3RUZXN0UmVuZGVyZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3Npbm9uIiwiXzIiLCJlIiwiX19lc01vZHVsZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIldlYWtNYXAiLCJyIiwidCIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJ3aW5kb3ciLCJSZXNpemVPYnNlcnZlciIsImplc3QiLCJmbiIsIm1vY2tJbXBsZW1lbnRhdGlvbiIsImRpc2Nvbm5lY3QiLCJvYnNlcnZlIiwidW5vYnNlcnZlIiwiZGF0YVNvdXJjZSIsIm9uZSIsInR3byIsImZvdXIiLCJ0aHJlZSIsImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwiRWxlbWVudCIsInByb3RvdHlwZSIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIndpZHRoIiwiaGVpZ2h0IiwidG9wIiwibGVmdCIsImJvdHRvbSIsInJpZ2h0IiwieCIsInkiLCJ0b0pTT04iLCJpdCIsIndyYXBwZXIiLCJtb3VudCIsImNyZWF0ZUVsZW1lbnQiLCJoZWFkZXJBZmZpeGVkIiwiQ29sdW1uIiwiZGF0YUluZGV4IiwidGl0bGUiLCJwb3BvdmVyIiwiZml4ZWQiLCJhbGlnbiIsInJlbmRlciIsImdsb2JhbCIsImlubmVyV2lkdGgiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJpbnN0YW5jZSIsImhhbmRsZU1haW5UYWJsZVNjcm9sbCIsImNvbXBvbmVudFdpbGxVbm1vdW50Iiwic3R1YiIsInNpbm9uIiwiY29uc29sZSIsImV4cGVjdCIsImNhbGxlZE9uY2UiLCJ0b0JlIiwicmVzdG9yZSIsImlubmVySGVpZ2h0IiwiVGVzdFJlbmRlcmVyIiwiY3JlYXRlIiwibG9hZGluZyIsInRvTWF0Y2hTbmFwc2hvdCIsImdldENlbGxQcm9wcyIsIl8iLCJfXyIsInJvd0luZGV4IiwiY29sSW5kZXgiLCJyb3dTcGFuIiwiY29sU3BhbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvdGFibGUvX190ZXN0c19fL3Byb3BzLnRlc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgbW91bnQgfSBmcm9tIFwiZW56eW1lXCJcbmltcG9ydCBUZXN0UmVuZGVyZXIgZnJvbSBcInJlYWN0LXRlc3QtcmVuZGVyZXJcIlxuaW1wb3J0IHNpbm9uIGZyb20gXCJzaW5vblwiXG5pbXBvcnQgVGFibGUgZnJvbSBcIi4uXCJcblxud2luZG93LlJlc2l6ZU9ic2VydmVyID1cbiAgd2luZG93LlJlc2l6ZU9ic2VydmVyIHx8XG4gIGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gKHtcbiAgICBkaXNjb25uZWN0OiBqZXN0LmZuKCksXG4gICAgb2JzZXJ2ZTogamVzdC5mbigpLFxuICAgIHVub2JzZXJ2ZTogamVzdC5mbigpLFxuICB9KSlcblxuY29uc3QgZGF0YVNvdXJjZSA9IFtcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbiAge1xuICAgIG9uZTogXCLpmL/okKjlvrdcIixcbiAgICB0d286IFwi6Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b636Zi/6JCo5b63XCIsXG4gICAgZm91cjogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgICB0aHJlZTogXCLpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrfpmL/okKjlvrdcIixcbiAgfSxcbl1cblxuZXhwb3J0IGludGVyZmFjZSBJQmFzZU9iamVjdCB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxufVxuXG5kZXNjcmliZShcIlRhYmxlXCIsICgpID0+IHtcbiAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICAvKipcbiAgICAgKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDAwMDY2NjNcbiAgICAgKiDpgJrov4cgbW9jayBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YO+8jOS5i+WQjui/kOihjOeahOaJgOaciSBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YCDpg73kvJrov5Tlm57ov5nlkIzkuIDkuKrlgLzjgIJcbiAgICAgKi9cbiAgICBFbGVtZW50LnByb3RvdHlwZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QgPSBqZXN0LmZuKCgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoOiA1MDAsXG4gICAgICAgIGhlaWdodDogNjAwLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgIHg6IDAsXG4gICAgICAgIHk6IDAsXG4gICAgICAgIHRvSlNPTjogKCkgPT4ge30sXG4gICAgICB9XG4gICAgfSlcbiAgfSlcblxuICBpdChcImhlYWRlckFmZml4ZWQg5qOA5rWLXCIsICgpID0+IHtcbiAgICBjb25zdCB3cmFwcGVyID0gbW91bnQoXG4gICAgICA8VGFibGUgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX0gaGVhZGVyQWZmaXhlZD5cbiAgICAgICAgPFRhYmxlLkNvbHVtblxuICAgICAgICAgIGRhdGFJbmRleD1cIm9uZVwiXG4gICAgICAgICAgdGl0bGU9XCLnrKzkuIDpoblcIlxuICAgICAgICAgIHBvcG92ZXI9XCLooajlpLTmj5DnpLrlhoXlrrlcIlxuICAgICAgICAgIHdpZHRoPVwiMTAwcHhcIlxuICAgICAgICAgIGZpeGVkPVwibGVmdFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBmaXhlZD1cInJpZ2h0XCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJ0d29cIlxuICAgICAgICAgIHRpdGxlPVwi56ysZXLpoblcIlxuICAgICAgICAgIHdpZHRoPXszMDB9XG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBkYXRhSW5kZXg9XCJzXCJcbiAgICAgICAgICB0aXRsZT1cIuesrHNp6aG5XCJcbiAgICAgICAgICB3aWR0aD1cIjEwJVwiXG4gICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxuICAgICAgICAgIHJlbmRlcj17KCkgPT4gXCLov5nkupvmkpLlpKflo7DlnLBcIn1cbiAgICAgICAgLz5cbiAgICAgICAgPFRhYmxlLkNvbHVtbiBkYXRhSW5kZXg9XCJ0aHJlZVwiIHRpdGxlPVwi56ysc2Fu6aG5XCIgLz5cbiAgICAgICAgPFRhYmxlLkNvbHVtblxuICAgICAgICAgIGRhdGFJbmRleD1cImZvdXJcIlxuICAgICAgICAgIHRpdGxlPVwi56ysc2npoblcIlxuICAgICAgICAgIHdpZHRoPXszMDB9XG4gICAgICAgICAgYWxpZ249XCJyaWdodFwiXG4gICAgICAgIC8+XG4gICAgICA8L1RhYmxlPlxuICAgIClcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgZ2xvYmFsLmlubmVyV2lkdGggPSA1MDBcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgZ2xvYmFsLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KFwicmVzaXplXCIpKVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBnbG9iYWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJzY3JvbGxcIikpXG4gICAgd3JhcHBlci5pbnN0YW5jZSgpLmhhbmRsZU1haW5UYWJsZVNjcm9sbCgpXG4gICAgd3JhcHBlci5pbnN0YW5jZSgpLmNvbXBvbmVudFdpbGxVbm1vdW50KClcbiAgfSlcblxuICAvLyBpdChcImhlaWdodCBwcm9wIOmqjOivgVwiLCAoKSA9PiB7XG4gIC8vICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoY29uc29sZSwgJ2Vycm9yJylcbiAgLy8gICBjb25zdCB3cmFwcGVyID0gbW91bnQoXG4gIC8vICAgICA8VGFibGVcbiAgLy8gICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgLy8gICAgICAgaGVpZ2h0PVwiNTAwcHhcIlxuICAvLyAgICAgPlxuICAvLyAgICAgICA8VGFibGUuQ29sdW1uXG4gIC8vICAgICAgICAgZGF0YUluZGV4PVwib25lXCJcbiAgLy8gICAgICAgICB0aXRsZT1cIuesrOS4gOmhuVwiXG4gIC8vICAgICAgICAgcG9wb3Zlcj1cIuihqOWktOaPkOekuuWGheWuuVwiXG4gIC8vICAgICAgICAgd2lkdGg9ezEwMH1cbiAgLy8gICAgICAgICBmaXhlZD1cImxlZnRcIlxuICAvLyAgICAgICAvPlxuICAvLyAgICAgPC9UYWJsZT5cbiAgLy8gICApXG4gIC8vICAgZXhwZWN0KHN0dWIuY2FsbGVkT25jZSkudG9CZSh0cnVlKVxuICAvLyAgIHN0dWIucmVzdG9yZSgpXG4gIC8vIH0pXG5cbiAgaXQoXCJoZWlnaHQg5LiOIGhlYWRlckFmZml4ZWQg5LiN6IO95ZCM5pe25L2/55SoIOmqjOivgVwiLCAoKSA9PiB7XG4gICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoY29uc29sZSwgXCJlcnJvclwiKVxuICAgIG1vdW50KFxuICAgICAgPFRhYmxlIGRhdGFTb3VyY2U9e2RhdGFTb3VyY2V9IGhlaWdodD17NTAwfSBoZWFkZXJBZmZpeGVkPlxuICAgICAgICA8VGFibGUuQ29sdW1uXG4gICAgICAgICAgZGF0YUluZGV4PVwib25lXCJcbiAgICAgICAgICB0aXRsZT1cIuWNiuinkuaLrOWPt+WklijljYrop5Lmi6zlj7flhoXmtYvor5UpXCJcbiAgICAgICAgICBwb3BvdmVyPVwi6KGo5aS05o+Q56S65YaF5a65XCJcbiAgICAgICAgICB3aWR0aD17MTAwfVxuICAgICAgICAgIGZpeGVkPVwibGVmdFwiXG4gICAgICAgIC8+XG4gICAgICA8L1RhYmxlPlxuICAgIClcbiAgICBleHBlY3Qoc3R1Yi5jYWxsZWRPbmNlKS50b0JlKHRydWUpXG4gICAgc3R1Yi5yZXN0b3JlKClcbiAgfSlcblxuICBpdChcImhlaWdodCDmo4DmtYtcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudChcbiAgICAgIDxUYWJsZSBkYXRhU291cmNlPXtkYXRhU291cmNlfSBoZWlnaHQ9ezIwMH0+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBkYXRhSW5kZXg9XCJvbmVcIlxuICAgICAgICAgIHRpdGxlPVwi56ys5LiA6aG5XCJcbiAgICAgICAgICBwb3BvdmVyPVwi6KGo5aS05o+Q56S65YaF5a65XCJcbiAgICAgICAgICB3aWR0aD17MTAwfVxuICAgICAgICAgIGZpeGVkPVwibGVmdFwiXG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBmaXhlZD1cInJpZ2h0XCJcbiAgICAgICAgICBkYXRhSW5kZXg9XCJ0d29cIlxuICAgICAgICAgIHRpdGxlPVwi56ysZXLpoblcIlxuICAgICAgICAgIHdpZHRoPXszMDB9XG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBkYXRhSW5kZXg9XCJzXCJcbiAgICAgICAgICB0aXRsZT1cIuesrHNp6aG5XCJcbiAgICAgICAgICB3aWR0aD17MzAwfVxuICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcbiAgICAgICAgICByZW5kZXI9eygpID0+IFwi6L+Z5Lqb5pKS5aSn5aOw5ZywXCJ9XG4gICAgICAgIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW4gZGF0YUluZGV4PVwidGhyZWVcIiB0aXRsZT1cIuesrHNhbumhuVwiIC8+XG4gICAgICAgIDxUYWJsZS5Db2x1bW5cbiAgICAgICAgICBkYXRhSW5kZXg9XCJmb3VyXCJcbiAgICAgICAgICB0aXRsZT1cIuesrHNp6aG5XCJcbiAgICAgICAgICB3aWR0aD17MzAwfVxuICAgICAgICAgIGFsaWduPVwicmlnaHRcIlxuICAgICAgICAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdsb2JhbC5pbm5lcldpZHRoID0gNTAwXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdsb2JhbC5pbm5lckhlaWdodCA9IDUwMFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBnbG9iYWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoXCJyZXNpemVcIikpXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdsb2JhbC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudChcInNjcm9sbFwiKSlcbiAgICB3cmFwcGVyLmluc3RhbmNlKCkuaGFuZGxlTWFpblRhYmxlU2Nyb2xsKClcbiAgfSlcblxuICAvLyBpdChcIkNvbHVtbiB3aWR0aCBwcm9wIOmqjOivgVwiLCAoKSA9PiB7XG4gIC8vICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoY29uc29sZSwgJ2Vycm9yJylcbiAgLy8gICBjb25zdCB3cmFwcGVyID0gbW91bnQoXG4gIC8vICAgICA8VGFibGVcbiAgLy8gICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgLy8gICAgID5cbiAgLy8gICAgICAgPFRhYmxlLkNvbHVtblxuICAvLyAgICAgICAgIGRhdGFJbmRleD1cIm9uZVwiXG4gIC8vICAgICAgICAgdGl0bGU9XCLnrKzkuIDpoblcIlxuICAvLyAgICAgICAgIHdpZHRoPXtbXX1cbiAgLy8gICAgICAgLz5cbiAgLy8gICAgIDwvVGFibGU+XG4gIC8vICAgKVxuICAvLyAgIGV4cGVjdChzdHViLmNhbGxlZE9uY2UpLnRvQmUodHJ1ZSlcbiAgLy8gICBzdHViLnJlc3RvcmUoKVxuICAvLyB9KVxuXG4gIGl0KFwiQ29sdW1uIHdpZHRoIOWcqCBmaXhlZCDml7blv4Xpobvorr7nva4g6aqM6K+BXCIsICgpID0+IHtcbiAgICBjb25zdCBzdHViID0gc2lub24uc3R1Yihjb25zb2xlLCBcImVycm9yXCIpXG4gICAgbW91bnQoXG4gICAgICA8VGFibGUgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX0+XG4gICAgICAgIDxUYWJsZS5Db2x1bW4gZGF0YUluZGV4PVwib25lXCIgdGl0bGU9XCLnrKzkuIDpoblcIiBmaXhlZD1cImxlZnRcIiAvPlxuICAgICAgPC9UYWJsZT5cbiAgICApXG4gICAgZXhwZWN0KHN0dWIuY2FsbGVkT25jZSkudG9CZSh0cnVlKVxuICAgIHN0dWIucmVzdG9yZSgpXG4gIH0pXG5cbiAgaXQoXCJsb2FkaW5nIOW/q+eFp1wiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IFRlc3RSZW5kZXJlci5jcmVhdGUoXG4gICAgICA8VGFibGUgbG9hZGluZyBkYXRhU291cmNlPXtkYXRhU291cmNlfT5cbiAgICAgICAgPFRhYmxlLkNvbHVtbiBkYXRhSW5kZXg9XCJvbmVcIiB0aXRsZT1cIuesrOS4gOmhuVwiIGZpeGVkPVwibGVmdFwiIC8+XG4gICAgICA8L1RhYmxlPlxuICAgIClcbiAgICBleHBlY3Qod3JhcHBlcikudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICBpdChcIuWQiOW5tuWNleWFg+agvOW/q+eFp1wiLCAoKSA9PiB7XG4gICAgY29uc3Qgd3JhcHBlciA9IFRlc3RSZW5kZXJlci5jcmVhdGUoXG4gICAgICA8VGFibGVcbiAgICAgICAgZGF0YVNvdXJjZT17ZGF0YVNvdXJjZX1cbiAgICAgICAgZ2V0Q2VsbFByb3BzPXsoXywgX18sIHJvd0luZGV4LCBjb2xJbmRleCkgPT4ge1xuICAgICAgICAgIGlmIChyb3dJbmRleCA9PT0gMCAmJiBjb2xJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcm93U3BhbjogMixcbiAgICAgICAgICAgICAgY29sU3BhbjogMixcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJvd0luZGV4ID09PSAzICYmIGNvbEluZGV4ID09PSAyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICByb3dTcGFuOiAyLFxuICAgICAgICAgICAgICBjb2xTcGFuOiAxLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocm93SW5kZXggPT09IDMgJiYgY29sSW5kZXggPT09IDMpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHJvd1NwYW46IDIsXG4gICAgICAgICAgICAgIGNvbFNwYW46IDEsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyb3dJbmRleCA9PT0gMiAmJiBjb2xJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcm93U3BhbjogMSxcbiAgICAgICAgICAgICAgY29sU3BhbjogMSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHt9XG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxUYWJsZS5Db2x1bW4gZGF0YUluZGV4PVwib25lXCIgdGl0bGU9XCLnrKzkuIDpoblcIiBmaXhlZCAvPlxuICAgICAgICA8VGFibGUuQ29sdW1uIGRhdGFJbmRleD1cInR3b1wiIHRpdGxlPVwi56ysZXLpoblcIiBmaXhlZCAvPlxuICAgICAgICA8VGFibGUuQ29sdW1uIGRhdGFJbmRleD1cInRocmVlXCIgdGl0bGU9XCLnrKwz6aG5XCIgYWxpZ249XCJjZW50ZXJcIiAvPlxuICAgICAgICA8VGFibGUuQ29sdW1uXG4gICAgICAgICAgZGF0YUluZGV4PVwiZm91clwiXG4gICAgICAgICAgdGl0bGU9XCLnrKzlm5vpoblcIlxuICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcbiAgICAgICAgICBmaXhlZD1cInJpZ2h0XCJcbiAgICAgICAgLz5cbiAgICAgIDwvVGFibGU+XG4gICAgKVxuICAgIGV4cGVjdCh3cmFwcGVyKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsa0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLEVBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUFzQixTQUFBRyx1QkFBQUcsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUseUJBQUFGLENBQUEsNkJBQUFHLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUQsd0JBQUEsWUFBQUEseUJBQUFGLENBQUEsV0FBQUEsQ0FBQSxHQUFBSyxDQUFBLEdBQUFELENBQUEsS0FBQUosQ0FBQTtBQUFBLFNBQUFQLHdCQUFBTyxDQUFBLEVBQUFJLENBQUEsU0FBQUEsQ0FBQSxJQUFBSixDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxTQUFBRCxDQUFBLGVBQUFBLENBQUEsZ0JBQUFNLE9BQUEsQ0FBQU4sQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBSyxDQUFBLEdBQUFILHdCQUFBLENBQUFFLENB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