@bigbinary/neeto-team-members-frontend 2.7.3 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +2119 -348
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +2124 -353
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
package/dist/index.cjs.js
CHANGED
|
@@ -9,7 +9,7 @@ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
|
9
9
|
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
10
10
|
var Container = require('@bigbinary/neeto-molecules/Container');
|
|
11
11
|
var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
|
|
12
|
-
var
|
|
12
|
+
var SubHeaderMolecule = require('@bigbinary/neeto-molecules/SubHeader');
|
|
13
13
|
var neetoui = require('@bigbinary/neetoui');
|
|
14
14
|
var ramda = require('ramda');
|
|
15
15
|
var reactQuery = require('react-query');
|
|
@@ -19,11 +19,11 @@ var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
|
|
|
19
19
|
var formik$1 = require('@bigbinary/neetoui/formik');
|
|
20
20
|
var formik = require('formik');
|
|
21
21
|
var yup = require('yup');
|
|
22
|
-
var
|
|
22
|
+
var classnames = require('classnames');
|
|
23
23
|
var neetoFiltersFrontend = require('@bigbinary/neeto-filters-frontend');
|
|
24
|
+
var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
|
|
24
25
|
var reactRouterDom = require('react-router-dom');
|
|
25
26
|
var require$$0 = require('util');
|
|
26
|
-
var classnames = require('classnames');
|
|
27
27
|
var MenuBar = require('@bigbinary/neeto-molecules/MenuBar');
|
|
28
28
|
|
|
29
29
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -49,13 +49,13 @@ function _interopNamespace(e) {
|
|
|
49
49
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
50
50
|
var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
|
|
51
51
|
var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
|
|
52
|
-
var
|
|
52
|
+
var SubHeaderMolecule__default = /*#__PURE__*/_interopDefaultLegacy(SubHeaderMolecule);
|
|
53
53
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
54
54
|
var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
|
|
55
55
|
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
56
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
56
57
|
var TableWrapper__default = /*#__PURE__*/_interopDefaultLegacy(TableWrapper);
|
|
57
58
|
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
|
|
58
|
-
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
59
59
|
var MenuBar__default = /*#__PURE__*/_interopDefaultLegacy(MenuBar);
|
|
60
60
|
|
|
61
61
|
/*! @license DOMPurify 3.0.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.3/LICENSE */
|
|
@@ -1802,19 +1802,19 @@ function _iterableToArray(iter) {
|
|
|
1802
1802
|
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
1803
1803
|
}
|
|
1804
1804
|
|
|
1805
|
-
function _arrayLikeToArray(arr, len) {
|
|
1805
|
+
function _arrayLikeToArray$1(arr, len) {
|
|
1806
1806
|
if (len == null || len > arr.length) len = arr.length;
|
|
1807
1807
|
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
1808
1808
|
return arr2;
|
|
1809
1809
|
}
|
|
1810
1810
|
|
|
1811
|
-
function _unsupportedIterableToArray(o, minLen) {
|
|
1811
|
+
function _unsupportedIterableToArray$1(o, minLen) {
|
|
1812
1812
|
if (!o) return;
|
|
1813
|
-
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
1813
|
+
if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
|
|
1814
1814
|
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
1815
1815
|
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
1816
1816
|
if (n === "Map" || n === "Set") return Array.from(o);
|
|
1817
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
1817
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
|
|
1818
1818
|
}
|
|
1819
1819
|
|
|
1820
1820
|
function _nonIterableRest() {
|
|
@@ -1822,7 +1822,7 @@ function _nonIterableRest() {
|
|
|
1822
1822
|
}
|
|
1823
1823
|
|
|
1824
1824
|
function _toArray(arr) {
|
|
1825
|
-
return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
|
|
1825
|
+
return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableRest();
|
|
1826
1826
|
}
|
|
1827
1827
|
|
|
1828
1828
|
function ownKeys$6$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -5254,7 +5254,7 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
5254
5254
|
}
|
|
5255
5255
|
|
|
5256
5256
|
function _slicedToArray(arr, i) {
|
|
5257
|
-
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
5257
|
+
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();
|
|
5258
5258
|
}
|
|
5259
5259
|
|
|
5260
5260
|
function ownKeys$d(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -5681,234 +5681,1633 @@ var hasPermission = function hasPermission() {
|
|
|
5681
5681
|
}
|
|
5682
5682
|
return false;
|
|
5683
5683
|
};
|
|
5684
|
-
|
|
5685
|
-
var
|
|
5686
|
-
|
|
5684
|
+
var isOverflown = function isOverflown(_ref) {
|
|
5685
|
+
var clientWidth = _ref.clientWidth,
|
|
5686
|
+
clientHeight = _ref.clientHeight,
|
|
5687
|
+
scrollWidth = _ref.scrollWidth,
|
|
5688
|
+
scrollHeight = _ref.scrollHeight;
|
|
5689
|
+
return scrollHeight > clientHeight || scrollWidth > clientWidth;
|
|
5687
5690
|
};
|
|
5688
|
-
var
|
|
5689
|
-
|
|
5691
|
+
var getScrollBarWidth = function getScrollBarWidth() {
|
|
5692
|
+
var innerElement = document.createElement("p");
|
|
5693
|
+
innerElement.classList.add("ntm-scrollbar__inner");
|
|
5694
|
+
var outerElement = document.createElement("div");
|
|
5695
|
+
outerElement.classList.add("ntm-scrollbar__outer");
|
|
5696
|
+
outerElement.appendChild(innerElement);
|
|
5697
|
+
document.body.appendChild(outerElement);
|
|
5698
|
+
var w1 = innerElement.offsetWidth;
|
|
5699
|
+
outerElement.style.overflow = "scroll";
|
|
5700
|
+
var w2 = innerElement.offsetWidth;
|
|
5701
|
+
if (w1 === w2) w2 = outerElement.clientWidth;
|
|
5702
|
+
document.body.removeChild(outerElement);
|
|
5703
|
+
return w1 - w2;
|
|
5690
5704
|
};
|
|
5691
|
-
var MANAGE_MEMBER_PERMISSIONS = ["members.manage_members", "agents.manage_agents"];
|
|
5692
|
-
var DEFAULT_PERMISSION = true;
|
|
5693
|
-
var DEFAULT_PAGE_SIZE = 30;
|
|
5694
|
-
var ADMIN_ROLE_NAME = "Admin";
|
|
5695
|
-
var OWNER_ROLE_NAME = "Owner";
|
|
5696
|
-
var ADMIN_ROLES = [ADMIN_ROLE_NAME, OWNER_ROLE_NAME];
|
|
5697
5705
|
|
|
5698
|
-
var
|
|
5699
|
-
queryCache: new reactQuery.QueryCache()
|
|
5700
|
-
});
|
|
5706
|
+
var dist = {exports: {}};
|
|
5701
5707
|
|
|
5702
|
-
|
|
5703
|
-
var QueryWrapper = function QueryWrapper(props) {
|
|
5704
|
-
return /*#__PURE__*/React__default["default"].createElement(reactQuery.QueryClientProvider, {
|
|
5705
|
-
client: queryClient
|
|
5706
|
-
}, /*#__PURE__*/React__default["default"].createElement(Component, props), /*#__PURE__*/React__default["default"].createElement(devtools.ReactQueryDevtools, {
|
|
5707
|
-
initialIsOpen: false,
|
|
5708
|
-
position: "bottom-right"
|
|
5709
|
-
}));
|
|
5710
|
-
};
|
|
5711
|
-
return QueryWrapper;
|
|
5712
|
-
};
|
|
5708
|
+
dist.exports;
|
|
5713
5709
|
|
|
5714
|
-
|
|
5715
|
-
|
|
5710
|
+
(function (module, exports) {
|
|
5711
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
5712
|
+
module.exports = factory(React__default["default"]);
|
|
5713
|
+
})(commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE_4__) {
|
|
5714
|
+
return /******/ (function(modules) { // webpackBootstrap
|
|
5715
|
+
/******/ // The module cache
|
|
5716
|
+
/******/ var installedModules = {};
|
|
5717
|
+
/******/
|
|
5718
|
+
/******/ // The require function
|
|
5719
|
+
/******/ function __webpack_require__(moduleId) {
|
|
5720
|
+
/******/
|
|
5721
|
+
/******/ // Check if module is in cache
|
|
5722
|
+
/******/ if(installedModules[moduleId]) {
|
|
5723
|
+
/******/ return installedModules[moduleId].exports;
|
|
5724
|
+
/******/ }
|
|
5725
|
+
/******/ // Create a new module (and put it into the cache)
|
|
5726
|
+
/******/ var module = installedModules[moduleId] = {
|
|
5727
|
+
/******/ i: moduleId,
|
|
5728
|
+
/******/ l: false,
|
|
5729
|
+
/******/ exports: {}
|
|
5730
|
+
/******/ };
|
|
5731
|
+
/******/
|
|
5732
|
+
/******/ // Execute the module function
|
|
5733
|
+
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
|
5734
|
+
/******/
|
|
5735
|
+
/******/ // Flag the module as loaded
|
|
5736
|
+
/******/ module.l = true;
|
|
5737
|
+
/******/
|
|
5738
|
+
/******/ // Return the exports of the module
|
|
5739
|
+
/******/ return module.exports;
|
|
5740
|
+
/******/ }
|
|
5741
|
+
/******/
|
|
5742
|
+
/******/
|
|
5743
|
+
/******/ // expose the modules object (__webpack_modules__)
|
|
5744
|
+
/******/ __webpack_require__.m = modules;
|
|
5745
|
+
/******/
|
|
5746
|
+
/******/ // expose the module cache
|
|
5747
|
+
/******/ __webpack_require__.c = installedModules;
|
|
5748
|
+
/******/
|
|
5749
|
+
/******/ // identity function for calling harmony imports with the correct context
|
|
5750
|
+
/******/ __webpack_require__.i = function(value) { return value; };
|
|
5751
|
+
/******/
|
|
5752
|
+
/******/ // define getter function for harmony exports
|
|
5753
|
+
/******/ __webpack_require__.d = function(exports, name, getter) {
|
|
5754
|
+
/******/ if(!__webpack_require__.o(exports, name)) {
|
|
5755
|
+
/******/ Object.defineProperty(exports, name, {
|
|
5756
|
+
/******/ configurable: false,
|
|
5757
|
+
/******/ enumerable: true,
|
|
5758
|
+
/******/ get: getter
|
|
5759
|
+
/******/ });
|
|
5760
|
+
/******/ }
|
|
5761
|
+
/******/ };
|
|
5762
|
+
/******/
|
|
5763
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
5764
|
+
/******/ __webpack_require__.n = function(module) {
|
|
5765
|
+
/******/ var getter = module && module.__esModule ?
|
|
5766
|
+
/******/ function getDefault() { return module['default']; } :
|
|
5767
|
+
/******/ function getModuleExports() { return module; };
|
|
5768
|
+
/******/ __webpack_require__.d(getter, 'a', getter);
|
|
5769
|
+
/******/ return getter;
|
|
5770
|
+
/******/ };
|
|
5771
|
+
/******/
|
|
5772
|
+
/******/ // Object.prototype.hasOwnProperty.call
|
|
5773
|
+
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
|
5774
|
+
/******/
|
|
5775
|
+
/******/ // __webpack_public_path__
|
|
5776
|
+
/******/ __webpack_require__.p = "";
|
|
5777
|
+
/******/
|
|
5778
|
+
/******/ // Load entry module and return exports
|
|
5779
|
+
/******/ return __webpack_require__(__webpack_require__.s = 10);
|
|
5780
|
+
/******/ })
|
|
5781
|
+
/************************************************************************/
|
|
5782
|
+
/******/ ([
|
|
5783
|
+
/* 0 */
|
|
5784
|
+
/***/ (function(module, exports) {
|
|
5785
|
+
|
|
5786
|
+
// shim for using process in browser
|
|
5787
|
+
var process = module.exports = {};
|
|
5788
|
+
|
|
5789
|
+
// cached from whatever global is present so that test runners that stub it
|
|
5790
|
+
// don't break things. But we need to wrap it in a try catch in case it is
|
|
5791
|
+
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
|
5792
|
+
// function because try/catches deoptimize in certain engines.
|
|
5793
|
+
|
|
5794
|
+
var cachedSetTimeout;
|
|
5795
|
+
var cachedClearTimeout;
|
|
5796
|
+
|
|
5797
|
+
function defaultSetTimout() {
|
|
5798
|
+
throw new Error('setTimeout has not been defined');
|
|
5799
|
+
}
|
|
5800
|
+
function defaultClearTimeout () {
|
|
5801
|
+
throw new Error('clearTimeout has not been defined');
|
|
5802
|
+
}
|
|
5803
|
+
(function () {
|
|
5804
|
+
try {
|
|
5805
|
+
if (typeof setTimeout === 'function') {
|
|
5806
|
+
cachedSetTimeout = setTimeout;
|
|
5807
|
+
} else {
|
|
5808
|
+
cachedSetTimeout = defaultSetTimout;
|
|
5809
|
+
}
|
|
5810
|
+
} catch (e) {
|
|
5811
|
+
cachedSetTimeout = defaultSetTimout;
|
|
5812
|
+
}
|
|
5813
|
+
try {
|
|
5814
|
+
if (typeof clearTimeout === 'function') {
|
|
5815
|
+
cachedClearTimeout = clearTimeout;
|
|
5816
|
+
} else {
|
|
5817
|
+
cachedClearTimeout = defaultClearTimeout;
|
|
5818
|
+
}
|
|
5819
|
+
} catch (e) {
|
|
5820
|
+
cachedClearTimeout = defaultClearTimeout;
|
|
5821
|
+
}
|
|
5822
|
+
} ());
|
|
5823
|
+
function runTimeout(fun) {
|
|
5824
|
+
if (cachedSetTimeout === setTimeout) {
|
|
5825
|
+
//normal enviroments in sane situations
|
|
5826
|
+
return setTimeout(fun, 0);
|
|
5827
|
+
}
|
|
5828
|
+
// if setTimeout wasn't available but was latter defined
|
|
5829
|
+
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
|
5830
|
+
cachedSetTimeout = setTimeout;
|
|
5831
|
+
return setTimeout(fun, 0);
|
|
5832
|
+
}
|
|
5833
|
+
try {
|
|
5834
|
+
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
5835
|
+
return cachedSetTimeout(fun, 0);
|
|
5836
|
+
} catch(e){
|
|
5837
|
+
try {
|
|
5838
|
+
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
5839
|
+
return cachedSetTimeout.call(null, fun, 0);
|
|
5840
|
+
} catch(e){
|
|
5841
|
+
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
|
5842
|
+
return cachedSetTimeout.call(this, fun, 0);
|
|
5843
|
+
}
|
|
5844
|
+
}
|
|
5716
5845
|
|
|
5717
|
-
var fetch$3 = function fetch() {
|
|
5718
|
-
return axios__default["default"].get("".concat(BASE_URL, "/permissions"));
|
|
5719
|
-
};
|
|
5720
|
-
var permissionsApi = {
|
|
5721
|
-
fetch: fetch$3
|
|
5722
|
-
};
|
|
5723
5846
|
|
|
5724
|
-
|
|
5847
|
+
}
|
|
5848
|
+
function runClearTimeout(marker) {
|
|
5849
|
+
if (cachedClearTimeout === clearTimeout) {
|
|
5850
|
+
//normal enviroments in sane situations
|
|
5851
|
+
return clearTimeout(marker);
|
|
5852
|
+
}
|
|
5853
|
+
// if clearTimeout wasn't available but was latter defined
|
|
5854
|
+
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
|
5855
|
+
cachedClearTimeout = clearTimeout;
|
|
5856
|
+
return clearTimeout(marker);
|
|
5857
|
+
}
|
|
5858
|
+
try {
|
|
5859
|
+
// when when somebody has screwed with setTimeout but no I.E. maddness
|
|
5860
|
+
return cachedClearTimeout(marker);
|
|
5861
|
+
} catch (e){
|
|
5862
|
+
try {
|
|
5863
|
+
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
|
5864
|
+
return cachedClearTimeout.call(null, marker);
|
|
5865
|
+
} catch (e){
|
|
5866
|
+
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
|
5867
|
+
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
|
5868
|
+
return cachedClearTimeout.call(this, marker);
|
|
5869
|
+
}
|
|
5870
|
+
}
|
|
5725
5871
|
|
|
5726
|
-
var QUERY_KEYS = {
|
|
5727
|
-
PERMISSIONS: "neeto-team-members-permissions",
|
|
5728
|
-
ROLES: "neeto-team-members-roles",
|
|
5729
|
-
GLOBAL_ROLES: "neeto-team-members-global-roles",
|
|
5730
|
-
TEAMS: "neeto-team-members-teams",
|
|
5731
|
-
TEAMS_DEPENDENCIES: "neeto-team-members-teams-dependencies"
|
|
5732
|
-
};
|
|
5733
5872
|
|
|
5734
|
-
function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5735
|
-
function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$c(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
5736
|
-
var useFetchPermissions = function useFetchPermissions() {
|
|
5737
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5738
|
-
return reactQuery.useQuery(QUERY_KEYS.PERMISSIONS, permissionsApi.fetch, _objectSpread$c({
|
|
5739
|
-
staleTime: DEFAULT_STALE_TIME,
|
|
5740
|
-
select: function select(response) {
|
|
5741
|
-
return response === null || response === void 0 ? void 0 : response.permissions;
|
|
5742
|
-
}
|
|
5743
|
-
}, options));
|
|
5744
|
-
};
|
|
5745
5873
|
|
|
5746
|
-
|
|
5747
|
-
|
|
5748
|
-
|
|
5749
|
-
var
|
|
5750
|
-
|
|
5751
|
-
|
|
5874
|
+
}
|
|
5875
|
+
var queue = [];
|
|
5876
|
+
var draining = false;
|
|
5877
|
+
var currentQueue;
|
|
5878
|
+
var queueIndex = -1;
|
|
5879
|
+
|
|
5880
|
+
function cleanUpNextTick() {
|
|
5881
|
+
if (!draining || !currentQueue) {
|
|
5882
|
+
return;
|
|
5883
|
+
}
|
|
5884
|
+
draining = false;
|
|
5885
|
+
if (currentQueue.length) {
|
|
5886
|
+
queue = currentQueue.concat(queue);
|
|
5887
|
+
} else {
|
|
5888
|
+
queueIndex = -1;
|
|
5889
|
+
}
|
|
5890
|
+
if (queue.length) {
|
|
5891
|
+
drainQueue();
|
|
5892
|
+
}
|
|
5893
|
+
}
|
|
5752
5894
|
|
|
5753
|
-
|
|
5754
|
-
|
|
5755
|
-
|
|
5756
|
-
|
|
5757
|
-
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
|
|
5762
|
-
|
|
5763
|
-
|
|
5764
|
-
|
|
5765
|
-
|
|
5766
|
-
|
|
5767
|
-
|
|
5768
|
-
|
|
5769
|
-
|
|
5770
|
-
|
|
5771
|
-
|
|
5772
|
-
|
|
5773
|
-
|
|
5774
|
-
|
|
5775
|
-
|
|
5776
|
-
};
|
|
5895
|
+
function drainQueue() {
|
|
5896
|
+
if (draining) {
|
|
5897
|
+
return;
|
|
5898
|
+
}
|
|
5899
|
+
var timeout = runTimeout(cleanUpNextTick);
|
|
5900
|
+
draining = true;
|
|
5901
|
+
|
|
5902
|
+
var len = queue.length;
|
|
5903
|
+
while(len) {
|
|
5904
|
+
currentQueue = queue;
|
|
5905
|
+
queue = [];
|
|
5906
|
+
while (++queueIndex < len) {
|
|
5907
|
+
if (currentQueue) {
|
|
5908
|
+
currentQueue[queueIndex].run();
|
|
5909
|
+
}
|
|
5910
|
+
}
|
|
5911
|
+
queueIndex = -1;
|
|
5912
|
+
len = queue.length;
|
|
5913
|
+
}
|
|
5914
|
+
currentQueue = null;
|
|
5915
|
+
draining = false;
|
|
5916
|
+
runClearTimeout(timeout);
|
|
5917
|
+
}
|
|
5777
5918
|
|
|
5778
|
-
|
|
5779
|
-
|
|
5780
|
-
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
}
|
|
5791
|
-
}, options));
|
|
5792
|
-
};
|
|
5793
|
-
var useFetchGlobalRoles = function useFetchGlobalRoles() {
|
|
5794
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
5795
|
-
return reactQuery.useQuery(QUERY_KEYS.GLOBAL_ROLES, globalRolesApi.fetch, _objectSpread$b({
|
|
5796
|
-
staleTime: DEFAULT_STALE_TIME
|
|
5797
|
-
}, options));
|
|
5798
|
-
};
|
|
5799
|
-
var useCreateRole = function useCreateRole(_ref) {
|
|
5800
|
-
var _onSuccess = _ref.onSuccess,
|
|
5801
|
-
options = _objectWithoutProperties(_ref, _excluded$2);
|
|
5802
|
-
return reactQuery.useMutation(organizationRolesApi.create, _objectSpread$b({
|
|
5803
|
-
onSuccess: function onSuccess(response) {
|
|
5804
|
-
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
5805
|
-
queryClient.setQueriesData(QUERY_KEYS.ROLES, function (cachedData) {
|
|
5806
|
-
return ramda.modifyPath(["organizationRoles"], ramda.prepend(response.organizationRole), cachedData);
|
|
5807
|
-
});
|
|
5808
|
-
_onSuccess === null || _onSuccess === void 0 ? void 0 : _onSuccess();
|
|
5809
|
-
}
|
|
5810
|
-
}, options));
|
|
5811
|
-
};
|
|
5812
|
-
var useUpdateRole = function useUpdateRole(_ref2) {
|
|
5813
|
-
var _onSuccess2 = _ref2.onSuccess,
|
|
5814
|
-
options = _objectWithoutProperties(_ref2, _excluded2$2);
|
|
5815
|
-
return reactQuery.useMutation(function (_ref3) {
|
|
5816
|
-
var id = _ref3.id,
|
|
5817
|
-
payload = _ref3.payload;
|
|
5818
|
-
return organizationRolesApi.update(id, payload);
|
|
5819
|
-
}, _objectSpread$b({
|
|
5820
|
-
onSuccess: function onSuccess(response) {
|
|
5821
|
-
queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
|
|
5822
|
-
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
5823
|
-
queryClient.setQueriesData(QUERY_KEYS.ROLES, function (cachedData) {
|
|
5824
|
-
return ramda.assocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.organizationRole.id), cachedData.organizationRoles)], response.organizationRole, cachedData);
|
|
5825
|
-
});
|
|
5826
|
-
_onSuccess2 === null || _onSuccess2 === void 0 ? void 0 : _onSuccess2();
|
|
5827
|
-
}
|
|
5828
|
-
}, options));
|
|
5829
|
-
};
|
|
5830
|
-
var useDestroyRole = function useDestroyRole(_ref4) {
|
|
5831
|
-
var _ref4$onSuccess = _ref4.onSuccess,
|
|
5832
|
-
_onSuccess3 = _ref4$onSuccess === void 0 ? pure.noop : _ref4$onSuccess,
|
|
5833
|
-
options = _objectWithoutProperties(_ref4, _excluded3$1);
|
|
5834
|
-
return reactQuery.useMutation(function (_ref5) {
|
|
5835
|
-
var id = _ref5.id,
|
|
5836
|
-
payload = _ref5.payload;
|
|
5837
|
-
return organizationRolesApi.destroy(id, payload);
|
|
5838
|
-
}, _objectSpread$b({
|
|
5839
|
-
onSuccess: function onSuccess(response) {
|
|
5840
|
-
queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
|
|
5841
|
-
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
5842
|
-
queryClient.setQueriesData(QUERY_KEYS.ROLES, function (cachedData) {
|
|
5843
|
-
return ramda.dissocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.id), cachedData.organizationRoles)], cachedData);
|
|
5844
|
-
});
|
|
5845
|
-
_onSuccess3 === null || _onSuccess3 === void 0 ? void 0 : _onSuccess3();
|
|
5846
|
-
}
|
|
5847
|
-
}, options));
|
|
5848
|
-
};
|
|
5849
|
-
var useBulkUpdateRoles = function useBulkUpdateRoles(_ref6) {
|
|
5850
|
-
var _onSuccess4 = _ref6.onSuccess,
|
|
5851
|
-
options = _objectWithoutProperties(_ref6, _excluded4);
|
|
5852
|
-
return reactQuery.useMutation(organizationRolesApi.bulkUpdate, _objectSpread$b({
|
|
5853
|
-
onSuccess: function onSuccess() {
|
|
5854
|
-
queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
|
|
5855
|
-
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
5856
|
-
queryClient.invalidateQueries(QUERY_KEYS.ROLES);
|
|
5857
|
-
_onSuccess4 === null || _onSuccess4 === void 0 ? void 0 : _onSuccess4();
|
|
5858
|
-
}
|
|
5859
|
-
}, options));
|
|
5860
|
-
};
|
|
5919
|
+
process.nextTick = function (fun) {
|
|
5920
|
+
var args = new Array(arguments.length - 1);
|
|
5921
|
+
if (arguments.length > 1) {
|
|
5922
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
5923
|
+
args[i - 1] = arguments[i];
|
|
5924
|
+
}
|
|
5925
|
+
}
|
|
5926
|
+
queue.push(new Item(fun, args));
|
|
5927
|
+
if (queue.length === 1 && !draining) {
|
|
5928
|
+
runTimeout(drainQueue);
|
|
5929
|
+
}
|
|
5930
|
+
};
|
|
5861
5931
|
|
|
5862
|
-
|
|
5863
|
-
|
|
5864
|
-
|
|
5865
|
-
|
|
5866
|
-
|
|
5867
|
-
|
|
5868
|
-
|
|
5869
|
-
|
|
5870
|
-
|
|
5871
|
-
|
|
5872
|
-
|
|
5873
|
-
|
|
5874
|
-
|
|
5875
|
-
|
|
5876
|
-
|
|
5877
|
-
|
|
5878
|
-
|
|
5879
|
-
|
|
5880
|
-
|
|
5932
|
+
// v8 likes predictible objects
|
|
5933
|
+
function Item(fun, array) {
|
|
5934
|
+
this.fun = fun;
|
|
5935
|
+
this.array = array;
|
|
5936
|
+
}
|
|
5937
|
+
Item.prototype.run = function () {
|
|
5938
|
+
this.fun.apply(null, this.array);
|
|
5939
|
+
};
|
|
5940
|
+
process.title = 'browser';
|
|
5941
|
+
process.browser = true;
|
|
5942
|
+
process.env = {};
|
|
5943
|
+
process.argv = [];
|
|
5944
|
+
process.version = ''; // empty string to avoid regexp issues
|
|
5945
|
+
process.versions = {};
|
|
5946
|
+
|
|
5947
|
+
function noop() {}
|
|
5948
|
+
|
|
5949
|
+
process.on = noop;
|
|
5950
|
+
process.addListener = noop;
|
|
5951
|
+
process.once = noop;
|
|
5952
|
+
process.off = noop;
|
|
5953
|
+
process.removeListener = noop;
|
|
5954
|
+
process.removeAllListeners = noop;
|
|
5955
|
+
process.emit = noop;
|
|
5956
|
+
process.prependListener = noop;
|
|
5957
|
+
process.prependOnceListener = noop;
|
|
5958
|
+
|
|
5959
|
+
process.listeners = function (name) { return [] };
|
|
5960
|
+
|
|
5961
|
+
process.binding = function (name) {
|
|
5962
|
+
throw new Error('process.binding is not supported');
|
|
5963
|
+
};
|
|
5881
5964
|
|
|
5882
|
-
|
|
5883
|
-
|
|
5884
|
-
|
|
5885
|
-
|
|
5886
|
-
|
|
5887
|
-
t = _useTranslation.t;
|
|
5888
|
-
return /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
5889
|
-
content: t("tooltips.noPermissionToAddRole"),
|
|
5890
|
-
disabled: (_permissions$create = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create !== void 0 ? _permissions$create : hasPermission(MANAGE_MEMBER_PERMISSIONS),
|
|
5891
|
-
position: "bottom"
|
|
5892
|
-
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
5893
|
-
"data-cy": "ntm-add-role-button",
|
|
5894
|
-
disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
|
|
5895
|
-
label: t("common.addNew_", {
|
|
5896
|
-
what: t("common.role", SINGULAR).toLocaleLowerCase()
|
|
5897
|
-
}),
|
|
5898
|
-
onClick: onClick
|
|
5899
|
-
})));
|
|
5900
|
-
};
|
|
5965
|
+
process.cwd = function () { return '/' };
|
|
5966
|
+
process.chdir = function (dir) {
|
|
5967
|
+
throw new Error('process.chdir is not supported');
|
|
5968
|
+
};
|
|
5969
|
+
process.umask = function() { return 0; };
|
|
5901
5970
|
|
|
5902
|
-
|
|
5903
|
-
|
|
5904
|
-
|
|
5905
|
-
|
|
5906
|
-
|
|
5907
|
-
|
|
5908
|
-
|
|
5909
|
-
|
|
5910
|
-
|
|
5911
|
-
|
|
5971
|
+
|
|
5972
|
+
/***/ }),
|
|
5973
|
+
/* 1 */
|
|
5974
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
5975
|
+
|
|
5976
|
+
|
|
5977
|
+
/**
|
|
5978
|
+
* Copyright (c) 2013-present, Facebook, Inc.
|
|
5979
|
+
* All rights reserved.
|
|
5980
|
+
*
|
|
5981
|
+
* This source code is licensed under the BSD-style license found in the
|
|
5982
|
+
* LICENSE file in the root directory of this source tree. An additional grant
|
|
5983
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
5984
|
+
*
|
|
5985
|
+
*
|
|
5986
|
+
*/
|
|
5987
|
+
|
|
5988
|
+
function makeEmptyFunction(arg) {
|
|
5989
|
+
return function () {
|
|
5990
|
+
return arg;
|
|
5991
|
+
};
|
|
5992
|
+
}
|
|
5993
|
+
|
|
5994
|
+
/**
|
|
5995
|
+
* This function accepts and discards inputs; it has no side effects. This is
|
|
5996
|
+
* primarily useful idiomatically for overridable function endpoints which
|
|
5997
|
+
* always need to be callable, since JS lacks a null-call idiom ala Cocoa.
|
|
5998
|
+
*/
|
|
5999
|
+
var emptyFunction = function emptyFunction() {};
|
|
6000
|
+
|
|
6001
|
+
emptyFunction.thatReturns = makeEmptyFunction;
|
|
6002
|
+
emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
|
|
6003
|
+
emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
|
|
6004
|
+
emptyFunction.thatReturnsNull = makeEmptyFunction(null);
|
|
6005
|
+
emptyFunction.thatReturnsThis = function () {
|
|
6006
|
+
return this;
|
|
6007
|
+
};
|
|
6008
|
+
emptyFunction.thatReturnsArgument = function (arg) {
|
|
6009
|
+
return arg;
|
|
6010
|
+
};
|
|
6011
|
+
|
|
6012
|
+
module.exports = emptyFunction;
|
|
6013
|
+
|
|
6014
|
+
/***/ }),
|
|
6015
|
+
/* 2 */
|
|
6016
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6017
|
+
/* WEBPACK VAR INJECTION */(function(process) {/**
|
|
6018
|
+
* Copyright (c) 2013-present, Facebook, Inc.
|
|
6019
|
+
* All rights reserved.
|
|
6020
|
+
*
|
|
6021
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6022
|
+
* LICENSE file in the root directory of this source tree. An additional grant
|
|
6023
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
6024
|
+
*
|
|
6025
|
+
*/
|
|
6026
|
+
|
|
6027
|
+
function invariant(condition, format, a, b, c, d, e, f) {
|
|
6028
|
+
|
|
6029
|
+
if (!condition) {
|
|
6030
|
+
var error;
|
|
6031
|
+
if (format === undefined) {
|
|
6032
|
+
error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
|
|
6033
|
+
} else {
|
|
6034
|
+
var args = [a, b, c, d, e, f];
|
|
6035
|
+
var argIndex = 0;
|
|
6036
|
+
error = new Error(format.replace(/%s/g, function () {
|
|
6037
|
+
return args[argIndex++];
|
|
6038
|
+
}));
|
|
6039
|
+
error.name = 'Invariant Violation';
|
|
6040
|
+
}
|
|
6041
|
+
|
|
6042
|
+
error.framesToPop = 1; // we don't care about invariant's own frame
|
|
6043
|
+
throw error;
|
|
6044
|
+
}
|
|
6045
|
+
}
|
|
6046
|
+
|
|
6047
|
+
module.exports = invariant;
|
|
6048
|
+
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)));
|
|
6049
|
+
|
|
6050
|
+
/***/ }),
|
|
6051
|
+
/* 3 */
|
|
6052
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6053
|
+
/**
|
|
6054
|
+
* Copyright 2013-present, Facebook, Inc.
|
|
6055
|
+
* All rights reserved.
|
|
6056
|
+
*
|
|
6057
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6058
|
+
* LICENSE file in the root directory of this source tree. An additional grant
|
|
6059
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
6060
|
+
*/
|
|
6061
|
+
|
|
6062
|
+
|
|
6063
|
+
|
|
6064
|
+
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
|
|
6065
|
+
|
|
6066
|
+
module.exports = ReactPropTypesSecret;
|
|
6067
|
+
|
|
6068
|
+
|
|
6069
|
+
/***/ }),
|
|
6070
|
+
/* 4 */
|
|
6071
|
+
/***/ (function(module, exports) {
|
|
6072
|
+
|
|
6073
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_4__;
|
|
6074
|
+
|
|
6075
|
+
/***/ }),
|
|
6076
|
+
/* 5 */
|
|
6077
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6078
|
+
|
|
6079
|
+
|
|
6080
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6081
|
+
value: true
|
|
6082
|
+
});
|
|
6083
|
+
|
|
6084
|
+
var _react = __webpack_require__(4);
|
|
6085
|
+
|
|
6086
|
+
var _react2 = _interopRequireDefault(_react);
|
|
6087
|
+
|
|
6088
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6089
|
+
|
|
6090
|
+
var ScrollSyncContext = _react2.default.createContext({
|
|
6091
|
+
registerPane: function registerPane() {},
|
|
6092
|
+
unregisterPane: function unregisterPane() {}
|
|
6093
|
+
});
|
|
6094
|
+
|
|
6095
|
+
exports.default = ScrollSyncContext;
|
|
6096
|
+
module.exports = exports['default'];
|
|
6097
|
+
|
|
6098
|
+
/***/ }),
|
|
6099
|
+
/* 6 */
|
|
6100
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6101
|
+
/* WEBPACK VAR INJECTION */(function(process) {/**
|
|
6102
|
+
* Copyright 2014-2015, Facebook, Inc.
|
|
6103
|
+
* All rights reserved.
|
|
6104
|
+
*
|
|
6105
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6106
|
+
* LICENSE file in the root directory of this source tree. An additional grant
|
|
6107
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
6108
|
+
*
|
|
6109
|
+
*/
|
|
6110
|
+
|
|
6111
|
+
|
|
6112
|
+
|
|
6113
|
+
var emptyFunction = __webpack_require__(1);
|
|
6114
|
+
|
|
6115
|
+
/**
|
|
6116
|
+
* Similar to invariant but only logs a warning if the condition is not met.
|
|
6117
|
+
* This can be used to log issues in development environments in critical
|
|
6118
|
+
* paths. Removing the logging code for production environments will keep the
|
|
6119
|
+
* same logic and follow the same code paths.
|
|
6120
|
+
*/
|
|
6121
|
+
|
|
6122
|
+
var warning = emptyFunction;
|
|
6123
|
+
|
|
6124
|
+
module.exports = warning;
|
|
6125
|
+
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)));
|
|
6126
|
+
|
|
6127
|
+
/***/ }),
|
|
6128
|
+
/* 7 */
|
|
6129
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6130
|
+
|
|
6131
|
+
/* WEBPACK VAR INJECTION */(function(process) {/**
|
|
6132
|
+
* Copyright 2013-present, Facebook, Inc.
|
|
6133
|
+
* All rights reserved.
|
|
6134
|
+
*
|
|
6135
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6136
|
+
* LICENSE file in the root directory of this source tree. An additional grant
|
|
6137
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
6138
|
+
*/
|
|
6139
|
+
|
|
6140
|
+
{
|
|
6141
|
+
// By explicitly using `prop-types` you are opting into new production behavior.
|
|
6142
|
+
// http://fb.me/prop-types-in-prod
|
|
6143
|
+
module.exports = __webpack_require__(12)();
|
|
6144
|
+
}
|
|
6145
|
+
|
|
6146
|
+
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)));
|
|
6147
|
+
|
|
6148
|
+
/***/ }),
|
|
6149
|
+
/* 8 */
|
|
6150
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6151
|
+
|
|
6152
|
+
|
|
6153
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6154
|
+
value: true
|
|
6155
|
+
});
|
|
6156
|
+
|
|
6157
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
6158
|
+
|
|
6159
|
+
var _react = __webpack_require__(4);
|
|
6160
|
+
|
|
6161
|
+
var _react2 = _interopRequireDefault(_react);
|
|
6162
|
+
|
|
6163
|
+
var _propTypes = __webpack_require__(7);
|
|
6164
|
+
|
|
6165
|
+
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
6166
|
+
|
|
6167
|
+
var _ScrollSyncContext = __webpack_require__(5);
|
|
6168
|
+
|
|
6169
|
+
var _ScrollSyncContext2 = _interopRequireDefault(_ScrollSyncContext);
|
|
6170
|
+
|
|
6171
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6172
|
+
|
|
6173
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
6174
|
+
|
|
6175
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
6176
|
+
|
|
6177
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
6178
|
+
|
|
6179
|
+
/**
|
|
6180
|
+
* ScrollSync provider component
|
|
6181
|
+
*
|
|
6182
|
+
*/
|
|
6183
|
+
|
|
6184
|
+
var ScrollSync = function (_Component) {
|
|
6185
|
+
_inherits(ScrollSync, _Component);
|
|
6186
|
+
|
|
6187
|
+
function ScrollSync() {
|
|
6188
|
+
var _ref;
|
|
6189
|
+
|
|
6190
|
+
var _temp, _this, _ret;
|
|
6191
|
+
|
|
6192
|
+
_classCallCheck(this, ScrollSync);
|
|
6193
|
+
|
|
6194
|
+
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
|
6195
|
+
args[_key] = arguments[_key];
|
|
6196
|
+
}
|
|
6197
|
+
|
|
6198
|
+
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ScrollSync.__proto__ || Object.getPrototypeOf(ScrollSync)).call.apply(_ref, [this].concat(args))), _this), _this.panes = {}, _this.registerPane = function (node, groups) {
|
|
6199
|
+
groups.forEach(function (group) {
|
|
6200
|
+
if (!_this.panes[group]) {
|
|
6201
|
+
_this.panes[group] = [];
|
|
6202
|
+
}
|
|
6203
|
+
|
|
6204
|
+
if (!_this.findPane(node, group)) {
|
|
6205
|
+
if (_this.panes[group].length > 0) {
|
|
6206
|
+
_this.syncScrollPosition(_this.panes[group][0], node);
|
|
6207
|
+
}
|
|
6208
|
+
_this.panes[group].push(node);
|
|
6209
|
+
}
|
|
6210
|
+
});
|
|
6211
|
+
_this.addEvents(node, groups);
|
|
6212
|
+
}, _this.unregisterPane = function (node, groups) {
|
|
6213
|
+
groups.forEach(function (group) {
|
|
6214
|
+
if (_this.findPane(node, group)) {
|
|
6215
|
+
_this.removeEvents(node);
|
|
6216
|
+
_this.panes[group].splice(_this.panes[group].indexOf(node), 1);
|
|
6217
|
+
}
|
|
6218
|
+
});
|
|
6219
|
+
}, _this.addEvents = function (node, groups) {
|
|
6220
|
+
/* For some reason element.addEventListener doesnt work with document.body */
|
|
6221
|
+
node.onscroll = _this.handlePaneScroll.bind(_this, node, groups); // eslint-disable-line
|
|
6222
|
+
}, _this.removeEvents = function (node) {
|
|
6223
|
+
/* For some reason element.removeEventListener doesnt work with document.body */
|
|
6224
|
+
node.onscroll = null; // eslint-disable-line
|
|
6225
|
+
}, _this.findPane = function (node, group) {
|
|
6226
|
+
if (!_this.panes[group]) {
|
|
6227
|
+
return false;
|
|
6228
|
+
}
|
|
6229
|
+
|
|
6230
|
+
return _this.panes[group].find(function (pane) {
|
|
6231
|
+
return pane === node;
|
|
6232
|
+
});
|
|
6233
|
+
}, _this.handlePaneScroll = function (node, groups) {
|
|
6234
|
+
if (!_this.props.enabled) {
|
|
6235
|
+
return;
|
|
6236
|
+
}
|
|
6237
|
+
|
|
6238
|
+
window.requestAnimationFrame(function () {
|
|
6239
|
+
_this.syncScrollPositions(node, groups);
|
|
6240
|
+
});
|
|
6241
|
+
}, _this.syncScrollPositions = function (scrolledPane, groups) {
|
|
6242
|
+
groups.forEach(function (group) {
|
|
6243
|
+
_this.panes[group].forEach(function (pane) {
|
|
6244
|
+
/* For all panes beside the currently scrolling one */
|
|
6245
|
+
if (scrolledPane !== pane) {
|
|
6246
|
+
/* Remove event listeners from the node that we'll manipulate */
|
|
6247
|
+
_this.removeEvents(pane, group);
|
|
6248
|
+
_this.syncScrollPosition(scrolledPane, pane);
|
|
6249
|
+
/* Re-attach event listeners after we're done scrolling */
|
|
6250
|
+
window.requestAnimationFrame(function () {
|
|
6251
|
+
_this.addEvents(pane, groups);
|
|
6252
|
+
});
|
|
6253
|
+
}
|
|
6254
|
+
});
|
|
6255
|
+
});
|
|
6256
|
+
if (_this.props.onSync) _this.props.onSync(scrolledPane);
|
|
6257
|
+
}, _temp), _possibleConstructorReturn(_this, _ret);
|
|
6258
|
+
}
|
|
6259
|
+
|
|
6260
|
+
_createClass(ScrollSync, [{
|
|
6261
|
+
key: 'getContextValue',
|
|
6262
|
+
value: function getContextValue() {
|
|
6263
|
+
return {
|
|
6264
|
+
registerPane: this.registerPane,
|
|
6265
|
+
unregisterPane: this.unregisterPane
|
|
6266
|
+
};
|
|
6267
|
+
}
|
|
6268
|
+
}, {
|
|
6269
|
+
key: 'syncScrollPosition',
|
|
6270
|
+
value: function syncScrollPosition(scrolledPane, pane) {
|
|
6271
|
+
var scrollTop = scrolledPane.scrollTop,
|
|
6272
|
+
scrollHeight = scrolledPane.scrollHeight,
|
|
6273
|
+
clientHeight = scrolledPane.clientHeight,
|
|
6274
|
+
scrollLeft = scrolledPane.scrollLeft,
|
|
6275
|
+
scrollWidth = scrolledPane.scrollWidth,
|
|
6276
|
+
clientWidth = scrolledPane.clientWidth;
|
|
6277
|
+
|
|
6278
|
+
|
|
6279
|
+
var scrollTopOffset = scrollHeight - clientHeight;
|
|
6280
|
+
var scrollLeftOffset = scrollWidth - clientWidth;
|
|
6281
|
+
|
|
6282
|
+
var _props = this.props,
|
|
6283
|
+
proportional = _props.proportional,
|
|
6284
|
+
vertical = _props.vertical,
|
|
6285
|
+
horizontal = _props.horizontal;
|
|
6286
|
+
|
|
6287
|
+
/* Calculate the actual pane height */
|
|
6288
|
+
|
|
6289
|
+
var paneHeight = pane.scrollHeight - clientHeight;
|
|
6290
|
+
var paneWidth = pane.scrollWidth - clientWidth;
|
|
6291
|
+
/* Adjust the scrollTop position of it accordingly */
|
|
6292
|
+
if (vertical && scrollTopOffset > 0) {
|
|
6293
|
+
pane.scrollTop = proportional ? paneHeight * scrollTop / scrollTopOffset : scrollTop; // eslint-disable-line
|
|
6294
|
+
}
|
|
6295
|
+
if (horizontal && scrollLeftOffset > 0) {
|
|
6296
|
+
pane.scrollLeft = proportional ? paneWidth * scrollLeft / scrollLeftOffset : scrollLeft; // eslint-disable-line
|
|
6297
|
+
}
|
|
6298
|
+
}
|
|
6299
|
+
}, {
|
|
6300
|
+
key: 'render',
|
|
6301
|
+
value: function render() {
|
|
6302
|
+
return _react2.default.createElement(
|
|
6303
|
+
_ScrollSyncContext2.default.Provider,
|
|
6304
|
+
{ value: this.getContextValue() },
|
|
6305
|
+
_react2.default.Children.only(this.props.children)
|
|
6306
|
+
);
|
|
6307
|
+
}
|
|
6308
|
+
}]);
|
|
6309
|
+
|
|
6310
|
+
return ScrollSync;
|
|
6311
|
+
}(_react.Component);
|
|
6312
|
+
|
|
6313
|
+
ScrollSync.propTypes = {
|
|
6314
|
+
/**
|
|
6315
|
+
* Callback to be invoked any time synchronization happens
|
|
6316
|
+
*
|
|
6317
|
+
* @param {Element} el The element that has received the scroll event
|
|
6318
|
+
*/
|
|
6319
|
+
onSync: _propTypes2.default.func,
|
|
6320
|
+
children: _propTypes2.default.element.isRequired,
|
|
6321
|
+
proportional: _propTypes2.default.bool,
|
|
6322
|
+
vertical: _propTypes2.default.bool,
|
|
6323
|
+
horizontal: _propTypes2.default.bool,
|
|
6324
|
+
enabled: _propTypes2.default.bool
|
|
6325
|
+
};
|
|
6326
|
+
ScrollSync.defaultProps = {
|
|
6327
|
+
proportional: true,
|
|
6328
|
+
vertical: true,
|
|
6329
|
+
horizontal: true,
|
|
6330
|
+
enabled: true
|
|
6331
|
+
};
|
|
6332
|
+
exports.default = ScrollSync;
|
|
6333
|
+
module.exports = exports['default'];
|
|
6334
|
+
|
|
6335
|
+
/***/ }),
|
|
6336
|
+
/* 9 */
|
|
6337
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6338
|
+
|
|
6339
|
+
|
|
6340
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6341
|
+
value: true
|
|
6342
|
+
});
|
|
6343
|
+
|
|
6344
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
6345
|
+
|
|
6346
|
+
var _react = __webpack_require__(4);
|
|
6347
|
+
|
|
6348
|
+
var _propTypes = __webpack_require__(7);
|
|
6349
|
+
|
|
6350
|
+
var _propTypes2 = _interopRequireDefault(_propTypes);
|
|
6351
|
+
|
|
6352
|
+
var _ScrollSyncContext = __webpack_require__(5);
|
|
6353
|
+
|
|
6354
|
+
var _ScrollSyncContext2 = _interopRequireDefault(_ScrollSyncContext);
|
|
6355
|
+
|
|
6356
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6357
|
+
|
|
6358
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
6359
|
+
|
|
6360
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
6361
|
+
|
|
6362
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/no-find-dom-node: 0 */
|
|
6363
|
+
|
|
6364
|
+
/**
|
|
6365
|
+
* ScrollSyncPane Component
|
|
6366
|
+
*
|
|
6367
|
+
* Wrap your content in it to keep its scroll position in sync with other panes
|
|
6368
|
+
*
|
|
6369
|
+
* @example ./example.md
|
|
6370
|
+
*/
|
|
6371
|
+
|
|
6372
|
+
var ScrollSyncPane = function (_Component) {
|
|
6373
|
+
_inherits(ScrollSyncPane, _Component);
|
|
6374
|
+
|
|
6375
|
+
function ScrollSyncPane(props) {
|
|
6376
|
+
_classCallCheck(this, ScrollSyncPane);
|
|
6377
|
+
|
|
6378
|
+
var _this = _possibleConstructorReturn(this, (ScrollSyncPane.__proto__ || Object.getPrototypeOf(ScrollSyncPane)).call(this, props));
|
|
6379
|
+
|
|
6380
|
+
_this.toArray = function (groups) {
|
|
6381
|
+
return [].concat(groups);
|
|
6382
|
+
};
|
|
6383
|
+
|
|
6384
|
+
_this.updateNode = function () {
|
|
6385
|
+
if (_this.props.attachTo) {
|
|
6386
|
+
_this.node = _this.props.attachTo.current;
|
|
6387
|
+
} else {
|
|
6388
|
+
_this.node = _this.childRef.current;
|
|
6389
|
+
}
|
|
6390
|
+
};
|
|
6391
|
+
|
|
6392
|
+
_this.childRef = (0, _react.createRef)();
|
|
6393
|
+
return _this;
|
|
6394
|
+
}
|
|
6395
|
+
|
|
6396
|
+
_createClass(ScrollSyncPane, [{
|
|
6397
|
+
key: 'componentDidMount',
|
|
6398
|
+
value: function componentDidMount() {
|
|
6399
|
+
if (this.props.enabled) {
|
|
6400
|
+
this.updateNode();
|
|
6401
|
+
if (this.node) {
|
|
6402
|
+
this.context.registerPane(this.node, this.toArray(this.props.group));
|
|
6403
|
+
}
|
|
6404
|
+
}
|
|
6405
|
+
}
|
|
6406
|
+
}, {
|
|
6407
|
+
key: 'componentDidUpdate',
|
|
6408
|
+
value: function componentDidUpdate(prevProps) {
|
|
6409
|
+
if (this.props.attachTo !== prevProps.attachTo) {
|
|
6410
|
+
if (this.node) {
|
|
6411
|
+
this.context.unregisterPane(this.node, this.toArray(prevProps.group));
|
|
6412
|
+
}
|
|
6413
|
+
this.updateNode();
|
|
6414
|
+
if (this.node) {
|
|
6415
|
+
this.context.registerPane(this.node, this.toArray(prevProps.group));
|
|
6416
|
+
}
|
|
6417
|
+
}
|
|
6418
|
+
if (this.node && this.props.enabled !== prevProps.enabled) {
|
|
6419
|
+
if (this.props.enabled) {
|
|
6420
|
+
this.context.registerPane(this.node, this.toArray(prevProps.group));
|
|
6421
|
+
} else {
|
|
6422
|
+
this.context.unregisterPane(this.node, this.toArray(prevProps.group));
|
|
6423
|
+
}
|
|
6424
|
+
}
|
|
6425
|
+
if (this.node && this.props.enabled && this.props.group !== prevProps.group) {
|
|
6426
|
+
this.context.unregisterPane(this.node, this.toArray(prevProps.group));
|
|
6427
|
+
this.context.registerPane(this.node, this.toArray(this.props.group));
|
|
6428
|
+
}
|
|
6429
|
+
}
|
|
6430
|
+
}, {
|
|
6431
|
+
key: 'componentWillUnmount',
|
|
6432
|
+
value: function componentWillUnmount() {
|
|
6433
|
+
if (this.node && this.props.enabled) {
|
|
6434
|
+
this.context.unregisterPane(this.node, this.toArray(this.props.group));
|
|
6435
|
+
}
|
|
6436
|
+
}
|
|
6437
|
+
}, {
|
|
6438
|
+
key: 'render',
|
|
6439
|
+
value: function render() {
|
|
6440
|
+
if (this.props.attachTo) {
|
|
6441
|
+
return this.props.children;
|
|
6442
|
+
}
|
|
6443
|
+
return (0, _react.cloneElement)(_react.Children.only(this.props.children), { ref: this.childRef });
|
|
6444
|
+
}
|
|
6445
|
+
}]);
|
|
6446
|
+
|
|
6447
|
+
return ScrollSyncPane;
|
|
6448
|
+
}(_react.Component);
|
|
6449
|
+
|
|
6450
|
+
ScrollSyncPane.contextType = _ScrollSyncContext2.default;
|
|
6451
|
+
ScrollSyncPane.propTypes = {
|
|
6452
|
+
children: _propTypes2.default.node.isRequired,
|
|
6453
|
+
attachTo: _propTypes2.default.oneOfType([_propTypes2.default.func, _propTypes2.default.shape({ current: _propTypes2.default.any })]),
|
|
6454
|
+
group: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
|
|
6455
|
+
enabled: _propTypes2.default.bool
|
|
6456
|
+
};
|
|
6457
|
+
ScrollSyncPane.defaultProps = {
|
|
6458
|
+
group: 'default',
|
|
6459
|
+
enabled: true
|
|
6460
|
+
};
|
|
6461
|
+
exports.default = ScrollSyncPane;
|
|
6462
|
+
module.exports = exports['default'];
|
|
6463
|
+
|
|
6464
|
+
/***/ }),
|
|
6465
|
+
/* 10 */
|
|
6466
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6467
|
+
|
|
6468
|
+
|
|
6469
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6470
|
+
value: true
|
|
6471
|
+
});
|
|
6472
|
+
|
|
6473
|
+
var _ScrollSync = __webpack_require__(8);
|
|
6474
|
+
|
|
6475
|
+
Object.defineProperty(exports, 'ScrollSync', {
|
|
6476
|
+
enumerable: true,
|
|
6477
|
+
get: function get() {
|
|
6478
|
+
return _interopRequireDefault(_ScrollSync).default;
|
|
6479
|
+
}
|
|
6480
|
+
});
|
|
6481
|
+
|
|
6482
|
+
var _ScrollSyncPane = __webpack_require__(9);
|
|
6483
|
+
|
|
6484
|
+
Object.defineProperty(exports, 'ScrollSyncPane', {
|
|
6485
|
+
enumerable: true,
|
|
6486
|
+
get: function get() {
|
|
6487
|
+
return _interopRequireDefault(_ScrollSyncPane).default;
|
|
6488
|
+
}
|
|
6489
|
+
});
|
|
6490
|
+
|
|
6491
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6492
|
+
|
|
6493
|
+
/***/ }),
|
|
6494
|
+
/* 11 */
|
|
6495
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6496
|
+
/* WEBPACK VAR INJECTION */(function(process) {/**
|
|
6497
|
+
* Copyright 2013-present, Facebook, Inc.
|
|
6498
|
+
* All rights reserved.
|
|
6499
|
+
*
|
|
6500
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6501
|
+
* LICENSE file in the root directory of this source tree. An additional grant
|
|
6502
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
6503
|
+
*/
|
|
6504
|
+
|
|
6505
|
+
/**
|
|
6506
|
+
* Assert that the values match with the type specs.
|
|
6507
|
+
* Error messages are memorized and will only be shown once.
|
|
6508
|
+
*
|
|
6509
|
+
* @param {object} typeSpecs Map of name to a ReactPropType
|
|
6510
|
+
* @param {object} values Runtime values that need to be type-checked
|
|
6511
|
+
* @param {string} location e.g. "prop", "context", "child context"
|
|
6512
|
+
* @param {string} componentName Name of the component for error messages.
|
|
6513
|
+
* @param {?Function} getStack Returns the component stack.
|
|
6514
|
+
* @private
|
|
6515
|
+
*/
|
|
6516
|
+
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
|
|
6517
|
+
}
|
|
6518
|
+
|
|
6519
|
+
module.exports = checkPropTypes;
|
|
6520
|
+
|
|
6521
|
+
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)));
|
|
6522
|
+
|
|
6523
|
+
/***/ }),
|
|
6524
|
+
/* 12 */
|
|
6525
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6526
|
+
/**
|
|
6527
|
+
* Copyright 2013-present, Facebook, Inc.
|
|
6528
|
+
* All rights reserved.
|
|
6529
|
+
*
|
|
6530
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6531
|
+
* LICENSE file in the root directory of this source tree. An additional grant
|
|
6532
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
6533
|
+
*/
|
|
6534
|
+
|
|
6535
|
+
|
|
6536
|
+
|
|
6537
|
+
var emptyFunction = __webpack_require__(1);
|
|
6538
|
+
var invariant = __webpack_require__(2);
|
|
6539
|
+
var ReactPropTypesSecret = __webpack_require__(3);
|
|
6540
|
+
|
|
6541
|
+
module.exports = function() {
|
|
6542
|
+
function shim(props, propName, componentName, location, propFullName, secret) {
|
|
6543
|
+
if (secret === ReactPropTypesSecret) {
|
|
6544
|
+
// It is still safe when called from React.
|
|
6545
|
+
return;
|
|
6546
|
+
}
|
|
6547
|
+
invariant(
|
|
6548
|
+
false,
|
|
6549
|
+
'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
|
|
6550
|
+
'Use PropTypes.checkPropTypes() to call them. ' +
|
|
6551
|
+
'Read more at http://fb.me/use-check-prop-types'
|
|
6552
|
+
);
|
|
6553
|
+
} shim.isRequired = shim;
|
|
6554
|
+
function getShim() {
|
|
6555
|
+
return shim;
|
|
6556
|
+
} // Important!
|
|
6557
|
+
// Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
|
|
6558
|
+
var ReactPropTypes = {
|
|
6559
|
+
array: shim,
|
|
6560
|
+
bool: shim,
|
|
6561
|
+
func: shim,
|
|
6562
|
+
number: shim,
|
|
6563
|
+
object: shim,
|
|
6564
|
+
string: shim,
|
|
6565
|
+
symbol: shim,
|
|
6566
|
+
|
|
6567
|
+
any: shim,
|
|
6568
|
+
arrayOf: getShim,
|
|
6569
|
+
element: shim,
|
|
6570
|
+
instanceOf: getShim,
|
|
6571
|
+
node: shim,
|
|
6572
|
+
objectOf: getShim,
|
|
6573
|
+
oneOf: getShim,
|
|
6574
|
+
oneOfType: getShim,
|
|
6575
|
+
shape: getShim
|
|
6576
|
+
};
|
|
6577
|
+
|
|
6578
|
+
ReactPropTypes.checkPropTypes = emptyFunction;
|
|
6579
|
+
ReactPropTypes.PropTypes = ReactPropTypes;
|
|
6580
|
+
|
|
6581
|
+
return ReactPropTypes;
|
|
6582
|
+
};
|
|
6583
|
+
|
|
6584
|
+
|
|
6585
|
+
/***/ }),
|
|
6586
|
+
/* 13 */
|
|
6587
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
6588
|
+
/* WEBPACK VAR INJECTION */(function(process) {/**
|
|
6589
|
+
* Copyright 2013-present, Facebook, Inc.
|
|
6590
|
+
* All rights reserved.
|
|
6591
|
+
*
|
|
6592
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6593
|
+
* LICENSE file in the root directory of this source tree. An additional grant
|
|
6594
|
+
* of patent rights can be found in the PATENTS file in the same directory.
|
|
6595
|
+
*/
|
|
6596
|
+
|
|
6597
|
+
|
|
6598
|
+
|
|
6599
|
+
var emptyFunction = __webpack_require__(1);
|
|
6600
|
+
var invariant = __webpack_require__(2);
|
|
6601
|
+
var warning = __webpack_require__(6);
|
|
6602
|
+
|
|
6603
|
+
var ReactPropTypesSecret = __webpack_require__(3);
|
|
6604
|
+
var checkPropTypes = __webpack_require__(11);
|
|
6605
|
+
|
|
6606
|
+
module.exports = function(isValidElement, throwOnDirectAccess) {
|
|
6607
|
+
/* global Symbol */
|
|
6608
|
+
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
|
|
6609
|
+
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
|
|
6610
|
+
|
|
6611
|
+
/**
|
|
6612
|
+
* Returns the iterator method function contained on the iterable object.
|
|
6613
|
+
*
|
|
6614
|
+
* Be sure to invoke the function with the iterable as context:
|
|
6615
|
+
*
|
|
6616
|
+
* var iteratorFn = getIteratorFn(myIterable);
|
|
6617
|
+
* if (iteratorFn) {
|
|
6618
|
+
* var iterator = iteratorFn.call(myIterable);
|
|
6619
|
+
* ...
|
|
6620
|
+
* }
|
|
6621
|
+
*
|
|
6622
|
+
* @param {?object} maybeIterable
|
|
6623
|
+
* @return {?function}
|
|
6624
|
+
*/
|
|
6625
|
+
function getIteratorFn(maybeIterable) {
|
|
6626
|
+
var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
|
|
6627
|
+
if (typeof iteratorFn === 'function') {
|
|
6628
|
+
return iteratorFn;
|
|
6629
|
+
}
|
|
6630
|
+
}
|
|
6631
|
+
|
|
6632
|
+
/**
|
|
6633
|
+
* Collection of methods that allow declaration and validation of props that are
|
|
6634
|
+
* supplied to React components. Example usage:
|
|
6635
|
+
*
|
|
6636
|
+
* var Props = require('ReactPropTypes');
|
|
6637
|
+
* var MyArticle = React.createClass({
|
|
6638
|
+
* propTypes: {
|
|
6639
|
+
* // An optional string prop named "description".
|
|
6640
|
+
* description: Props.string,
|
|
6641
|
+
*
|
|
6642
|
+
* // A required enum prop named "category".
|
|
6643
|
+
* category: Props.oneOf(['News','Photos']).isRequired,
|
|
6644
|
+
*
|
|
6645
|
+
* // A prop named "dialog" that requires an instance of Dialog.
|
|
6646
|
+
* dialog: Props.instanceOf(Dialog).isRequired
|
|
6647
|
+
* },
|
|
6648
|
+
* render: function() { ... }
|
|
6649
|
+
* });
|
|
6650
|
+
*
|
|
6651
|
+
* A more formal specification of how these methods are used:
|
|
6652
|
+
*
|
|
6653
|
+
* type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
|
|
6654
|
+
* decl := ReactPropTypes.{type}(.isRequired)?
|
|
6655
|
+
*
|
|
6656
|
+
* Each and every declaration produces a function with the same signature. This
|
|
6657
|
+
* allows the creation of custom validation functions. For example:
|
|
6658
|
+
*
|
|
6659
|
+
* var MyLink = React.createClass({
|
|
6660
|
+
* propTypes: {
|
|
6661
|
+
* // An optional string or URI prop named "href".
|
|
6662
|
+
* href: function(props, propName, componentName) {
|
|
6663
|
+
* var propValue = props[propName];
|
|
6664
|
+
* if (propValue != null && typeof propValue !== 'string' &&
|
|
6665
|
+
* !(propValue instanceof URI)) {
|
|
6666
|
+
* return new Error(
|
|
6667
|
+
* 'Expected a string or an URI for ' + propName + ' in ' +
|
|
6668
|
+
* componentName
|
|
6669
|
+
* );
|
|
6670
|
+
* }
|
|
6671
|
+
* }
|
|
6672
|
+
* },
|
|
6673
|
+
* render: function() {...}
|
|
6674
|
+
* });
|
|
6675
|
+
*
|
|
6676
|
+
* @internal
|
|
6677
|
+
*/
|
|
6678
|
+
|
|
6679
|
+
var ANONYMOUS = '<<anonymous>>';
|
|
6680
|
+
|
|
6681
|
+
// Important!
|
|
6682
|
+
// Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
|
|
6683
|
+
var ReactPropTypes = {
|
|
6684
|
+
array: createPrimitiveTypeChecker('array'),
|
|
6685
|
+
bool: createPrimitiveTypeChecker('boolean'),
|
|
6686
|
+
func: createPrimitiveTypeChecker('function'),
|
|
6687
|
+
number: createPrimitiveTypeChecker('number'),
|
|
6688
|
+
object: createPrimitiveTypeChecker('object'),
|
|
6689
|
+
string: createPrimitiveTypeChecker('string'),
|
|
6690
|
+
symbol: createPrimitiveTypeChecker('symbol'),
|
|
6691
|
+
|
|
6692
|
+
any: createAnyTypeChecker(),
|
|
6693
|
+
arrayOf: createArrayOfTypeChecker,
|
|
6694
|
+
element: createElementTypeChecker(),
|
|
6695
|
+
instanceOf: createInstanceTypeChecker,
|
|
6696
|
+
node: createNodeChecker(),
|
|
6697
|
+
objectOf: createObjectOfTypeChecker,
|
|
6698
|
+
oneOf: createEnumTypeChecker,
|
|
6699
|
+
oneOfType: createUnionTypeChecker,
|
|
6700
|
+
shape: createShapeTypeChecker
|
|
6701
|
+
};
|
|
6702
|
+
|
|
6703
|
+
/**
|
|
6704
|
+
* inlined Object.is polyfill to avoid requiring consumers ship their own
|
|
6705
|
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
|
|
6706
|
+
*/
|
|
6707
|
+
/*eslint-disable no-self-compare*/
|
|
6708
|
+
function is(x, y) {
|
|
6709
|
+
// SameValue algorithm
|
|
6710
|
+
if (x === y) {
|
|
6711
|
+
// Steps 1-5, 7-10
|
|
6712
|
+
// Steps 6.b-6.e: +0 != -0
|
|
6713
|
+
return x !== 0 || 1 / x === 1 / y;
|
|
6714
|
+
} else {
|
|
6715
|
+
// Step 6.a: NaN == NaN
|
|
6716
|
+
return x !== x && y !== y;
|
|
6717
|
+
}
|
|
6718
|
+
}
|
|
6719
|
+
/*eslint-enable no-self-compare*/
|
|
6720
|
+
|
|
6721
|
+
/**
|
|
6722
|
+
* We use an Error-like object for backward compatibility as people may call
|
|
6723
|
+
* PropTypes directly and inspect their output. However, we don't use real
|
|
6724
|
+
* Errors anymore. We don't inspect their stack anyway, and creating them
|
|
6725
|
+
* is prohibitively expensive if they are created too often, such as what
|
|
6726
|
+
* happens in oneOfType() for any type before the one that matched.
|
|
6727
|
+
*/
|
|
6728
|
+
function PropTypeError(message) {
|
|
6729
|
+
this.message = message;
|
|
6730
|
+
this.stack = '';
|
|
6731
|
+
}
|
|
6732
|
+
// Make `instanceof Error` still work for returned errors.
|
|
6733
|
+
PropTypeError.prototype = Error.prototype;
|
|
6734
|
+
|
|
6735
|
+
function createChainableTypeChecker(validate) {
|
|
6736
|
+
function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
|
|
6737
|
+
componentName = componentName || ANONYMOUS;
|
|
6738
|
+
propFullName = propFullName || propName;
|
|
6739
|
+
|
|
6740
|
+
if (secret !== ReactPropTypesSecret) {
|
|
6741
|
+
if (throwOnDirectAccess) {
|
|
6742
|
+
// New behavior only for users of `prop-types` package
|
|
6743
|
+
invariant(
|
|
6744
|
+
false,
|
|
6745
|
+
'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
|
|
6746
|
+
'Use `PropTypes.checkPropTypes()` to call them. ' +
|
|
6747
|
+
'Read more at http://fb.me/use-check-prop-types'
|
|
6748
|
+
);
|
|
6749
|
+
}
|
|
6750
|
+
}
|
|
6751
|
+
if (props[propName] == null) {
|
|
6752
|
+
if (isRequired) {
|
|
6753
|
+
if (props[propName] === null) {
|
|
6754
|
+
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
|
|
6755
|
+
}
|
|
6756
|
+
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
|
|
6757
|
+
}
|
|
6758
|
+
return null;
|
|
6759
|
+
} else {
|
|
6760
|
+
return validate(props, propName, componentName, location, propFullName);
|
|
6761
|
+
}
|
|
6762
|
+
}
|
|
6763
|
+
|
|
6764
|
+
var chainedCheckType = checkType.bind(null, false);
|
|
6765
|
+
chainedCheckType.isRequired = checkType.bind(null, true);
|
|
6766
|
+
|
|
6767
|
+
return chainedCheckType;
|
|
6768
|
+
}
|
|
6769
|
+
|
|
6770
|
+
function createPrimitiveTypeChecker(expectedType) {
|
|
6771
|
+
function validate(props, propName, componentName, location, propFullName, secret) {
|
|
6772
|
+
var propValue = props[propName];
|
|
6773
|
+
var propType = getPropType(propValue);
|
|
6774
|
+
if (propType !== expectedType) {
|
|
6775
|
+
// `propValue` being instance of, say, date/regexp, pass the 'object'
|
|
6776
|
+
// check, but we can offer a more precise error message here rather than
|
|
6777
|
+
// 'of type `object`'.
|
|
6778
|
+
var preciseType = getPreciseType(propValue);
|
|
6779
|
+
|
|
6780
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
|
|
6781
|
+
}
|
|
6782
|
+
return null;
|
|
6783
|
+
}
|
|
6784
|
+
return createChainableTypeChecker(validate);
|
|
6785
|
+
}
|
|
6786
|
+
|
|
6787
|
+
function createAnyTypeChecker() {
|
|
6788
|
+
return createChainableTypeChecker(emptyFunction.thatReturnsNull);
|
|
6789
|
+
}
|
|
6790
|
+
|
|
6791
|
+
function createArrayOfTypeChecker(typeChecker) {
|
|
6792
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
6793
|
+
if (typeof typeChecker !== 'function') {
|
|
6794
|
+
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
|
|
6795
|
+
}
|
|
6796
|
+
var propValue = props[propName];
|
|
6797
|
+
if (!Array.isArray(propValue)) {
|
|
6798
|
+
var propType = getPropType(propValue);
|
|
6799
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
|
|
6800
|
+
}
|
|
6801
|
+
for (var i = 0; i < propValue.length; i++) {
|
|
6802
|
+
var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
|
|
6803
|
+
if (error instanceof Error) {
|
|
6804
|
+
return error;
|
|
6805
|
+
}
|
|
6806
|
+
}
|
|
6807
|
+
return null;
|
|
6808
|
+
}
|
|
6809
|
+
return createChainableTypeChecker(validate);
|
|
6810
|
+
}
|
|
6811
|
+
|
|
6812
|
+
function createElementTypeChecker() {
|
|
6813
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
6814
|
+
var propValue = props[propName];
|
|
6815
|
+
if (!isValidElement(propValue)) {
|
|
6816
|
+
var propType = getPropType(propValue);
|
|
6817
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
|
|
6818
|
+
}
|
|
6819
|
+
return null;
|
|
6820
|
+
}
|
|
6821
|
+
return createChainableTypeChecker(validate);
|
|
6822
|
+
}
|
|
6823
|
+
|
|
6824
|
+
function createInstanceTypeChecker(expectedClass) {
|
|
6825
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
6826
|
+
if (!(props[propName] instanceof expectedClass)) {
|
|
6827
|
+
var expectedClassName = expectedClass.name || ANONYMOUS;
|
|
6828
|
+
var actualClassName = getClassName(props[propName]);
|
|
6829
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
|
|
6830
|
+
}
|
|
6831
|
+
return null;
|
|
6832
|
+
}
|
|
6833
|
+
return createChainableTypeChecker(validate);
|
|
6834
|
+
}
|
|
6835
|
+
|
|
6836
|
+
function createEnumTypeChecker(expectedValues) {
|
|
6837
|
+
if (!Array.isArray(expectedValues)) {
|
|
6838
|
+
return emptyFunction.thatReturnsNull;
|
|
6839
|
+
}
|
|
6840
|
+
|
|
6841
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
6842
|
+
var propValue = props[propName];
|
|
6843
|
+
for (var i = 0; i < expectedValues.length; i++) {
|
|
6844
|
+
if (is(propValue, expectedValues[i])) {
|
|
6845
|
+
return null;
|
|
6846
|
+
}
|
|
6847
|
+
}
|
|
6848
|
+
|
|
6849
|
+
var valuesString = JSON.stringify(expectedValues);
|
|
6850
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
|
|
6851
|
+
}
|
|
6852
|
+
return createChainableTypeChecker(validate);
|
|
6853
|
+
}
|
|
6854
|
+
|
|
6855
|
+
function createObjectOfTypeChecker(typeChecker) {
|
|
6856
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
6857
|
+
if (typeof typeChecker !== 'function') {
|
|
6858
|
+
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
|
|
6859
|
+
}
|
|
6860
|
+
var propValue = props[propName];
|
|
6861
|
+
var propType = getPropType(propValue);
|
|
6862
|
+
if (propType !== 'object') {
|
|
6863
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
|
|
6864
|
+
}
|
|
6865
|
+
for (var key in propValue) {
|
|
6866
|
+
if (propValue.hasOwnProperty(key)) {
|
|
6867
|
+
var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
|
|
6868
|
+
if (error instanceof Error) {
|
|
6869
|
+
return error;
|
|
6870
|
+
}
|
|
6871
|
+
}
|
|
6872
|
+
}
|
|
6873
|
+
return null;
|
|
6874
|
+
}
|
|
6875
|
+
return createChainableTypeChecker(validate);
|
|
6876
|
+
}
|
|
6877
|
+
|
|
6878
|
+
function createUnionTypeChecker(arrayOfTypeCheckers) {
|
|
6879
|
+
if (!Array.isArray(arrayOfTypeCheckers)) {
|
|
6880
|
+
return emptyFunction.thatReturnsNull;
|
|
6881
|
+
}
|
|
6882
|
+
|
|
6883
|
+
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
|
|
6884
|
+
var checker = arrayOfTypeCheckers[i];
|
|
6885
|
+
if (typeof checker !== 'function') {
|
|
6886
|
+
warning(
|
|
6887
|
+
false,
|
|
6888
|
+
'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +
|
|
6889
|
+
'received %s at index %s.',
|
|
6890
|
+
getPostfixForTypeWarning(checker),
|
|
6891
|
+
i
|
|
6892
|
+
);
|
|
6893
|
+
return emptyFunction.thatReturnsNull;
|
|
6894
|
+
}
|
|
6895
|
+
}
|
|
6896
|
+
|
|
6897
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
6898
|
+
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
|
|
6899
|
+
var checker = arrayOfTypeCheckers[i];
|
|
6900
|
+
if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
|
|
6901
|
+
return null;
|
|
6902
|
+
}
|
|
6903
|
+
}
|
|
6904
|
+
|
|
6905
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
|
|
6906
|
+
}
|
|
6907
|
+
return createChainableTypeChecker(validate);
|
|
6908
|
+
}
|
|
6909
|
+
|
|
6910
|
+
function createNodeChecker() {
|
|
6911
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
6912
|
+
if (!isNode(props[propName])) {
|
|
6913
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
|
|
6914
|
+
}
|
|
6915
|
+
return null;
|
|
6916
|
+
}
|
|
6917
|
+
return createChainableTypeChecker(validate);
|
|
6918
|
+
}
|
|
6919
|
+
|
|
6920
|
+
function createShapeTypeChecker(shapeTypes) {
|
|
6921
|
+
function validate(props, propName, componentName, location, propFullName) {
|
|
6922
|
+
var propValue = props[propName];
|
|
6923
|
+
var propType = getPropType(propValue);
|
|
6924
|
+
if (propType !== 'object') {
|
|
6925
|
+
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
|
|
6926
|
+
}
|
|
6927
|
+
for (var key in shapeTypes) {
|
|
6928
|
+
var checker = shapeTypes[key];
|
|
6929
|
+
if (!checker) {
|
|
6930
|
+
continue;
|
|
6931
|
+
}
|
|
6932
|
+
var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
|
|
6933
|
+
if (error) {
|
|
6934
|
+
return error;
|
|
6935
|
+
}
|
|
6936
|
+
}
|
|
6937
|
+
return null;
|
|
6938
|
+
}
|
|
6939
|
+
return createChainableTypeChecker(validate);
|
|
6940
|
+
}
|
|
6941
|
+
|
|
6942
|
+
function isNode(propValue) {
|
|
6943
|
+
switch (typeof propValue) {
|
|
6944
|
+
case 'number':
|
|
6945
|
+
case 'string':
|
|
6946
|
+
case 'undefined':
|
|
6947
|
+
return true;
|
|
6948
|
+
case 'boolean':
|
|
6949
|
+
return !propValue;
|
|
6950
|
+
case 'object':
|
|
6951
|
+
if (Array.isArray(propValue)) {
|
|
6952
|
+
return propValue.every(isNode);
|
|
6953
|
+
}
|
|
6954
|
+
if (propValue === null || isValidElement(propValue)) {
|
|
6955
|
+
return true;
|
|
6956
|
+
}
|
|
6957
|
+
|
|
6958
|
+
var iteratorFn = getIteratorFn(propValue);
|
|
6959
|
+
if (iteratorFn) {
|
|
6960
|
+
var iterator = iteratorFn.call(propValue);
|
|
6961
|
+
var step;
|
|
6962
|
+
if (iteratorFn !== propValue.entries) {
|
|
6963
|
+
while (!(step = iterator.next()).done) {
|
|
6964
|
+
if (!isNode(step.value)) {
|
|
6965
|
+
return false;
|
|
6966
|
+
}
|
|
6967
|
+
}
|
|
6968
|
+
} else {
|
|
6969
|
+
// Iterator will provide entry [k,v] tuples rather than values.
|
|
6970
|
+
while (!(step = iterator.next()).done) {
|
|
6971
|
+
var entry = step.value;
|
|
6972
|
+
if (entry) {
|
|
6973
|
+
if (!isNode(entry[1])) {
|
|
6974
|
+
return false;
|
|
6975
|
+
}
|
|
6976
|
+
}
|
|
6977
|
+
}
|
|
6978
|
+
}
|
|
6979
|
+
} else {
|
|
6980
|
+
return false;
|
|
6981
|
+
}
|
|
6982
|
+
|
|
6983
|
+
return true;
|
|
6984
|
+
default:
|
|
6985
|
+
return false;
|
|
6986
|
+
}
|
|
6987
|
+
}
|
|
6988
|
+
|
|
6989
|
+
function isSymbol(propType, propValue) {
|
|
6990
|
+
// Native Symbol.
|
|
6991
|
+
if (propType === 'symbol') {
|
|
6992
|
+
return true;
|
|
6993
|
+
}
|
|
6994
|
+
|
|
6995
|
+
// 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
|
|
6996
|
+
if (propValue['@@toStringTag'] === 'Symbol') {
|
|
6997
|
+
return true;
|
|
6998
|
+
}
|
|
6999
|
+
|
|
7000
|
+
// Fallback for non-spec compliant Symbols which are polyfilled.
|
|
7001
|
+
if (typeof Symbol === 'function' && propValue instanceof Symbol) {
|
|
7002
|
+
return true;
|
|
7003
|
+
}
|
|
7004
|
+
|
|
7005
|
+
return false;
|
|
7006
|
+
}
|
|
7007
|
+
|
|
7008
|
+
// Equivalent of `typeof` but with special handling for array and regexp.
|
|
7009
|
+
function getPropType(propValue) {
|
|
7010
|
+
var propType = typeof propValue;
|
|
7011
|
+
if (Array.isArray(propValue)) {
|
|
7012
|
+
return 'array';
|
|
7013
|
+
}
|
|
7014
|
+
if (propValue instanceof RegExp) {
|
|
7015
|
+
// Old webkits (at least until Android 4.0) return 'function' rather than
|
|
7016
|
+
// 'object' for typeof a RegExp. We'll normalize this here so that /bla/
|
|
7017
|
+
// passes PropTypes.object.
|
|
7018
|
+
return 'object';
|
|
7019
|
+
}
|
|
7020
|
+
if (isSymbol(propType, propValue)) {
|
|
7021
|
+
return 'symbol';
|
|
7022
|
+
}
|
|
7023
|
+
return propType;
|
|
7024
|
+
}
|
|
7025
|
+
|
|
7026
|
+
// This handles more types than `getPropType`. Only used for error messages.
|
|
7027
|
+
// See `createPrimitiveTypeChecker`.
|
|
7028
|
+
function getPreciseType(propValue) {
|
|
7029
|
+
if (typeof propValue === 'undefined' || propValue === null) {
|
|
7030
|
+
return '' + propValue;
|
|
7031
|
+
}
|
|
7032
|
+
var propType = getPropType(propValue);
|
|
7033
|
+
if (propType === 'object') {
|
|
7034
|
+
if (propValue instanceof Date) {
|
|
7035
|
+
return 'date';
|
|
7036
|
+
} else if (propValue instanceof RegExp) {
|
|
7037
|
+
return 'regexp';
|
|
7038
|
+
}
|
|
7039
|
+
}
|
|
7040
|
+
return propType;
|
|
7041
|
+
}
|
|
7042
|
+
|
|
7043
|
+
// Returns a string that is postfixed to a warning about an invalid type.
|
|
7044
|
+
// For example, "undefined" or "of type array"
|
|
7045
|
+
function getPostfixForTypeWarning(value) {
|
|
7046
|
+
var type = getPreciseType(value);
|
|
7047
|
+
switch (type) {
|
|
7048
|
+
case 'array':
|
|
7049
|
+
case 'object':
|
|
7050
|
+
return 'an ' + type;
|
|
7051
|
+
case 'boolean':
|
|
7052
|
+
case 'date':
|
|
7053
|
+
case 'regexp':
|
|
7054
|
+
return 'a ' + type;
|
|
7055
|
+
default:
|
|
7056
|
+
return type;
|
|
7057
|
+
}
|
|
7058
|
+
}
|
|
7059
|
+
|
|
7060
|
+
// Returns class name of the object, if any.
|
|
7061
|
+
function getClassName(propValue) {
|
|
7062
|
+
if (!propValue.constructor || !propValue.constructor.name) {
|
|
7063
|
+
return ANONYMOUS;
|
|
7064
|
+
}
|
|
7065
|
+
return propValue.constructor.name;
|
|
7066
|
+
}
|
|
7067
|
+
|
|
7068
|
+
ReactPropTypes.checkPropTypes = checkPropTypes;
|
|
7069
|
+
ReactPropTypes.PropTypes = ReactPropTypes;
|
|
7070
|
+
|
|
7071
|
+
return ReactPropTypes;
|
|
7072
|
+
};
|
|
7073
|
+
|
|
7074
|
+
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)));
|
|
7075
|
+
|
|
7076
|
+
/***/ })
|
|
7077
|
+
/******/ ]);
|
|
7078
|
+
});
|
|
7079
|
+
|
|
7080
|
+
} (dist, dist.exports));
|
|
7081
|
+
|
|
7082
|
+
var distExports = dist.exports;
|
|
7083
|
+
|
|
7084
|
+
var SINGULAR = {
|
|
7085
|
+
count: 1
|
|
7086
|
+
};
|
|
7087
|
+
var PLURAL = {
|
|
7088
|
+
count: 2
|
|
7089
|
+
};
|
|
7090
|
+
var MANAGE_MEMBER_PERMISSIONS = ["members.manage_members", "agents.manage_agents"];
|
|
7091
|
+
var DEFAULT_PERMISSION = true;
|
|
7092
|
+
var DEFAULT_PAGE_SIZE = 30;
|
|
7093
|
+
var ADMIN_ROLE_NAME = "Admin";
|
|
7094
|
+
var OWNER_ROLE_NAME = "Owner";
|
|
7095
|
+
var ADMIN_ROLES = [ADMIN_ROLE_NAME, OWNER_ROLE_NAME];
|
|
7096
|
+
|
|
7097
|
+
var queryClient = new reactQuery.QueryClient({
|
|
7098
|
+
queryCache: new reactQuery.QueryCache()
|
|
7099
|
+
});
|
|
7100
|
+
|
|
7101
|
+
var withReactQuery = function withReactQuery(Component) {
|
|
7102
|
+
var QueryWrapper = function QueryWrapper(props) {
|
|
7103
|
+
return /*#__PURE__*/React__default["default"].createElement(reactQuery.QueryClientProvider, {
|
|
7104
|
+
client: queryClient
|
|
7105
|
+
}, /*#__PURE__*/React__default["default"].createElement(Component, props), /*#__PURE__*/React__default["default"].createElement(devtools.ReactQueryDevtools, {
|
|
7106
|
+
initialIsOpen: false,
|
|
7107
|
+
position: "bottom-right"
|
|
7108
|
+
}));
|
|
7109
|
+
};
|
|
7110
|
+
return QueryWrapper;
|
|
7111
|
+
};
|
|
7112
|
+
|
|
7113
|
+
/* eslint-disable @bigbinary/neeto/no-dangling-constants */
|
|
7114
|
+
var BASE_URL = "team_members";
|
|
7115
|
+
|
|
7116
|
+
var fetch$3 = function fetch() {
|
|
7117
|
+
return axios__default["default"].get("".concat(BASE_URL, "/permissions"));
|
|
7118
|
+
};
|
|
7119
|
+
var permissionsApi = {
|
|
7120
|
+
fetch: fetch$3
|
|
7121
|
+
};
|
|
7122
|
+
|
|
7123
|
+
var DEFAULT_STALE_TIME = 300000; // 5 minutes
|
|
7124
|
+
|
|
7125
|
+
var QUERY_KEYS = {
|
|
7126
|
+
PERMISSIONS: "neeto-team-members-permissions",
|
|
7127
|
+
ROLES: "neeto-team-members-roles",
|
|
7128
|
+
GLOBAL_ROLES: "neeto-team-members-global-roles",
|
|
7129
|
+
TEAMS: "neeto-team-members-teams",
|
|
7130
|
+
TEAMS_DEPENDENCIES: "neeto-team-members-teams-dependencies"
|
|
7131
|
+
};
|
|
7132
|
+
|
|
7133
|
+
function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7134
|
+
function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$c(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7135
|
+
var useFetchPermissions = function useFetchPermissions() {
|
|
7136
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7137
|
+
return reactQuery.useQuery(QUERY_KEYS.PERMISSIONS, permissionsApi.fetch, _objectSpread$c({
|
|
7138
|
+
staleTime: DEFAULT_STALE_TIME,
|
|
7139
|
+
select: function select(response) {
|
|
7140
|
+
return response === null || response === void 0 ? void 0 : response.permissions;
|
|
7141
|
+
}
|
|
7142
|
+
}, options));
|
|
7143
|
+
};
|
|
7144
|
+
|
|
7145
|
+
var fetch$2 = function fetch() {
|
|
7146
|
+
return axios__default["default"].get("".concat(BASE_URL, "/global_roles"));
|
|
7147
|
+
};
|
|
7148
|
+
var globalRolesApi = {
|
|
7149
|
+
fetch: fetch$2
|
|
7150
|
+
};
|
|
7151
|
+
|
|
7152
|
+
var fetch$1 = function fetch() {
|
|
7153
|
+
return axios__default["default"].get("".concat(BASE_URL, "/organization_roles"));
|
|
7154
|
+
};
|
|
7155
|
+
var create$1 = function create(payload) {
|
|
7156
|
+
return axios__default["default"].post("".concat(BASE_URL, "/organization_roles"), payload);
|
|
7157
|
+
};
|
|
7158
|
+
var update$1 = function update(id, payload) {
|
|
7159
|
+
return axios__default["default"].patch("".concat(BASE_URL, "/organization_roles/").concat(id), payload);
|
|
7160
|
+
};
|
|
7161
|
+
var destroy = function destroy(id, payload) {
|
|
7162
|
+
return axios__default["default"]["delete"]("".concat(BASE_URL, "/organization_roles/").concat(id), {
|
|
7163
|
+
data: payload
|
|
7164
|
+
});
|
|
7165
|
+
};
|
|
7166
|
+
var bulkUpdate$1 = function bulkUpdate(payload) {
|
|
7167
|
+
return axios__default["default"].patch("".concat(BASE_URL, "/organization_roles/bulk_update"), payload);
|
|
7168
|
+
};
|
|
7169
|
+
var organizationRolesApi = {
|
|
7170
|
+
bulkUpdate: bulkUpdate$1,
|
|
7171
|
+
create: create$1,
|
|
7172
|
+
destroy: destroy,
|
|
7173
|
+
fetch: fetch$1,
|
|
7174
|
+
update: update$1
|
|
7175
|
+
};
|
|
7176
|
+
|
|
7177
|
+
var _excluded$2 = ["onSuccess"],
|
|
7178
|
+
_excluded2$2 = ["onSuccess"],
|
|
7179
|
+
_excluded3$1 = ["onSuccess"],
|
|
7180
|
+
_excluded4 = ["onSuccess"];
|
|
7181
|
+
function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
7182
|
+
function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$b(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7183
|
+
var useFetchRoles = function useFetchRoles() {
|
|
7184
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7185
|
+
return reactQuery.useQuery(QUERY_KEYS.ROLES, organizationRolesApi.fetch, _objectSpread$b({
|
|
7186
|
+
staleTime: DEFAULT_STALE_TIME,
|
|
7187
|
+
select: function select(response) {
|
|
7188
|
+
return response === null || response === void 0 ? void 0 : response.organizationRoles;
|
|
7189
|
+
}
|
|
7190
|
+
}, options));
|
|
7191
|
+
};
|
|
7192
|
+
var useFetchGlobalRoles = function useFetchGlobalRoles() {
|
|
7193
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7194
|
+
return reactQuery.useQuery(QUERY_KEYS.GLOBAL_ROLES, globalRolesApi.fetch, _objectSpread$b({
|
|
7195
|
+
staleTime: DEFAULT_STALE_TIME
|
|
7196
|
+
}, options));
|
|
7197
|
+
};
|
|
7198
|
+
var useCreateRole = function useCreateRole(_ref) {
|
|
7199
|
+
var _onSuccess = _ref.onSuccess,
|
|
7200
|
+
options = _objectWithoutProperties(_ref, _excluded$2);
|
|
7201
|
+
return reactQuery.useMutation(organizationRolesApi.create, _objectSpread$b({
|
|
7202
|
+
onSuccess: function onSuccess(response) {
|
|
7203
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
7204
|
+
queryClient.setQueriesData(QUERY_KEYS.ROLES, function (cachedData) {
|
|
7205
|
+
return ramda.modifyPath(["organizationRoles"], ramda.prepend(response.organizationRole), cachedData);
|
|
7206
|
+
});
|
|
7207
|
+
_onSuccess === null || _onSuccess === void 0 ? void 0 : _onSuccess();
|
|
7208
|
+
}
|
|
7209
|
+
}, options));
|
|
7210
|
+
};
|
|
7211
|
+
var useUpdateRole = function useUpdateRole(_ref2) {
|
|
7212
|
+
var _onSuccess2 = _ref2.onSuccess,
|
|
7213
|
+
options = _objectWithoutProperties(_ref2, _excluded2$2);
|
|
7214
|
+
return reactQuery.useMutation(function (_ref3) {
|
|
7215
|
+
var id = _ref3.id,
|
|
7216
|
+
payload = _ref3.payload;
|
|
7217
|
+
return organizationRolesApi.update(id, payload);
|
|
7218
|
+
}, _objectSpread$b({
|
|
7219
|
+
onSuccess: function onSuccess(response) {
|
|
7220
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
|
|
7221
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
7222
|
+
queryClient.setQueriesData(QUERY_KEYS.ROLES, function (cachedData) {
|
|
7223
|
+
return ramda.assocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.organizationRole.id), cachedData.organizationRoles)], response.organizationRole, cachedData);
|
|
7224
|
+
});
|
|
7225
|
+
_onSuccess2 === null || _onSuccess2 === void 0 ? void 0 : _onSuccess2();
|
|
7226
|
+
}
|
|
7227
|
+
}, options));
|
|
7228
|
+
};
|
|
7229
|
+
var useDestroyRole = function useDestroyRole(_ref4) {
|
|
7230
|
+
var _ref4$onSuccess = _ref4.onSuccess,
|
|
7231
|
+
_onSuccess3 = _ref4$onSuccess === void 0 ? pure.noop : _ref4$onSuccess,
|
|
7232
|
+
options = _objectWithoutProperties(_ref4, _excluded3$1);
|
|
7233
|
+
return reactQuery.useMutation(function (_ref5) {
|
|
7234
|
+
var id = _ref5.id,
|
|
7235
|
+
payload = _ref5.payload;
|
|
7236
|
+
return organizationRolesApi.destroy(id, payload);
|
|
7237
|
+
}, _objectSpread$b({
|
|
7238
|
+
onSuccess: function onSuccess(response) {
|
|
7239
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
|
|
7240
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
7241
|
+
queryClient.setQueriesData(QUERY_KEYS.ROLES, function (cachedData) {
|
|
7242
|
+
return ramda.dissocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.id), cachedData.organizationRoles)], cachedData);
|
|
7243
|
+
});
|
|
7244
|
+
_onSuccess3 === null || _onSuccess3 === void 0 ? void 0 : _onSuccess3();
|
|
7245
|
+
}
|
|
7246
|
+
}, options));
|
|
7247
|
+
};
|
|
7248
|
+
var useBulkUpdateRoles = function useBulkUpdateRoles(_ref6) {
|
|
7249
|
+
var _onSuccess4 = _ref6.onSuccess,
|
|
7250
|
+
options = _objectWithoutProperties(_ref6, _excluded4);
|
|
7251
|
+
return reactQuery.useMutation(organizationRolesApi.bulkUpdate, _objectSpread$b({
|
|
7252
|
+
onSuccess: function onSuccess() {
|
|
7253
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
|
|
7254
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
7255
|
+
queryClient.invalidateQueries(QUERY_KEYS.ROLES);
|
|
7256
|
+
_onSuccess4 === null || _onSuccess4 === void 0 ? void 0 : _onSuccess4();
|
|
7257
|
+
}
|
|
7258
|
+
}, options));
|
|
7259
|
+
};
|
|
7260
|
+
|
|
7261
|
+
var renderSearchProps = function renderSearchProps(searchString, setSearchString) {
|
|
7262
|
+
return {
|
|
7263
|
+
"data-cy": "ntm-search-roles-input",
|
|
7264
|
+
onChange: function onChange(_ref) {
|
|
7265
|
+
var value = _ref.target.value;
|
|
7266
|
+
return setSearchString(value);
|
|
7267
|
+
},
|
|
7268
|
+
placeholder: instance.t("common.search_", {
|
|
7269
|
+
what: instance.t("common.role", PLURAL).toLocaleLowerCase()
|
|
7270
|
+
}),
|
|
7271
|
+
value: searchString
|
|
7272
|
+
};
|
|
7273
|
+
};
|
|
7274
|
+
var renderBreadcrumbs = function renderBreadcrumbs(breadcrumbs) {
|
|
7275
|
+
return breadcrumbs !== null && breadcrumbs !== void 0 ? breadcrumbs : [{
|
|
7276
|
+
text: instance.t("metaNames.member", PLURAL),
|
|
7277
|
+
link: "/members"
|
|
7278
|
+
}];
|
|
7279
|
+
};
|
|
7280
|
+
|
|
7281
|
+
var AddRoleButton = function AddRoleButton(_ref) {
|
|
7282
|
+
var _permissions$create, _permissions$create2;
|
|
7283
|
+
var onClick = _ref.onClick,
|
|
7284
|
+
permissions = _ref.permissions;
|
|
7285
|
+
var _useTranslation = useTranslation(),
|
|
7286
|
+
t = _useTranslation.t;
|
|
7287
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
7288
|
+
content: t("tooltips.noPermissionToAddRole"),
|
|
7289
|
+
disabled: (_permissions$create = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create !== void 0 ? _permissions$create : hasPermission(MANAGE_MEMBER_PERMISSIONS),
|
|
7290
|
+
position: "bottom"
|
|
7291
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
7292
|
+
"data-cy": "ntm-add-role-button",
|
|
7293
|
+
disabled: !((_permissions$create2 = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create2 !== void 0 ? _permissions$create2 : hasPermission(MANAGE_MEMBER_PERMISSIONS)),
|
|
7294
|
+
label: t("common.addNew_", {
|
|
7295
|
+
what: t("common.role", SINGULAR).toLocaleLowerCase()
|
|
7296
|
+
}),
|
|
7297
|
+
onClick: onClick
|
|
7298
|
+
})));
|
|
7299
|
+
};
|
|
7300
|
+
|
|
7301
|
+
var Header$1 = function Header(_ref) {
|
|
7302
|
+
var _config$permissions$u, _config$permissions, _config$header;
|
|
7303
|
+
var config = _ref.config,
|
|
7304
|
+
handleReset = _ref.handleReset,
|
|
7305
|
+
handleSubmit = _ref.handleSubmit,
|
|
7306
|
+
isDirty = _ref.isDirty,
|
|
7307
|
+
searchString = _ref.searchString,
|
|
7308
|
+
setSearchString = _ref.setSearchString,
|
|
7309
|
+
setIsNewRolePaneOpen = _ref.setIsNewRolePaneOpen;
|
|
7310
|
+
var _useTranslation = useTranslation(),
|
|
5912
7311
|
t = _useTranslation.t;
|
|
5913
7312
|
var hasUpdateRolePermission = (_config$permissions$u = config === null || config === void 0 ? void 0 : (_config$permissions = config.permissions) === null || _config$permissions === void 0 ? void 0 : _config$permissions.update) !== null && _config$permissions$u !== void 0 ? _config$permissions$u : hasPermission(MANAGE_MEMBER_PERMISSIONS);
|
|
5914
7313
|
return /*#__PURE__*/React__default["default"].createElement(NeetoHeader__default["default"], {
|
|
@@ -5952,7 +7351,7 @@ var Header$1 = function Header(_ref) {
|
|
|
5952
7351
|
};
|
|
5953
7352
|
|
|
5954
7353
|
function _arrayWithoutHoles(arr) {
|
|
5955
|
-
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
7354
|
+
if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
|
|
5956
7355
|
}
|
|
5957
7356
|
|
|
5958
7357
|
function _nonIterableSpread() {
|
|
@@ -5960,7 +7359,7 @@ function _nonIterableSpread() {
|
|
|
5960
7359
|
}
|
|
5961
7360
|
|
|
5962
7361
|
function _toConsumableArray(arr) {
|
|
5963
|
-
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
7362
|
+
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
|
|
5964
7363
|
}
|
|
5965
7364
|
|
|
5966
7365
|
var transformObjectToDotNotation = function transformObjectToDotNotation(object) {
|
|
@@ -6014,13 +7413,19 @@ var ScrollToErrorField = function ScrollToErrorField(_ref) {
|
|
|
6014
7413
|
var ROLE_NAME_MAX_LENGTH = 40;
|
|
6015
7414
|
var ROLE_DESCRIPTION_MAX_LENGTH = 255;
|
|
6016
7415
|
var ADD_ROLE_FORM_VALIDATION_SCHEMA = yup.object({
|
|
6017
|
-
name: yup.string().trim().max(ROLE_NAME_MAX_LENGTH,
|
|
7416
|
+
name: yup.string().trim().max(ROLE_NAME_MAX_LENGTH,
|
|
7417
|
+
// @ts-ignore
|
|
7418
|
+
instance.t("validations.limitExceeded", {
|
|
6018
7419
|
what: instance.t("common.name").toLocaleLowerCase(),
|
|
6019
7420
|
limit: ROLE_NAME_MAX_LENGTH
|
|
6020
|
-
}))
|
|
6021
|
-
|
|
7421
|
+
}))
|
|
7422
|
+
// @ts-ignore
|
|
7423
|
+
.required(instance.t("validations.enterRoleName")),
|
|
7424
|
+
description: yup.string().trim().max(ROLE_DESCRIPTION_MAX_LENGTH,
|
|
7425
|
+
// @ts-ignore
|
|
7426
|
+
instance.t("validations.limitExceeded", {
|
|
6022
7427
|
what: instance.t("common.description").toLocaleLowerCase(),
|
|
6023
|
-
limit:
|
|
7428
|
+
limit: ROLE_DESCRIPTION_MAX_LENGTH
|
|
6024
7429
|
}))
|
|
6025
7430
|
});
|
|
6026
7431
|
var ADD_ROLE_FORM_INITIAL_VALUES = {
|
|
@@ -6043,6 +7448,25 @@ var sortPermissionsBySequence = function sortPermissionsBySequence() {
|
|
|
6043
7448
|
return first.sequence - second.sequence;
|
|
6044
7449
|
}) : permissions;
|
|
6045
7450
|
};
|
|
7451
|
+
var getPermissionGroups = function getPermissionGroups() {
|
|
7452
|
+
var permissions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
7453
|
+
var sortBySequence = sortPermissionsBySequence(permissions);
|
|
7454
|
+
var groupedPermissions = new Map();
|
|
7455
|
+
sortBySequence.forEach(function (permission) {
|
|
7456
|
+
if (groupedPermissions.has(permission === null || permission === void 0 ? void 0 : permission.category)) {
|
|
7457
|
+
var category = groupedPermissions.get(permission.category);
|
|
7458
|
+
var currentPermissions = category.get("permissions");
|
|
7459
|
+
var _permissions = ramda.append(permission, currentPermissions);
|
|
7460
|
+
category.set("permissions", _permissions);
|
|
7461
|
+
} else {
|
|
7462
|
+
var value = new Map();
|
|
7463
|
+
value.set("permissions", ramda.append(permission, []));
|
|
7464
|
+
value.set("isPermissionVisible", true);
|
|
7465
|
+
groupedPermissions.set(permission === null || permission === void 0 ? void 0 : permission.category, value);
|
|
7466
|
+
}
|
|
7467
|
+
});
|
|
7468
|
+
return groupedPermissions;
|
|
7469
|
+
};
|
|
6046
7470
|
var getModifiedPermissions = function getModifiedPermissions() {
|
|
6047
7471
|
var roles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
6048
7472
|
var modifiedRoles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
@@ -6321,61 +7745,212 @@ var ManageRoles = function ManageRoles(_ref) {
|
|
|
6321
7745
|
}));
|
|
6322
7746
|
};
|
|
6323
7747
|
|
|
6324
|
-
var
|
|
6325
|
-
|
|
6326
|
-
|
|
6327
|
-
|
|
6328
|
-
|
|
6329
|
-
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6334
|
-
|
|
6335
|
-
|
|
6336
|
-
|
|
7748
|
+
var DEFAULT_MANAGE_ROLE_VALUES = {
|
|
7749
|
+
isDelete: false,
|
|
7750
|
+
isEdit: false,
|
|
7751
|
+
selectedRole: {}
|
|
7752
|
+
};
|
|
7753
|
+
|
|
7754
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
7755
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
7756
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
7757
|
+
neetoui.Dropdown.Menu;
|
|
7758
|
+
neetoui.Dropdown.MenuItem;
|
|
7759
|
+
var deepClone = function deepClone(object) {
|
|
7760
|
+
if (!object || true === object) {
|
|
7761
|
+
//this also handles boolean as true and false
|
|
7762
|
+
return object;
|
|
7763
|
+
}
|
|
7764
|
+
var objectType = _typeof$1(object);
|
|
7765
|
+
if ("number" === objectType || "string" === objectType) {
|
|
7766
|
+
// add your immutables here
|
|
7767
|
+
return object;
|
|
7768
|
+
}
|
|
7769
|
+
var result = null;
|
|
7770
|
+
if (Array.isArray(object)) {
|
|
7771
|
+
result = [];
|
|
7772
|
+
} else if (!object.constructor) {
|
|
7773
|
+
result = {};
|
|
7774
|
+
} else {
|
|
7775
|
+
result = new object.constructor();
|
|
7776
|
+
}
|
|
7777
|
+
if (object instanceof Map) {
|
|
7778
|
+
var _iterator = _createForOfIteratorHelper(object.keys()),
|
|
7779
|
+
_step;
|
|
7780
|
+
try {
|
|
7781
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
7782
|
+
var key = _step.value;
|
|
7783
|
+
result.set(key, deepClone(object.get(key)));
|
|
7784
|
+
}
|
|
7785
|
+
} catch (err) {
|
|
7786
|
+
_iterator.e(err);
|
|
7787
|
+
} finally {
|
|
7788
|
+
_iterator.f();
|
|
7789
|
+
}
|
|
7790
|
+
}
|
|
7791
|
+
Object.keys(object).forEach(function (key) {
|
|
7792
|
+
if (Object.prototype.hasOwnProperty.call(object, key)) {
|
|
7793
|
+
result[key] = deepClone(object[key]);
|
|
7794
|
+
}
|
|
7795
|
+
});
|
|
7796
|
+
return result;
|
|
6337
7797
|
};
|
|
6338
|
-
var
|
|
6339
|
-
|
|
7798
|
+
var renderRolesTooltipContent = function renderRolesTooltipContent(roleName) {
|
|
7799
|
+
return Object.is(roleName, "Admin") ? t$2("tooltips.adminMustHaveAccess") : t$2("tooltips.noPermissionToEditRoles");
|
|
7800
|
+
};
|
|
7801
|
+
var removeDuplicates = function removeDuplicates(array) {
|
|
7802
|
+
return _toConsumableArray(new Set(array));
|
|
7803
|
+
};
|
|
7804
|
+
var updatePermissionVisibility = function updatePermissionVisibility(categoryName, permissions) {
|
|
7805
|
+
var category = permissions.get(categoryName);
|
|
7806
|
+
var isPermissionVisible = category.get("isPermissionVisible");
|
|
7807
|
+
category.set("isPermissionVisible", !isPermissionVisible);
|
|
7808
|
+
return new Map(permissions.set(categoryName, category));
|
|
7809
|
+
};
|
|
7810
|
+
var filterPermissionsBySearch = function filterPermissionsBySearch(searchTerm, permissionGroups) {
|
|
7811
|
+
var newValue = deepClone(permissionGroups);
|
|
7812
|
+
newValue.forEach(function (value) {
|
|
7813
|
+
var permissions = value.get("permissions");
|
|
7814
|
+
var filteredPermissions = permissions.filter(function (permission) {
|
|
7815
|
+
var _permission$descripti, _permission$descripti2, _permission$descripti3;
|
|
7816
|
+
return permission === null || permission === void 0 ? void 0 : (_permission$descripti = permission.description) === null || _permission$descripti === void 0 ? void 0 : (_permission$descripti2 = _permission$descripti.toLowerCase()) === null || _permission$descripti2 === void 0 ? void 0 : (_permission$descripti3 = _permission$descripti2.trim()) === null || _permission$descripti3 === void 0 ? void 0 : _permission$descripti3.includes(searchTerm.toLowerCase().trim());
|
|
7817
|
+
});
|
|
7818
|
+
value.set("permissions", filteredPermissions);
|
|
7819
|
+
});
|
|
7820
|
+
return newValue;
|
|
7821
|
+
};
|
|
7822
|
+
|
|
7823
|
+
var Row = function Row(_ref) {
|
|
7824
|
+
var _ref$allPermissionsOf = _ref.allPermissionsOfCategory,
|
|
7825
|
+
allPermissionsOfCategory = _ref$allPermissionsOf === void 0 ? null : _ref$allPermissionsOf,
|
|
7826
|
+
config = _ref.config,
|
|
7827
|
+
_ref$permission = _ref.permission,
|
|
7828
|
+
permission = _ref$permission === void 0 ? null : _ref$permission,
|
|
7829
|
+
roles = _ref.roles,
|
|
7830
|
+
setModifiedRoles = _ref.setModifiedRoles;
|
|
7831
|
+
var permissions = (allPermissionsOfCategory === null || allPermissionsOfCategory === void 0 ? void 0 : allPermissionsOfCategory.get("permissions")) || [];
|
|
7832
|
+
var allPermissionIdsOfCategory = ramda.map(ramda.prop("id"), permissions);
|
|
7833
|
+
var handleSubmit = function handleSubmit(role, checked) {
|
|
7834
|
+
var permissionIds = pure.isNotEmpty(allPermissionIdsOfCategory) ? allPermissionIdsOfCategory : [permission === null || permission === void 0 ? void 0 : permission.id];
|
|
7835
|
+
var modifiedRole = ramda.modify("permissionIds", function () {
|
|
7836
|
+
return checked ? removeDuplicates([].concat(_toConsumableArray(role.permissionIds), _toConsumableArray(permissionIds))) : role.permissionIds.filter(function (id) {
|
|
7837
|
+
return !permissionIds.includes(id);
|
|
7838
|
+
});
|
|
7839
|
+
}, role);
|
|
7840
|
+
setModifiedRoles(pure.replaceById(role.id, modifiedRole));
|
|
7841
|
+
};
|
|
7842
|
+
var isCheckboxChecked = function isCheckboxChecked(role) {
|
|
7843
|
+
return !allPermissionsOfCategory ? ramda.includes(permission === null || permission === void 0 ? void 0 : permission.id, role.permissionIds) : allPermissionIdsOfCategory.every(ramda.includes(ramda.__, role.permissionIds));
|
|
7844
|
+
};
|
|
7845
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7846
|
+
className: classnames__default["default"]("ntm-roles-table__row", {
|
|
7847
|
+
"ntm-roles-table__row--highlighted": !!allPermissionsOfCategory
|
|
7848
|
+
})
|
|
7849
|
+
}, roles.map(function (role) {
|
|
7850
|
+
var _config$permissions$u, _config$permissions;
|
|
7851
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7852
|
+
className: "ntm-roles-table__cell",
|
|
7853
|
+
key: role.id
|
|
7854
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
7855
|
+
content: renderRolesTooltipContent(role.name),
|
|
7856
|
+
position: "top",
|
|
7857
|
+
disabled: ((_config$permissions$u = config === null || config === void 0 ? void 0 : (_config$permissions = config.permissions) === null || _config$permissions === void 0 ? void 0 : _config$permissions.update) !== null && _config$permissions$u !== void 0 ? _config$permissions$u : DEFAULT_PERMISSION) && !ramda.identical(role.name, "Admin")
|
|
7858
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7859
|
+
className: "ntm-roles-table-cell__checkbox-wrapper"
|
|
7860
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, {
|
|
7861
|
+
disabled: true,
|
|
7862
|
+
checked: isCheckboxChecked(role),
|
|
7863
|
+
className: "ntm-roles-table-cell__checkbox",
|
|
7864
|
+
"data-cy": "ntm-roles-table-permission-checkbox",
|
|
7865
|
+
onChange: function onChange(_ref2) {
|
|
7866
|
+
var checked = _ref2.target.checked;
|
|
7867
|
+
return handleSubmit(role, checked);
|
|
7868
|
+
}
|
|
7869
|
+
}))));
|
|
7870
|
+
}));
|
|
6340
7871
|
};
|
|
6341
7872
|
|
|
6342
7873
|
var Menu$4 = neetoui.Dropdown.Menu,
|
|
6343
7874
|
MenuItem$3 = neetoui.Dropdown.MenuItem;
|
|
6344
|
-
var
|
|
6345
|
-
var
|
|
6346
|
-
|
|
6347
|
-
|
|
6348
|
-
|
|
6349
|
-
|
|
6350
|
-
|
|
6351
|
-
|
|
6352
|
-
|
|
6353
|
-
|
|
6354
|
-
|
|
6355
|
-
|
|
6356
|
-
|
|
6357
|
-
|
|
6358
|
-
|
|
6359
|
-
|
|
6360
|
-
|
|
6361
|
-
|
|
6362
|
-
|
|
6363
|
-
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
|
|
6367
|
-
|
|
6368
|
-
|
|
6369
|
-
|
|
6370
|
-
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6375
|
-
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
7875
|
+
var TableHeader = function TableHeader(_ref) {
|
|
7876
|
+
var config = _ref.config,
|
|
7877
|
+
roles = _ref.roles,
|
|
7878
|
+
setManageRole = _ref.setManageRole,
|
|
7879
|
+
setIsScrollPresent = _ref.setIsScrollPresent;
|
|
7880
|
+
var _useTranslation = useTranslation(),
|
|
7881
|
+
t = _useTranslation.t;
|
|
7882
|
+
var scrollSyncElement = React.useRef(null);
|
|
7883
|
+
var getOverflowStatus = React.useCallback(function () {
|
|
7884
|
+
if (scrollSyncElement.current) {
|
|
7885
|
+
var headerElement = scrollSyncElement.current.node;
|
|
7886
|
+
var isScrollBarPresent = isOverflown(headerElement);
|
|
7887
|
+
setIsScrollPresent(isScrollBarPresent);
|
|
7888
|
+
}
|
|
7889
|
+
}, [setIsScrollPresent]);
|
|
7890
|
+
React.useEffect(function () {
|
|
7891
|
+
return getOverflowStatus();
|
|
7892
|
+
}, [getOverflowStatus, scrollSyncElement, roles]);
|
|
7893
|
+
return /*#__PURE__*/React__default["default"].createElement(distExports.ScrollSyncPane, {
|
|
7894
|
+
group: "horizontal",
|
|
7895
|
+
ref: scrollSyncElement
|
|
7896
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7897
|
+
className: "ntm-roles-table__header"
|
|
7898
|
+
}, roles === null || roles === void 0 ? void 0 : roles.map(function (role, index) {
|
|
7899
|
+
var _config$permissions$u, _config$permissions, _config$permissions$u2, _config$permissions2, _config$permissions$d, _config$permissions3, _config$permissions$d2, _config$permissions4;
|
|
7900
|
+
var isSystemRole = ramda.identical("system", role.kind);
|
|
7901
|
+
var isAdminRole = ADMIN_ROLES.includes(role.name) && isSystemRole;
|
|
7902
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7903
|
+
className: "ntm-roles-table__cell",
|
|
7904
|
+
key: "ntm-roles-".concat(index)
|
|
7905
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7906
|
+
className: "ntm-roles-table-header-cell__container"
|
|
7907
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
7908
|
+
className: "ntm-roles-table-header__role-name",
|
|
7909
|
+
"data-cy": "ntm-roles-table-header-role-title",
|
|
7910
|
+
lineHeight: "normal",
|
|
7911
|
+
style: "h4",
|
|
7912
|
+
weight: "semibold"
|
|
7913
|
+
}, role.name), !isAdminRole && /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
|
|
7914
|
+
autoWidth: true,
|
|
7915
|
+
buttonStyle: "text",
|
|
7916
|
+
icon: neetoIcons.MenuHorizontal,
|
|
7917
|
+
buttonProps: {
|
|
7918
|
+
className: "ntm-roles-table-header__dropdown",
|
|
7919
|
+
"data-cy": "ntm-roles-table-header-role-dropdown-button"
|
|
7920
|
+
}
|
|
7921
|
+
}, /*#__PURE__*/React__default["default"].createElement(Menu$4, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
7922
|
+
content: t("tooltips.noPermissionToEditRoles"),
|
|
7923
|
+
position: "left",
|
|
7924
|
+
disabled: (_config$permissions$u = config === null || config === void 0 ? void 0 : (_config$permissions = config.permissions) === null || _config$permissions === void 0 ? void 0 : _config$permissions.update) !== null && _config$permissions$u !== void 0 ? _config$permissions$u : DEFAULT_PERMISSION
|
|
7925
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(MenuItem$3.Button, {
|
|
7926
|
+
className: "ntm-dropdown__button",
|
|
7927
|
+
"data-cy": "ntm-roles-table-edit-role-button",
|
|
7928
|
+
size: "small",
|
|
7929
|
+
style: "text",
|
|
7930
|
+
disabled: !((_config$permissions$u2 = config === null || config === void 0 ? void 0 : (_config$permissions2 = config.permissions) === null || _config$permissions2 === void 0 ? void 0 : _config$permissions2.update) !== null && _config$permissions$u2 !== void 0 ? _config$permissions$u2 : DEFAULT_PERMISSION),
|
|
7931
|
+
onClick: function onClick() {
|
|
7932
|
+
return setManageRole({
|
|
7933
|
+
isEdit: true,
|
|
7934
|
+
selectedRole: role
|
|
7935
|
+
});
|
|
7936
|
+
}
|
|
7937
|
+
}, t("common.edit")))), !isSystemRole && /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
7938
|
+
content: t("tooltips.noPermissionToRemoveRoles"),
|
|
7939
|
+
position: "left",
|
|
7940
|
+
disabled: (_config$permissions$d = config === null || config === void 0 ? void 0 : (_config$permissions3 = config.permissions) === null || _config$permissions3 === void 0 ? void 0 : _config$permissions3["delete"]) !== null && _config$permissions$d !== void 0 ? _config$permissions$d : DEFAULT_PERMISSION
|
|
7941
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(MenuItem$3.Button, {
|
|
7942
|
+
className: "ntm-dropdown__button",
|
|
7943
|
+
"data-cy": "ntm-roles-table-delete-role-button",
|
|
7944
|
+
size: "small",
|
|
7945
|
+
disabled: !((_config$permissions$d2 = config === null || config === void 0 ? void 0 : (_config$permissions4 = config.permissions) === null || _config$permissions4 === void 0 ? void 0 : _config$permissions4["delete"]) !== null && _config$permissions$d2 !== void 0 ? _config$permissions$d2 : DEFAULT_PERMISSION),
|
|
7946
|
+
onClick: function onClick() {
|
|
7947
|
+
return setManageRole({
|
|
7948
|
+
isDelete: true,
|
|
7949
|
+
selectedRole: role
|
|
7950
|
+
});
|
|
7951
|
+
}
|
|
7952
|
+
}, t("common.delete"))))))));
|
|
7953
|
+
})));
|
|
6379
7954
|
};
|
|
6380
7955
|
|
|
6381
7956
|
var Delete = function Delete(_ref) {
|
|
@@ -6423,38 +7998,233 @@ var Delete = function Delete(_ref) {
|
|
|
6423
7998
|
});
|
|
6424
7999
|
};
|
|
6425
8000
|
|
|
8001
|
+
var Columns = function Columns(_ref) {
|
|
8002
|
+
var config = _ref.config,
|
|
8003
|
+
filteredGroupPermissions = _ref.filteredGroupPermissions,
|
|
8004
|
+
filteredRoles = _ref.filteredRoles,
|
|
8005
|
+
permissions = _ref.permissions,
|
|
8006
|
+
roles = _ref.roles,
|
|
8007
|
+
setModifiedRoles = _ref.setModifiedRoles,
|
|
8008
|
+
setIsScrollPresent = _ref.setIsScrollPresent;
|
|
8009
|
+
var _useState = React.useState(DEFAULT_MANAGE_ROLE_VALUES),
|
|
8010
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
8011
|
+
manageRole = _useState2[0],
|
|
8012
|
+
setManageRole = _useState2[1];
|
|
8013
|
+
var categories = Array.from(filteredGroupPermissions === null || filteredGroupPermissions === void 0 ? void 0 : filteredGroupPermissions.keys());
|
|
8014
|
+
var onClose = function onClose() {
|
|
8015
|
+
return setManageRole(DEFAULT_MANAGE_ROLE_VALUES);
|
|
8016
|
+
};
|
|
8017
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8018
|
+
className: "ntm-roles-table__columns"
|
|
8019
|
+
}, /*#__PURE__*/React__default["default"].createElement(TableHeader, {
|
|
8020
|
+
config: config,
|
|
8021
|
+
roles: filteredRoles,
|
|
8022
|
+
setIsScrollPresent: setIsScrollPresent,
|
|
8023
|
+
setManageRole: setManageRole
|
|
8024
|
+
}), /*#__PURE__*/React__default["default"].createElement(distExports.ScrollSyncPane, {
|
|
8025
|
+
group: ["horizontal", "vertical"]
|
|
8026
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8027
|
+
className: "ntm-roles-table__rows"
|
|
8028
|
+
}, categories.map(function (category, index) {
|
|
8029
|
+
var groupedPermissions = filteredGroupPermissions.get(category);
|
|
8030
|
+
var isPermissionVisible = groupedPermissions.get("isPermissionVisible");
|
|
8031
|
+
var permissions = groupedPermissions.get("permissions");
|
|
8032
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8033
|
+
key: index
|
|
8034
|
+
}, /*#__PURE__*/React__default["default"].createElement(Row, {
|
|
8035
|
+
allPermissionsOfCategory: groupedPermissions,
|
|
8036
|
+
config: config,
|
|
8037
|
+
roles: filteredRoles,
|
|
8038
|
+
setModifiedRoles: setModifiedRoles
|
|
8039
|
+
}), isPermissionVisible && permissions.map(function (permission) {
|
|
8040
|
+
return /*#__PURE__*/React__default["default"].createElement(Row, {
|
|
8041
|
+
config: config,
|
|
8042
|
+
key: permission.id,
|
|
8043
|
+
permission: permission,
|
|
8044
|
+
roles: filteredRoles,
|
|
8045
|
+
setModifiedRoles: setModifiedRoles
|
|
8046
|
+
});
|
|
8047
|
+
}));
|
|
8048
|
+
}))), /*#__PURE__*/React__default["default"].createElement(ManageRoles, {
|
|
8049
|
+
config: config,
|
|
8050
|
+
isOpen: manageRole.isEdit,
|
|
8051
|
+
permissions: permissions,
|
|
8052
|
+
selectedRole: manageRole.selectedRole,
|
|
8053
|
+
onClose: onClose
|
|
8054
|
+
}), /*#__PURE__*/React__default["default"].createElement(Delete, {
|
|
8055
|
+
isOpen: manageRole.isDelete,
|
|
8056
|
+
roles: roles,
|
|
8057
|
+
selectedRole: manageRole.selectedRole,
|
|
8058
|
+
onClose: onClose
|
|
8059
|
+
}));
|
|
8060
|
+
};
|
|
8061
|
+
|
|
8062
|
+
var ToggleDropdown = function ToggleDropdown(_ref) {
|
|
8063
|
+
var isVisible = _ref.isVisible,
|
|
8064
|
+
onClick = _ref.onClick;
|
|
8065
|
+
return isVisible ? /*#__PURE__*/React__default["default"].createElement(neetoIcons.Up, {
|
|
8066
|
+
className: "ntm-roles-table-sidebar__drop-down-button",
|
|
8067
|
+
"data-cy": "ntm-permission-category-hide-button",
|
|
8068
|
+
size: 16,
|
|
8069
|
+
strokeWidth: 2,
|
|
8070
|
+
onClick: onClick
|
|
8071
|
+
}) : /*#__PURE__*/React__default["default"].createElement(neetoIcons.Down, {
|
|
8072
|
+
className: "ntm-roles-table-sidebar__drop-down-button",
|
|
8073
|
+
"data-cy": "ntm-permission-category-show-button",
|
|
8074
|
+
size: 16,
|
|
8075
|
+
strokeWidth: 2,
|
|
8076
|
+
onClick: onClick
|
|
8077
|
+
});
|
|
8078
|
+
};
|
|
8079
|
+
|
|
8080
|
+
var ROLES_TABLE_CELL_HEIGHT_VARIABLE = "--ntm-roles-table-cell-height";
|
|
8081
|
+
|
|
8082
|
+
var getCurrentTableCellHeight = function getCurrentTableCellHeight() {
|
|
8083
|
+
return parseInt(getComputedStyle(document.documentElement).getPropertyValue(ROLES_TABLE_CELL_HEIGHT_VARIABLE), 10);
|
|
8084
|
+
};
|
|
8085
|
+
var renderDescription = function renderDescription(permissions) {
|
|
8086
|
+
return permissions === null || permissions === void 0 ? void 0 : permissions.map(function (_ref) {
|
|
8087
|
+
var id = _ref.id,
|
|
8088
|
+
description = _ref.description;
|
|
8089
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8090
|
+
className: "ntm-roles-table-sidebar__list-item",
|
|
8091
|
+
key: id
|
|
8092
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
8093
|
+
"data-cy": "ntm-permission-category-description",
|
|
8094
|
+
lineHeight: "normal",
|
|
8095
|
+
style: "body2"
|
|
8096
|
+
}, description));
|
|
8097
|
+
});
|
|
8098
|
+
};
|
|
8099
|
+
var getSearchWrapperStyle = function getSearchWrapperStyle() {
|
|
8100
|
+
var scrollBarWidth = getScrollBarWidth();
|
|
8101
|
+
document.documentElement.style.setProperty("--ntm-roles-table-default-scroll", "".concat(scrollBarWidth, "px"));
|
|
8102
|
+
return {
|
|
8103
|
+
marginBottom: "".concat(scrollBarWidth, "px")
|
|
8104
|
+
};
|
|
8105
|
+
};
|
|
8106
|
+
var assignRolesTableCellHeight = function assignRolesTableCellHeight() {
|
|
8107
|
+
var sidebarItems = _toConsumableArray(document.getElementsByClassName("ntm-roles-table-sidebar__list-item"));
|
|
8108
|
+
var clientHeights = ramda.pluck("clientHeight", sidebarItems);
|
|
8109
|
+
var maxClientHeight = Math.max.apply(Math, _toConsumableArray(clientHeights));
|
|
8110
|
+
var currentTableCellHeight = getCurrentTableCellHeight();
|
|
8111
|
+
if (maxClientHeight > currentTableCellHeight) {
|
|
8112
|
+
document.documentElement.style.setProperty(ROLES_TABLE_CELL_HEIGHT_VARIABLE, "".concat(maxClientHeight, "px"));
|
|
8113
|
+
}
|
|
8114
|
+
};
|
|
8115
|
+
|
|
8116
|
+
var Sidebar = function Sidebar(_ref) {
|
|
8117
|
+
var searchTerm = _ref.searchTerm,
|
|
8118
|
+
setSearchTerm = _ref.setSearchTerm,
|
|
8119
|
+
filteredGroupPermissions = _ref.filteredGroupPermissions,
|
|
8120
|
+
toggleDropdown = _ref.toggleDropdown,
|
|
8121
|
+
isScrollPresent = _ref.isScrollPresent;
|
|
8122
|
+
var _useTranslation = useTranslation(),
|
|
8123
|
+
t = _useTranslation.t;
|
|
8124
|
+
var categories = Array.from(filteredGroupPermissions.keys());
|
|
8125
|
+
var searchWrapperStyle = isScrollPresent ? getSearchWrapperStyle() : {};
|
|
8126
|
+
React.useLayoutEffect(function () {
|
|
8127
|
+
assignRolesTableCellHeight();
|
|
8128
|
+
}, []);
|
|
8129
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8130
|
+
className: "ntm-roles-table__sidebar"
|
|
8131
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8132
|
+
className: "ntm-roles-table-sidebar__search",
|
|
8133
|
+
style: searchWrapperStyle
|
|
8134
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
|
|
8135
|
+
"data-cy": "ntm-search-permissions-input",
|
|
8136
|
+
prefix: /*#__PURE__*/React__default["default"].createElement(neetoIcons.Search, null),
|
|
8137
|
+
type: "search",
|
|
8138
|
+
value: searchTerm,
|
|
8139
|
+
placeholder: t("common.search_", {
|
|
8140
|
+
what: t("common.permission", PLURAL).toLocaleLowerCase()
|
|
8141
|
+
}),
|
|
8142
|
+
onChange: function onChange(_ref2) {
|
|
8143
|
+
var value = _ref2.target.value;
|
|
8144
|
+
return setSearchTerm(value);
|
|
8145
|
+
}
|
|
8146
|
+
})), /*#__PURE__*/React__default["default"].createElement(distExports.ScrollSyncPane, {
|
|
8147
|
+
group: "vertical"
|
|
8148
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8149
|
+
className: "ntm-roles-table-sidebar__list"
|
|
8150
|
+
}, categories.map(function (category, index) {
|
|
8151
|
+
var groupedPermissions = filteredGroupPermissions.get(category);
|
|
8152
|
+
var isPermissionVisible = groupedPermissions.get("isPermissionVisible");
|
|
8153
|
+
var permissions = groupedPermissions.get("permissions");
|
|
8154
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8155
|
+
key: index
|
|
8156
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8157
|
+
className: "ntm-roles-table-sidebar__list-item ntm-roles-table-sidebar__list-item--highlighted cursor-pointer",
|
|
8158
|
+
onClick: function onClick() {
|
|
8159
|
+
return toggleDropdown(category);
|
|
8160
|
+
}
|
|
8161
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
8162
|
+
"data-cy": "ntm-permission-category-title",
|
|
8163
|
+
lineHeight: "normal",
|
|
8164
|
+
style: "h4",
|
|
8165
|
+
weight: "semibold"
|
|
8166
|
+
}, category), /*#__PURE__*/React__default["default"].createElement(ToggleDropdown, {
|
|
8167
|
+
isVisible: isPermissionVisible,
|
|
8168
|
+
onClick: function onClick() {
|
|
8169
|
+
return toggleDropdown(category);
|
|
8170
|
+
}
|
|
8171
|
+
})), isPermissionVisible && renderDescription(permissions));
|
|
8172
|
+
}))));
|
|
8173
|
+
};
|
|
8174
|
+
|
|
6426
8175
|
var Table = function Table(_ref) {
|
|
6427
8176
|
var _config$permissions$c, _config$permissions;
|
|
6428
8177
|
var config = _ref.config,
|
|
6429
8178
|
filteredRoles = _ref.filteredRoles,
|
|
6430
8179
|
roles = _ref.roles,
|
|
8180
|
+
permissionGroups = _ref.permissionGroups,
|
|
6431
8181
|
permissions = _ref.permissions,
|
|
8182
|
+
setModifiedRoles = _ref.setModifiedRoles,
|
|
6432
8183
|
setIsNewRolePaneOpen = _ref.setIsNewRolePaneOpen;
|
|
6433
8184
|
var _useTranslation = useTranslation(),
|
|
6434
8185
|
t = _useTranslation.t;
|
|
6435
|
-
var _useState = React.useState(),
|
|
8186
|
+
var _useState = React.useState(""),
|
|
6436
8187
|
_useState2 = _slicedToArray(_useState, 2),
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
var _useState3 = React.useState(
|
|
8188
|
+
searchTerm = _useState2[0],
|
|
8189
|
+
setSearchTerm = _useState2[1];
|
|
8190
|
+
var _useState3 = React.useState(permissionGroups),
|
|
6440
8191
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
6441
|
-
|
|
6442
|
-
|
|
8192
|
+
filteredGroupPermissions = _useState4[0],
|
|
8193
|
+
setFilteredGroupPermissions = _useState4[1];
|
|
6443
8194
|
var _useState5 = React.useState(false),
|
|
6444
8195
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
6445
|
-
|
|
6446
|
-
|
|
6447
|
-
var _useState7 = React.useState(
|
|
8196
|
+
isScrollPresent = _useState6[0],
|
|
8197
|
+
setIsScrollPresent = _useState6[1];
|
|
8198
|
+
var _useState7 = React.useState(),
|
|
6448
8199
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
6449
|
-
|
|
6450
|
-
|
|
6451
|
-
var
|
|
6452
|
-
|
|
6453
|
-
|
|
8200
|
+
selectedRole = _useState8[0],
|
|
8201
|
+
setSelectedRole = _useState8[1];
|
|
8202
|
+
var _useState9 = React.useState(false),
|
|
8203
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
8204
|
+
isDeleteAlertOpen = _useState10[0],
|
|
8205
|
+
setIsDeleteAlertOpen = _useState10[1];
|
|
8206
|
+
var _useState11 = React.useState(false),
|
|
8207
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
8208
|
+
isEditPaneOpen = _useState12[0],
|
|
8209
|
+
setIsEditPaneOpen = _useState12[1];
|
|
6454
8210
|
var isAddRoleDisabled = !((_config$permissions$c = (_config$permissions = config.permissions) === null || _config$permissions === void 0 ? void 0 : _config$permissions.create) !== null && _config$permissions$c !== void 0 ? _config$permissions$c : hasPermission(MANAGE_MEMBER_PERMISSIONS));
|
|
6455
|
-
|
|
6456
|
-
|
|
6457
|
-
|
|
8211
|
+
var toggleDropdown = function toggleDropdown(category) {
|
|
8212
|
+
var permissions = updatePermissionVisibility(category, filteredGroupPermissions);
|
|
8213
|
+
setFilteredGroupPermissions(permissions);
|
|
8214
|
+
};
|
|
8215
|
+
React.useEffect(function () {
|
|
8216
|
+
var newValue = filterPermissionsBySearch(searchTerm, permissionGroups);
|
|
8217
|
+
setFilteredGroupPermissions(newValue);
|
|
8218
|
+
}, [permissionGroups, searchTerm]);
|
|
8219
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8220
|
+
className: "ntm-roles-table__wrapper"
|
|
8221
|
+
}, /*#__PURE__*/React__default["default"].createElement(Sidebar, {
|
|
8222
|
+
filteredGroupPermissions: filteredGroupPermissions,
|
|
8223
|
+
isScrollPresent: isScrollPresent,
|
|
8224
|
+
searchTerm: searchTerm,
|
|
8225
|
+
setSearchTerm: setSearchTerm,
|
|
8226
|
+
toggleDropdown: toggleDropdown
|
|
8227
|
+
}), ramda.isEmpty(filteredRoles) ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
6458
8228
|
className: "ntm-empty-state"
|
|
6459
8229
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, {
|
|
6460
8230
|
primaryButtonProps: {
|
|
@@ -6470,23 +8240,15 @@ var Table = function Table(_ref) {
|
|
|
6470
8240
|
title: t("common.notFound_", {
|
|
6471
8241
|
what: t("common.role", PLURAL).toLocaleLowerCase()
|
|
6472
8242
|
})
|
|
6473
|
-
})) : /*#__PURE__*/React__default["default"].createElement(
|
|
6474
|
-
|
|
6475
|
-
|
|
6476
|
-
|
|
6477
|
-
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6481
|
-
|
|
6482
|
-
setIsEditPaneOpen(true);
|
|
6483
|
-
},
|
|
6484
|
-
onDelete: function onDelete(role) {
|
|
6485
|
-
setSelectedRole(role);
|
|
6486
|
-
setIsDeleteAlertOpen(true);
|
|
6487
|
-
}
|
|
6488
|
-
})
|
|
6489
|
-
}), /*#__PURE__*/React__default["default"].createElement(ManageRoles, {
|
|
8243
|
+
})) : /*#__PURE__*/React__default["default"].createElement(Columns, {
|
|
8244
|
+
config: config,
|
|
8245
|
+
filteredGroupPermissions: filteredGroupPermissions,
|
|
8246
|
+
filteredRoles: filteredRoles,
|
|
8247
|
+
permissions: permissions,
|
|
8248
|
+
roles: roles,
|
|
8249
|
+
setIsScrollPresent: setIsScrollPresent,
|
|
8250
|
+
setModifiedRoles: setModifiedRoles
|
|
8251
|
+
})), /*#__PURE__*/React__default["default"].createElement(ManageRoles, {
|
|
6490
8252
|
config: config,
|
|
6491
8253
|
isOpen: isEditPaneOpen,
|
|
6492
8254
|
permissions: permissions,
|
|
@@ -6509,8 +8271,8 @@ var Table = function Table(_ref) {
|
|
|
6509
8271
|
var Roles = function Roles(_ref) {
|
|
6510
8272
|
var _config$permissions$v, _config$permissions, _config$permissions$v2, _config$permissions2, _config$permissions$u, _config$permissions3;
|
|
6511
8273
|
var config = _ref.config;
|
|
6512
|
-
var _useTranslation = useTranslation()
|
|
6513
|
-
|
|
8274
|
+
var _useTranslation = useTranslation();
|
|
8275
|
+
_useTranslation.t;
|
|
6514
8276
|
var _useState = React.useState(""),
|
|
6515
8277
|
_useState2 = _slicedToArray(_useState, 2),
|
|
6516
8278
|
searchString = _useState2[0],
|
|
@@ -6546,6 +8308,7 @@ var Roles = function Roles(_ref) {
|
|
|
6546
8308
|
setModifiedRoles = _useState8[1];
|
|
6547
8309
|
var isDirty = pure.isPresent(getModifiedPermissions(roles, modifiedRoles));
|
|
6548
8310
|
var permissions = sortPermissionsBySequence(permissionData);
|
|
8311
|
+
var permissionGroups = getPermissionGroups(permissions);
|
|
6549
8312
|
React.useEffect(function () {
|
|
6550
8313
|
setFilteredRoles(ramda.filter(function (_ref2) {
|
|
6551
8314
|
var name = _ref2.name;
|
|
@@ -6568,7 +8331,9 @@ var Roles = function Roles(_ref) {
|
|
|
6568
8331
|
className: "ntm-members-page-loader"
|
|
6569
8332
|
}, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
|
|
6570
8333
|
}
|
|
6571
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(
|
|
8334
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(distExports.ScrollSync, null, /*#__PURE__*/React__default["default"].createElement(Container__default["default"], {
|
|
8335
|
+
isHeaderFixed: true
|
|
8336
|
+
}, /*#__PURE__*/React__default["default"].createElement(Header$1, {
|
|
6572
8337
|
config: config,
|
|
6573
8338
|
handleReset: handleReset,
|
|
6574
8339
|
handleSubmit: handleSubmit,
|
|
@@ -6576,26 +8341,14 @@ var Roles = function Roles(_ref) {
|
|
|
6576
8341
|
searchString: searchString,
|
|
6577
8342
|
setIsNewRolePaneOpen: setIsNewRolePaneOpen,
|
|
6578
8343
|
setSearchString: setSearchString
|
|
6579
|
-
}), /*#__PURE__*/React__default["default"].createElement(SubHeader__default["default"], {
|
|
6580
|
-
leftActionBlock: /*#__PURE__*/React__default["default"].createElement(SubHeader$1.Left, {
|
|
6581
|
-
filteredCount: filteredRoles === null || filteredRoles === void 0 ? void 0 : filteredRoles.length
|
|
6582
|
-
})
|
|
6583
8344
|
}), /*#__PURE__*/React__default["default"].createElement(Table, {
|
|
6584
8345
|
config: config,
|
|
6585
8346
|
filteredRoles: filteredRoles,
|
|
6586
8347
|
permissions: permissions,
|
|
6587
8348
|
roles: roles,
|
|
8349
|
+
permissionGroups: permissionGroups,
|
|
6588
8350
|
setIsNewRolePaneOpen: setIsNewRolePaneOpen,
|
|
6589
8351
|
setModifiedRoles: setModifiedRoles
|
|
6590
|
-
}), (config === null || config === void 0 ? void 0 : config.helpUrl) && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
6591
|
-
className: "ntm-roles-help-url-wrapper"
|
|
6592
|
-
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
6593
|
-
"data-cy": "ntm-roles-permission-more-info-button",
|
|
6594
|
-
href: config.helpUrl,
|
|
6595
|
-
icon: neetoIcons.ExternalLink,
|
|
6596
|
-
label: t("helpers.visitToKnowMoreAboutPermissions"),
|
|
6597
|
-
style: "link",
|
|
6598
|
-
target: "_blank"
|
|
6599
8352
|
}))), /*#__PURE__*/React__default["default"].createElement(ManageRoles, {
|
|
6600
8353
|
config: config,
|
|
6601
8354
|
isOpen: isNewRolePaneOpen,
|
|
@@ -6675,6 +8428,16 @@ var hasSymbols$1 = function hasNativeSymbols() {
|
|
|
6675
8428
|
return hasSymbolSham();
|
|
6676
8429
|
};
|
|
6677
8430
|
|
|
8431
|
+
var test = {
|
|
8432
|
+
foo: {}
|
|
8433
|
+
};
|
|
8434
|
+
|
|
8435
|
+
var $Object = Object;
|
|
8436
|
+
|
|
8437
|
+
var hasProto$1 = function hasProto() {
|
|
8438
|
+
return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);
|
|
8439
|
+
};
|
|
8440
|
+
|
|
6678
8441
|
/* eslint no-invalid-this: 1 */
|
|
6679
8442
|
|
|
6680
8443
|
var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
|
|
@@ -6777,18 +8540,23 @@ var ThrowTypeError = $gOPD
|
|
|
6777
8540
|
: throwTypeError;
|
|
6778
8541
|
|
|
6779
8542
|
var hasSymbols = hasSymbols$1();
|
|
8543
|
+
var hasProto = hasProto$1();
|
|
6780
8544
|
|
|
6781
|
-
var getProto = Object.getPrototypeOf ||
|
|
8545
|
+
var getProto = Object.getPrototypeOf || (
|
|
8546
|
+
hasProto
|
|
8547
|
+
? function (x) { return x.__proto__; } // eslint-disable-line no-proto
|
|
8548
|
+
: null
|
|
8549
|
+
);
|
|
6782
8550
|
|
|
6783
8551
|
var needsEval = {};
|
|
6784
8552
|
|
|
6785
|
-
var TypedArray = typeof Uint8Array === 'undefined' ? undefined$1 : getProto(Uint8Array);
|
|
8553
|
+
var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined$1 : getProto(Uint8Array);
|
|
6786
8554
|
|
|
6787
8555
|
var INTRINSICS = {
|
|
6788
8556
|
'%AggregateError%': typeof AggregateError === 'undefined' ? undefined$1 : AggregateError,
|
|
6789
8557
|
'%Array%': Array,
|
|
6790
8558
|
'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer,
|
|
6791
|
-
'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined$1,
|
|
8559
|
+
'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined$1,
|
|
6792
8560
|
'%AsyncFromSyncIteratorPrototype%': undefined$1,
|
|
6793
8561
|
'%AsyncFunction%': needsEval,
|
|
6794
8562
|
'%AsyncGenerator%': needsEval,
|
|
@@ -6818,10 +8586,10 @@ var INTRINSICS = {
|
|
|
6818
8586
|
'%Int32Array%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array,
|
|
6819
8587
|
'%isFinite%': isFinite,
|
|
6820
8588
|
'%isNaN%': isNaN,
|
|
6821
|
-
'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined$1,
|
|
8589
|
+
'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined$1,
|
|
6822
8590
|
'%JSON%': typeof JSON === 'object' ? JSON : undefined$1,
|
|
6823
8591
|
'%Map%': typeof Map === 'undefined' ? undefined$1 : Map,
|
|
6824
|
-
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined$1 : getProto(new Map()[Symbol.iterator]()),
|
|
8592
|
+
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined$1 : getProto(new Map()[Symbol.iterator]()),
|
|
6825
8593
|
'%Math%': Math,
|
|
6826
8594
|
'%Number%': Number,
|
|
6827
8595
|
'%Object%': Object,
|
|
@@ -6834,10 +8602,10 @@ var INTRINSICS = {
|
|
|
6834
8602
|
'%Reflect%': typeof Reflect === 'undefined' ? undefined$1 : Reflect,
|
|
6835
8603
|
'%RegExp%': RegExp,
|
|
6836
8604
|
'%Set%': typeof Set === 'undefined' ? undefined$1 : Set,
|
|
6837
|
-
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined$1 : getProto(new Set()[Symbol.iterator]()),
|
|
8605
|
+
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined$1 : getProto(new Set()[Symbol.iterator]()),
|
|
6838
8606
|
'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer,
|
|
6839
8607
|
'%String%': String,
|
|
6840
|
-
'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined$1,
|
|
8608
|
+
'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined$1,
|
|
6841
8609
|
'%Symbol%': hasSymbols ? Symbol : undefined$1,
|
|
6842
8610
|
'%SyntaxError%': $SyntaxError,
|
|
6843
8611
|
'%ThrowTypeError%': ThrowTypeError,
|
|
@@ -6853,12 +8621,14 @@ var INTRINSICS = {
|
|
|
6853
8621
|
'%WeakSet%': typeof WeakSet === 'undefined' ? undefined$1 : WeakSet
|
|
6854
8622
|
};
|
|
6855
8623
|
|
|
6856
|
-
|
|
6857
|
-
|
|
6858
|
-
|
|
6859
|
-
|
|
6860
|
-
|
|
6861
|
-
|
|
8624
|
+
if (getProto) {
|
|
8625
|
+
try {
|
|
8626
|
+
null.error; // eslint-disable-line no-unused-expressions
|
|
8627
|
+
} catch (e) {
|
|
8628
|
+
// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229
|
|
8629
|
+
var errorProto = getProto(getProto(e));
|
|
8630
|
+
INTRINSICS['%Error.prototype%'] = errorProto;
|
|
8631
|
+
}
|
|
6862
8632
|
}
|
|
6863
8633
|
|
|
6864
8634
|
var doEval = function doEval(name) {
|
|
@@ -6876,7 +8646,7 @@ var doEval = function doEval(name) {
|
|
|
6876
8646
|
}
|
|
6877
8647
|
} else if (name === '%AsyncIteratorPrototype%') {
|
|
6878
8648
|
var gen = doEval('%AsyncGenerator%');
|
|
6879
|
-
if (gen) {
|
|
8649
|
+
if (gen && getProto) {
|
|
6880
8650
|
value = getProto(gen.prototype);
|
|
6881
8651
|
}
|
|
6882
8652
|
}
|
|
@@ -8429,7 +10199,8 @@ var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')
|
|
|
8429
10199
|
var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
|
|
8430
10200
|
|
|
8431
10201
|
var parseValues = function parseQueryStringValues(str, options) {
|
|
8432
|
-
var obj = {};
|
|
10202
|
+
var obj = { __proto__: null };
|
|
10203
|
+
|
|
8433
10204
|
var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
|
|
8434
10205
|
var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
|
|
8435
10206
|
var parts = cleanStr.split(options.delimiter, limit);
|
|
@@ -10487,7 +12258,7 @@ var Right = function Right(_ref2) {
|
|
|
10487
12258
|
isFiltersPaneOpen = _ref2.isFiltersPaneOpen;
|
|
10488
12259
|
var _useTranslation2 = useTranslation(),
|
|
10489
12260
|
t = _useTranslation2.t;
|
|
10490
|
-
return /*#__PURE__*/React__default["default"].createElement(
|
|
12261
|
+
return /*#__PURE__*/React__default["default"].createElement(SubHeaderMolecule__default["default"].RightBlock, {
|
|
10491
12262
|
columnsButtonProps: {
|
|
10492
12263
|
columnData: columns,
|
|
10493
12264
|
fixedColumns: FIXED_COLUMNS,
|
|
@@ -11359,7 +13130,7 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
11359
13130
|
});
|
|
11360
13131
|
},
|
|
11361
13132
|
title: renderHeaderTitle(MEMBER_FILTER[filters.category].value, metaName)
|
|
11362
|
-
}, config === null || config === void 0 ? void 0 : (_config$header = config.header) === null || _config$header === void 0 ? void 0 : _config$header.otherProps)), /*#__PURE__*/React__default["default"].createElement(
|
|
13133
|
+
}, config === null || config === void 0 ? void 0 : (_config$header = config.header) === null || _config$header === void 0 ? void 0 : _config$header.otherProps)), /*#__PURE__*/React__default["default"].createElement(SubHeaderMolecule__default["default"], {
|
|
11363
13134
|
leftActionBlock: /*#__PURE__*/React__default["default"].createElement(SubHeader.Left, {
|
|
11364
13135
|
config: config,
|
|
11365
13136
|
filteredCount: team === null || team === void 0 ? void 0 : team.membersCount,
|
|
@@ -11446,7 +13217,7 @@ var index = reactUtils.withTitle(withReactQuery(TeamMembers), instance.t("metaNa
|
|
|
11446
13217
|
|
|
11447
13218
|
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
11448
13219
|
|
|
11449
|
-
var css = ".ntm-empty-state{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.ntm-members{overflow:auto;width:100%}.ntm-members-wrapper{display:flex}.ntm-members-page-loader{height:100vh;width:100%}.ntm-members-table__wrapper{display:flex;gap:.75rem;justify-content:space-between;width:100%}.ntm-members-table__column{align-items:center;display:flex;gap:.5rem}.ntm-members-form__header{margin-bottom:.5rem}.ntm-members-form__body{padding-bottom:1rem;width:100%}.ntm-members-form__body>*+*{margin-top:1.5rem}.ntm-members-form__footer{display:flex;gap:.5rem}.ntm-manage-members__header{align-items:flex-start;display:flex}.ntm-manage-members__header>*+*{margin-left:.5rem}.ntm-manage-members__app-roles{align-items:center;display:flex;justify-content:space-between;padding:.5rem 0;width:100%}.ntm-manage-members-app-roles__select-wrapper{max-width:250px;width:50%}.ntm-manage-members-effective-app-roles{align-items:center;display:flex;justify-content:space-between;padding:.25rem 0}.ntm-manage-members-effective-app-roles__role-name{max-width:300px;width:67%}.ntm-members-radio-group,.ntm-members-radio-group .neeto-ui-radio__container--stacked{width:100%}.ntm-members-radio-group__label{padding-right:4px}.ntm-members-radio-group__icon{cursor:pointer}.ntm-members-form-radio-item__wrapper{cursor:pointer;padding:8px 0!important;width:100%}.ntm-members-form-radio-item__wrapper:first-child{padding-top:0!important}.ntm-members-form-radio-item__label{margin-bottom:0!important}.ntm-members-form-radio-item__description,.ntm-product-roles-table th{color:rgb(var(--neeto-ui-gray-700))}.ntm-product-roles-table th{font-size:var(--neeto-ui-text-xs);font-weight:var(--neeto-ui-font-bold);text-transform:uppercase;vertical-align:middle}.ntm-product-roles-table td,.ntm-product-roles-table th{border:1px solid rgb(var(--neeto-ui-gray-300));padding:8px;text-align:left}.ntm-manage-members__checkbox-align-start.neeto-ui-checkbox__wrapper .neeto-ui-checkbox__container{align-items:flex-start}.ntm-manage-members__checkbox-align-start.neeto-ui-checkbox__wrapper .neeto-ui-checkbox[type=checkbox]{margin-top:4px}.ntm-roles-table__wrapper{display:flex;height:calc(100vh - var(--neeto-ui-main-header-with-breadcrumbs-height));padding:0 1.5rem;width:100%}.ntm-roles-table__name-column{display:flex;justify-content:space-between;width:100%}.ntm-roles-pane__body{margin-bottom:1.5rem;width:100%}.ntm-roles-pane__body-wrapper>*+*{margin-top:1rem}.ntm-roles-pane__body>*+*{margin-top:1.5rem}.ntm-roles-pane__footer{display:flex;gap:.5rem}.ntm-roles-permission-category-card{border:1px solid rgb(var(--neeto-ui-gray-400));border-radius:var(--neeto-ui-rounded);padding:10px 20px}.ntm-roles-permission-category-card>.ntm-roles-permission__card:after{display:none}.ntm-roles-permission__heading{color:rgb(var(--neeto-ui-gray-500));text-transform:uppercase}.ntm-roles-permission__card{background-color:rgb(var(--neeto-ui-white));display:flex;flex-direction:column;gap:.75rem;padding:.4rem 0;position:relative}.ntm-roles-permission__card:after{background-color:rgb(var(--neeto-ui-gray-300));content:\"\";height:1px;left:-15px;position:absolute;top:14px;width:10px}.ntm-roles-permission__card--description{flex-grow:1}.ntm-roles-permission__card--checkbox{padding:0 .5rem}.ntm-roles-permission__card .neeto-ui-checkbox__wrapper .neeto-ui-checkbox__container{align-items:flex-start}.ntm-roles-permission__card .neeto-ui-checkbox__wrapper .neeto-ui-checkbox__container .neeto-ui-checkbox[type=checkbox]:disabled+.neeto-ui-label{cursor:not-allowed;opacity:.5}.ntm-roles-permission__sub-blocks{position:relative}.ntm-roles-permission__sub-blocks:before{background-color:rgb(var(--neeto-ui-gray-300));content:\"\";height:calc(100% - 14px);left:8px;position:absolute;top:0;width:1px}.ntm-roles-permission__sub-blocks:empty{display:none}.ntm-roles-help-url-wrapper{align-items:center;display:flex;justify-content:center;padding:1rem 0;width:100%}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zdHlsZXNoZWV0cy9jb21wb25lbnRzL19lbXB0eS1zdGF0ZS5zY3NzIiwic3JjL3N0eWxlc2hlZXRzL2FwcGxpY2F0aW9uLnNjc3MiLCJzcmMvc3R5bGVzaGVldHMvcGFnZXMvX21lbWJlcnMuc2NzcyIsInNyYy9zdHlsZXNoZWV0cy9wYWdlcy9fcm9sZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFJRSxrQkFBQSxDQURBLFlBQUEsQ0FEQSxXQUFBLENBR0Esc0JBQUEsQ0FKQSxVQ0tGLENDTkEsYUFDRSxhQUFBLENBQ0EsVURTRixDQ1BFLHFCQUNFLFlEU0osQ0NORSx5QkFFRSxZQUFBLENBREEsVURTSixDQ0pJLDRCQUVFLFlBQUEsQ0FFQSxVQUFBLENBREEsNkJBQUEsQ0FGQSxVRFNOLENDSkksMkJBRUUsa0JBQUEsQ0FEQSxZQUFBLENBRUEsU0RNTixDQ0RJLDBCQUNFLG1CREdOLENDQUksd0JBRUUsbUJBQUEsQ0FEQSxVREdOLENDRE0sNEJBQ0UsaUJER1IsQ0NDSSwwQkFDRSxZQUFBLENBQ0EsU0RDTixDQ0lBLDRCQUVFLHNCQUFBLENBREEsWURBRixDQ0dFLGdDQUNFLGlCRERKLENDS0EsK0JBRUUsa0JBQUEsQ0FEQSxZQUFBLENBRUEsNkJBQUEsQ0FFQSxlQUFBLENBREEsVURERixDQ0tBLDhDQUVFLGVBQUEsQ0FEQSxTRERGLENDS0Esd0NBRUUsa0JBQUEsQ0FEQSxZQUFBLENBRUEsNkJBQUEsQ0FDQSxnQkRGRixDQ0tBLG1EQUVFLGVBQUEsQ0FEQSxTRERGLENDT0Usc0ZBQ0UsVURESixDQ0lFLGdDQUNFLGlCREZKLENDS0UsK0JBQ0UsY0RISixDQ1FFLHNDQUVFLGNBQUEsQ0FDQSx1QkFBQSxDQUZBLFVESEosQ0NNSSxrREFDRSx1QkRKTixDQ1FFLG9DQUNFLHlCRE5KLENDZUUsc0VBTEUsbUNEQ0osQ0NJRSw0QkFFRSxpQ0FBQSxDQUVBLHFDQUFBLENBQ0Esd0JBQUEsQ0FGQSxxQkRQSixDQ1dFLHdEQUVFLDhDQUFBLENBRUEsV0FBQSxDQURBLGVEUkosQ0NjRSxtR0FDRSxzQkRYSixDQ2FFLHVHQUNFLGNEWEosQ0U3SEEsMEJBR0UsWUFBQSxDQURBLHdFQUFBLENBRUEsZ0JBQUEsQ0FIQSxVRm1JRixDRTdIQSw4QkFFRSxZQUFBLENBQ0EsNkJBQUEsQ0FGQSxVRmtJRixDRTVIRSxzQkFFRSxvQkFBQSxDQURBLFVGZ0lKLENFN0hJLGtDQUNFLGVGK0hOLENFNUhJLDBCQUNFLGlCRjhITixDRTFIRSx3QkFDRSxZQUFBLENBQ0EsU0Y0SEosQ0V4SEEsb0NBR0UsOENBQUEsQ0FEQSxxQ0FBQSxDQURBLGlCRjZIRixDRXpISSxzRUFDRSxZRjJITixDRXJIRSwrQkFDRSxtQ0FBQSxDQUNBLHdCRndISixDRXJIRSw0QkFDRSwyQ0FBQSxDQUdBLFlBQUEsQ0FDQSxxQkFBQSxDQUNBLFVBQUEsQ0FDQSxlQUFBLENBTEEsaUJGMkhKLENFcEhJLGtDQUNFLDhDQUFBLENBQ0EsVUFBQSxDQUNBLFVBQUEsQ0FDQSxVQUFBLENBQ0EsaUJBQUEsQ0FDQSxRQUFBLENBQ0EsVUZzSE4sQ0VuSEkseUNBQ0UsV0ZxSE4sQ0VsSEksc0NBQ0UsZUZvSE4sQ0VqSEksc0ZBQ0Usc0JGbUhOLENFakhNLGlKQUVFLGtCQUFBLENBREEsVUZvSFIsQ0U5R0Usa0NBQ0UsaUJGZ0hKLENFOUdJLHlDQUNFLDhDQUFBLENBRUEsVUFBQSxDQUNBLHdCQUFBLENBQ0EsUUFBQSxDQUNBLGlCQUFBLENBSkEsS0FBQSxDQUtBLFNGZ0hOLENFN0dJLHdDQUNFLFlGK0dOLENFMUdBLDRCQUdFLGtCQUFBLENBRkEsWUFBQSxDQUdBLHNCQUFBLENBQ0EsY0FBQSxDQUhBLFVGZ0hGIiwic291cmNlc0NvbnRlbnQiOlsiLm50bS1lbXB0eS1zdGF0ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuIiwiLm50bS1lbXB0eS1zdGF0ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubnRtLW1lbWJlcnMge1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG4ubnRtLW1lbWJlcnMtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ubnRtLW1lbWJlcnMtcGFnZS1sb2FkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbn1cbi5udG0tbWVtYmVycy10YWJsZV9fd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC43NXJlbTtcbn1cbi5udG0tbWVtYmVycy10YWJsZV9fY29sdW1uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG59XG4ubnRtLW1lbWJlcnMtZm9ybV9faGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuLm50bS1tZW1iZXJzLWZvcm1fX2JvZHkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4ubnRtLW1lbWJlcnMtZm9ybV9fYm9keSA+ICogKyAqIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuLm50bS1tZW1iZXJzLWZvcm1fX2Zvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5udG0tbWFuYWdlLW1lbWJlcnNfX2hlYWRlciA+ICogKyAqIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVyc19fYXBwLXJvbGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC41cmVtIDA7XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnMtYXBwLXJvbGVzX19zZWxlY3Qtd3JhcHBlciB7XG4gIHdpZHRoOiA1MCU7XG4gIG1heC13aWR0aDogMjUwcHg7XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnMtZWZmZWN0aXZlLWFwcC1yb2xlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC4yNXJlbSAwO1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzLWVmZmVjdGl2ZS1hcHAtcm9sZXNfX3JvbGUtbmFtZSB7XG4gIHdpZHRoOiA2NyU7XG4gIG1heC13aWR0aDogMzAwcHg7XG59XG5cbi5udG0tbWVtYmVycy1yYWRpby1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLm50bS1tZW1iZXJzLXJhZGlvLWdyb3VwIC5uZWV0by11aS1yYWRpb19fY29udGFpbmVyLS1zdGFja2VkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubnRtLW1lbWJlcnMtcmFkaW8tZ3JvdXBfX2xhYmVsIHtcbiAgcGFkZGluZy1yaWdodDogNHB4O1xufVxuLm50bS1tZW1iZXJzLXJhZGlvLWdyb3VwX19pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubnRtLW1lbWJlcnMtZm9ybS1yYWRpby1pdGVtX193cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogOHB4IDBweCAhaW1wb3J0YW50O1xufVxuLm50bS1tZW1iZXJzLWZvcm0tcmFkaW8taXRlbV9fd3JhcHBlcjpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbn1cbi5udG0tbWVtYmVycy1mb3JtLXJhZGlvLWl0ZW1fX2xhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuLm50bS1tZW1iZXJzLWZvcm0tcmFkaW8taXRlbV9fZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktNzAwKSk7XG59XG5cbi5udG0tcHJvZHVjdC1yb2xlcy10YWJsZSB0aCB7XG4gIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS03MDApKTtcbiAgZm9udC1zaXplOiB2YXIoLS1uZWV0by11aS10ZXh0LXhzKTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLW5lZXRvLXVpLWZvbnQtYm9sZCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4ubnRtLXByb2R1Y3Qtcm9sZXMtdGFibGUgdGQsXG4ubnRtLXByb2R1Y3Qtcm9sZXMtdGFibGUgdGgge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogOHB4O1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzX19jaGVja2JveC1hbGlnbi1zdGFydC5uZWV0by11aS1jaGVja2JveF9fd3JhcHBlciAubmVldG8tdWktY2hlY2tib3hfX2NvbnRhaW5lciB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuLm50bS1tYW5hZ2UtbWVtYmVyc19fY2hlY2tib3gtYWxpZ24tc3RhcnQubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94W3R5cGU9Y2hlY2tib3hdIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX193cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW5lZXRvLXVpLW1haW4taGVhZGVyLXdpdGgtYnJlYWRjcnVtYnMtaGVpZ2h0KSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDAgMS41cmVtO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19uYW1lLWNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5udG0tcm9sZXMtcGFuZV9fYm9keSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG4ubnRtLXJvbGVzLXBhbmVfX2JvZHktd3JhcHBlciA+ICogKyAqIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi5udG0tcm9sZXMtcGFuZV9fYm9keSA+ICogKyAqIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuLm50bS1yb2xlcy1wYW5lX19mb290ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uLWNhdGVnb3J5LWNhcmQge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLW5lZXRvLXVpLXJvdW5kZWQpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS00MDApKTtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbi1jYXRlZ29yeS1jYXJkID4gLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9faGVhZGluZyB7XG4gIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS01MDApKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS13aGl0ZSkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC40cmVtIDA7XG59XG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX2NhcmQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMXB4O1xuICBsZWZ0OiAtMTVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE0cHg7XG4gIHdpZHRoOiAxMHB4O1xufVxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkLS1kZXNjcmlwdGlvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZC0tY2hlY2tib3gge1xuICBwYWRkaW5nOiAwIDAuNXJlbTtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCAubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94X19jb250YWluZXIge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCAubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94X19jb250YWluZXIgLm5lZXRvLXVpLWNoZWNrYm94W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkICsgLm5lZXRvLXVpLWxhYmVsIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19zdWItYmxvY2tzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19zdWItYmxvY2tzOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgdG9wOiAwO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDE0cHgpO1xuICBsZWZ0OiA4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fc3ViLWJsb2NrczplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5udG0tcm9sZXMtaGVscC11cmwtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMXJlbSAwO1xufSIsIi5udG0tbWVtYmVycyB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcblxuICAmLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmLXBhZ2UtbG9hZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICB9XG5cbiAgJi10YWJsZSB7XG4gICAgJl9fd3JhcHBlciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBnYXA6IDAuNzVyZW07XG4gICAgfVxuICAgICZfX2NvbHVtbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gICYtZm9ybSB7XG4gICAgJl9faGVhZGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAmID4gKiArICoge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6IDAuNXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVyc19faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICB9XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnNfX2FwcC1yb2xlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzLWFwcC1yb2xlc19fc2VsZWN0LXdyYXBwZXIge1xuICB3aWR0aDogNTAlO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzLWVmZmVjdGl2ZS1hcHAtcm9sZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuMjVyZW0gMDtcbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVycy1lZmZlY3RpdmUtYXBwLXJvbGVzX19yb2xlLW5hbWUge1xuICB3aWR0aDogNjclO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xufVxuXG4ubnRtLW1lbWJlcnMtcmFkaW8tZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbiAgLm5lZXRvLXVpLXJhZGlvX19jb250YWluZXItLXN0YWNrZWQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgfVxuXG4gICZfX2ljb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4ubnRtLW1lbWJlcnMtZm9ybS1yYWRpby1pdGVtIHtcbiAgJl9fd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDhweCAwcHggIWltcG9ydGFudDtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgJl9fZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS03MDApKTtcbiAgfVxufVxuXG4ubnRtLXByb2R1Y3Qtcm9sZXMtdGFibGUge1xuICB0aCB7XG4gICAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTcwMCkpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbmVldG8tdWktdGV4dC14cyk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tbmVldG8tdWktZm9udC1ib2xkKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG4gIHRkLFxuICB0aCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gIH1cbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVyc19fY2hlY2tib3gtYWxpZ24tc3RhcnQubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIge1xuICAubmVldG8tdWktY2hlY2tib3hfX2NvbnRhaW5lciB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLm5lZXRvLXVpLWNoZWNrYm94W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG59XG4iLCIubnRtLXJvbGVzLXRhYmxlX193cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtICN7dmFyKC0tbmVldG8tdWktbWFpbi1oZWFkZXItd2l0aC1icmVhZGNydW1icy1oZWlnaHQpfSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDAgMS41cmVtO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19uYW1lLWNvbHVtbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5udG0tcm9sZXMtcGFuZSB7XG4gICZfX2JvZHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuICAgICYtd3JhcHBlciA+ICogKyAqIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgJiA+ICogKyAqIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAwLjVyZW07XG4gIH1cbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uLWNhdGVnb3J5LWNhcmQge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLW5lZXRvLXVpLXJvdW5kZWQpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS00MDApKTtcbiAgJiA+IC5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uIHtcbiAgJl9faGVhZGluZyB7XG4gICAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTUwMCkpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAmX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktd2hpdGUpKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBsZWZ0OiAtMTVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTRweDtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgIH1cblxuICAgICYtLWRlc2NyaXB0aW9uIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAmLS1jaGVja2JveCB7XG4gICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICB9XG5cbiAgICAubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94X19jb250YWluZXIge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgIC5uZWV0by11aS1jaGVja2JveFt0eXBlPVwiY2hlY2tib3hcIl06ZGlzYWJsZWQgKyAubmVldG8tdWktbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fc3ViLWJsb2NrcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xuICAgICAgdG9wOiAwO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTRweCk7XG4gICAgICBsZWZ0OiA4cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgIH1cblxuICAgICY6ZW1wdHkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLm50bS1yb2xlcy1oZWxwLXVybC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtIDA7XG59XG4iXX0= */";
|
|
13220
|
+
var css = ":root{--ntm-roles-table-default-scroll:15px;--ntm-roles-table-cell-height:68px;--ntm-roles-sidebar-width:396px;--ntm-roles-table-header-height:72px}.ntm-scrollbar__inner{height:200px;width:100%}.ntm-scrollbar__outer{height:150px;left:0;overflow:\"hidden\";position:\"absolute\";top:0;visibility:\"hidden\";width:200px}.ntm-empty-state{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.ntm-members{overflow:auto;width:100%}.ntm-members-wrapper{display:flex}.ntm-members-page-loader{height:100vh;width:100%}.ntm-members-table__wrapper{display:flex;gap:.75rem;justify-content:space-between;width:100%}.ntm-members-table__column{align-items:center;display:flex;gap:.5rem}.ntm-members-form__header{margin-bottom:.5rem}.ntm-members-form__body{padding-bottom:1rem;width:100%}.ntm-members-form__body>*+*{margin-top:1.5rem}.ntm-members-form__footer{display:flex;gap:.5rem}.ntm-manage-members__header{align-items:flex-start;display:flex}.ntm-manage-members__header>*+*{margin-left:.5rem}.ntm-manage-members__app-roles{align-items:center;display:flex;justify-content:space-between;padding:.5rem 0;width:100%}.ntm-manage-members-app-roles__select-wrapper{max-width:250px;width:50%}.ntm-manage-members-effective-app-roles{align-items:center;display:flex;justify-content:space-between;padding:.25rem 0}.ntm-manage-members-effective-app-roles__role-name{max-width:300px;width:67%}.ntm-members-radio-group,.ntm-members-radio-group .neeto-ui-radio__container--stacked{width:100%}.ntm-members-radio-group__label{padding-right:4px}.ntm-members-radio-group__icon{cursor:pointer}.ntm-members-form-radio-item__wrapper{cursor:pointer;padding:8px 0!important;width:100%}.ntm-members-form-radio-item__wrapper:first-child{padding-top:0!important}.ntm-members-form-radio-item__label{margin-bottom:0!important}.ntm-members-form-radio-item__description,.ntm-product-roles-table th{color:rgb(var(--neeto-ui-gray-700))}.ntm-product-roles-table th{font-size:var(--neeto-ui-text-xs);font-weight:var(--neeto-ui-font-bold);text-transform:uppercase;vertical-align:middle}.ntm-product-roles-table td,.ntm-product-roles-table th{border:1px solid rgb(var(--neeto-ui-gray-300));padding:8px;text-align:left}.ntm-manage-members__checkbox-align-start.neeto-ui-checkbox__wrapper .neeto-ui-checkbox__container{align-items:flex-start}.ntm-manage-members__checkbox-align-start.neeto-ui-checkbox__wrapper .neeto-ui-checkbox[type=checkbox]{margin-top:4px}.ntm-roles-table__wrapper{display:flex;height:calc(100vh - var(--neeto-ui-main-header-with-breadcrumbs-height));padding:0 1.5rem;width:100%}.ntm-roles-table__sidebar{border-left:thin solid rgb(var(--neeto-ui-gray-300));border-right:thin solid rgb(var(--neeto-ui-gray-300));border-top:thin solid rgb(var(--neeto-ui-gray-300));min-width:396px;min-width:var(--ntm-roles-sidebar-width);width:396px;width:var(--ntm-roles-sidebar-width)}.ntm-roles-table-sidebar__search{height:72px;height:var(--ntm-roles-table-header-height);padding:20px 24px}.ntm-roles-table-sidebar__list{height:calc(100vh - var(--neeto-ui-main-header-with-breadcrumbs-height) - 87px);height:calc(100vh - var(--neeto-ui-main-header-with-breadcrumbs-height) - var(\n --ntm-roles-table-header-height\n ) - var(--ntm-roles-table-default-scroll));overflow-y:auto}.ntm-roles-table-sidebar__list-item{align-items:center;display:flex;justify-content:space-between;min-height:68px;min-height:var(--ntm-roles-table-cell-height);padding:12px 24px}.ntm-roles-table-sidebar__list-item.ntm-roles-table-sidebar__list-item--highlighted{background-color:rgb(var(--neeto-ui-primary-100));padding:12px 24px}.ntm-roles-table-sidebar__list-item:not(.ntm-roles-table-sidebar__list-item--highlighted),.ntm-roles-table__columns{border-bottom:thin solid rgb(var(--neeto-ui-gray-300))}.ntm-roles-table__columns{border-top:thin solid rgb(var(--neeto-ui-gray-300));overflow:hidden;width:calc(100vw - var(--neeto-ui-sidebar-width) - 420px);width:calc(100vw - var(--neeto-ui-sidebar-width) - var(--ntm-roles-sidebar-width) - 24px)}.ntm-roles-table__cell{align-items:center;border-right:thin solid rgb(var(--neeto-ui-gray-300));display:flex;height:68px;height:var(--ntm-roles-table-cell-height);justify-content:center;min-width:200px;padding:12px 8px;width:100%}.ntm-roles-table-cell__checkbox-wrapper{height:1rem;margin:auto;position:absolute;width:1rem;z-index:10}.ntm-roles-table-cell__checkbox{z-index:10}.ntm-roles-table__header{align-items:center;display:flex;overflow-x:auto}.ntm-roles-table__header .ntm-roles-table__cell{height:72px;height:var(--ntm-roles-table-header-height)}.ntm-roles-table-header-cell__container{align-items:center;display:flex;justify-content:space-between;overflow:hidden;width:100%}.ntm-roles-table-header__dropdown{flex-shrink:0;margin:3px}.ntm-roles-table-header__role-name{overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.ntm-roles-table__rows{height:calc(100vh - var(--neeto-ui-main-header-with-breadcrumbs-height) - 87px);height:calc(100vh - var(--neeto-ui-main-header-with-breadcrumbs-height) - var(\n --ntm-roles-table-header-height\n ) - var(--ntm-roles-table-default-scroll));overflow-y:auto;scrollbar-width:none;width:100%}.ntm-roles-table__rows::-webkit-scrollbar{height:0;width:0}.ntm-roles-table__rows::-webkit-scrollbar-thumb{background:rgb(var(--neeto-ui-gray-300));border-radius:50px}.ntm-roles-table__rows::-webkit-scrollbar-thumb:hover{border-radius:50px}.ntm-roles-table__rows::-webkit-scrollbar-track{background:rgb(var(--neeto-ui-gray-300))}.ntm-roles-table__row{align-items:center;display:flex}.ntm-roles-table__row .ntm-roles-table__cell{overflow:hidden;position:relative}.ntm-roles-table__row .ntm-roles-table__cell p{min-width:340px;opacity:0;width:340px}.ntm-roles-table__row.ntm-roles-table__row--highlighted .ntm-roles-table__cell{background-color:rgb(var(--neeto-ui-primary-100))}.ntm-roles-table__row:not(.ntm-roles-table__row--highlighted) .ntm-roles-table__cell{border-bottom:thin solid rgb(var(--neeto-ui-gray-300))}.ntm-roles-table-sidebar__drop-down-button{color:rgb(var(--neeto-ui-gray-600));cursor:pointer}.ntm-roles-modal__body>*+*{margin-top:1rem}.ntm-roles-modal__footer{display:flex;gap:.5rem}.ntm-roles-pane__body{margin-bottom:1.5rem;width:100%}.ntm-roles-pane__body-wrapper>*+*{margin-top:1rem}.ntm-roles-pane__body>*+*{margin-top:1.5rem}.ntm-roles-pane__footer{display:flex;gap:.5rem}.ntm-roles-permission__heading{color:rgb(var(--neeto-ui-gray-500));text-transform:uppercase}.ntm-roles-permission__card{background-color:rgb(var(--neeto-ui-white));display:flex;flex-direction:column;gap:.75rem;padding:.4rem 0;position:relative}.ntm-roles-permission__card:after{background-color:rgb(var(--neeto-ui-gray-300));content:\"\";height:1px;left:-15px;position:absolute;top:14px;width:10px}.ntm-roles-permission__card--description{flex-grow:1}.ntm-roles-permission__card--checkbox{padding:0 .5rem}.ntm-roles-permission__card .neeto-ui-checkbox__wrapper .neeto-ui-checkbox__container{align-items:flex-start}.ntm-roles-permission__card .neeto-ui-checkbox__wrapper .neeto-ui-checkbox__container .neeto-ui-checkbox[type=checkbox]:disabled+.neeto-ui-label{cursor:not-allowed;opacity:.5}.ntm-roles-permission__sub-blocks{position:relative}.ntm-roles-permission__sub-blocks:before{background-color:rgb(var(--neeto-ui-gray-300));content:\"\";height:calc(100% - 14px);left:8px;position:absolute;top:0;width:1px}.ntm-roles-permission__sub-blocks:empty{display:none}.ntm-roles-permission-category-card{border:1px solid rgb(var(--neeto-ui-gray-400));border-radius:var(--neeto-ui-rounded);padding:10px 20px}.ntm-roles-permission-category-card>.ntm-roles-permission__card:after{display:none}.ntm-roles-help-url-wrapper{align-items:center;display:flex;justify-content:center;padding:1rem 0;width:100%}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9zdHlsZXNoZWV0cy9hYnN0cmFjdHMvX3Jvb3Quc2NzcyIsInNyYy9zdHlsZXNoZWV0cy9hcHBsaWNhdGlvbi5zY3NzIiwic3JjL3N0eWxlc2hlZXRzL2Jhc2UvX2Jhc2Uuc2NzcyIsInNyYy9zdHlsZXNoZWV0cy9jb21wb25lbnRzL19lbXB0eS1zdGF0ZS5zY3NzIiwic3JjL3N0eWxlc2hlZXRzL3BhZ2VzL19tZW1iZXJzLnNjc3MiLCJzcmMvc3R5bGVzaGVldHMvcGFnZXMvX3JvbGVzLnNjc3MiLCJzcmMvc3R5bGVzaGVldHMvYWJzdHJhY3RzL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUNFLHFDQUFBLENBQ0Esa0NBQUEsQ0FDQSwrQkFBQSxDQUNBLG9DQ0NGLENDSkUsc0JBRUUsWUFBQSxDQURBLFVEUUosQ0NKRSxzQkFLRSxZQUFBLENBRkEsTUFBQSxDQUdBLGlCQUFBLENBTEEsbUJBQUEsQ0FDQSxLQUFBLENBS0EsbUJBQUEsQ0FIQSxXRFNKLENFbkJBLGlCQUlFLGtCQUFBLENBREEsWUFBQSxDQURBLFdBQUEsQ0FHQSxzQkFBQSxDQUpBLFVGMEJGLENHM0JBLGFBQ0UsYUFBQSxDQUNBLFVIOEJGLENHNUJFLHFCQUNFLFlIOEJKLENHM0JFLHlCQUVFLFlBQUEsQ0FEQSxVSDhCSixDR3pCSSw0QkFFRSxZQUFBLENBRUEsVUFBQSxDQURBLDZCQUFBLENBRkEsVUg4Qk4sQ0d6QkksMkJBRUUsa0JBQUEsQ0FEQSxZQUFBLENBRUEsU0gyQk4sQ0d0QkksMEJBQ0UsbUJId0JOLENHckJJLHdCQUVFLG1CQUFBLENBREEsVUh3Qk4sQ0d0Qk0sNEJBQ0UsaUJId0JSLENHcEJJLDBCQUNFLFlBQUEsQ0FDQSxTSHNCTixDR2pCQSw0QkFFRSxzQkFBQSxDQURBLFlIcUJGLENHbEJFLGdDQUNFLGlCSG9CSixDR2hCQSwrQkFFRSxrQkFBQSxDQURBLFlBQUEsQ0FFQSw2QkFBQSxDQUVBLGVBQUEsQ0FEQSxVSG9CRixDR2hCQSw4Q0FFRSxlQUFBLENBREEsU0hvQkYsQ0doQkEsd0NBRUUsa0JBQUEsQ0FEQSxZQUFBLENBRUEsNkJBQUEsQ0FDQSxnQkhtQkYsQ0doQkEsbURBRUUsZUFBQSxDQURBLFNIb0JGLENHZEUsc0ZBQ0UsVUhvQkosQ0dqQkUsZ0NBQ0UsaUJIbUJKLENHaEJFLCtCQUNFLGNIa0JKLENHYkUsc0NBRUUsY0FBQSxDQUNBLHVCQUFBLENBRkEsVUhrQkosQ0dmSSxrREFDRSx1QkhpQk4sQ0diRSxvQ0FDRSx5QkhlSixDR05FLHNFQUxFLG1DSHNCSixDR2pCRSw0QkFFRSxpQ0FBQSxDQUVBLHFDQUFBLENBQ0Esd0JBQUEsQ0FGQSxxQkhjSixDR1ZFLHdEQUVFLDhDQUFBLENBRUEsV0FBQSxDQURBLGVIYUosQ0dQRSxtR0FDRSxzQkhVSixDR1JFLHVHQUNFLGNIVUosQ0lsSkEsMEJBR0UsWUFBQSxDQURBLHdFQUFBLENBRUEsZ0JBQUEsQ0FIQSxVSndKRixDSWxKQSwwQkFJRSxvREFBQSxDQURBLHFEQUFBLENBRUEsbURBQUEsQ0FIQSxlQUFBLENBQUEsd0NBQUEsQ0FEQSxXQUFBLENBQUEsb0NKeUpGLENJbEpBLGlDQUVFLFdBQUEsQ0FBQSwyQ0FBQSxDQURBLGlCSnNKRixDSWxKQSwrQkFDRSwrRUFBQSxDQUFBOztnREFBQSxDQUtBLGVKcUpGLENJbEpBLG9DQUdFLGtCQUFBLENBRkEsWUFBQSxDQUNBLDZCQUFBLENBR0EsZUFBQSxDQUFBLDZDQUFBLENBREEsaUJKc0pGLENJbkpFLG9GQUNFLGlEQUFBLENBQ0EsaUJKcUpKLENJN0lBLG9IQUpJLHNESjZKSixDSXpKQSwwQkFLRSxtREFBQSxDQURBLGVBQUEsQ0FIQSx5REFBQSxDQUFBLHlGSndKRixDSWhKQSx1QkFRRSxrQkFBQSxDQUVBLHFEQUFBLENBSkEsWUFBQSxDQUhBLFdBQUEsQ0FBQSx5Q0FBQSxDQUlBLHNCQUFBLENBTEEsZUFBQSxDQUVBLGdCQUFBLENBSEEsVUowSkYsQ0k5SUEsd0NBRUUsV0FBQSxDQUVBLFdBQUEsQ0FIQSxpQkFBQSxDQUVBLFVBQUEsQ0FFQSxVSmlKRixDSTlJQSxnQ0FDRSxVSmlKRixDSTlJQSx5QkFFRSxrQkFBQSxDQURBLFlBQUEsQ0FFQSxlSmlKRixDSS9JRSxnREFDRSxXQUFBLENBQUEsMkNKaUpKLENJN0lBLHdDQUdFLGtCQUFBLENBRkEsWUFBQSxDQUNBLDZCQUFBLENBR0EsZUFBQSxDQURBLFVKaUpGLENJN0lBLGtDQUVFLGFBQUEsQ0FEQSxVSmlKRixDSTdJQSxtQ0FDRSxlQUFBLENBR0EsaUJBQUEsQ0FGQSxzQkFBQSxDQUNBLGtCQUFBLENBRUEsVUpnSkYsQ0k3SUEsdUJBRUUsK0VBQUEsQ0FBQTs7Z0RBQUEsQ0FLQSxlQUFBLENDakhBLG9CQUFBLENEMkdBLFVKdUpGLENLaFFFLDBDQUVFLFFEK0dBLENDaEhBLE9MbVFKLENLL1BFLGdEQUNFLHdDRDRHQSxDQzNHQSxrQkxpUUosQ0s5UEUsc0RBQ0Usa0JMZ1FKLENLN1BFLGdEQUNFLHdDTCtQSixDSXZKQSxzQkFFRSxrQkFBQSxDQURBLFlKMkpGLENJeEpFLDZDQUNFLGVBQUEsQ0FDQSxpQkowSkosQ0l2SkksK0NBR0UsZUFBQSxDQUZBLFNBQUEsQ0FDQSxXSjBKTixDSXBKSSwrRUFDRSxpREpzSk4sQ0lqSkkscUZBQ0Usc0RKbUpOLENJOUlBLDJDQUNFLG1DQUFBLENBQ0EsY0ppSkYsQ0k3SUUsMkJBQ0UsZUpnSkosQ0k3SUUseUJBQ0UsWUFBQSxDQUNBLFNKK0lKLENJMUlFLHNCQUVFLG9CQUFBLENBREEsVUo4SUosQ0kzSUksa0NBQ0UsZUo2SU4sQ0kxSUksMEJBQ0UsaUJKNElOLENJeElFLHdCQUNFLFlBQUEsQ0FDQSxTSjBJSixDSXJJRSwrQkFDRSxtQ0FBQSxDQUNBLHdCSndJSixDSXJJRSw0QkFDRSwyQ0FBQSxDQUdBLFlBQUEsQ0FDQSxxQkFBQSxDQUNBLFVBQUEsQ0FDQSxlQUFBLENBTEEsaUJKMklKLENJcElJLGtDQUNFLDhDQUFBLENBQ0EsVUFBQSxDQUNBLFVBQUEsQ0FDQSxVQUFBLENBQ0EsaUJBQUEsQ0FDQSxRQUFBLENBQ0EsVUpzSU4sQ0luSUkseUNBQ0UsV0pxSU4sQ0lsSUksc0NBQ0UsZUpvSU4sQ0lqSUksc0ZBQ0Usc0JKbUlOLENJaklNLGlKQUVFLGtCQUFBLENBREEsVUpvSVIsQ0k5SEUsa0NBQ0UsaUJKZ0lKLENJOUhJLHlDQUNFLDhDQUFBLENBRUEsVUFBQSxDQUNBLHdCQUFBLENBQ0EsUUFBQSxDQUNBLGlCQUFBLENBSkEsS0FBQSxDQUtBLFNKZ0lOLENJN0hJLHdDQUNFLFlKK0hOLENJMUhBLG9DQUdFLDhDQUFBLENBREEscUNBQUEsQ0FEQSxpQkorSEYsQ0kzSEksc0VBQ0UsWUo2SE4sQ0l4SEEsNEJBR0Usa0JBQUEsQ0FGQSxZQUFBLENBR0Esc0JBQUEsQ0FDQSxjQUFBLENBSEEsVUo4SEYiLCJzb3VyY2VzQ29udGVudCI6WyI6cm9vdCB7XG4gIC0tbnRtLXJvbGVzLXRhYmxlLWRlZmF1bHQtc2Nyb2xsOiAxNXB4O1xuICAtLW50bS1yb2xlcy10YWJsZS1jZWxsLWhlaWdodDogNjhweDtcbiAgLS1udG0tcm9sZXMtc2lkZWJhci13aWR0aDogMzk2cHg7XG4gIC0tbnRtLXJvbGVzLXRhYmxlLWhlYWRlci1oZWlnaHQ6IDcycHg7XG59XG4iLCI6cm9vdCB7XG4gIC0tbnRtLXJvbGVzLXRhYmxlLWRlZmF1bHQtc2Nyb2xsOiAxNXB4O1xuICAtLW50bS1yb2xlcy10YWJsZS1jZWxsLWhlaWdodDogNjhweDtcbiAgLS1udG0tcm9sZXMtc2lkZWJhci13aWR0aDogMzk2cHg7XG4gIC0tbnRtLXJvbGVzLXRhYmxlLWhlYWRlci1oZWlnaHQ6IDcycHg7XG59XG5cbi5udG0tc2Nyb2xsYmFyX19pbm5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDIwMHB4O1xufVxuLm50bS1zY3JvbGxiYXJfX291dGVyIHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIjtcbiAgdG9wOiAwcHg7XG4gIGxlZnQ6IDBweDtcbiAgd2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xuICBvdmVyZmxvdzogXCJoaWRkZW5cIjtcbiAgdmlzaWJpbGl0eTogXCJoaWRkZW5cIjtcbn1cblxuLm50bS1lbXB0eS1zdGF0ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubnRtLW1lbWJlcnMge1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2lkdGg6IDEwMCU7XG59XG4ubnRtLW1lbWJlcnMtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4ubnRtLW1lbWJlcnMtcGFnZS1sb2FkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDB2aDtcbn1cbi5udG0tbWVtYmVycy10YWJsZV9fd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC43NXJlbTtcbn1cbi5udG0tbWVtYmVycy10YWJsZV9fY29sdW1uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG59XG4ubnRtLW1lbWJlcnMtZm9ybV9faGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuLm50bS1tZW1iZXJzLWZvcm1fX2JvZHkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG4ubnRtLW1lbWJlcnMtZm9ybV9fYm9keSA+ICogKyAqIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuLm50bS1tZW1iZXJzLWZvcm1fX2Zvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5udG0tbWFuYWdlLW1lbWJlcnNfX2hlYWRlciA+ICogKyAqIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVyc19fYXBwLXJvbGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC41cmVtIDA7XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnMtYXBwLXJvbGVzX19zZWxlY3Qtd3JhcHBlciB7XG4gIHdpZHRoOiA1MCU7XG4gIG1heC13aWR0aDogMjUwcHg7XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnMtZWZmZWN0aXZlLWFwcC1yb2xlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC4yNXJlbSAwO1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzLWVmZmVjdGl2ZS1hcHAtcm9sZXNfX3JvbGUtbmFtZSB7XG4gIHdpZHRoOiA2NyU7XG4gIG1heC13aWR0aDogMzAwcHg7XG59XG5cbi5udG0tbWVtYmVycy1yYWRpby1ncm91cCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuLm50bS1tZW1iZXJzLXJhZGlvLWdyb3VwIC5uZWV0by11aS1yYWRpb19fY29udGFpbmVyLS1zdGFja2VkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4ubnRtLW1lbWJlcnMtcmFkaW8tZ3JvdXBfX2xhYmVsIHtcbiAgcGFkZGluZy1yaWdodDogNHB4O1xufVxuLm50bS1tZW1iZXJzLXJhZGlvLWdyb3VwX19pY29uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubnRtLW1lbWJlcnMtZm9ybS1yYWRpby1pdGVtX193cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogOHB4IDBweCAhaW1wb3J0YW50O1xufVxuLm50bS1tZW1iZXJzLWZvcm0tcmFkaW8taXRlbV9fd3JhcHBlcjpmaXJzdC1jaGlsZCB7XG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbn1cbi5udG0tbWVtYmVycy1mb3JtLXJhZGlvLWl0ZW1fX2xhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuLm50bS1tZW1iZXJzLWZvcm0tcmFkaW8taXRlbV9fZGVzY3JpcHRpb24ge1xuICBjb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktNzAwKSk7XG59XG5cbi5udG0tcHJvZHVjdC1yb2xlcy10YWJsZSB0aCB7XG4gIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS03MDApKTtcbiAgZm9udC1zaXplOiB2YXIoLS1uZWV0by11aS10ZXh0LXhzKTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgZm9udC13ZWlnaHQ6IHZhcigtLW5lZXRvLXVpLWZvbnQtYm9sZCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4ubnRtLXByb2R1Y3Qtcm9sZXMtdGFibGUgdGQsXG4ubnRtLXByb2R1Y3Qtcm9sZXMtdGFibGUgdGgge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogOHB4O1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzX19jaGVja2JveC1hbGlnbi1zdGFydC5uZWV0by11aS1jaGVja2JveF9fd3JhcHBlciAubmVldG8tdWktY2hlY2tib3hfX2NvbnRhaW5lciB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuLm50bS1tYW5hZ2UtbWVtYmVyc19fY2hlY2tib3gtYWxpZ24tc3RhcnQubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94W3R5cGU9Y2hlY2tib3hdIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX193cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIHZhcigtLW5lZXRvLXVpLW1haW4taGVhZGVyLXdpdGgtYnJlYWRjcnVtYnMtaGVpZ2h0KSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDAgMS41cmVtO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19zaWRlYmFyIHtcbiAgd2lkdGg6IHZhcigtLW50bS1yb2xlcy1zaWRlYmFyLXdpZHRoKTtcbiAgbWluLXdpZHRoOiB2YXIoLS1udG0tcm9sZXMtc2lkZWJhci13aWR0aCk7XG4gIGJvcmRlci1yaWdodDogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgYm9yZGVyLWxlZnQ6IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIGJvcmRlci10b3A6IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG59XG5cbi5udG0tcm9sZXMtdGFibGUtc2lkZWJhcl9fc2VhcmNoIHtcbiAgcGFkZGluZzogMjBweCAyNHB4O1xuICBoZWlnaHQ6IHZhcigtLW50bS1yb2xlcy10YWJsZS1oZWFkZXItaGVpZ2h0KTtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0IHtcbiAgaGVpZ2h0OiBjYWxjKFxuICAgIDEwMHZoIC0gdmFyKC0tbmVldG8tdWktbWFpbi1oZWFkZXItd2l0aC1icmVhZGNydW1icy1oZWlnaHQpIC0gdmFyKFxuICAgICAgICAtLW50bS1yb2xlcy10YWJsZS1oZWFkZXItaGVpZ2h0XG4gICAgICApIC0gdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWRlZmF1bHQtc2Nyb2xsKVxuICApO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX2xpc3QtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMTJweCAyNHB4O1xuICBtaW4taGVpZ2h0OiB2YXIoLS1udG0tcm9sZXMtdGFibGUtY2VsbC1oZWlnaHQpO1xufVxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0LWl0ZW0ubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX2xpc3QtaXRlbS0taGlnaGxpZ2h0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktcHJpbWFyeS0xMDApKTtcbiAgcGFkZGluZzogMTJweCAyNHB4O1xufVxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0LWl0ZW06bm90KC5udG0tcm9sZXMtdGFibGUtc2lkZWJhcl9fbGlzdC1pdGVtLS1oaWdobGlnaHRlZCkge1xuICBib3JkZXItYm90dG9tOiB0aGluIHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19jb2x1bW5zIHtcbiAgd2lkdGg6IGNhbGMoXG4gICAgMTAwdncgLSB2YXIoLS1uZWV0by11aS1zaWRlYmFyLXdpZHRoKSAtIHZhcigtLW50bS1yb2xlcy1zaWRlYmFyLXdpZHRoKSAtIDI0cHhcbiAgKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXRvcDogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgYm9yZGVyLWJvdHRvbTogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbn1cblxuLm50bS1yb2xlcy10YWJsZV9fY2VsbCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IHZhcigtLW50bS1yb2xlcy10YWJsZS1jZWxsLWhlaWdodCk7XG4gIHBhZGRpbmc6IDEycHggOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLXJpZ2h0OiB0aGluIHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlLWNlbGxfX2NoZWNrYm94LXdyYXBwZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMXJlbTtcbiAgd2lkdGg6IDFyZW07XG4gIG1hcmdpbjogYXV0bztcbiAgei1pbmRleDogMTA7XG59XG5cbi5udG0tcm9sZXMtdGFibGUtY2VsbF9fY2hlY2tib3gge1xuICB6LWluZGV4OiAxMDtcbn1cblxuLm50bS1yb2xlcy10YWJsZV9faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3ZlcmZsb3cteDogYXV0bztcbn1cbi5udG0tcm9sZXMtdGFibGVfX2hlYWRlciAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgaGVpZ2h0OiB2YXIoLS1udG0tcm9sZXMtdGFibGUtaGVhZGVyLWhlaWdodCk7XG59XG5cbi5udG0tcm9sZXMtdGFibGUtaGVhZGVyLWNlbGxfX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5udG0tcm9sZXMtdGFibGUtaGVhZGVyX19kcm9wZG93biB7XG4gIG1hcmdpbjogM3B4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1oZWFkZXJfX3JvbGUtbmFtZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19yb3dzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYyhcbiAgICAxMDB2aCAtIHZhcigtLW5lZXRvLXVpLW1haW4taGVhZGVyLXdpdGgtYnJlYWRjcnVtYnMtaGVpZ2h0KSAtIHZhcihcbiAgICAgICAgLS1udG0tcm9sZXMtdGFibGUtaGVhZGVyLWhlaWdodFxuICAgICAgKSAtIHZhcigtLW50bS1yb2xlcy10YWJsZS1kZWZhdWx0LXNjcm9sbClcbiAgKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xufVxuLm50bS1yb2xlcy10YWJsZV9fcm93czo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogMHB4O1xuICBoZWlnaHQ6IDBweDtcbn1cbi5udG0tcm9sZXMtdGFibGVfX3Jvd3M6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG59XG4ubnRtLXJvbGVzLXRhYmxlX19yb3dzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG59XG4ubnRtLXJvbGVzLXRhYmxlX19yb3dzOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLm50bS1yb2xlcy10YWJsZV9fcm93IC5udG0tcm9sZXMtdGFibGVfX2NlbGwge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubnRtLXJvbGVzLXRhYmxlX19yb3cgLm50bS1yb2xlcy10YWJsZV9fY2VsbCBwIHtcbiAgb3BhY2l0eTogMDtcbiAgd2lkdGg6IDM0MHB4O1xuICBtaW4td2lkdGg6IDM0MHB4O1xufVxuLm50bS1yb2xlcy10YWJsZV9fcm93Lm50bS1yb2xlcy10YWJsZV9fcm93LS1oaWdobGlnaHRlZCAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLXByaW1hcnktMTAwKSk7XG59XG4ubnRtLXJvbGVzLXRhYmxlX19yb3c6bm90KC5udG0tcm9sZXMtdGFibGVfX3Jvdy0taGlnaGxpZ2h0ZWQpIC5udG0tcm9sZXMtdGFibGVfX2NlbGwge1xuICBib3JkZXItYm90dG9tOiB0aGluIHNvbGlkIHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX2Ryb3AtZG93bi1idXR0b24ge1xuICBjb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktNjAwKSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm50bS1yb2xlcy1tb2RhbF9fYm9keSA+ICogKyAqIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbi5udG0tcm9sZXMtbW9kYWxfX2Zvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xufVxuXG4ubnRtLXJvbGVzLXBhbmVfX2JvZHkge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xufVxuLm50bS1yb2xlcy1wYW5lX19ib2R5LXdyYXBwZXIgPiAqICsgKiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG4ubnRtLXJvbGVzLXBhbmVfX2JvZHkgPiAqICsgKiB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbn1cbi5udG0tcm9sZXMtcGFuZV9fZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9faGVhZGluZyB7XG4gIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS01MDApKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS13aGl0ZSkpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC40cmVtIDA7XG59XG4ubnRtLXJvbGVzLXBlcm1pc3Npb25fX2NhcmQ6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMXB4O1xuICBsZWZ0OiAtMTVweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE0cHg7XG4gIHdpZHRoOiAxMHB4O1xufVxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19jYXJkLS1kZXNjcmlwdGlvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZC0tY2hlY2tib3gge1xuICBwYWRkaW5nOiAwIDAuNXJlbTtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCAubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94X19jb250YWluZXIge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCAubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94X19jb250YWluZXIgLm5lZXRvLXVpLWNoZWNrYm94W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkICsgLm5lZXRvLXVpLWxhYmVsIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19zdWItYmxvY2tzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLm50bS1yb2xlcy1wZXJtaXNzaW9uX19zdWItYmxvY2tzOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgdG9wOiAwO1xuICBjb250ZW50OiBcIlwiO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDE0cHgpO1xuICBsZWZ0OiA4cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbn1cbi5udG0tcm9sZXMtcGVybWlzc2lvbl9fc3ViLWJsb2NrczplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5udG0tcm9sZXMtcGVybWlzc2lvbi1jYXRlZ29yeS1jYXJkIHtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1uZWV0by11aS1yb3VuZGVkKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktNDAwKSk7XG59XG4ubnRtLXJvbGVzLXBlcm1pc3Npb24tY2F0ZWdvcnktY2FyZCA+IC5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZDo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubnRtLXJvbGVzLWhlbHAtdXJsLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDFyZW0gMDtcbn0iLCIubnRtLXNjcm9sbGJhciB7XG4gICZfX2lubmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDIwMHB4O1xuICB9XG5cbiAgJl9fb3V0ZXIge1xuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCI7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogMHB4O1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICAgIG92ZXJmbG93OiBcImhpZGRlblwiO1xuICAgIHZpc2liaWxpdHk6IFwiaGlkZGVuXCI7XG4gIH1cbn1cbiIsIi5udG0tZW1wdHktc3RhdGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiIsIi5udG0tbWVtYmVycyB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aWR0aDogMTAwJTtcblxuICAmLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cblxuICAmLXBhZ2UtbG9hZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICB9XG5cbiAgJi10YWJsZSB7XG4gICAgJl9fd3JhcHBlciB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBnYXA6IDAuNzVyZW07XG4gICAgfVxuICAgICZfX2NvbHVtbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogMC41cmVtO1xuICAgIH1cbiAgfVxuXG4gICYtZm9ybSB7XG4gICAgJl9faGVhZGVyIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICB9XG5cbiAgICAmX19ib2R5IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAmID4gKiArICoge1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9vdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6IDAuNXJlbTtcbiAgICB9XG4gIH1cbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVyc19faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgJiA+ICogKyAqIHtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICB9XG59XG5cbi5udG0tbWFuYWdlLW1lbWJlcnNfX2FwcC1yb2xlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzLWFwcC1yb2xlc19fc2VsZWN0LXdyYXBwZXIge1xuICB3aWR0aDogNTAlO1xuICBtYXgtd2lkdGg6IDI1MHB4O1xufVxuXG4ubnRtLW1hbmFnZS1tZW1iZXJzLWVmZmVjdGl2ZS1hcHAtcm9sZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuMjVyZW0gMDtcbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVycy1lZmZlY3RpdmUtYXBwLXJvbGVzX19yb2xlLW5hbWUge1xuICB3aWR0aDogNjclO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xufVxuXG4ubnRtLW1lbWJlcnMtcmFkaW8tZ3JvdXAge1xuICB3aWR0aDogMTAwJTtcbiAgLm5lZXRvLXVpLXJhZGlvX19jb250YWluZXItLXN0YWNrZWQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgJl9fbGFiZWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbiAgfVxuXG4gICZfX2ljb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4ubnRtLW1lbWJlcnMtZm9ybS1yYWRpby1pdGVtIHtcbiAgJl9fd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBhZGRpbmc6IDhweCAwcHggIWltcG9ydGFudDtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAmX19sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG5cbiAgJl9fZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS03MDApKTtcbiAgfVxufVxuXG4ubnRtLXByb2R1Y3Qtcm9sZXMtdGFibGUge1xuICB0aCB7XG4gICAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTcwMCkpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tbmVldG8tdWktdGV4dC14cyk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tbmVldG8tdWktZm9udC1ib2xkKTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG4gIHRkLFxuICB0aCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gIH1cbn1cblxuLm50bS1tYW5hZ2UtbWVtYmVyc19fY2hlY2tib3gtYWxpZ24tc3RhcnQubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIge1xuICAubmVldG8tdWktY2hlY2tib3hfX2NvbnRhaW5lciB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLm5lZXRvLXVpLWNoZWNrYm94W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG59XG4iLCIubnRtLXJvbGVzLXRhYmxlX193cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtICN7dmFyKC0tbmVldG8tdWktbWFpbi1oZWFkZXItd2l0aC1icmVhZGNydW1icy1oZWlnaHQpfSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBhZGRpbmc6IDAgMS41cmVtO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19zaWRlYmFyIHtcbiAgd2lkdGg6IHZhcigtLW50bS1yb2xlcy1zaWRlYmFyLXdpZHRoKTtcbiAgbWluLXdpZHRoOiB2YXIoLS1udG0tcm9sZXMtc2lkZWJhci13aWR0aCk7XG4gIGJvcmRlci1yaWdodDogdGhpbiBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS0zMDApKTtcbiAgYm9yZGVyLWxlZnQ6IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIGJvcmRlci10b3A6IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG59XG5cbi5udG0tcm9sZXMtdGFibGUtc2lkZWJhcl9fc2VhcmNoIHtcbiAgcGFkZGluZzogMjBweCAyNHB4O1xuICBoZWlnaHQ6IHZhcigtLW50bS1yb2xlcy10YWJsZS1oZWFkZXItaGVpZ2h0KTtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1zaWRlYmFyX19saXN0IHtcbiAgaGVpZ2h0OiBjYWxjKFxuICAgIDEwMHZoIC0gI3t2YXIoLS1uZWV0by11aS1tYWluLWhlYWRlci13aXRoLWJyZWFkY3J1bWJzLWhlaWdodCl9IC0gdmFyKFxuICAgICAgICAtLW50bS1yb2xlcy10YWJsZS1oZWFkZXItaGVpZ2h0XG4gICAgICApIC0gdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWRlZmF1bHQtc2Nyb2xsKVxuICApO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX2xpc3QtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMTJweCAyNHB4O1xuICBtaW4taGVpZ2h0OiB2YXIoLS1udG0tcm9sZXMtdGFibGUtY2VsbC1oZWlnaHQpO1xuXG4gICYubnRtLXJvbGVzLXRhYmxlLXNpZGViYXJfX2xpc3QtaXRlbS0taGlnaGxpZ2h0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1wcmltYXJ5LTEwMCkpO1xuICAgIHBhZGRpbmc6IDEycHggMjRweDtcbiAgfVxuXG4gICY6bm90KC5udG0tcm9sZXMtdGFibGUtc2lkZWJhcl9fbGlzdC1pdGVtLS1oaWdobGlnaHRlZCkge1xuICAgIGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIH1cbn1cblxuLm50bS1yb2xlcy10YWJsZV9fY29sdW1ucyB7XG4gIHdpZHRoOiBjYWxjKFxuICAgIDEwMHZ3IC0gI3t2YXIoLS1uZWV0by11aS1zaWRlYmFyLXdpZHRoKX0gLSB2YXIoLS1udG0tcm9sZXMtc2lkZWJhci13aWR0aCkgLSAyNHB4XG4gICk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci10b3A6IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gIGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG59XG5cbi5udG0tcm9sZXMtdGFibGVfX2NlbGwge1xuICB3aWR0aDogMTAwJTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiB2YXIoLS1udG0tcm9sZXMtdGFibGUtY2VsbC1oZWlnaHQpO1xuICBwYWRkaW5nOiAxMnB4IDhweDtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICBib3JkZXItcmlnaHQ6IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG59XG5cbi5udG0tcm9sZXMtdGFibGUtY2VsbF9fY2hlY2tib3gtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxcmVtO1xuICB3aWR0aDogMXJlbTtcbiAgbWFyZ2luOiBhdXRvO1xuICB6LWluZGV4OiAxMDtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1jZWxsX19jaGVja2JveCB7XG4gIHotaW5kZXg6IDEwO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuXG4gIC5udG0tcm9sZXMtdGFibGVfX2NlbGwge1xuICAgIGhlaWdodDogdmFyKC0tbnRtLXJvbGVzLXRhYmxlLWhlYWRlci1oZWlnaHQpO1xuICB9XG59XG5cbi5udG0tcm9sZXMtdGFibGUtaGVhZGVyLWNlbGxfX2NvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5udG0tcm9sZXMtdGFibGUtaGVhZGVyX19kcm9wZG93biB7XG4gIG1hcmdpbjogM3B4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLm50bS1yb2xlcy10YWJsZS1oZWFkZXJfX3JvbGUtbmFtZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ubnRtLXJvbGVzLXRhYmxlX19yb3dzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogY2FsYyhcbiAgICAxMDB2aCAtICN7dmFyKC0tbmVldG8tdWktbWFpbi1oZWFkZXItd2l0aC1icmVhZGNydW1icy1oZWlnaHQpfSAtIHZhcihcbiAgICAgICAgLS1udG0tcm9sZXMtdGFibGUtaGVhZGVyLWhlaWdodFxuICAgICAgKSAtIHZhcigtLW50bS1yb2xlcy10YWJsZS1kZWZhdWx0LXNjcm9sbClcbiAgKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgQGluY2x1ZGUgc2Nyb2xsYmFycyhcbiAgICAwcHgsXG4gICAgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSksXG4gICAgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSlcbiAgKTtcbn1cblxuLm50bS1yb2xlcy10YWJsZV9fcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8vIEhpZGRlbiAtIEp1c3QgZm9yIGhlaWdodCByZWZlcmVuY2VcbiAgICBwIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB3aWR0aDogMzQwcHg7XG4gICAgICBtaW4td2lkdGg6IDM0MHB4O1xuICAgIH1cbiAgfVxuXG4gICYubnRtLXJvbGVzLXRhYmxlX19yb3ctLWhpZ2hsaWdodGVkIHtcbiAgICAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1wcmltYXJ5LTEwMCkpO1xuICAgIH1cbiAgfVxuXG4gICY6bm90KC5udG0tcm9sZXMtdGFibGVfX3Jvdy0taGlnaGxpZ2h0ZWQpIHtcbiAgICAubnRtLXJvbGVzLXRhYmxlX19jZWxsIHtcbiAgICAgIGJvcmRlci1ib3R0b206IHRoaW4gc29saWQgcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gICAgfVxuICB9XG59XG5cbi5udG0tcm9sZXMtdGFibGUtc2lkZWJhcl9fZHJvcC1kb3duLWJ1dHRvbiB7XG4gIGNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktZ3JheS02MDApKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubnRtLXJvbGVzLW1vZGFsIHtcbiAgJl9fYm9keSA+ICogKyAqIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICB9XG5cbiAgJl9fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMC41cmVtO1xuICB9XG59XG5cbi5udG0tcm9sZXMtcGFuZSB7XG4gICZfX2JvZHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcblxuICAgICYtd3JhcHBlciA+ICogKyAqIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgJiA+ICogKyAqIHtcbiAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICB9XG4gIH1cblxuICAmX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAwLjVyZW07XG4gIH1cbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uIHtcbiAgJl9faGVhZGluZyB7XG4gICAgY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTUwMCkpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIH1cblxuICAmX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IodmFyKC0tbmVldG8tdWktd2hpdGUpKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIHBhZGRpbmc6IDAuNHJlbSAwO1xuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKHZhcigtLW5lZXRvLXVpLWdyYXktMzAwKSk7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBsZWZ0OiAtMTVweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMTRweDtcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgIH1cblxuICAgICYtLWRlc2NyaXB0aW9uIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAmLS1jaGVja2JveCB7XG4gICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICB9XG5cbiAgICAubmVldG8tdWktY2hlY2tib3hfX3dyYXBwZXIgLm5lZXRvLXVpLWNoZWNrYm94X19jb250YWluZXIge1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgIC5uZWV0by11aS1jaGVja2JveFt0eXBlPVwiY2hlY2tib3hcIl06ZGlzYWJsZWQgKyAubmVldG8tdWktbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJl9fc3ViLWJsb2NrcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYih2YXIoLS1uZWV0by11aS1ncmF5LTMwMCkpO1xuICAgICAgdG9wOiAwO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMTRweCk7XG4gICAgICBsZWZ0OiA4cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgIH1cblxuICAgICY6ZW1wdHkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLm50bS1yb2xlcy1wZXJtaXNzaW9uLWNhdGVnb3J5LWNhcmQge1xuICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLW5lZXRvLXVpLXJvdW5kZWQpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2IodmFyKC0tbmVldG8tdWktZ3JheS00MDApKTtcbiAgJiA+IC5udG0tcm9sZXMtcGVybWlzc2lvbl9fY2FyZCB7XG4gICAgJjo6YWZ0ZXIge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLm50bS1yb2xlcy1oZWxwLXVybC13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtIDA7XG59XG4iLCJAbWl4aW4gc2Nyb2xsYmFycyhcbiAgJHNpemUsXG4gICRmb3JlZ3JvdW5kLWNvbG9yOiAkbmVldG8tdWktZ3JheS0zMDAsXG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBcInRyYW5zcGFyZW50XCJcbikge1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiAkc2l6ZTtcbiAgICBoZWlnaHQ6ICRzaXplO1xuICB9XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6ICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIH1cblxuICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgfVxuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZC1jb2xvcjtcbiAgfVxufVxuIl19 */";
|
|
11450
13221
|
n(css,{});
|
|
11451
13222
|
|
|
11452
13223
|
exports.ManageMember = ManageMember;
|