matrix-react-sdk
Version:
SDK for matrix.org using React
150 lines (118 loc) • 14.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.showSpaceInvite = exports.showCreateNewRoom = exports.showAddExistingRooms = exports.showSpaceSettings = exports.makeSpaceParentEvent = exports.shouldShowSpaceSettings = void 0;
var _react = _interopRequireDefault(require("react"));
var _event = require("matrix-js-sdk/src/@types/event");
var _Permalinks = require("../utils/permalinks/Permalinks");
var _Modal = _interopRequireDefault(require("../Modal"));
var _SpaceSettingsDialog = _interopRequireDefault(require("../components/views/dialogs/SpaceSettingsDialog"));
var _AddExistingToSpaceDialog = _interopRequireDefault(require("../components/views/dialogs/AddExistingToSpaceDialog"));
var _CreateRoomDialog = _interopRequireDefault(require("../components/views/dialogs/CreateRoomDialog"));
var _createRoom = _interopRequireDefault(require("../createRoom"));
var _languageHandler = require("../languageHandler");
var _SpacePublicShare = _interopRequireDefault(require("../components/views/spaces/SpacePublicShare"));
var _InfoDialog = _interopRequireDefault(require("../components/views/dialogs/InfoDialog"));
var _RoomInvite = require("../RoomInvite");
/*
Copyright 2021 The Matrix.org Foundation C.I.C.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
const shouldShowSpaceSettings = (cli
/*: MatrixClient*/
, space
/*: Room*/
) => {
const userId = cli.getUserId();
return space.getMyMembership() === "join" && (space.currentState.maySendStateEvent(_event.EventType.RoomAvatar, userId) || space.currentState.maySendStateEvent(_event.EventType.RoomName, userId) || space.currentState.maySendStateEvent(_event.EventType.RoomTopic, userId) || space.currentState.maySendStateEvent(_event.EventType.RoomJoinRules, userId));
};
exports.shouldShowSpaceSettings = shouldShowSpaceSettings;
const makeSpaceParentEvent = (room
/*: Room*/
, canonical = false) => ({
type: _event.EventType.SpaceParent,
content: {
"via": (0, _Permalinks.calculateRoomVia)(room),
"canonical": canonical
},
state_key: room.roomId
});
exports.makeSpaceParentEvent = makeSpaceParentEvent;
const showSpaceSettings = (cli
/*: MatrixClient*/
, space
/*: Room*/
) => {
_Modal.default.createTrackedDialog("Space Settings", "", _SpaceSettingsDialog.default, {
matrixClient: cli,
space
},
/*className=*/
null,
/*isPriority=*/
false,
/*isStatic=*/
true);
};
exports.showSpaceSettings = showSpaceSettings;
const showAddExistingRooms = async (cli
/*: MatrixClient*/
, space
/*: Room*/
) => {
return _Modal.default.createTrackedDialog("Space Landing", "Add Existing", _AddExistingToSpaceDialog.default, {
matrixClient: cli,
onCreateRoomClick: showCreateNewRoom,
space
}, "mx_AddExistingToSpaceDialog_wrapper").finished;
};
exports.showAddExistingRooms = showAddExistingRooms;
const showCreateNewRoom = async (cli
/*: MatrixClient*/
, space
/*: Room*/
) => {
const modal = _Modal.default.createTrackedDialog("Space Landing", "Create Room", _CreateRoomDialog.default, {
defaultPublic: space.getJoinRule() === "public",
parentSpace: space
});
const [shouldCreate, opts] = await modal.finished;
if (shouldCreate) {
await (0, _createRoom.default)(opts);
}
return shouldCreate;
};
exports.showCreateNewRoom = showCreateNewRoom;
const showSpaceInvite = (space
/*: Room*/
, initialText = "") => {
if (space.getJoinRule() === "public") {
const modal = _Modal.default.createTrackedDialog("Space Invite", "User Menu", _InfoDialog.default, {
title: (0, _languageHandler._t)("Invite to %(spaceName)s", {
spaceName: space.name
}),
description: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, (0, _languageHandler._t)("Share your public space")), /*#__PURE__*/_react.default.createElement(_SpacePublicShare.default, {
space: space,
onFinished: () => modal.close()
})),
fixedWidth: false,
button: false,
className: "mx_SpacePanel_sharePublicSpace",
hasCloseButton: true
});
} else {
(0, _RoomInvite.showRoomInviteDialog)(space.roomId, initialText);
}
};
exports.showSpaceInvite = showSpaceInvite;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zcGFjZS50c3giXSwibmFtZXMiOlsic2hvdWxkU2hvd1NwYWNlU2V0dGluZ3MiLCJjbGkiLCJzcGFjZSIsInVzZXJJZCIsImdldFVzZXJJZCIsImdldE15TWVtYmVyc2hpcCIsImN1cnJlbnRTdGF0ZSIsIm1heVNlbmRTdGF0ZUV2ZW50IiwiRXZlbnRUeXBlIiwiUm9vbUF2YXRhciIsIlJvb21OYW1lIiwiUm9vbVRvcGljIiwiUm9vbUpvaW5SdWxlcyIsIm1ha2VTcGFjZVBhcmVudEV2ZW50Iiwicm9vbSIsImNhbm9uaWNhbCIsInR5cGUiLCJTcGFjZVBhcmVudCIsImNvbnRlbnQiLCJzdGF0ZV9rZXkiLCJyb29tSWQiLCJzaG93U3BhY2VTZXR0aW5ncyIsIk1vZGFsIiwiY3JlYXRlVHJhY2tlZERpYWxvZyIsIlNwYWNlU2V0dGluZ3NEaWFsb2ciLCJtYXRyaXhDbGllbnQiLCJzaG93QWRkRXhpc3RpbmdSb29tcyIsIkFkZEV4aXN0aW5nVG9TcGFjZURpYWxvZyIsIm9uQ3JlYXRlUm9vbUNsaWNrIiwic2hvd0NyZWF0ZU5ld1Jvb20iLCJmaW5pc2hlZCIsIm1vZGFsIiwiQ3JlYXRlUm9vbURpYWxvZyIsImRlZmF1bHRQdWJsaWMiLCJnZXRKb2luUnVsZSIsInBhcmVudFNwYWNlIiwic2hvdWxkQ3JlYXRlIiwib3B0cyIsInNob3dTcGFjZUludml0ZSIsImluaXRpYWxUZXh0IiwiSW5mb0RpYWxvZyIsInRpdGxlIiwic3BhY2VOYW1lIiwibmFtZSIsImRlc2NyaXB0aW9uIiwiY2xvc2UiLCJmaXhlZFdpZHRoIiwiYnV0dG9uIiwiY2xhc3NOYW1lIiwiaGFzQ2xvc2VCdXR0b24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQWdCQTs7QUFHQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUE5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBa0JPLE1BQU1BLHVCQUF1QixHQUFHLENBQUNDO0FBQUQ7QUFBQSxFQUFvQkM7QUFBcEI7QUFBQSxLQUFvQztBQUN2RSxRQUFNQyxNQUFNLEdBQUdGLEdBQUcsQ0FBQ0csU0FBSixFQUFmO0FBQ0EsU0FBT0YsS0FBSyxDQUFDRyxlQUFOLE9BQTRCLE1BQTVCLEtBQ0NILEtBQUssQ0FBQ0ksWUFBTixDQUFtQkMsaUJBQW5CLENBQXFDQyxpQkFBVUMsVUFBL0MsRUFBMkROLE1BQTNELEtBQ0dELEtBQUssQ0FBQ0ksWUFBTixDQUFtQkMsaUJBQW5CLENBQXFDQyxpQkFBVUUsUUFBL0MsRUFBeURQLE1BQXpELENBREgsSUFFR0QsS0FBSyxDQUFDSSxZQUFOLENBQW1CQyxpQkFBbkIsQ0FBcUNDLGlCQUFVRyxTQUEvQyxFQUEwRFIsTUFBMUQsQ0FGSCxJQUdHRCxLQUFLLENBQUNJLFlBQU4sQ0FBbUJDLGlCQUFuQixDQUFxQ0MsaUJBQVVJLGFBQS9DLEVBQThEVCxNQUE5RCxDQUpKLENBQVA7QUFLSCxDQVBNOzs7O0FBU0EsTUFBTVUsb0JBQW9CLEdBQUcsQ0FBQ0M7QUFBRDtBQUFBLEVBQWFDLFNBQVMsR0FBRyxLQUF6QixNQUFvQztBQUNwRUMsRUFBQUEsSUFBSSxFQUFFUixpQkFBVVMsV0FEb0Q7QUFFcEVDLEVBQUFBLE9BQU8sRUFBRTtBQUNMLFdBQU8sa0NBQWlCSixJQUFqQixDQURGO0FBRUwsaUJBQWFDO0FBRlIsR0FGMkQ7QUFNcEVJLEVBQUFBLFNBQVMsRUFBRUwsSUFBSSxDQUFDTTtBQU5vRCxDQUFwQyxDQUE3Qjs7OztBQVNBLE1BQU1DLGlCQUFpQixHQUFHLENBQUNwQjtBQUFEO0FBQUEsRUFBb0JDO0FBQXBCO0FBQUEsS0FBb0M7QUFDakVvQixpQkFBTUMsbUJBQU4sQ0FBMEIsZ0JBQTFCLEVBQTRDLEVBQTVDLEVBQWdEQyw0QkFBaEQsRUFBcUU7QUFDakVDLElBQUFBLFlBQVksRUFBRXhCLEdBRG1EO0FBRWpFQyxJQUFBQTtBQUZpRSxHQUFyRTtBQUdHO0FBQWMsTUFIakI7QUFHdUI7QUFBZSxPQUh0QztBQUc2QztBQUFhLE1BSDFEO0FBSUgsQ0FMTTs7OztBQU9BLE1BQU13QixvQkFBb0IsR0FBRyxPQUFPekI7QUFBUDtBQUFBLEVBQTBCQztBQUExQjtBQUFBLEtBQTBDO0FBQzFFLFNBQU9vQixlQUFNQyxtQkFBTixDQUNILGVBREcsRUFFSCxjQUZHLEVBR0hJLGlDQUhHLEVBSUg7QUFDSUYsSUFBQUEsWUFBWSxFQUFFeEIsR0FEbEI7QUFFSTJCLElBQUFBLGlCQUFpQixFQUFFQyxpQkFGdkI7QUFHSTNCLElBQUFBO0FBSEosR0FKRyxFQVNILHFDQVRHLEVBVUw0QixRQVZGO0FBV0gsQ0FaTTs7OztBQWNBLE1BQU1ELGlCQUFpQixHQUFHLE9BQU81QjtBQUFQO0FBQUEsRUFBMEJDO0FBQTFCO0FBQUEsS0FBMEM7QUFDdkUsUUFBTTZCLEtBQUssR0FBR1QsZUFBTUMsbUJBQU4sQ0FDVixlQURVLEVBRVYsYUFGVSxFQUdWUyx5QkFIVSxFQUlWO0FBQ0lDLElBQUFBLGFBQWEsRUFBRS9CLEtBQUssQ0FBQ2dDLFdBQU4sT0FBd0IsUUFEM0M7QUFFSUMsSUFBQUEsV0FBVyxFQUFFakM7QUFGakIsR0FKVSxDQUFkOztBQVNBLFFBQU0sQ0FBQ2tDLFlBQUQsRUFBZUMsSUFBZixJQUF1QixNQUFNTixLQUFLLENBQUNELFFBQXpDOztBQUNBLE1BQUlNLFlBQUosRUFBa0I7QUFDZCxVQUFNLHlCQUFXQyxJQUFYLENBQU47QUFDSDs7QUFDRCxTQUFPRCxZQUFQO0FBQ0gsQ0FmTTs7OztBQWlCQSxNQUFNRSxlQUFlLEdBQUcsQ0FBQ3BDO0FBQUQ7QUFBQSxFQUFjcUMsV0FBVyxHQUFHLEVBQTVCLEtBQW1DO0FBQzlELE1BQUlyQyxLQUFLLENBQUNnQyxXQUFOLE9BQXdCLFFBQTVCLEVBQXNDO0FBQ2xDLFVBQU1ILEtBQUssR0FBR1QsZUFBTUMsbUJBQU4sQ0FBMEIsY0FBMUIsRUFBMEMsV0FBMUMsRUFBdURpQixtQkFBdkQsRUFBbUU7QUFDN0VDLE1BQUFBLEtBQUssRUFBRSx5QkFBRyx5QkFBSCxFQUE4QjtBQUFFQyxRQUFBQSxTQUFTLEVBQUV4QyxLQUFLLENBQUN5QztBQUFuQixPQUE5QixDQURzRTtBQUU3RUMsTUFBQUEsV0FBVyxlQUFFLDZCQUFDLGNBQUQsQ0FBTyxRQUFQLHFCQUNULDJDQUFRLHlCQUFHLHlCQUFILENBQVIsQ0FEUyxlQUVULDZCQUFDLHlCQUFEO0FBQWtCLFFBQUEsS0FBSyxFQUFFMUMsS0FBekI7QUFBZ0MsUUFBQSxVQUFVLEVBQUUsTUFBTTZCLEtBQUssQ0FBQ2MsS0FBTjtBQUFsRCxRQUZTLENBRmdFO0FBTTdFQyxNQUFBQSxVQUFVLEVBQUUsS0FOaUU7QUFPN0VDLE1BQUFBLE1BQU0sRUFBRSxLQVBxRTtBQVE3RUMsTUFBQUEsU0FBUyxFQUFFLGdDQVJrRTtBQVM3RUMsTUFBQUEsY0FBYyxFQUFFO0FBVDZELEtBQW5FLENBQWQ7QUFXSCxHQVpELE1BWU87QUFDSCwwQ0FBcUIvQyxLQUFLLENBQUNrQixNQUEzQixFQUFtQ21CLFdBQW5DO0FBQ0g7QUFDSixDQWhCTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7Um9vbX0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21vZGVscy9yb29tXCI7XG5pbXBvcnQge01hdHJpeENsaWVudH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL2NsaWVudFwiO1xuaW1wb3J0IHtFdmVudFR5cGV9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9AdHlwZXMvZXZlbnRcIjtcblxuaW1wb3J0IHtjYWxjdWxhdGVSb29tVmlhfSBmcm9tIFwiLi4vdXRpbHMvcGVybWFsaW5rcy9QZXJtYWxpbmtzXCI7XG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uL01vZGFsXCI7XG5pbXBvcnQgU3BhY2VTZXR0aW5nc0RpYWxvZyBmcm9tIFwiLi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL1NwYWNlU2V0dGluZ3NEaWFsb2dcIjtcbmltcG9ydCBBZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2cgZnJvbSBcIi4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9BZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2dcIjtcbmltcG9ydCBDcmVhdGVSb29tRGlhbG9nIGZyb20gXCIuLi9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvQ3JlYXRlUm9vbURpYWxvZ1wiO1xuaW1wb3J0IGNyZWF0ZVJvb20sIHtJT3B0c30gZnJvbSBcIi4uL2NyZWF0ZVJvb21cIjtcbmltcG9ydCB7X3R9IGZyb20gXCIuLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBTcGFjZVB1YmxpY1NoYXJlIGZyb20gXCIuLi9jb21wb25lbnRzL3ZpZXdzL3NwYWNlcy9TcGFjZVB1YmxpY1NoYXJlXCI7XG5pbXBvcnQgSW5mb0RpYWxvZyBmcm9tIFwiLi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL0luZm9EaWFsb2dcIjtcbmltcG9ydCB7IHNob3dSb29tSW52aXRlRGlhbG9nIH0gZnJvbSBcIi4uL1Jvb21JbnZpdGVcIjtcblxuZXhwb3J0IGNvbnN0IHNob3VsZFNob3dTcGFjZVNldHRpbmdzID0gKGNsaTogTWF0cml4Q2xpZW50LCBzcGFjZTogUm9vbSkgPT4ge1xuICAgIGNvbnN0IHVzZXJJZCA9IGNsaS5nZXRVc2VySWQoKTtcbiAgICByZXR1cm4gc3BhY2UuZ2V0TXlNZW1iZXJzaGlwKCkgPT09IFwiam9pblwiXG4gICAgICAgICYmIChzcGFjZS5jdXJyZW50U3RhdGUubWF5U2VuZFN0YXRlRXZlbnQoRXZlbnRUeXBlLlJvb21BdmF0YXIsIHVzZXJJZClcbiAgICAgICAgICAgIHx8IHNwYWNlLmN1cnJlbnRTdGF0ZS5tYXlTZW5kU3RhdGVFdmVudChFdmVudFR5cGUuUm9vbU5hbWUsIHVzZXJJZClcbiAgICAgICAgICAgIHx8IHNwYWNlLmN1cnJlbnRTdGF0ZS5tYXlTZW5kU3RhdGVFdmVudChFdmVudFR5cGUuUm9vbVRvcGljLCB1c2VySWQpXG4gICAgICAgICAgICB8fCBzcGFjZS5jdXJyZW50U3RhdGUubWF5U2VuZFN0YXRlRXZlbnQoRXZlbnRUeXBlLlJvb21Kb2luUnVsZXMsIHVzZXJJZCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IG1ha2VTcGFjZVBhcmVudEV2ZW50ID0gKHJvb206IFJvb20sIGNhbm9uaWNhbCA9IGZhbHNlKSA9PiAoe1xuICAgIHR5cGU6IEV2ZW50VHlwZS5TcGFjZVBhcmVudCxcbiAgICBjb250ZW50OiB7XG4gICAgICAgIFwidmlhXCI6IGNhbGN1bGF0ZVJvb21WaWEocm9vbSksXG4gICAgICAgIFwiY2Fub25pY2FsXCI6IGNhbm9uaWNhbCxcbiAgICB9LFxuICAgIHN0YXRlX2tleTogcm9vbS5yb29tSWQsXG59KTtcblxuZXhwb3J0IGNvbnN0IHNob3dTcGFjZVNldHRpbmdzID0gKGNsaTogTWF0cml4Q2xpZW50LCBzcGFjZTogUm9vbSkgPT4ge1xuICAgIE1vZGFsLmNyZWF0ZVRyYWNrZWREaWFsb2coXCJTcGFjZSBTZXR0aW5nc1wiLCBcIlwiLCBTcGFjZVNldHRpbmdzRGlhbG9nLCB7XG4gICAgICAgIG1hdHJpeENsaWVudDogY2xpLFxuICAgICAgICBzcGFjZSxcbiAgICB9LCAvKmNsYXNzTmFtZT0qL251bGwsIC8qaXNQcmlvcml0eT0qL2ZhbHNlLCAvKmlzU3RhdGljPSovdHJ1ZSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2hvd0FkZEV4aXN0aW5nUm9vbXMgPSBhc3luYyAoY2xpOiBNYXRyaXhDbGllbnQsIHNwYWNlOiBSb29tKSA9PiB7XG4gICAgcmV0dXJuIE1vZGFsLmNyZWF0ZVRyYWNrZWREaWFsb2coXG4gICAgICAgIFwiU3BhY2UgTGFuZGluZ1wiLFxuICAgICAgICBcIkFkZCBFeGlzdGluZ1wiLFxuICAgICAgICBBZGRFeGlzdGluZ1RvU3BhY2VEaWFsb2csXG4gICAgICAgIHtcbiAgICAgICAgICAgIG1hdHJpeENsaWVudDogY2xpLFxuICAgICAgICAgICAgb25DcmVhdGVSb29tQ2xpY2s6IHNob3dDcmVhdGVOZXdSb29tLFxuICAgICAgICAgICAgc3BhY2UsXG4gICAgICAgIH0sXG4gICAgICAgIFwibXhfQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nX3dyYXBwZXJcIixcbiAgICApLmZpbmlzaGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3dDcmVhdGVOZXdSb29tID0gYXN5bmMgKGNsaTogTWF0cml4Q2xpZW50LCBzcGFjZTogUm9vbSkgPT4ge1xuICAgIGNvbnN0IG1vZGFsID0gTW9kYWwuY3JlYXRlVHJhY2tlZERpYWxvZzxbYm9vbGVhbiwgSU9wdHNdPihcbiAgICAgICAgXCJTcGFjZSBMYW5kaW5nXCIsXG4gICAgICAgIFwiQ3JlYXRlIFJvb21cIixcbiAgICAgICAgQ3JlYXRlUm9vbURpYWxvZyxcbiAgICAgICAge1xuICAgICAgICAgICAgZGVmYXVsdFB1YmxpYzogc3BhY2UuZ2V0Sm9pblJ1bGUoKSA9PT0gXCJwdWJsaWNcIixcbiAgICAgICAgICAgIHBhcmVudFNwYWNlOiBzcGFjZSxcbiAgICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IFtzaG91bGRDcmVhdGUsIG9wdHNdID0gYXdhaXQgbW9kYWwuZmluaXNoZWQ7XG4gICAgaWYgKHNob3VsZENyZWF0ZSkge1xuICAgICAgICBhd2FpdCBjcmVhdGVSb29tKG9wdHMpO1xuICAgIH1cbiAgICByZXR1cm4gc2hvdWxkQ3JlYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IHNob3dTcGFjZUludml0ZSA9IChzcGFjZTogUm9vbSwgaW5pdGlhbFRleHQgPSBcIlwiKSA9PiB7XG4gICAgaWYgKHNwYWNlLmdldEpvaW5SdWxlKCkgPT09IFwicHVibGljXCIpIHtcbiAgICAgICAgY29uc3QgbW9kYWwgPSBNb2RhbC5jcmVhdGVUcmFja2VkRGlhbG9nKFwiU3BhY2UgSW52aXRlXCIsIFwiVXNlciBNZW51XCIsIEluZm9EaWFsb2csIHtcbiAgICAgICAgICAgIHRpdGxlOiBfdChcIkludml0ZSB0byAlKHNwYWNlTmFtZSlzXCIsIHsgc3BhY2VOYW1lOiBzcGFjZS5uYW1lIH0pLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgICA8c3Bhbj57IF90KFwiU2hhcmUgeW91ciBwdWJsaWMgc3BhY2VcIikgfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8U3BhY2VQdWJsaWNTaGFyZSBzcGFjZT17c3BhY2V9IG9uRmluaXNoZWQ9eygpID0+IG1vZGFsLmNsb3NlKCl9IC8+XG4gICAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PixcbiAgICAgICAgICAgIGZpeGVkV2lkdGg6IGZhbHNlLFxuICAgICAgICAgICAgYnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogXCJteF9TcGFjZVBhbmVsX3NoYXJlUHVibGljU3BhY2VcIixcbiAgICAgICAgICAgIGhhc0Nsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzaG93Um9vbUludml0ZURpYWxvZyhzcGFjZS5yb29tSWQsIGluaXRpYWxUZXh0KTtcbiAgICB9XG59O1xuIl19