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>

171 lines 25.5 kB
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); } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } import React, { Component } from "react"; import { mount } from "enzyme"; import { act } from "react-dom/test-utils"; import keyCode from "rc-util/lib/KeyCode"; import ColorPicker from ".."; var ColorPickerMounter = function (_Component) { function ColorPickerMounter() { var _this; _classCallCheck(this, ColorPickerMounter); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, ColorPickerMounter, [].concat(args)); _this.state = { value: "#07C160" }; return _this; } _inherits(ColorPickerMounter, _Component); return _createClass(ColorPickerMounter, [{ key: "render", value: function render() { var _this2 = this; var value = this.state.value; return React.createElement(ColorPicker, _extends({ value: value, onChange: function onChange(val) { return _this2.setState({ value: val }); } }, this.props)); } }]); }(Component); describe("ColorPicker", function () { beforeAll(function () { jest.useFakeTimers(); Element.prototype.getBoundingClientRect = jest.fn(function () { return { width: 160, height: 90, top: 0, left: 0, bottom: 0, right: 0, x: 0, y: 0, toJSON: function toJSON() {} }; }); }); afterAll(function () { jest.useRealTimers(); }); it("其他事件验证", function () { var onFinishChange = jest.fn(); var wrapper = mount(React.createElement(ColorPicker, { defaultValue: "#07C160", onFinishChange: onFinishChange, recentColors: ["#00BB9C"] })); var input = wrapper.find("input").at(0); input.simulate("change", { target: { value: "11" } }); expect(wrapper.find("input").at(0).props().value).toBe("11"); input.simulate("blur"); expect(wrapper.find("input").at(0).props().value).toBe("07C160"); input.simulate("change", { target: { value: "00BB9C" } }); input.simulate("blur"); expect(onFinishChange).toHaveBeenCalledWith("#00BB9C"); wrapper.find("button").simulate("click"); wrapper.find(".adui-cp-recent i").at(0).simulate("click"); wrapper.find(".adui-cp-standard i").at(11).simulate("click"); wrapper.find("button").simulate("click"); jest.advanceTimersByTime(200); expect(onFinishChange).toHaveBeenCalledWith("#5BDEC8"); wrapper.find("button").simulate("click"); jest.advanceTimersByTime(350); var head0 = wrapper.find(".adui-cp-collapse-header").at(0); var head1 = wrapper.find(".adui-cp-collapse-header").at(1); var head2 = wrapper.find(".adui-cp-collapse-header").at(2); expect(wrapper.find(".adui-cp-collapse-content")).toHaveLength(2); head0.simulate("click"); head2.simulate("click"); head1.simulate("click"); head2.simulate("click"); wrapper.find("Slider").at(0).simulate("focus"); wrapper.find("Slider").at(0).find(".adui-slider-handle").at(0).simulate("keyDown", { keyCode: keyCode.RIGHT }); expect(wrapper.find(".adui-cp").at(0).props()["data-value"]).toBe("#5BDECA"); wrapper.find("Slider").at(1).simulate("focus"); wrapper.find("Slider").at(1).find(".adui-slider-handle").at(0).simulate("keyDown", { keyCode: keyCode.RIGHT }); expect(wrapper.find(".adui-cp").at(0).props()["data-value"]).toBe("#59DECA"); wrapper.find("Slider").at(2).simulate("focus"); wrapper.find("Slider").at(2).find(".adui-slider-handle").at(0).simulate("keyDown", { keyCode: keyCode.RIGHT }); expect(wrapper.find(".adui-cp").at(0).props()["data-value"]).toBe("#5AE0CC"); var map = {}; window.addEventListener = jest.fn(function (event, cb) { map[event] = cb; }); var classWrapper = mount(React.createElement(ColorPickerMounter, null)); classWrapper.find("button").simulate("click"); jest.advanceTimersByTime(10); act(function () { classWrapper.find(".adui-cp-collapse-header").at(1).simulate("click"); jest.runAllTimers(); classWrapper.update(); }); act(function () { classWrapper.find(".adui-cp-palette").at(0).simulate("mouseDown"); map.mousemove({}); map.mousemove({ pageX: 10000, pageY: 0 }); jest.runAllTimers(); classWrapper.update(); expect(classWrapper.find(".adui-cp").at(0).props()["data-s"]).toBe(100); map.mousemove({ pageX: -10000, pageY: 0 }); jest.runAllTimers(); classWrapper.update(); expect(classWrapper.find(".adui-cp").at(0).props()["data-s"]).toBe(0); map.mousemove({ pageY: 10000, pageX: 0 }); jest.runAllTimers(); classWrapper.update(); expect(classWrapper.find(".adui-cp").at(0).props()["data-b"]).toBe(0); map.mousemove({ pageY: -10000, pageX: 0 }); jest.runAllTimers(); classWrapper.update(); expect(classWrapper.find(".adui-cp").at(0).props()["data-b"]).toBe(100); map.mouseup({}); }); }); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsIm1vdW50IiwiYWN0Iiwia2V5Q29kZSIsIkNvbG9yUGlja2VyIiwiQ29sb3JQaWNrZXJNb3VudGVyIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJfY2FsbFN1cGVyIiwiY29uY2F0Iiwic3RhdGUiLCJ2YWx1ZSIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsImtleSIsInJlbmRlciIsIl90aGlzMiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsIm9uQ2hhbmdlIiwidmFsIiwic2V0U3RhdGUiLCJwcm9wcyIsImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwiamVzdCIsInVzZUZha2VUaW1lcnMiLCJFbGVtZW50IiwicHJvdG90eXBlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiZm4iLCJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiLCJib3R0b20iLCJyaWdodCIsIngiLCJ5IiwidG9KU09OIiwiYWZ0ZXJBbGwiLCJ1c2VSZWFsVGltZXJzIiwiaXQiLCJvbkZpbmlzaENoYW5nZSIsIndyYXBwZXIiLCJkZWZhdWx0VmFsdWUiLCJyZWNlbnRDb2xvcnMiLCJpbnB1dCIsImZpbmQiLCJhdCIsInNpbXVsYXRlIiwidGFyZ2V0IiwiZXhwZWN0IiwidG9CZSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiYWR2YW5jZVRpbWVyc0J5VGltZSIsImhlYWQwIiwiaGVhZDEiLCJoZWFkMiIsInRvSGF2ZUxlbmd0aCIsIlJJR0hUIiwibWFwIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsImV2ZW50IiwiY2IiLCJjbGFzc1dyYXBwZXIiLCJydW5BbGxUaW1lcnMiLCJ1cGRhdGUiLCJtb3VzZW1vdmUiLCJwYWdlWCIsInBhZ2VZIiwibW91c2V1cCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3ItcGlja2VyL19fdGVzdHNfXy9ldmVudHMudGVzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgbW91bnQgfSBmcm9tIFwiZW56eW1lXCJcbmltcG9ydCB7IGFjdCB9IGZyb20gXCJyZWFjdC1kb20vdGVzdC11dGlsc1wiXG5pbXBvcnQga2V5Q29kZSBmcm9tIFwicmMtdXRpbC9saWIvS2V5Q29kZVwiXG5pbXBvcnQgQ29sb3JQaWNrZXIgZnJvbSBcIi4uXCJcblxuY2xhc3MgQ29sb3JQaWNrZXJNb3VudGVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGUgPSB7XG4gICAgdmFsdWU6IFwiIzA3QzE2MFwiLFxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IHRoaXMuc3RhdGVcbiAgICByZXR1cm4gKFxuICAgICAgPENvbG9yUGlja2VyXG4gICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgb25DaGFuZ2U9eyh2YWwpID0+IHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogdmFsIH0pfVxuICAgICAgICB7Li4udGhpcy5wcm9wc31cbiAgICAgIC8+XG4gICAgKVxuICB9XG59XG5cbmRlc2NyaWJlKFwiQ29sb3JQaWNrZXJcIiwgKCkgPT4ge1xuICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgIGplc3QudXNlRmFrZVRpbWVycygpXG5cbiAgICAvKipcbiAgICAgKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNDAwMDY2NjNcbiAgICAgKiDpgJrov4cgbW9jayBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YO+8jOS5i+WQjui/kOihjOeahOaJgOaciSBgZ2V0Qm91bmRpbmdDbGllbnRSZWN0YCDpg73kvJrov5Tlm57ov5nlkIzkuIDkuKrlgLzjgIJcbiAgICAgKi9cbiAgICBFbGVtZW50LnByb3RvdHlwZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QgPSBqZXN0LmZuKCgpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoOiAxNjAsXG4gICAgICAgIGhlaWdodDogOTAsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICByaWdodDogMCxcbiAgICAgICAgeDogMCxcbiAgICAgICAgeTogMCxcbiAgICAgICAgdG9KU09OOiAoKSA9PiB7fSxcbiAgICAgIH1cbiAgICB9KVxuICB9KVxuXG4gIGFmdGVyQWxsKCgpID0+IHtcbiAgICBqZXN0LnVzZVJlYWxUaW1lcnMoKVxuICB9KVxuXG4gIGl0KFwi5YW25LuW5LqL5Lu26aqM6K+BXCIsICgpID0+IHtcbiAgICBjb25zdCBvbkZpbmlzaENoYW5nZSA9IGplc3QuZm4oKVxuICAgIGNvbnN0IHdyYXBwZXIgPSBtb3VudChcbiAgICAgIDxDb2xvclBpY2tlclxuICAgICAgICBkZWZhdWx0VmFsdWU9XCIjMDdDMTYwXCJcbiAgICAgICAgb25GaW5pc2hDaGFuZ2U9e29uRmluaXNoQ2hhbmdlfVxuICAgICAgICByZWNlbnRDb2xvcnM9e1tcIiMwMEJCOUNcIl19XG4gICAgICAvPlxuICAgIClcbiAgICBjb25zdCBpbnB1dCA9IHdyYXBwZXIuZmluZChcImlucHV0XCIpLmF0KDApXG5cbiAgICAvLyDpqozor4EgaW5wdXQg5L+u5pS55Li66Z2e5rOV5YC85ZCO77yM5ZyoIGJsdXIg5pe25Lya6YeN572uXG4gICAgaW5wdXQuc2ltdWxhdGUoXCJjaGFuZ2VcIiwgeyB0YXJnZXQ6IHsgdmFsdWU6IFwiMTFcIiB9IH0pXG4gICAgZXhwZWN0KHdyYXBwZXIuZmluZChcImlucHV0XCIpLmF0KDApLnByb3BzKCkudmFsdWUpLnRvQmUoXCIxMVwiKVxuICAgIGlucHV0LnNpbXVsYXRlKFwiYmx1clwiKVxuICAgIGV4cGVjdCh3cmFwcGVyLmZpbmQoXCJpbnB1dFwiKS5hdCgwKS5wcm9wcygpLnZhbHVlKS50b0JlKFwiMDdDMTYwXCIpXG5cbiAgICBpbnB1dC5zaW11bGF0ZShcImNoYW5nZVwiLCB7IHRhcmdldDogeyB2YWx1ZTogXCIwMEJCOUNcIiB9IH0pXG4gICAgaW5wdXQuc2ltdWxhdGUoXCJibHVyXCIpXG4gICAgZXhwZWN0KG9uRmluaXNoQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcIiMwMEJCOUNcIilcblxuICAgIHdyYXBwZXIuZmluZChcImJ1dHRvblwiKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgd3JhcHBlci5maW5kKFwiLmFkdWktY3AtcmVjZW50IGlcIikuYXQoMCkuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIHdyYXBwZXIuZmluZChcIi5hZHVpLWNwLXN0YW5kYXJkIGlcIikuYXQoMTEpLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICB3cmFwcGVyLmZpbmQoXCJidXR0b25cIikuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIC8vIOetieW+hSAyMDBtc1xuICAgIGplc3QuYWR2YW5jZVRpbWVyc0J5VGltZSgyMDApXG4gICAgZXhwZWN0KG9uRmluaXNoQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcIiM1QkRFQzhcIilcblxuICAgIC8vIOa1i+ivlSBDb2xsYXBzZVxuICAgIHdyYXBwZXIuZmluZChcImJ1dHRvblwiKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgLy8g562J5b6FIDM1MG1zXG4gICAgamVzdC5hZHZhbmNlVGltZXJzQnlUaW1lKDM1MClcbiAgICBjb25zdCBoZWFkMCA9IHdyYXBwZXIuZmluZChcIi5hZHVpLWNwLWNvbGxhcHNlLWhlYWRlclwiKS5hdCgwKVxuICAgIGNvbnN0IGhlYWQxID0gd3JhcHBlci5maW5kKFwiLmFkdWktY3AtY29sbGFwc2UtaGVhZGVyXCIpLmF0KDEpXG4gICAgY29uc3QgaGVhZDIgPSB3cmFwcGVyLmZpbmQoXCIuYWR1aS1jcC1jb2xsYXBzZS1oZWFkZXJcIikuYXQoMilcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiLmFkdWktY3AtY29sbGFwc2UtY29udGVudFwiKSkudG9IYXZlTGVuZ3RoKDIpXG4gICAgaGVhZDAuc2ltdWxhdGUoXCJjbGlja1wiKVxuICAgIGhlYWQyLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICBoZWFkMS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgaGVhZDIuc2ltdWxhdGUoXCJjbGlja1wiKVxuXG4gICAgd3JhcHBlci5maW5kKFwiU2xpZGVyXCIpLmF0KDApLnNpbXVsYXRlKFwiZm9jdXNcIilcbiAgICB3cmFwcGVyXG4gICAgICAuZmluZChcIlNsaWRlclwiKVxuICAgICAgLmF0KDApXG4gICAgICAuZmluZChcIi5hZHVpLXNsaWRlci1oYW5kbGVcIilcbiAgICAgIC5hdCgwKVxuICAgICAgLnNpbXVsYXRlKFwia2V5RG93blwiLCB7IGtleUNvZGU6IGtleUNvZGUuUklHSFQgfSlcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiLmFkdWktY3BcIikuYXQoMCkucHJvcHMoKVtcImRhdGEtdmFsdWVcIl0pLnRvQmUoXCIjNUJERUNBXCIpXG4gICAgd3JhcHBlci5maW5kKFwiU2xpZGVyXCIpLmF0KDEpLnNpbXVsYXRlKFwiZm9jdXNcIilcbiAgICB3cmFwcGVyXG4gICAgICAuZmluZChcIlNsaWRlclwiKVxuICAgICAgLmF0KDEpXG4gICAgICAuZmluZChcIi5hZHVpLXNsaWRlci1oYW5kbGVcIilcbiAgICAgIC5hdCgwKVxuICAgICAgLnNpbXVsYXRlKFwia2V5RG93blwiLCB7IGtleUNvZGU6IGtleUNvZGUuUklHSFQgfSlcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiLmFkdWktY3BcIikuYXQoMCkucHJvcHMoKVtcImRhdGEtdmFsdWVcIl0pLnRvQmUoXCIjNTlERUNBXCIpXG4gICAgd3JhcHBlci5maW5kKFwiU2xpZGVyXCIpLmF0KDIpLnNpbXVsYXRlKFwiZm9jdXNcIilcbiAgICB3cmFwcGVyXG4gICAgICAuZmluZChcIlNsaWRlclwiKVxuICAgICAgLmF0KDIpXG4gICAgICAuZmluZChcIi5hZHVpLXNsaWRlci1oYW5kbGVcIilcbiAgICAgIC5hdCgwKVxuICAgICAgLnNpbXVsYXRlKFwia2V5RG93blwiLCB7IGtleUNvZGU6IGtleUNvZGUuUklHSFQgfSlcbiAgICBleHBlY3Qod3JhcHBlci5maW5kKFwiLmFkdWktY3BcIikuYXQoMCkucHJvcHMoKVtcImRhdGEtdmFsdWVcIl0pLnRvQmUoXCIjNUFFMENDXCIpXG5cbiAgICBjb25zdCBtYXAgPSB7fVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciA9IGplc3QuZm4oKGV2ZW50LCBjYikgPT4ge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbWFwW2V2ZW50XSA9IGNiXG4gICAgfSlcblxuICAgIGNvbnN0IGNsYXNzV3JhcHBlciA9IG1vdW50KDxDb2xvclBpY2tlck1vdW50ZXIgLz4pXG5cbiAgICBjbGFzc1dyYXBwZXIuZmluZChcImJ1dHRvblwiKS5zaW11bGF0ZShcImNsaWNrXCIpXG4gICAgamVzdC5hZHZhbmNlVGltZXJzQnlUaW1lKDEwKVxuXG4gICAgYWN0KCgpID0+IHtcbiAgICAgIGNsYXNzV3JhcHBlci5maW5kKFwiLmFkdWktY3AtY29sbGFwc2UtaGVhZGVyXCIpLmF0KDEpLnNpbXVsYXRlKFwiY2xpY2tcIilcbiAgICAgIGplc3QucnVuQWxsVGltZXJzKClcbiAgICAgIGNsYXNzV3JhcHBlci51cGRhdGUoKVxuICAgIH0pXG5cbiAgICBhY3QoKCkgPT4ge1xuICAgICAgY2xhc3NXcmFwcGVyLmZpbmQoXCIuYWR1aS1jcC1wYWxldHRlXCIpLmF0KDApLnNpbXVsYXRlKFwibW91c2VEb3duXCIpXG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG1hcC5tb3VzZW1vdmUoe30pXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBtYXAubW91c2Vtb3ZlKHsgcGFnZVg6IDEwMDAwLCBwYWdlWTogMCB9KVxuXG4gICAgICBqZXN0LnJ1bkFsbFRpbWVycygpXG4gICAgICBjbGFzc1dyYXBwZXIudXBkYXRlKClcbiAgICAgIGV4cGVjdChjbGFzc1dyYXBwZXIuZmluZChcIi5hZHVpLWNwXCIpLmF0KDApLnByb3BzKClbXCJkYXRhLXNcIl0pLnRvQmUoMTAwKVxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbWFwLm1vdXNlbW92ZSh7IHBhZ2VYOiAtMTAwMDAsIHBhZ2VZOiAwIH0pXG4gICAgICBqZXN0LnJ1bkFsbFRpbWVycygpXG4gICAgICBjbGFzc1dyYXBwZXIudXBkYXRlKClcbiAgICAgIGV4cGVjdChjbGFzc1dyYXBwZXIuZmluZChcIi5hZHVpLWNwXCIpLmF0KDApLnByb3BzKClbXCJkYXRhLXNcIl0pLnRvQmUoMClcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG1hcC5tb3VzZW1vdmUoeyBwYWdlWTogMTAwMDAsIHBhZ2VYOiAwIH0pXG4gICAgICBqZXN0LnJ1bkFsbFRpbWVycygpXG4gICAgICBjbGFzc1dyYXBwZXIudXBkYXRlKClcbiAgICAgIGV4cGVjdChjbGFzc1dyYXBwZXIuZmluZChcIi5hZHVpLWNwXCIpLmF0KDApLnByb3BzKClbXCJkYXRhLWJcIl0pLnRvQmUoMClcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG1hcC5tb3VzZW1vdmUoeyBwYWdlWTogLTEwMDAwLCBwYWdlWDogMCB9KVxuICAgICAgamVzdC5ydW5BbGxUaW1lcnMoKVxuICAgICAgY2xhc3NXcmFwcGVyLnVwZGF0ZSgpXG4gICAgICBleHBlY3QoY2xhc3NXcmFwcGVyLmZpbmQoXCIuYWR1aS1jcFwiKS5hdCgwKS5wcm9wcygpW1wiZGF0YS1iXCJdKS50b0JlKDEwMClcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG1hcC5tb3VzZXVwKHt9KVxuICAgIH0pXG4gIH0pXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUNBLE9BQU9BLEtBQUssSUFBSUMsU0FBUyxRQUFRLE9BQU87QUFDeEMsU0FBU0MsS0FBSyxRQUFRLFFBQVE7QUFDOUIsU0FBU0MsR0FBRyxRQUFRLHNCQUFzQjtBQUMx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QU0sQ0FBQ2MsWUFBWSxDQUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMzQixLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMrQixJQUFJLENBQUMsR0FBRyxDQUFDO01BRXZFUSxHQUFHLENBQUNRLFNBQVMsQ0FBQztRQUFFQyxLQUFLLEVBQUUsQ0FBQyxLQUFLO1FBQUVDLEtBQUssRUFBRTtNQUFFLENBQUMsQ0FBQztNQUMxQzlDLElBQUksQ0FBQzBDLFlBQVksQ0FBQyxDQUFDO01BQ25CRCxZQUFZLENBQUNFLE1BQU0sQ0FBQyxDQUFDO01BQ3JCaEIsTUFBTSxDQUFDYyxZQUFZLENBQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQytCLElBQUksQ0FBQyxDQUFDLENBQUM7TUFFckVRLEdBQUcsQ0FBQ1EsU0FBUyxDQUFDO1FBQUVFLEtBQUssRUFBRSxLQUFLO1FBQUVELEtBQUssRUFBRTtNQUFFLENBQUMsQ0FBQztNQUN6QzdDLElBQUksQ0FBQzBDLFlBQVksQ0FBQyxDQUFDO01BQ25CRCxZQUFZLENBQUNFLE1BQU0sQ0FBQyxDQUFDO01BQ3JCaEIsTUFBTSxDQUFDYyxZQUFZLENBQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUNDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzNCLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQytCLElBQUksQ0FBQyxDQUFDLENBQUM7TUFFckVRLEdBQUcsQ0FBQ1EsU0FBUyxDQUFDO1FBQUVFLEtBQUssRUFBRSxDQUFDLEtBQUs7UUFBRUQsS0FBSyxFQUFFO01BQUUsQ0FBQyxDQUFDO01BQzFDN0MsSUFBSSxDQUFDMEMsWUFBWSxDQUFDLENBQUM7TUFDbkJELFlBQVksQ0FBQ0UsTUFBTSxDQUFDLENBQUM7TUFDckJoQixNQUFNLENBQUNjLFlBQVksQ0FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDM0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDK0IsSUFBSSxDQUFDLEdBQUcsQ0FBQztNQUV2RVEsR0FBRyxDQUFDVyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119