@bigbinary/neeto-team-members-frontend 2.7.3 → 2.8.1
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 +2161 -394
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +2168 -401
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
package/dist/index.cjs.js
CHANGED
|
@@ -6,24 +6,24 @@ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var pure = require('@bigbinary/neeto-commons-frontend/pure');
|
|
8
8
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
9
|
-
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
10
9
|
var Container = require('@bigbinary/neeto-molecules/Container');
|
|
11
10
|
var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
|
|
12
|
-
var SubHeader$2 = require('@bigbinary/neeto-molecules/SubHeader');
|
|
13
|
-
var neetoui = require('@bigbinary/neetoui');
|
|
14
11
|
var ramda = require('ramda');
|
|
15
12
|
var reactQuery = require('react-query');
|
|
16
13
|
var devtools = require('react-query/devtools');
|
|
17
14
|
var axios = require('axios');
|
|
15
|
+
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
18
16
|
var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
|
|
17
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
19
18
|
var formik$1 = require('@bigbinary/neetoui/formik');
|
|
20
19
|
var formik = require('formik');
|
|
21
20
|
var yup = require('yup');
|
|
22
|
-
var
|
|
21
|
+
var classnames = require('classnames');
|
|
23
22
|
var neetoFiltersFrontend = require('@bigbinary/neeto-filters-frontend');
|
|
23
|
+
var SubHeaderMolecule = require('@bigbinary/neeto-molecules/SubHeader');
|
|
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 SubHeader__default = /*#__PURE__*/_interopDefaultLegacy(SubHeader$2);
|
|
53
52
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
54
53
|
var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
|
|
55
54
|
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
55
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
56
|
+
var SubHeaderMolecule__default = /*#__PURE__*/_interopDefaultLegacy(SubHeaderMolecule);
|
|
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,247 +5681,1644 @@ 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
|
-
|
|
5912
|
-
|
|
5913
|
-
|
|
5914
|
-
|
|
5915
|
-
|
|
5916
|
-
|
|
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 DEFAULT_PAGE_SIZE = 30;
|
|
7091
|
+
var ADMIN_ROLE_NAME = "Admin";
|
|
7092
|
+
var OWNER_ROLE_NAME = "Owner";
|
|
7093
|
+
var ADMIN_ROLES = [ADMIN_ROLE_NAME, OWNER_ROLE_NAME];
|
|
7094
|
+
|
|
7095
|
+
var queryClient = new reactQuery.QueryClient({
|
|
7096
|
+
queryCache: new reactQuery.QueryCache()
|
|
7097
|
+
});
|
|
7098
|
+
|
|
7099
|
+
var withReactQuery = function withReactQuery(Component) {
|
|
7100
|
+
var QueryWrapper = function QueryWrapper(props) {
|
|
7101
|
+
return /*#__PURE__*/React__default["default"].createElement(reactQuery.QueryClientProvider, {
|
|
7102
|
+
client: queryClient
|
|
7103
|
+
}, /*#__PURE__*/React__default["default"].createElement(Component, props), /*#__PURE__*/React__default["default"].createElement(devtools.ReactQueryDevtools, {
|
|
7104
|
+
initialIsOpen: false,
|
|
7105
|
+
position: "bottom-right"
|
|
7106
|
+
}));
|
|
7107
|
+
};
|
|
7108
|
+
return QueryWrapper;
|
|
7109
|
+
};
|
|
7110
|
+
|
|
7111
|
+
/* eslint-disable @bigbinary/neeto/no-dangling-constants */
|
|
7112
|
+
var BASE_URL = "team_members";
|
|
7113
|
+
|
|
7114
|
+
var fetch$3 = function fetch() {
|
|
7115
|
+
return axios__default["default"].get("".concat(BASE_URL, "/permissions"));
|
|
7116
|
+
};
|
|
7117
|
+
var permissionsApi = {
|
|
7118
|
+
fetch: fetch$3
|
|
7119
|
+
};
|
|
7120
|
+
|
|
7121
|
+
var DEFAULT_STALE_TIME = 300000; // 5 minutes
|
|
7122
|
+
|
|
7123
|
+
var QUERY_KEYS = {
|
|
7124
|
+
PERMISSIONS: "neeto-team-members-permissions",
|
|
7125
|
+
ROLES: "neeto-team-members-roles",
|
|
7126
|
+
GLOBAL_ROLES: "neeto-team-members-global-roles",
|
|
7127
|
+
TEAMS: "neeto-team-members-teams",
|
|
7128
|
+
TEAMS_DEPENDENCIES: "neeto-team-members-teams-dependencies"
|
|
7129
|
+
};
|
|
7130
|
+
|
|
7131
|
+
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; }
|
|
7132
|
+
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; }
|
|
7133
|
+
var useFetchPermissions = function useFetchPermissions() {
|
|
7134
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7135
|
+
return reactQuery.useQuery(QUERY_KEYS.PERMISSIONS, permissionsApi.fetch, _objectSpread$c({
|
|
7136
|
+
staleTime: DEFAULT_STALE_TIME,
|
|
7137
|
+
select: function select(response) {
|
|
7138
|
+
return response === null || response === void 0 ? void 0 : response.permissions;
|
|
7139
|
+
}
|
|
7140
|
+
}, options));
|
|
7141
|
+
};
|
|
7142
|
+
|
|
7143
|
+
var fetch$2 = function fetch() {
|
|
7144
|
+
return axios__default["default"].get("".concat(BASE_URL, "/global_roles"));
|
|
7145
|
+
};
|
|
7146
|
+
var globalRolesApi = {
|
|
7147
|
+
fetch: fetch$2
|
|
7148
|
+
};
|
|
7149
|
+
|
|
7150
|
+
var fetch$1 = function fetch() {
|
|
7151
|
+
return axios__default["default"].get("".concat(BASE_URL, "/organization_roles"));
|
|
7152
|
+
};
|
|
7153
|
+
var create$1 = function create(payload) {
|
|
7154
|
+
return axios__default["default"].post("".concat(BASE_URL, "/organization_roles"), payload);
|
|
7155
|
+
};
|
|
7156
|
+
var update$1 = function update(id, payload) {
|
|
7157
|
+
return axios__default["default"].patch("".concat(BASE_URL, "/organization_roles/").concat(id), payload);
|
|
7158
|
+
};
|
|
7159
|
+
var destroy = function destroy(id, payload) {
|
|
7160
|
+
return axios__default["default"]["delete"]("".concat(BASE_URL, "/organization_roles/").concat(id), {
|
|
7161
|
+
data: payload
|
|
7162
|
+
});
|
|
7163
|
+
};
|
|
7164
|
+
var bulkUpdate$1 = function bulkUpdate(payload) {
|
|
7165
|
+
return axios__default["default"].patch("".concat(BASE_URL, "/organization_roles/bulk_update"), payload);
|
|
7166
|
+
};
|
|
7167
|
+
var organizationRolesApi = {
|
|
7168
|
+
bulkUpdate: bulkUpdate$1,
|
|
7169
|
+
create: create$1,
|
|
7170
|
+
destroy: destroy,
|
|
7171
|
+
fetch: fetch$1,
|
|
7172
|
+
update: update$1
|
|
7173
|
+
};
|
|
7174
|
+
|
|
7175
|
+
var _excluded$2 = ["onSuccess"],
|
|
7176
|
+
_excluded2$2 = ["onSuccess"],
|
|
7177
|
+
_excluded3$1 = ["onSuccess"],
|
|
7178
|
+
_excluded4 = ["onSuccess"];
|
|
7179
|
+
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; }
|
|
7180
|
+
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; }
|
|
7181
|
+
var useFetchRoles = function useFetchRoles() {
|
|
7182
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7183
|
+
return reactQuery.useQuery(QUERY_KEYS.ROLES, organizationRolesApi.fetch, _objectSpread$b({
|
|
7184
|
+
staleTime: DEFAULT_STALE_TIME,
|
|
7185
|
+
select: function select(response) {
|
|
7186
|
+
return response === null || response === void 0 ? void 0 : response.organizationRoles;
|
|
7187
|
+
}
|
|
7188
|
+
}, options));
|
|
7189
|
+
};
|
|
7190
|
+
var useFetchGlobalRoles = function useFetchGlobalRoles() {
|
|
7191
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7192
|
+
return reactQuery.useQuery(QUERY_KEYS.GLOBAL_ROLES, globalRolesApi.fetch, _objectSpread$b({
|
|
7193
|
+
staleTime: DEFAULT_STALE_TIME
|
|
7194
|
+
}, options));
|
|
7195
|
+
};
|
|
7196
|
+
var useCreateRole = function useCreateRole(_ref) {
|
|
7197
|
+
var _onSuccess = _ref.onSuccess,
|
|
7198
|
+
options = _objectWithoutProperties(_ref, _excluded$2);
|
|
7199
|
+
return reactQuery.useMutation(organizationRolesApi.create, _objectSpread$b({
|
|
7200
|
+
onSuccess: function onSuccess(response) {
|
|
7201
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
7202
|
+
queryClient.setQueriesData(QUERY_KEYS.ROLES, function (cachedData) {
|
|
7203
|
+
return ramda.modifyPath(["organizationRoles"], ramda.prepend(response.organizationRole), cachedData);
|
|
7204
|
+
});
|
|
7205
|
+
_onSuccess === null || _onSuccess === void 0 ? void 0 : _onSuccess();
|
|
7206
|
+
}
|
|
7207
|
+
}, options));
|
|
7208
|
+
};
|
|
7209
|
+
var useUpdateRole = function useUpdateRole(_ref2) {
|
|
7210
|
+
var _onSuccess2 = _ref2.onSuccess,
|
|
7211
|
+
options = _objectWithoutProperties(_ref2, _excluded2$2);
|
|
7212
|
+
return reactQuery.useMutation(function (_ref3) {
|
|
7213
|
+
var id = _ref3.id,
|
|
7214
|
+
payload = _ref3.payload;
|
|
7215
|
+
return organizationRolesApi.update(id, payload);
|
|
7216
|
+
}, _objectSpread$b({
|
|
7217
|
+
onSuccess: function onSuccess(response) {
|
|
7218
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
|
|
7219
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
7220
|
+
queryClient.setQueriesData(QUERY_KEYS.ROLES, function (cachedData) {
|
|
7221
|
+
return ramda.assocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.organizationRole.id), cachedData.organizationRoles)], response.organizationRole, cachedData);
|
|
7222
|
+
});
|
|
7223
|
+
_onSuccess2 === null || _onSuccess2 === void 0 ? void 0 : _onSuccess2();
|
|
7224
|
+
}
|
|
7225
|
+
}, options));
|
|
7226
|
+
};
|
|
7227
|
+
var useDestroyRole = function useDestroyRole(_ref4) {
|
|
7228
|
+
var _ref4$onSuccess = _ref4.onSuccess,
|
|
7229
|
+
_onSuccess3 = _ref4$onSuccess === void 0 ? pure.noop : _ref4$onSuccess,
|
|
7230
|
+
options = _objectWithoutProperties(_ref4, _excluded3$1);
|
|
7231
|
+
return reactQuery.useMutation(function (_ref5) {
|
|
7232
|
+
var id = _ref5.id,
|
|
7233
|
+
payload = _ref5.payload;
|
|
7234
|
+
return organizationRolesApi.destroy(id, payload);
|
|
7235
|
+
}, _objectSpread$b({
|
|
7236
|
+
onSuccess: function onSuccess(response) {
|
|
7237
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
|
|
7238
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
7239
|
+
queryClient.setQueriesData(QUERY_KEYS.ROLES, function (cachedData) {
|
|
7240
|
+
return ramda.dissocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.id), cachedData.organizationRoles)], cachedData);
|
|
7241
|
+
});
|
|
7242
|
+
_onSuccess3 === null || _onSuccess3 === void 0 ? void 0 : _onSuccess3();
|
|
7243
|
+
}
|
|
7244
|
+
}, options));
|
|
7245
|
+
};
|
|
7246
|
+
var useBulkUpdateRoles = function useBulkUpdateRoles(_ref6) {
|
|
7247
|
+
var _onSuccess4 = _ref6.onSuccess,
|
|
7248
|
+
options = _objectWithoutProperties(_ref6, _excluded4);
|
|
7249
|
+
return reactQuery.useMutation(organizationRolesApi.bulkUpdate, _objectSpread$b({
|
|
7250
|
+
onSuccess: function onSuccess() {
|
|
7251
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
|
|
7252
|
+
queryClient.invalidateQueries(QUERY_KEYS.TEAMS_DEPENDENCIES);
|
|
7253
|
+
queryClient.invalidateQueries(QUERY_KEYS.ROLES);
|
|
7254
|
+
_onSuccess4 === null || _onSuccess4 === void 0 ? void 0 : _onSuccess4();
|
|
7255
|
+
}
|
|
7256
|
+
}, options));
|
|
7257
|
+
};
|
|
7258
|
+
|
|
7259
|
+
var renderSearchProps = function renderSearchProps(searchString, setSearchString) {
|
|
7260
|
+
return {
|
|
7261
|
+
"data-cy": "ntm-search-roles-input",
|
|
7262
|
+
onChange: function onChange(_ref) {
|
|
7263
|
+
var value = _ref.target.value;
|
|
7264
|
+
return setSearchString(value);
|
|
7265
|
+
},
|
|
7266
|
+
placeholder: instance.t("common.search_", {
|
|
7267
|
+
what: instance.t("common.role", PLURAL).toLocaleLowerCase()
|
|
7268
|
+
}),
|
|
7269
|
+
value: searchString
|
|
7270
|
+
};
|
|
7271
|
+
};
|
|
7272
|
+
var renderBreadcrumbs = function renderBreadcrumbs(breadcrumbs) {
|
|
7273
|
+
return breadcrumbs !== null && breadcrumbs !== void 0 ? breadcrumbs : [{
|
|
7274
|
+
text: instance.t("metaNames.member", PLURAL),
|
|
7275
|
+
link: "/members"
|
|
7276
|
+
}];
|
|
7277
|
+
};
|
|
7278
|
+
|
|
7279
|
+
var AddRoleButton = function AddRoleButton(_ref) {
|
|
7280
|
+
var config = _ref.config,
|
|
7281
|
+
onClick = _ref.onClick;
|
|
7282
|
+
var _useTranslation = useTranslation(),
|
|
7283
|
+
t = _useTranslation.t;
|
|
7284
|
+
var isCreatePermissionGranted = config.permissions.create;
|
|
7285
|
+
return /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
7286
|
+
content: t("tooltips.noPermissionToAddRole"),
|
|
7287
|
+
disabled: isCreatePermissionGranted,
|
|
7288
|
+
position: "bottom"
|
|
7289
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
7290
|
+
"data-cy": "ntm-add-role-button",
|
|
7291
|
+
disabled: !isCreatePermissionGranted,
|
|
7292
|
+
label: t("common.addNew_", {
|
|
7293
|
+
what: t("common.role", SINGULAR).toLocaleLowerCase()
|
|
7294
|
+
}),
|
|
7295
|
+
onClick: onClick
|
|
7296
|
+
})));
|
|
7297
|
+
};
|
|
7298
|
+
|
|
7299
|
+
var Header$1 = function Header(_ref) {
|
|
7300
|
+
var _config$header;
|
|
7301
|
+
var config = _ref.config,
|
|
7302
|
+
handleReset = _ref.handleReset,
|
|
7303
|
+
handleSubmit = _ref.handleSubmit,
|
|
7304
|
+
isDirty = _ref.isDirty,
|
|
7305
|
+
searchString = _ref.searchString,
|
|
7306
|
+
setSearchString = _ref.setSearchString,
|
|
7307
|
+
setIsNewRolePaneOpen = _ref.setIsNewRolePaneOpen;
|
|
7308
|
+
var _useTranslation = useTranslation(),
|
|
7309
|
+
t = _useTranslation.t;
|
|
7310
|
+
var isUpdatePermissionGranted = config.permissions.update;
|
|
7311
|
+
return /*#__PURE__*/React__default["default"].createElement(NeetoHeader__default["default"], {
|
|
7312
|
+
breadcrumbs: renderBreadcrumbs(config === null || config === void 0 ? void 0 : (_config$header = config.header) === null || _config$header === void 0 ? void 0 : _config$header.breadcrumbs),
|
|
7313
|
+
className: "ntm-roles-header",
|
|
5917
7314
|
searchProps: renderSearchProps(searchString, setSearchString),
|
|
5918
7315
|
actionBlock: isDirty ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
5919
7316
|
content: t("tooltips.noPermissionToEditRoles"),
|
|
5920
|
-
disabled:
|
|
7317
|
+
disabled: isUpdatePermissionGranted,
|
|
5921
7318
|
position: "bottom"
|
|
5922
7319
|
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
5923
7320
|
"data-cy": "ntm-role-submission-button",
|
|
5924
|
-
disabled: !
|
|
7321
|
+
disabled: !isUpdatePermissionGranted,
|
|
5925
7322
|
label: t("buttons.saveChanges"),
|
|
5926
7323
|
type: "submit",
|
|
5927
7324
|
onClick: handleSubmit
|
|
@@ -5932,7 +7329,7 @@ var Header$1 = function Header(_ref) {
|
|
|
5932
7329
|
type: "reset",
|
|
5933
7330
|
onClick: handleReset
|
|
5934
7331
|
})) : /*#__PURE__*/React__default["default"].createElement(AddRoleButton, {
|
|
5935
|
-
|
|
7332
|
+
config: config,
|
|
5936
7333
|
onClick: function onClick() {
|
|
5937
7334
|
return setIsNewRolePaneOpen(true);
|
|
5938
7335
|
}
|
|
@@ -5952,7 +7349,7 @@ var Header$1 = function Header(_ref) {
|
|
|
5952
7349
|
};
|
|
5953
7350
|
|
|
5954
7351
|
function _arrayWithoutHoles(arr) {
|
|
5955
|
-
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
7352
|
+
if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
|
|
5956
7353
|
}
|
|
5957
7354
|
|
|
5958
7355
|
function _nonIterableSpread() {
|
|
@@ -5960,7 +7357,7 @@ function _nonIterableSpread() {
|
|
|
5960
7357
|
}
|
|
5961
7358
|
|
|
5962
7359
|
function _toConsumableArray(arr) {
|
|
5963
|
-
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
7360
|
+
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
|
|
5964
7361
|
}
|
|
5965
7362
|
|
|
5966
7363
|
var transformObjectToDotNotation = function transformObjectToDotNotation(object) {
|
|
@@ -6014,13 +7411,19 @@ var ScrollToErrorField = function ScrollToErrorField(_ref) {
|
|
|
6014
7411
|
var ROLE_NAME_MAX_LENGTH = 40;
|
|
6015
7412
|
var ROLE_DESCRIPTION_MAX_LENGTH = 255;
|
|
6016
7413
|
var ADD_ROLE_FORM_VALIDATION_SCHEMA = yup.object({
|
|
6017
|
-
name: yup.string().trim().max(ROLE_NAME_MAX_LENGTH,
|
|
7414
|
+
name: yup.string().trim().max(ROLE_NAME_MAX_LENGTH,
|
|
7415
|
+
// @ts-ignore
|
|
7416
|
+
instance.t("validations.limitExceeded", {
|
|
6018
7417
|
what: instance.t("common.name").toLocaleLowerCase(),
|
|
6019
7418
|
limit: ROLE_NAME_MAX_LENGTH
|
|
6020
|
-
}))
|
|
6021
|
-
|
|
7419
|
+
}))
|
|
7420
|
+
// @ts-ignore
|
|
7421
|
+
.required(instance.t("validations.enterRoleName")),
|
|
7422
|
+
description: yup.string().trim().max(ROLE_DESCRIPTION_MAX_LENGTH,
|
|
7423
|
+
// @ts-ignore
|
|
7424
|
+
instance.t("validations.limitExceeded", {
|
|
6022
7425
|
what: instance.t("common.description").toLocaleLowerCase(),
|
|
6023
|
-
limit:
|
|
7426
|
+
limit: ROLE_DESCRIPTION_MAX_LENGTH
|
|
6024
7427
|
}))
|
|
6025
7428
|
});
|
|
6026
7429
|
var ADD_ROLE_FORM_INITIAL_VALUES = {
|
|
@@ -6043,6 +7446,25 @@ var sortPermissionsBySequence = function sortPermissionsBySequence() {
|
|
|
6043
7446
|
return first.sequence - second.sequence;
|
|
6044
7447
|
}) : permissions;
|
|
6045
7448
|
};
|
|
7449
|
+
var getPermissionGroups = function getPermissionGroups() {
|
|
7450
|
+
var permissions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
7451
|
+
var sortBySequence = sortPermissionsBySequence(permissions);
|
|
7452
|
+
var groupedPermissions = new Map();
|
|
7453
|
+
sortBySequence.forEach(function (permission) {
|
|
7454
|
+
if (groupedPermissions.has(permission === null || permission === void 0 ? void 0 : permission.category)) {
|
|
7455
|
+
var category = groupedPermissions.get(permission.category);
|
|
7456
|
+
var currentPermissions = category.get("permissions");
|
|
7457
|
+
var _permissions = ramda.append(permission, currentPermissions);
|
|
7458
|
+
category.set("permissions", _permissions);
|
|
7459
|
+
} else {
|
|
7460
|
+
var value = new Map();
|
|
7461
|
+
value.set("permissions", ramda.append(permission, []));
|
|
7462
|
+
value.set("isPermissionVisible", true);
|
|
7463
|
+
groupedPermissions.set(permission === null || permission === void 0 ? void 0 : permission.category, value);
|
|
7464
|
+
}
|
|
7465
|
+
});
|
|
7466
|
+
return groupedPermissions;
|
|
7467
|
+
};
|
|
6046
7468
|
var getModifiedPermissions = function getModifiedPermissions() {
|
|
6047
7469
|
var roles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
6048
7470
|
var modifiedRoles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
@@ -6321,61 +7743,213 @@ var ManageRoles = function ManageRoles(_ref) {
|
|
|
6321
7743
|
}));
|
|
6322
7744
|
};
|
|
6323
7745
|
|
|
6324
|
-
var
|
|
6325
|
-
|
|
6326
|
-
|
|
6327
|
-
|
|
6328
|
-
|
|
6329
|
-
|
|
6330
|
-
|
|
6331
|
-
|
|
6332
|
-
|
|
6333
|
-
|
|
6334
|
-
|
|
6335
|
-
|
|
6336
|
-
|
|
7746
|
+
var DEFAULT_MANAGE_ROLE_VALUES = {
|
|
7747
|
+
isDelete: false,
|
|
7748
|
+
isEdit: false,
|
|
7749
|
+
selectedRole: {}
|
|
7750
|
+
};
|
|
7751
|
+
|
|
7752
|
+
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; } } }; }
|
|
7753
|
+
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); }
|
|
7754
|
+
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; }
|
|
7755
|
+
neetoui.Dropdown.Menu;
|
|
7756
|
+
neetoui.Dropdown.MenuItem;
|
|
7757
|
+
var deepClone = function deepClone(object) {
|
|
7758
|
+
if (!object || true === object) {
|
|
7759
|
+
//this also handles boolean as true and false
|
|
7760
|
+
return object;
|
|
7761
|
+
}
|
|
7762
|
+
var objectType = _typeof$1(object);
|
|
7763
|
+
if ("number" === objectType || "string" === objectType) {
|
|
7764
|
+
// add your immutables here
|
|
7765
|
+
return object;
|
|
7766
|
+
}
|
|
7767
|
+
var result = null;
|
|
7768
|
+
if (Array.isArray(object)) {
|
|
7769
|
+
result = [];
|
|
7770
|
+
} else if (!object.constructor) {
|
|
7771
|
+
result = {};
|
|
7772
|
+
} else {
|
|
7773
|
+
result = new object.constructor();
|
|
7774
|
+
}
|
|
7775
|
+
if (object instanceof Map) {
|
|
7776
|
+
var _iterator = _createForOfIteratorHelper(object.keys()),
|
|
7777
|
+
_step;
|
|
7778
|
+
try {
|
|
7779
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
7780
|
+
var key = _step.value;
|
|
7781
|
+
result.set(key, deepClone(object.get(key)));
|
|
7782
|
+
}
|
|
7783
|
+
} catch (err) {
|
|
7784
|
+
_iterator.e(err);
|
|
7785
|
+
} finally {
|
|
7786
|
+
_iterator.f();
|
|
7787
|
+
}
|
|
7788
|
+
}
|
|
7789
|
+
Object.keys(object).forEach(function (key) {
|
|
7790
|
+
if (Object.prototype.hasOwnProperty.call(object, key)) {
|
|
7791
|
+
result[key] = deepClone(object[key]);
|
|
7792
|
+
}
|
|
7793
|
+
});
|
|
7794
|
+
return result;
|
|
6337
7795
|
};
|
|
6338
|
-
var
|
|
6339
|
-
|
|
7796
|
+
var renderRolesTooltipContent = function renderRolesTooltipContent(roleName) {
|
|
7797
|
+
return Object.is(roleName, "Admin") ? t$2("tooltips.adminMustHaveAccess") : t$2("tooltips.noPermissionToEditRoles");
|
|
7798
|
+
};
|
|
7799
|
+
var removeDuplicates = function removeDuplicates(array) {
|
|
7800
|
+
return _toConsumableArray(new Set(array));
|
|
7801
|
+
};
|
|
7802
|
+
var updatePermissionVisibility = function updatePermissionVisibility(categoryName, permissions) {
|
|
7803
|
+
var category = permissions.get(categoryName);
|
|
7804
|
+
var isPermissionVisible = category.get("isPermissionVisible");
|
|
7805
|
+
category.set("isPermissionVisible", !isPermissionVisible);
|
|
7806
|
+
return new Map(permissions.set(categoryName, category));
|
|
7807
|
+
};
|
|
7808
|
+
var filterPermissionsBySearch = function filterPermissionsBySearch(searchTerm, permissionGroups) {
|
|
7809
|
+
var newValue = deepClone(permissionGroups);
|
|
7810
|
+
newValue.forEach(function (value) {
|
|
7811
|
+
var permissions = value.get("permissions");
|
|
7812
|
+
var filteredPermissions = permissions.filter(function (permission) {
|
|
7813
|
+
var _permission$descripti, _permission$descripti2, _permission$descripti3;
|
|
7814
|
+
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());
|
|
7815
|
+
});
|
|
7816
|
+
value.set("permissions", filteredPermissions);
|
|
7817
|
+
});
|
|
7818
|
+
return newValue;
|
|
7819
|
+
};
|
|
7820
|
+
|
|
7821
|
+
var Row = function Row(_ref) {
|
|
7822
|
+
var _ref$allPermissionsOf = _ref.allPermissionsOfCategory,
|
|
7823
|
+
allPermissionsOfCategory = _ref$allPermissionsOf === void 0 ? null : _ref$allPermissionsOf,
|
|
7824
|
+
config = _ref.config,
|
|
7825
|
+
_ref$permission = _ref.permission,
|
|
7826
|
+
permission = _ref$permission === void 0 ? null : _ref$permission,
|
|
7827
|
+
roles = _ref.roles,
|
|
7828
|
+
setModifiedRoles = _ref.setModifiedRoles;
|
|
7829
|
+
var isUpdatePermissionGranted = config.permissions.update;
|
|
7830
|
+
var permissions = (allPermissionsOfCategory === null || allPermissionsOfCategory === void 0 ? void 0 : allPermissionsOfCategory.get("permissions")) || [];
|
|
7831
|
+
var allPermissionIdsOfCategory = ramda.map(ramda.prop("id"), permissions);
|
|
7832
|
+
var handleSubmit = function handleSubmit(role, checked) {
|
|
7833
|
+
var permissionIds = pure.isNotEmpty(allPermissionIdsOfCategory) ? allPermissionIdsOfCategory : [permission === null || permission === void 0 ? void 0 : permission.id];
|
|
7834
|
+
var modifiedRole = ramda.modify("permissionIds", function () {
|
|
7835
|
+
return checked ? removeDuplicates([].concat(_toConsumableArray(role.permissionIds), _toConsumableArray(permissionIds))) : role.permissionIds.filter(function (id) {
|
|
7836
|
+
return !permissionIds.includes(id);
|
|
7837
|
+
});
|
|
7838
|
+
}, role);
|
|
7839
|
+
setModifiedRoles(pure.replaceById(role.id, modifiedRole));
|
|
7840
|
+
};
|
|
7841
|
+
var isCheckboxChecked = function isCheckboxChecked(role) {
|
|
7842
|
+
return !allPermissionsOfCategory ? ramda.includes(permission === null || permission === void 0 ? void 0 : permission.id, role.permissionIds) : allPermissionIdsOfCategory.every(ramda.includes(ramda.__, role.permissionIds));
|
|
7843
|
+
};
|
|
7844
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7845
|
+
className: classnames__default["default"]("ntm-roles-table__row", {
|
|
7846
|
+
"ntm-roles-table__row--highlighted": !!allPermissionsOfCategory
|
|
7847
|
+
})
|
|
7848
|
+
}, roles.map(function (role) {
|
|
7849
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7850
|
+
className: "ntm-roles-table__cell",
|
|
7851
|
+
key: role.id
|
|
7852
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
7853
|
+
content: renderRolesTooltipContent(role.name),
|
|
7854
|
+
position: "top",
|
|
7855
|
+
disabled: isUpdatePermissionGranted && !ramda.identical(role.name, "Admin")
|
|
7856
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7857
|
+
className: "ntm-roles-table-cell__checkbox-wrapper"
|
|
7858
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, {
|
|
7859
|
+
disabled: true,
|
|
7860
|
+
checked: isCheckboxChecked(role),
|
|
7861
|
+
className: "ntm-roles-table-cell__checkbox",
|
|
7862
|
+
"data-cy": "ntm-roles-table-permission-checkbox",
|
|
7863
|
+
onChange: function onChange(_ref2) {
|
|
7864
|
+
var checked = _ref2.target.checked;
|
|
7865
|
+
return handleSubmit(role, checked);
|
|
7866
|
+
}
|
|
7867
|
+
}))));
|
|
7868
|
+
}));
|
|
6340
7869
|
};
|
|
6341
7870
|
|
|
6342
7871
|
var Menu$4 = neetoui.Dropdown.Menu,
|
|
6343
7872
|
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
|
-
|
|
7873
|
+
var TableHeader = function TableHeader(_ref) {
|
|
7874
|
+
var config = _ref.config,
|
|
7875
|
+
roles = _ref.roles,
|
|
7876
|
+
setManageRole = _ref.setManageRole,
|
|
7877
|
+
setIsScrollPresent = _ref.setIsScrollPresent;
|
|
7878
|
+
var _useTranslation = useTranslation(),
|
|
7879
|
+
t = _useTranslation.t;
|
|
7880
|
+
var isUpdatePermissionGranted = config.permissions.update;
|
|
7881
|
+
var isDeletePermissionGranted = config.permissions["delete"];
|
|
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 isSystemRole = ramda.identical("system", role.kind);
|
|
7900
|
+
var isAdminRole = ADMIN_ROLES.includes(role.name) && isSystemRole;
|
|
7901
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7902
|
+
className: "ntm-roles-table__cell",
|
|
7903
|
+
key: "ntm-roles-".concat(index)
|
|
7904
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
7905
|
+
className: "ntm-roles-table-header-cell__container"
|
|
7906
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
7907
|
+
className: "ntm-roles-table-header__role-name",
|
|
7908
|
+
"data-cy": "ntm-roles-table-header-role-title",
|
|
7909
|
+
lineHeight: "normal",
|
|
7910
|
+
style: "h4",
|
|
7911
|
+
weight: "semibold"
|
|
7912
|
+
}, role.name), !isAdminRole && /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
|
|
7913
|
+
autoWidth: true,
|
|
7914
|
+
buttonStyle: "text",
|
|
7915
|
+
icon: neetoIcons.MenuHorizontal,
|
|
7916
|
+
buttonProps: {
|
|
7917
|
+
className: "ntm-roles-table-header__dropdown",
|
|
7918
|
+
"data-cy": "ntm-roles-table-header-role-dropdown-button"
|
|
7919
|
+
}
|
|
7920
|
+
}, /*#__PURE__*/React__default["default"].createElement(Menu$4, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
7921
|
+
content: t("tooltips.noPermissionToEditRoles"),
|
|
7922
|
+
position: "left",
|
|
7923
|
+
disabled: isUpdatePermissionGranted
|
|
7924
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(MenuItem$3.Button, {
|
|
7925
|
+
className: "ntm-dropdown__button",
|
|
7926
|
+
"data-cy": "ntm-roles-table-edit-role-button",
|
|
7927
|
+
size: "small",
|
|
7928
|
+
style: "text",
|
|
7929
|
+
disabled: !isUpdatePermissionGranted,
|
|
7930
|
+
onClick: function onClick() {
|
|
7931
|
+
return setManageRole({
|
|
7932
|
+
isEdit: true,
|
|
7933
|
+
selectedRole: role
|
|
7934
|
+
});
|
|
7935
|
+
}
|
|
7936
|
+
}, t("common.edit")))), !isSystemRole && /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
7937
|
+
content: t("tooltips.noPermissionToRemoveRoles"),
|
|
7938
|
+
position: "left",
|
|
7939
|
+
disabled: isDeletePermissionGranted
|
|
7940
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(MenuItem$3.Button, {
|
|
7941
|
+
className: "ntm-dropdown__button",
|
|
7942
|
+
"data-cy": "ntm-roles-table-delete-role-button",
|
|
7943
|
+
size: "small",
|
|
7944
|
+
disabled: !isDeletePermissionGranted,
|
|
7945
|
+
onClick: function onClick() {
|
|
7946
|
+
return setManageRole({
|
|
7947
|
+
isDelete: true,
|
|
7948
|
+
selectedRole: role
|
|
7949
|
+
});
|
|
7950
|
+
}
|
|
7951
|
+
}, t("common.delete"))))))));
|
|
7952
|
+
})));
|
|
6379
7953
|
};
|
|
6380
7954
|
|
|
6381
7955
|
var Delete = function Delete(_ref) {
|
|
@@ -6423,43 +7997,237 @@ var Delete = function Delete(_ref) {
|
|
|
6423
7997
|
});
|
|
6424
7998
|
};
|
|
6425
7999
|
|
|
8000
|
+
var Columns = function Columns(_ref) {
|
|
8001
|
+
var config = _ref.config,
|
|
8002
|
+
filteredGroupPermissions = _ref.filteredGroupPermissions,
|
|
8003
|
+
filteredRoles = _ref.filteredRoles,
|
|
8004
|
+
permissions = _ref.permissions,
|
|
8005
|
+
roles = _ref.roles,
|
|
8006
|
+
setModifiedRoles = _ref.setModifiedRoles,
|
|
8007
|
+
setIsScrollPresent = _ref.setIsScrollPresent;
|
|
8008
|
+
var _useState = React.useState(DEFAULT_MANAGE_ROLE_VALUES),
|
|
8009
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
8010
|
+
manageRole = _useState2[0],
|
|
8011
|
+
setManageRole = _useState2[1];
|
|
8012
|
+
var categories = Array.from(filteredGroupPermissions === null || filteredGroupPermissions === void 0 ? void 0 : filteredGroupPermissions.keys());
|
|
8013
|
+
var onClose = function onClose() {
|
|
8014
|
+
return setManageRole(DEFAULT_MANAGE_ROLE_VALUES);
|
|
8015
|
+
};
|
|
8016
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8017
|
+
className: "ntm-roles-table__columns"
|
|
8018
|
+
}, /*#__PURE__*/React__default["default"].createElement(TableHeader, {
|
|
8019
|
+
config: config,
|
|
8020
|
+
roles: filteredRoles,
|
|
8021
|
+
setIsScrollPresent: setIsScrollPresent,
|
|
8022
|
+
setManageRole: setManageRole
|
|
8023
|
+
}), /*#__PURE__*/React__default["default"].createElement(distExports.ScrollSyncPane, {
|
|
8024
|
+
group: ["horizontal", "vertical"]
|
|
8025
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8026
|
+
className: "ntm-roles-table__rows"
|
|
8027
|
+
}, categories.map(function (category, index) {
|
|
8028
|
+
var groupedPermissions = filteredGroupPermissions.get(category);
|
|
8029
|
+
var isPermissionVisible = groupedPermissions.get("isPermissionVisible");
|
|
8030
|
+
var permissions = groupedPermissions.get("permissions");
|
|
8031
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8032
|
+
key: index
|
|
8033
|
+
}, /*#__PURE__*/React__default["default"].createElement(Row, {
|
|
8034
|
+
allPermissionsOfCategory: groupedPermissions,
|
|
8035
|
+
config: config,
|
|
8036
|
+
roles: filteredRoles,
|
|
8037
|
+
setModifiedRoles: setModifiedRoles
|
|
8038
|
+
}), isPermissionVisible && permissions.map(function (permission) {
|
|
8039
|
+
return /*#__PURE__*/React__default["default"].createElement(Row, {
|
|
8040
|
+
config: config,
|
|
8041
|
+
key: permission.id,
|
|
8042
|
+
permission: permission,
|
|
8043
|
+
roles: filteredRoles,
|
|
8044
|
+
setModifiedRoles: setModifiedRoles
|
|
8045
|
+
});
|
|
8046
|
+
}));
|
|
8047
|
+
}))), /*#__PURE__*/React__default["default"].createElement(ManageRoles, {
|
|
8048
|
+
config: config,
|
|
8049
|
+
isOpen: manageRole.isEdit,
|
|
8050
|
+
permissions: permissions,
|
|
8051
|
+
selectedRole: manageRole.selectedRole,
|
|
8052
|
+
onClose: onClose
|
|
8053
|
+
}), /*#__PURE__*/React__default["default"].createElement(Delete, {
|
|
8054
|
+
isOpen: manageRole.isDelete,
|
|
8055
|
+
roles: roles,
|
|
8056
|
+
selectedRole: manageRole.selectedRole,
|
|
8057
|
+
onClose: onClose
|
|
8058
|
+
}));
|
|
8059
|
+
};
|
|
8060
|
+
|
|
8061
|
+
var ToggleDropdown = function ToggleDropdown(_ref) {
|
|
8062
|
+
var isVisible = _ref.isVisible,
|
|
8063
|
+
onClick = _ref.onClick;
|
|
8064
|
+
return isVisible ? /*#__PURE__*/React__default["default"].createElement(neetoIcons.Up, {
|
|
8065
|
+
className: "ntm-roles-table-sidebar__drop-down-button",
|
|
8066
|
+
"data-cy": "ntm-permission-category-hide-button",
|
|
8067
|
+
size: 16,
|
|
8068
|
+
strokeWidth: 2,
|
|
8069
|
+
onClick: onClick
|
|
8070
|
+
}) : /*#__PURE__*/React__default["default"].createElement(neetoIcons.Down, {
|
|
8071
|
+
className: "ntm-roles-table-sidebar__drop-down-button",
|
|
8072
|
+
"data-cy": "ntm-permission-category-show-button",
|
|
8073
|
+
size: 16,
|
|
8074
|
+
strokeWidth: 2,
|
|
8075
|
+
onClick: onClick
|
|
8076
|
+
});
|
|
8077
|
+
};
|
|
8078
|
+
|
|
8079
|
+
var ROLES_TABLE_CELL_HEIGHT_VARIABLE = "--ntm-roles-table-cell-height";
|
|
8080
|
+
|
|
8081
|
+
var getCurrentTableCellHeight = function getCurrentTableCellHeight() {
|
|
8082
|
+
return parseInt(getComputedStyle(document.documentElement).getPropertyValue(ROLES_TABLE_CELL_HEIGHT_VARIABLE), 10);
|
|
8083
|
+
};
|
|
8084
|
+
var renderDescription = function renderDescription(permissions) {
|
|
8085
|
+
return permissions === null || permissions === void 0 ? void 0 : permissions.map(function (_ref) {
|
|
8086
|
+
var id = _ref.id,
|
|
8087
|
+
description = _ref.description;
|
|
8088
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8089
|
+
className: "ntm-roles-table-sidebar__list-item",
|
|
8090
|
+
key: id
|
|
8091
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
8092
|
+
"data-cy": "ntm-permission-category-description",
|
|
8093
|
+
lineHeight: "normal",
|
|
8094
|
+
style: "body2"
|
|
8095
|
+
}, description));
|
|
8096
|
+
});
|
|
8097
|
+
};
|
|
8098
|
+
var getSearchWrapperStyle = function getSearchWrapperStyle() {
|
|
8099
|
+
var scrollBarWidth = getScrollBarWidth();
|
|
8100
|
+
document.documentElement.style.setProperty("--ntm-roles-table-default-scroll", "".concat(scrollBarWidth, "px"));
|
|
8101
|
+
return {
|
|
8102
|
+
marginBottom: "".concat(scrollBarWidth, "px")
|
|
8103
|
+
};
|
|
8104
|
+
};
|
|
8105
|
+
var assignRolesTableCellHeight = function assignRolesTableCellHeight() {
|
|
8106
|
+
var sidebarItems = _toConsumableArray(document.getElementsByClassName("ntm-roles-table-sidebar__list-item"));
|
|
8107
|
+
var clientHeights = ramda.pluck("clientHeight", sidebarItems);
|
|
8108
|
+
var maxClientHeight = Math.max.apply(Math, _toConsumableArray(clientHeights));
|
|
8109
|
+
var currentTableCellHeight = getCurrentTableCellHeight();
|
|
8110
|
+
if (maxClientHeight > currentTableCellHeight) {
|
|
8111
|
+
document.documentElement.style.setProperty(ROLES_TABLE_CELL_HEIGHT_VARIABLE, "".concat(maxClientHeight, "px"));
|
|
8112
|
+
}
|
|
8113
|
+
};
|
|
8114
|
+
|
|
8115
|
+
var Sidebar = function Sidebar(_ref) {
|
|
8116
|
+
var searchTerm = _ref.searchTerm,
|
|
8117
|
+
setSearchTerm = _ref.setSearchTerm,
|
|
8118
|
+
filteredGroupPermissions = _ref.filteredGroupPermissions,
|
|
8119
|
+
toggleDropdown = _ref.toggleDropdown,
|
|
8120
|
+
isScrollPresent = _ref.isScrollPresent;
|
|
8121
|
+
var _useTranslation = useTranslation(),
|
|
8122
|
+
t = _useTranslation.t;
|
|
8123
|
+
var categories = Array.from(filteredGroupPermissions.keys());
|
|
8124
|
+
var searchWrapperStyle = isScrollPresent ? getSearchWrapperStyle() : {};
|
|
8125
|
+
React.useLayoutEffect(function () {
|
|
8126
|
+
assignRolesTableCellHeight();
|
|
8127
|
+
}, []);
|
|
8128
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8129
|
+
className: "ntm-roles-table__sidebar"
|
|
8130
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8131
|
+
className: "ntm-roles-table-sidebar__search",
|
|
8132
|
+
style: searchWrapperStyle
|
|
8133
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Input, {
|
|
8134
|
+
"data-cy": "ntm-search-permissions-input",
|
|
8135
|
+
prefix: /*#__PURE__*/React__default["default"].createElement(neetoIcons.Search, null),
|
|
8136
|
+
type: "search",
|
|
8137
|
+
value: searchTerm,
|
|
8138
|
+
placeholder: t("common.search_", {
|
|
8139
|
+
what: t("common.permission", PLURAL).toLocaleLowerCase()
|
|
8140
|
+
}),
|
|
8141
|
+
onChange: function onChange(_ref2) {
|
|
8142
|
+
var value = _ref2.target.value;
|
|
8143
|
+
return setSearchTerm(value);
|
|
8144
|
+
}
|
|
8145
|
+
})), /*#__PURE__*/React__default["default"].createElement(distExports.ScrollSyncPane, {
|
|
8146
|
+
group: "vertical"
|
|
8147
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8148
|
+
className: "ntm-roles-table-sidebar__list"
|
|
8149
|
+
}, categories.map(function (category, index) {
|
|
8150
|
+
var groupedPermissions = filteredGroupPermissions.get(category);
|
|
8151
|
+
var isPermissionVisible = groupedPermissions.get("isPermissionVisible");
|
|
8152
|
+
var permissions = groupedPermissions.get("permissions");
|
|
8153
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8154
|
+
key: index
|
|
8155
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8156
|
+
className: "ntm-roles-table-sidebar__list-item ntm-roles-table-sidebar__list-item--highlighted cursor-pointer",
|
|
8157
|
+
onClick: function onClick() {
|
|
8158
|
+
return toggleDropdown(category);
|
|
8159
|
+
}
|
|
8160
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
8161
|
+
"data-cy": "ntm-permission-category-title",
|
|
8162
|
+
lineHeight: "normal",
|
|
8163
|
+
style: "h4",
|
|
8164
|
+
weight: "semibold"
|
|
8165
|
+
}, category), /*#__PURE__*/React__default["default"].createElement(ToggleDropdown, {
|
|
8166
|
+
isVisible: isPermissionVisible,
|
|
8167
|
+
onClick: function onClick() {
|
|
8168
|
+
return toggleDropdown(category);
|
|
8169
|
+
}
|
|
8170
|
+
})), isPermissionVisible && renderDescription(permissions));
|
|
8171
|
+
}))));
|
|
8172
|
+
};
|
|
8173
|
+
|
|
6426
8174
|
var Table = function Table(_ref) {
|
|
6427
|
-
var _config$permissions$c, _config$permissions;
|
|
6428
8175
|
var config = _ref.config,
|
|
6429
8176
|
filteredRoles = _ref.filteredRoles,
|
|
6430
8177
|
roles = _ref.roles,
|
|
8178
|
+
permissionGroups = _ref.permissionGroups,
|
|
6431
8179
|
permissions = _ref.permissions,
|
|
8180
|
+
setModifiedRoles = _ref.setModifiedRoles,
|
|
6432
8181
|
setIsNewRolePaneOpen = _ref.setIsNewRolePaneOpen;
|
|
6433
8182
|
var _useTranslation = useTranslation(),
|
|
6434
8183
|
t = _useTranslation.t;
|
|
6435
|
-
var
|
|
8184
|
+
var isCreatePermissionGranted = config.permissions.create;
|
|
8185
|
+
var _useState = React.useState(""),
|
|
6436
8186
|
_useState2 = _slicedToArray(_useState, 2),
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
var _useState3 = React.useState(
|
|
8187
|
+
searchTerm = _useState2[0],
|
|
8188
|
+
setSearchTerm = _useState2[1];
|
|
8189
|
+
var _useState3 = React.useState(permissionGroups),
|
|
6440
8190
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
6441
|
-
|
|
6442
|
-
|
|
8191
|
+
filteredGroupPermissions = _useState4[0],
|
|
8192
|
+
setFilteredGroupPermissions = _useState4[1];
|
|
6443
8193
|
var _useState5 = React.useState(false),
|
|
6444
8194
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
6445
|
-
|
|
6446
|
-
|
|
6447
|
-
var _useState7 = React.useState(
|
|
8195
|
+
isScrollPresent = _useState6[0],
|
|
8196
|
+
setIsScrollPresent = _useState6[1];
|
|
8197
|
+
var _useState7 = React.useState(),
|
|
6448
8198
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
6449
|
-
|
|
6450
|
-
|
|
6451
|
-
var
|
|
6452
|
-
|
|
8199
|
+
selectedRole = _useState8[0],
|
|
8200
|
+
setSelectedRole = _useState8[1];
|
|
8201
|
+
var _useState9 = React.useState(false),
|
|
8202
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
8203
|
+
isDeleteAlertOpen = _useState10[0],
|
|
8204
|
+
setIsDeleteAlertOpen = _useState10[1];
|
|
8205
|
+
var _useState11 = React.useState(false),
|
|
8206
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
8207
|
+
isEditPaneOpen = _useState12[0],
|
|
8208
|
+
setIsEditPaneOpen = _useState12[1];
|
|
8209
|
+
var toggleDropdown = function toggleDropdown(category) {
|
|
8210
|
+
var permissions = updatePermissionVisibility(category, filteredGroupPermissions);
|
|
8211
|
+
setFilteredGroupPermissions(permissions);
|
|
6453
8212
|
};
|
|
6454
|
-
|
|
6455
|
-
|
|
6456
|
-
|
|
6457
|
-
},
|
|
8213
|
+
React.useEffect(function () {
|
|
8214
|
+
var newValue = filterPermissionsBySearch(searchTerm, permissionGroups);
|
|
8215
|
+
setFilteredGroupPermissions(newValue);
|
|
8216
|
+
}, [permissionGroups, searchTerm]);
|
|
8217
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
8218
|
+
className: "ntm-roles-table__wrapper"
|
|
8219
|
+
}, /*#__PURE__*/React__default["default"].createElement(Sidebar, {
|
|
8220
|
+
filteredGroupPermissions: filteredGroupPermissions,
|
|
8221
|
+
isScrollPresent: isScrollPresent,
|
|
8222
|
+
searchTerm: searchTerm,
|
|
8223
|
+
setSearchTerm: setSearchTerm,
|
|
8224
|
+
toggleDropdown: toggleDropdown
|
|
8225
|
+
}), ramda.isEmpty(filteredRoles) ? /*#__PURE__*/React__default["default"].createElement("div", {
|
|
6458
8226
|
className: "ntm-empty-state"
|
|
6459
8227
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, {
|
|
6460
8228
|
primaryButtonProps: {
|
|
6461
8229
|
"data-cy": "ntm-add-role-button",
|
|
6462
|
-
disabled:
|
|
8230
|
+
disabled: !isCreatePermissionGranted,
|
|
6463
8231
|
label: t("common.addNew_", {
|
|
6464
8232
|
what: t("common.role", SINGULAR).toLocaleLowerCase()
|
|
6465
8233
|
}),
|
|
@@ -6470,23 +8238,15 @@ var Table = function Table(_ref) {
|
|
|
6470
8238
|
title: t("common.notFound_", {
|
|
6471
8239
|
what: t("common.role", PLURAL).toLocaleLowerCase()
|
|
6472
8240
|
})
|
|
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, {
|
|
8241
|
+
})) : /*#__PURE__*/React__default["default"].createElement(Columns, {
|
|
8242
|
+
config: config,
|
|
8243
|
+
filteredGroupPermissions: filteredGroupPermissions,
|
|
8244
|
+
filteredRoles: filteredRoles,
|
|
8245
|
+
permissions: permissions,
|
|
8246
|
+
roles: roles,
|
|
8247
|
+
setIsScrollPresent: setIsScrollPresent,
|
|
8248
|
+
setModifiedRoles: setModifiedRoles
|
|
8249
|
+
})), /*#__PURE__*/React__default["default"].createElement(ManageRoles, {
|
|
6490
8250
|
config: config,
|
|
6491
8251
|
isOpen: isEditPaneOpen,
|
|
6492
8252
|
permissions: permissions,
|
|
@@ -6507,10 +8267,11 @@ var Table = function Table(_ref) {
|
|
|
6507
8267
|
};
|
|
6508
8268
|
|
|
6509
8269
|
var Roles = function Roles(_ref) {
|
|
6510
|
-
var _config$permissions$v, _config$permissions, _config$permissions$v2, _config$permissions2, _config$permissions$u, _config$permissions3;
|
|
6511
8270
|
var config = _ref.config;
|
|
6512
|
-
var _useTranslation = useTranslation()
|
|
6513
|
-
|
|
8271
|
+
var _useTranslation = useTranslation();
|
|
8272
|
+
_useTranslation.t;
|
|
8273
|
+
var isViewPermissionGranted = config.permissions.view;
|
|
8274
|
+
var isUpdatePermissionGranted = config.permissions.update;
|
|
6514
8275
|
var _useState = React.useState(""),
|
|
6515
8276
|
_useState2 = _slicedToArray(_useState, 2),
|
|
6516
8277
|
searchString = _useState2[0],
|
|
@@ -6527,17 +8288,17 @@ var Roles = function Roles(_ref) {
|
|
|
6527
8288
|
onSuccess: function onSuccess(roles) {
|
|
6528
8289
|
return setModifiedRoles(roles);
|
|
6529
8290
|
},
|
|
6530
|
-
enabled:
|
|
8291
|
+
enabled: isViewPermissionGranted
|
|
6531
8292
|
}),
|
|
6532
8293
|
roles = _useFetchRoles.data,
|
|
6533
8294
|
isRolesLoading = _useFetchRoles.isLoading;
|
|
6534
8295
|
var _useFetchPermissions = useFetchPermissions({
|
|
6535
|
-
enabled:
|
|
8296
|
+
enabled: isViewPermissionGranted
|
|
6536
8297
|
}),
|
|
6537
8298
|
permissionData = _useFetchPermissions.data,
|
|
6538
8299
|
isPermissionsLoading = _useFetchPermissions.isLoading;
|
|
6539
8300
|
var _useBulkUpdateRoles = useBulkUpdateRoles({
|
|
6540
|
-
enabled:
|
|
8301
|
+
enabled: isUpdatePermissionGranted
|
|
6541
8302
|
}),
|
|
6542
8303
|
bulkUpdate = _useBulkUpdateRoles.mutate;
|
|
6543
8304
|
var _useState7 = React.useState(roles),
|
|
@@ -6546,6 +8307,7 @@ var Roles = function Roles(_ref) {
|
|
|
6546
8307
|
setModifiedRoles = _useState8[1];
|
|
6547
8308
|
var isDirty = pure.isPresent(getModifiedPermissions(roles, modifiedRoles));
|
|
6548
8309
|
var permissions = sortPermissionsBySequence(permissionData);
|
|
8310
|
+
var permissionGroups = getPermissionGroups(permissions);
|
|
6549
8311
|
React.useEffect(function () {
|
|
6550
8312
|
setFilteredRoles(ramda.filter(function (_ref2) {
|
|
6551
8313
|
var name = _ref2.name;
|
|
@@ -6568,7 +8330,9 @@ var Roles = function Roles(_ref) {
|
|
|
6568
8330
|
className: "ntm-members-page-loader"
|
|
6569
8331
|
}, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
|
|
6570
8332
|
}
|
|
6571
|
-
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(
|
|
8333
|
+
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"], {
|
|
8334
|
+
isHeaderFixed: true
|
|
8335
|
+
}, /*#__PURE__*/React__default["default"].createElement(Header$1, {
|
|
6572
8336
|
config: config,
|
|
6573
8337
|
handleReset: handleReset,
|
|
6574
8338
|
handleSubmit: handleSubmit,
|
|
@@ -6576,26 +8340,14 @@ var Roles = function Roles(_ref) {
|
|
|
6576
8340
|
searchString: searchString,
|
|
6577
8341
|
setIsNewRolePaneOpen: setIsNewRolePaneOpen,
|
|
6578
8342
|
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
8343
|
}), /*#__PURE__*/React__default["default"].createElement(Table, {
|
|
6584
8344
|
config: config,
|
|
6585
8345
|
filteredRoles: filteredRoles,
|
|
6586
8346
|
permissions: permissions,
|
|
6587
8347
|
roles: roles,
|
|
8348
|
+
permissionGroups: permissionGroups,
|
|
6588
8349
|
setIsNewRolePaneOpen: setIsNewRolePaneOpen,
|
|
6589
8350
|
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
8351
|
}))), /*#__PURE__*/React__default["default"].createElement(ManageRoles, {
|
|
6600
8352
|
config: config,
|
|
6601
8353
|
isOpen: isNewRolePaneOpen,
|
|
@@ -6675,6 +8427,16 @@ var hasSymbols$1 = function hasNativeSymbols() {
|
|
|
6675
8427
|
return hasSymbolSham();
|
|
6676
8428
|
};
|
|
6677
8429
|
|
|
8430
|
+
var test = {
|
|
8431
|
+
foo: {}
|
|
8432
|
+
};
|
|
8433
|
+
|
|
8434
|
+
var $Object = Object;
|
|
8435
|
+
|
|
8436
|
+
var hasProto$1 = function hasProto() {
|
|
8437
|
+
return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);
|
|
8438
|
+
};
|
|
8439
|
+
|
|
6678
8440
|
/* eslint no-invalid-this: 1 */
|
|
6679
8441
|
|
|
6680
8442
|
var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';
|
|
@@ -6777,18 +8539,23 @@ var ThrowTypeError = $gOPD
|
|
|
6777
8539
|
: throwTypeError;
|
|
6778
8540
|
|
|
6779
8541
|
var hasSymbols = hasSymbols$1();
|
|
8542
|
+
var hasProto = hasProto$1();
|
|
6780
8543
|
|
|
6781
|
-
var getProto = Object.getPrototypeOf ||
|
|
8544
|
+
var getProto = Object.getPrototypeOf || (
|
|
8545
|
+
hasProto
|
|
8546
|
+
? function (x) { return x.__proto__; } // eslint-disable-line no-proto
|
|
8547
|
+
: null
|
|
8548
|
+
);
|
|
6782
8549
|
|
|
6783
8550
|
var needsEval = {};
|
|
6784
8551
|
|
|
6785
|
-
var TypedArray = typeof Uint8Array === 'undefined' ? undefined$1 : getProto(Uint8Array);
|
|
8552
|
+
var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined$1 : getProto(Uint8Array);
|
|
6786
8553
|
|
|
6787
8554
|
var INTRINSICS = {
|
|
6788
8555
|
'%AggregateError%': typeof AggregateError === 'undefined' ? undefined$1 : AggregateError,
|
|
6789
8556
|
'%Array%': Array,
|
|
6790
8557
|
'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined$1 : ArrayBuffer,
|
|
6791
|
-
'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined$1,
|
|
8558
|
+
'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined$1,
|
|
6792
8559
|
'%AsyncFromSyncIteratorPrototype%': undefined$1,
|
|
6793
8560
|
'%AsyncFunction%': needsEval,
|
|
6794
8561
|
'%AsyncGenerator%': needsEval,
|
|
@@ -6818,10 +8585,10 @@ var INTRINSICS = {
|
|
|
6818
8585
|
'%Int32Array%': typeof Int32Array === 'undefined' ? undefined$1 : Int32Array,
|
|
6819
8586
|
'%isFinite%': isFinite,
|
|
6820
8587
|
'%isNaN%': isNaN,
|
|
6821
|
-
'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined$1,
|
|
8588
|
+
'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined$1,
|
|
6822
8589
|
'%JSON%': typeof JSON === 'object' ? JSON : undefined$1,
|
|
6823
8590
|
'%Map%': typeof Map === 'undefined' ? undefined$1 : Map,
|
|
6824
|
-
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined$1 : getProto(new Map()[Symbol.iterator]()),
|
|
8591
|
+
'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined$1 : getProto(new Map()[Symbol.iterator]()),
|
|
6825
8592
|
'%Math%': Math,
|
|
6826
8593
|
'%Number%': Number,
|
|
6827
8594
|
'%Object%': Object,
|
|
@@ -6834,10 +8601,10 @@ var INTRINSICS = {
|
|
|
6834
8601
|
'%Reflect%': typeof Reflect === 'undefined' ? undefined$1 : Reflect,
|
|
6835
8602
|
'%RegExp%': RegExp,
|
|
6836
8603
|
'%Set%': typeof Set === 'undefined' ? undefined$1 : Set,
|
|
6837
|
-
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined$1 : getProto(new Set()[Symbol.iterator]()),
|
|
8604
|
+
'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined$1 : getProto(new Set()[Symbol.iterator]()),
|
|
6838
8605
|
'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined$1 : SharedArrayBuffer,
|
|
6839
8606
|
'%String%': String,
|
|
6840
|
-
'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined$1,
|
|
8607
|
+
'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined$1,
|
|
6841
8608
|
'%Symbol%': hasSymbols ? Symbol : undefined$1,
|
|
6842
8609
|
'%SyntaxError%': $SyntaxError,
|
|
6843
8610
|
'%ThrowTypeError%': ThrowTypeError,
|
|
@@ -6853,12 +8620,14 @@ var INTRINSICS = {
|
|
|
6853
8620
|
'%WeakSet%': typeof WeakSet === 'undefined' ? undefined$1 : WeakSet
|
|
6854
8621
|
};
|
|
6855
8622
|
|
|
6856
|
-
|
|
6857
|
-
|
|
6858
|
-
|
|
6859
|
-
|
|
6860
|
-
|
|
6861
|
-
|
|
8623
|
+
if (getProto) {
|
|
8624
|
+
try {
|
|
8625
|
+
null.error; // eslint-disable-line no-unused-expressions
|
|
8626
|
+
} catch (e) {
|
|
8627
|
+
// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229
|
|
8628
|
+
var errorProto = getProto(getProto(e));
|
|
8629
|
+
INTRINSICS['%Error.prototype%'] = errorProto;
|
|
8630
|
+
}
|
|
6862
8631
|
}
|
|
6863
8632
|
|
|
6864
8633
|
var doEval = function doEval(name) {
|
|
@@ -6876,7 +8645,7 @@ var doEval = function doEval(name) {
|
|
|
6876
8645
|
}
|
|
6877
8646
|
} else if (name === '%AsyncIteratorPrototype%') {
|
|
6878
8647
|
var gen = doEval('%AsyncGenerator%');
|
|
6879
|
-
if (gen) {
|
|
8648
|
+
if (gen && getProto) {
|
|
6880
8649
|
value = getProto(gen.prototype);
|
|
6881
8650
|
}
|
|
6882
8651
|
}
|
|
@@ -8429,7 +10198,8 @@ var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')
|
|
|
8429
10198
|
var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
|
|
8430
10199
|
|
|
8431
10200
|
var parseValues = function parseQueryStringValues(str, options) {
|
|
8432
|
-
var obj = {};
|
|
10201
|
+
var obj = { __proto__: null };
|
|
10202
|
+
|
|
8433
10203
|
var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
|
|
8434
10204
|
var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
|
|
8435
10205
|
var parts = cleanStr.split(options.delimiter, limit);
|
|
@@ -9362,10 +11132,6 @@ var renderNameColumn = function renderNameColumn(_ref) {
|
|
|
9362
11132
|
label: active ? MEMBER_FILTER.ACTIVE.label : MEMBER_FILTER.DEACTIVATED.label
|
|
9363
11133
|
})), renderDropdownButton(tableData, handleUpdateRole, handleUpdateStatus, permissions));
|
|
9364
11134
|
};
|
|
9365
|
-
var isDropDownButtonDisabled = function isDropDownButtonDisabled(permissions) {
|
|
9366
|
-
var _permissions$update;
|
|
9367
|
-
return !((_permissions$update = permissions === null || permissions === void 0 ? void 0 : permissions.update) !== null && _permissions$update !== void 0 ? _permissions$update : hasPermission(MANAGE_MEMBER_PERMISSIONS));
|
|
9368
|
-
};
|
|
9369
11135
|
var renderDropdownButton = function renderDropdownButton(_ref2, handleUpdateRole, handleUpdateStatus, permissions) {
|
|
9370
11136
|
var active = _ref2.active,
|
|
9371
11137
|
displayName = _ref2.displayName,
|
|
@@ -9383,12 +11149,12 @@ var renderDropdownButton = function renderDropdownButton(_ref2, handleUpdateRole
|
|
|
9383
11149
|
"data-cy": "ntm-members-table-row-dropdown-button",
|
|
9384
11150
|
tooltipProps: {
|
|
9385
11151
|
content: instance.t("tooltips.noPermissionToEditMembers"),
|
|
9386
|
-
disabled:
|
|
11152
|
+
disabled: permissions.update,
|
|
9387
11153
|
position: "top"
|
|
9388
11154
|
}
|
|
9389
11155
|
},
|
|
9390
11156
|
buttonStyle: "text",
|
|
9391
|
-
disabled:
|
|
11157
|
+
disabled: !permissions.update,
|
|
9392
11158
|
icon: neetoIcons.MenuHorizontal,
|
|
9393
11159
|
strategy: "fixed"
|
|
9394
11160
|
}, /*#__PURE__*/React__default["default"].createElement(Menu$3, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
@@ -9515,7 +11281,7 @@ var getColumnData = function getColumnData(_ref7) {
|
|
|
9515
11281
|
displayStatusTag: displayStatusTag,
|
|
9516
11282
|
handleUpdateRole: handleUpdateRole,
|
|
9517
11283
|
handleUpdateStatus: handleUpdateStatus,
|
|
9518
|
-
permissions: config
|
|
11284
|
+
permissions: config.permissions
|
|
9519
11285
|
});
|
|
9520
11286
|
var otherColumns = (_config$otherColumns = config === null || config === void 0 ? void 0 : config.otherColumns) !== null && _config$otherColumns !== void 0 ? _config$otherColumns : [];
|
|
9521
11287
|
var columns = defaultColumns.map(function (column) {
|
|
@@ -10187,17 +11953,16 @@ var MANAGE_ROLES_BUTTON_LABEL = instance.t("common.manage_", {
|
|
|
10187
11953
|
});
|
|
10188
11954
|
|
|
10189
11955
|
var Header = function Header(_ref) {
|
|
10190
|
-
var
|
|
11956
|
+
var _config$header;
|
|
10191
11957
|
var config = _ref.config,
|
|
10192
11958
|
metaName = _ref.metaName,
|
|
10193
11959
|
_ref$onClick = _ref.onClick,
|
|
10194
11960
|
onClick = _ref$onClick === void 0 ? pure.noop : _ref$onClick,
|
|
10195
|
-
permissions = _ref.permissions,
|
|
10196
11961
|
rolesButtonProps = _ref.rolesButtonProps;
|
|
10197
11962
|
var _useTranslation = useTranslation(),
|
|
10198
11963
|
t = _useTranslation.t;
|
|
11964
|
+
var isCreatePermissionGranted = config.permissions.create;
|
|
10199
11965
|
var isRolesButtonVisible = !!rolesButtonProps;
|
|
10200
|
-
var hasCreatePermission = (_permissions$create = permissions === null || permissions === void 0 ? void 0 : permissions.create) !== null && _permissions$create !== void 0 ? _permissions$create : hasPermission(MANAGE_MEMBER_PERMISSIONS);
|
|
10201
11966
|
var isOtherActionBlockVisible = !!(config !== null && config !== void 0 && (_config$header = config.header) !== null && _config$header !== void 0 && _config$header.otherActionBlock);
|
|
10202
11967
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isOtherActionBlockVisible && config.header.otherActionBlock(), isRolesButtonVisible ? /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends({
|
|
10203
11968
|
"data-cy": "ntm-manage-roles-button",
|
|
@@ -10205,11 +11970,11 @@ var Header = function Header(_ref) {
|
|
|
10205
11970
|
style: "secondary"
|
|
10206
11971
|
}, rolesButtonProps)) : null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
10207
11972
|
content: t("tooltips.noPermissionToAddMember"),
|
|
10208
|
-
disabled:
|
|
11973
|
+
disabled: isCreatePermissionGranted,
|
|
10209
11974
|
position: "bottom"
|
|
10210
11975
|
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
10211
11976
|
"data-cy": "ntm-add-member-button",
|
|
10212
|
-
disabled: !
|
|
11977
|
+
disabled: !isCreatePermissionGranted,
|
|
10213
11978
|
label: t("common.addNew_", {
|
|
10214
11979
|
what: metaName(SINGULAR).toLocaleLowerCase()
|
|
10215
11980
|
}),
|
|
@@ -10328,7 +12093,7 @@ var RolesDropdown = function RolesDropdown(_ref) {
|
|
|
10328
12093
|
var Menu$1 = neetoui.Dropdown.Menu,
|
|
10329
12094
|
MenuItem = neetoui.Dropdown.MenuItem;
|
|
10330
12095
|
var Left = function Left(_ref) {
|
|
10331
|
-
var _selectedRows$keys$le, _selectedRows$keys,
|
|
12096
|
+
var _selectedRows$keys$le, _selectedRows$keys, _selectedRows$active, _config$hiddenBulkAct, _config$otherBulkActi;
|
|
10332
12097
|
var config = _ref.config,
|
|
10333
12098
|
filteredCount = _ref.filteredCount,
|
|
10334
12099
|
metaName = _ref.metaName,
|
|
@@ -10337,6 +12102,7 @@ var Left = function Left(_ref) {
|
|
|
10337
12102
|
setSelectedRows = _ref.setSelectedRows;
|
|
10338
12103
|
var _useTranslation = useTranslation(),
|
|
10339
12104
|
t = _useTranslation.t;
|
|
12105
|
+
var isUpdatePermissionGranted = config.permissions.update;
|
|
10340
12106
|
var _useState = React.useState(""),
|
|
10341
12107
|
_useState2 = _slicedToArray(_useState, 2),
|
|
10342
12108
|
alertType = _useState2[0],
|
|
@@ -10353,7 +12119,6 @@ var Left = function Left(_ref) {
|
|
|
10353
12119
|
}).toLocaleLowerCase(),
|
|
10354
12120
|
totalCount: filteredCount
|
|
10355
12121
|
};
|
|
10356
|
-
var hasUpdatePermission = (_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;
|
|
10357
12122
|
var hasDeactivateMembers = selectedRows === null || selectedRows === void 0 ? void 0 : (_selectedRows$active = selectedRows.active) === null || _selectedRows$active === void 0 ? void 0 : _selectedRows$active.some(function (active) {
|
|
10358
12123
|
return !active;
|
|
10359
12124
|
});
|
|
@@ -10433,28 +12198,28 @@ var Left = function Left(_ref) {
|
|
|
10433
12198
|
i18nKey: hasSelectedRows ? "helpers.selectedMembersCount" : "helpers.metaNameWithCount_"
|
|
10434
12199
|
})), hasSelectedRows && /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
10435
12200
|
content: t("tooltips.noPermissionToEditMembers"),
|
|
10436
|
-
disabled:
|
|
12201
|
+
disabled: isUpdatePermissionGranted,
|
|
10437
12202
|
position: "top"
|
|
10438
12203
|
}, /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
|
|
10439
12204
|
buttonStyle: "secondary",
|
|
10440
12205
|
"data-cy": "ntm-members-take-action-dropdown-button",
|
|
10441
|
-
disabled: !
|
|
12206
|
+
disabled: !isUpdatePermissionGranted,
|
|
10442
12207
|
label: t("common.takeAction")
|
|
10443
12208
|
}, /*#__PURE__*/React__default["default"].createElement(Menu$1, null, getDeactivatedButtonVisible(selectedRows, config) && /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
|
|
10444
12209
|
"data-cy": "ntm-deactivate-members-button",
|
|
10445
|
-
disabled: !
|
|
12210
|
+
disabled: !isUpdatePermissionGranted,
|
|
10446
12211
|
onClick: function onClick() {
|
|
10447
12212
|
return setAlertType("deactivate");
|
|
10448
12213
|
}
|
|
10449
12214
|
}, t("common.deactivate")), getActivateButtonVisible(selectedRows, config) && /*#__PURE__*/React__default["default"].createElement(MenuItem.Button, {
|
|
10450
12215
|
"data-cy": "ntm-activate-members-button",
|
|
10451
|
-
disabled: !
|
|
12216
|
+
disabled: !isUpdatePermissionGranted,
|
|
10452
12217
|
onClick: function onClick() {
|
|
10453
12218
|
return setAlertType("activate");
|
|
10454
12219
|
}
|
|
10455
12220
|
}, t("common.activate")), !(config !== null && config !== void 0 && (_config$hiddenBulkAct = config.hiddenBulkActions) !== null && _config$hiddenBulkAct !== void 0 && _config$hiddenBulkAct.includes("role")) && /*#__PURE__*/React__default["default"].createElement(RolesDropdown, {
|
|
10456
12221
|
disabled: hasDeactivateMembers,
|
|
10457
|
-
hasUpdatePermission:
|
|
12222
|
+
hasUpdatePermission: isUpdatePermissionGranted,
|
|
10458
12223
|
roles: roles,
|
|
10459
12224
|
setAlertType: setAlertType,
|
|
10460
12225
|
setBulkUpdateRole: setBulkUpdateRole
|
|
@@ -10487,7 +12252,7 @@ var Right = function Right(_ref2) {
|
|
|
10487
12252
|
isFiltersPaneOpen = _ref2.isFiltersPaneOpen;
|
|
10488
12253
|
var _useTranslation2 = useTranslation(),
|
|
10489
12254
|
t = _useTranslation2.t;
|
|
10490
|
-
return /*#__PURE__*/React__default["default"].createElement(
|
|
12255
|
+
return /*#__PURE__*/React__default["default"].createElement(SubHeaderMolecule__default["default"].RightBlock, {
|
|
10491
12256
|
columnsButtonProps: {
|
|
10492
12257
|
columnData: columns,
|
|
10493
12258
|
fixedColumns: FIXED_COLUMNS,
|
|
@@ -10988,7 +12753,7 @@ var RolesRadioGroup = function RolesRadioGroup(_ref) {
|
|
|
10988
12753
|
function ownKeys$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; }
|
|
10989
12754
|
function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
10990
12755
|
var ManageMember = function ManageMember(_ref) {
|
|
10991
|
-
var
|
|
12756
|
+
var _manageMemberComponen;
|
|
10992
12757
|
var config = _ref.config,
|
|
10993
12758
|
onComplete = _ref.onComplete,
|
|
10994
12759
|
_ref$roles = _ref.roles,
|
|
@@ -10999,6 +12764,7 @@ var ManageMember = function ManageMember(_ref) {
|
|
|
10999
12764
|
componentConfig = _ref$componentConfig === void 0 ? {} : _ref$componentConfig;
|
|
11000
12765
|
var _useTranslation = useTranslation(),
|
|
11001
12766
|
t = _useTranslation.t;
|
|
12767
|
+
var isViewPermissionGranted = config.permissions.view;
|
|
11002
12768
|
var _useState = React.useState(false),
|
|
11003
12769
|
_useState2 = _slicedToArray(_useState, 2),
|
|
11004
12770
|
hasSubmitted = _useState2[0],
|
|
@@ -11017,8 +12783,7 @@ var ManageMember = function ManageMember(_ref) {
|
|
|
11017
12783
|
initialFocusRef: inputReference
|
|
11018
12784
|
}, componentConfig);
|
|
11019
12785
|
var Component = MEMBERS_FORM_COMPONENT_MAPPER[manageMemberComponentConfig.type || "pane"];
|
|
11020
|
-
var
|
|
11021
|
-
var haveToFetchRoles = ramda.isEmpty(roles) && isPermissionsGranted;
|
|
12786
|
+
var haveToFetchRoles = ramda.isEmpty(roles) && isViewPermissionGranted;
|
|
11022
12787
|
var isEditForm = !!selectedMember;
|
|
11023
12788
|
var isLastPage = currentPage === FORM_PAGES.CONFIRMATION || isEditForm;
|
|
11024
12789
|
var _useFetchRoles = useFetchRoles({
|
|
@@ -11035,7 +12800,7 @@ var ManageMember = function ManageMember(_ref) {
|
|
|
11035
12800
|
select: function select(response) {
|
|
11036
12801
|
return ramda.groupBy(ramda.prop("appName"), response !== null && response !== void 0 ? response : []);
|
|
11037
12802
|
},
|
|
11038
|
-
enabled: !selectedMember &&
|
|
12803
|
+
enabled: !selectedMember && isViewPermissionGranted
|
|
11039
12804
|
}),
|
|
11040
12805
|
_useFetchGlobalRoles$ = _useFetchGlobalRoles.data,
|
|
11041
12806
|
globalRoles = _useFetchGlobalRoles$ === void 0 ? {} : _useFetchGlobalRoles$,
|
|
@@ -11069,7 +12834,9 @@ var ManageMember = function ManageMember(_ref) {
|
|
|
11069
12834
|
};
|
|
11070
12835
|
var isSubmitting = isCreatingMember || isUpdatingMember || isRolesLoading || isGlobalRolesLoading;
|
|
11071
12836
|
var handleAddMember = function handleAddMember(values) {
|
|
11072
|
-
selectedMember
|
|
12837
|
+
selectedMember
|
|
12838
|
+
// @ts-ignore
|
|
12839
|
+
? updateMember({
|
|
11073
12840
|
id: selectedMember.id,
|
|
11074
12841
|
payload: renderPayload(values, selectedMember)
|
|
11075
12842
|
}) : createMember(renderPayload(values));
|
|
@@ -11218,11 +12985,13 @@ var Menu = function Menu(_ref) {
|
|
|
11218
12985
|
function ownKeys(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; }
|
|
11219
12986
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11220
12987
|
var TeamMembers = function TeamMembers(_ref) {
|
|
11221
|
-
var _config$
|
|
12988
|
+
var _config$fetchApiRespo, _config$table, _config$table$onDropd, _config$header;
|
|
11222
12989
|
var config = _ref.config;
|
|
11223
12990
|
var _useTranslation = useTranslation(),
|
|
11224
12991
|
t = _useTranslation.t;
|
|
11225
12992
|
var history = reactRouterDom.useHistory();
|
|
12993
|
+
var isViewPermissionGranted = config.permissions.view;
|
|
12994
|
+
var isCreatePermissionGranted = config.permissions.create;
|
|
11226
12995
|
var metaName = getMetaName((config === null || config === void 0 ? void 0 : config.metaName) || "member");
|
|
11227
12996
|
var _useState = React.useState([]),
|
|
11228
12997
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -11232,7 +13001,6 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
11232
13001
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
11233
13002
|
isFiltersPaneOpen = _useState4[0],
|
|
11234
13003
|
setIsFiltersPaneOpen = _useState4[1];
|
|
11235
|
-
var hasCreatePermission = (_config$permissions$c = config === null || config === void 0 ? void 0 : (_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);
|
|
11236
13004
|
React.useEffect(function () {
|
|
11237
13005
|
if (!localStorage.getItem("TEAM_MEMBERS_TABLE_HIDDEN_COLUMNS")) {
|
|
11238
13006
|
localStorage.setItem("TEAM_MEMBERS_TABLE_HIDDEN_COLUMNS", JSON.stringify(["inviteStatus"]));
|
|
@@ -11250,7 +13018,7 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
11250
13018
|
search: debouncedSearch.trim(),
|
|
11251
13019
|
category: filters.category.toLowerCase()
|
|
11252
13020
|
}), {
|
|
11253
|
-
enabled:
|
|
13021
|
+
enabled: isViewPermissionGranted
|
|
11254
13022
|
}),
|
|
11255
13023
|
team = _useFetchMembers.data,
|
|
11256
13024
|
isMembersLoading = _useFetchMembers.isLoading,
|
|
@@ -11260,7 +13028,7 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
11260
13028
|
var _response$organizatio;
|
|
11261
13029
|
return ramda.reverse((_response$organizatio = response === null || response === void 0 ? void 0 : response.organizationRoles) !== null && _response$organizatio !== void 0 ? _response$organizatio : []);
|
|
11262
13030
|
},
|
|
11263
|
-
enabled:
|
|
13031
|
+
enabled: isViewPermissionGranted
|
|
11264
13032
|
}),
|
|
11265
13033
|
roles = _useFetchRoles.data,
|
|
11266
13034
|
isRolesLoading = _useFetchRoles.isLoading;
|
|
@@ -11345,7 +13113,6 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
11345
13113
|
actionBlock: /*#__PURE__*/React__default["default"].createElement(Header, {
|
|
11346
13114
|
config: config,
|
|
11347
13115
|
metaName: metaName,
|
|
11348
|
-
permissions: config === null || config === void 0 ? void 0 : config.permissions,
|
|
11349
13116
|
rolesButtonProps: config.rolesButtonProps,
|
|
11350
13117
|
onClick: function onClick() {
|
|
11351
13118
|
return setIsOpen(ramda.assoc("manageMember", true));
|
|
@@ -11359,7 +13126,7 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
11359
13126
|
});
|
|
11360
13127
|
},
|
|
11361
13128
|
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(
|
|
13129
|
+
}, 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
13130
|
leftActionBlock: /*#__PURE__*/React__default["default"].createElement(SubHeader.Left, {
|
|
11364
13131
|
config: config,
|
|
11365
13132
|
filteredCount: team === null || team === void 0 ? void 0 : team.membersCount,
|
|
@@ -11402,7 +13169,7 @@ var TeamMembers = function TeamMembers(_ref) {
|
|
|
11402
13169
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.NoData, {
|
|
11403
13170
|
primaryButtonProps: {
|
|
11404
13171
|
"data-cy": "ntm-add-member-button",
|
|
11405
|
-
disabled: !
|
|
13172
|
+
disabled: !isCreatePermissionGranted,
|
|
11406
13173
|
label: t("common.addNew_", {
|
|
11407
13174
|
what: metaName(SINGULAR).toLocaleLowerCase()
|
|
11408
13175
|
}),
|
|
@@ -11446,7 +13213,7 @@ var index = reactUtils.withTitle(withReactQuery(TeamMembers), instance.t("metaNa
|
|
|
11446
13213
|
|
|
11447
13214
|
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
13215
|
|
|
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= */";
|
|
13216
|
+
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
13217
|
n(css,{});
|
|
11451
13218
|
|
|
11452
13219
|
exports.ManageMember = ManageMember;
|