@bigbinary/neeto-team-members-frontend 2.4.2 → 2.4.4

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 CHANGED
@@ -4,15 +4,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var ReactDOM = require('react-dom');
7
- var formik = require('formik');
8
- var neetoui = require('@bigbinary/neetoui');
9
- var neetoIcons = require('@bigbinary/neeto-icons');
10
- var classnames = require('classnames');
11
- var formik$1 = require('@bigbinary/neetoui/formik');
12
7
  var axios = require('axios');
8
+ var neetoui = require('@bigbinary/neetoui');
13
9
  var ramda = require('ramda');
14
10
  var layouts = require('@bigbinary/neetoui/layouts');
11
+ var formik = require('formik');
12
+ var formik$1 = require('@bigbinary/neetoui/formik');
15
13
  var yup = require('yup');
14
+ var classnames = require('classnames');
15
+ var neetoIcons = require('@bigbinary/neeto-icons');
16
16
 
17
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
18
 
@@ -36,9 +36,9 @@ function _interopNamespace(e) {
36
36
 
37
37
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
38
  var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
39
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
40
39
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
41
40
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
41
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
42
42
 
43
43
  function _typeof(obj) {
44
44
  "@babel/helpers - typeof";
@@ -122,7 +122,7 @@ function _getPrototypeOf(o) {
122
122
  return _getPrototypeOf(o);
123
123
  }
124
124
 
125
- function _defineProperty$2(obj, key, value) {
125
+ function _defineProperty(obj, key, value) {
126
126
  if (key in obj) {
127
127
  Object.defineProperty(obj, key, {
128
128
  value: value,
@@ -136,15 +136,15 @@ function _defineProperty$2(obj, key, value) {
136
136
  return obj;
137
137
  }
138
138
 
139
- function _arrayWithHoles$2(arr) {
139
+ function _arrayWithHoles(arr) {
140
140
  if (Array.isArray(arr)) return arr;
141
141
  }
142
142
 
143
- function _iterableToArray$2(iter) {
143
+ function _iterableToArray(iter) {
144
144
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
145
145
  }
146
146
 
147
- function _arrayLikeToArray$2(arr, len) {
147
+ function _arrayLikeToArray(arr, len) {
148
148
  if (len == null || len > arr.length) len = arr.length;
149
149
  for (var i = 0, arr2 = new Array(len); i < len; i++) {
150
150
  arr2[i] = arr[i];
@@ -152,26 +152,26 @@ function _arrayLikeToArray$2(arr, len) {
152
152
  return arr2;
153
153
  }
154
154
 
155
- function _unsupportedIterableToArray$2(o, minLen) {
155
+ function _unsupportedIterableToArray(o, minLen) {
156
156
  if (!o) return;
157
- if (typeof o === "string") return _arrayLikeToArray$2(o, minLen);
157
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
158
158
  var n = Object.prototype.toString.call(o).slice(8, -1);
159
159
  if (n === "Object" && o.constructor) n = o.constructor.name;
160
160
  if (n === "Map" || n === "Set") return Array.from(o);
161
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen);
161
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
162
162
  }
163
163
 
164
- function _nonIterableRest$2() {
164
+ function _nonIterableRest() {
165
165
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
166
166
  }
167
167
 
168
168
  function _toArray(arr) {
169
- return _arrayWithHoles$2(arr) || _iterableToArray$2(arr) || _unsupportedIterableToArray$2(arr) || _nonIterableRest$2();
169
+ return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
170
170
  }
171
171
 
172
- 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; }
172
+ function ownKeys$9(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; }
173
173
 
174
- function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
174
+ function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
175
175
 
176
176
  var consoleLogger = {
177
177
  type: 'logger',
@@ -258,7 +258,7 @@ var Logger = function () {
258
258
  }, {
259
259
  key: "create",
260
260
  value: function create(moduleName) {
261
- return new Logger(this.logger, _objectSpread$d(_objectSpread$d({}, {
261
+ return new Logger(this.logger, _objectSpread$9(_objectSpread$9({}, {
262
262
  prefix: "".concat(this.prefix, ":").concat(moduleName, ":")
263
263
  }), this.options));
264
264
  }
@@ -484,7 +484,7 @@ function looksLikeObjectPath(key, nsSeparator, keySeparator) {
484
484
 
485
485
  function ownKeys$1$1(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; }
486
486
 
487
- function _objectSpread$1$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1$1(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
487
+ function _objectSpread$1$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
488
488
 
489
489
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
490
490
 
@@ -729,7 +729,7 @@ var postProcessor = {
729
729
 
730
730
  function ownKeys$2$1(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; }
731
731
 
732
- function _objectSpread$2$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2$1(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
732
+ function _objectSpread$2$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
733
733
 
734
734
  function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
735
735
 
@@ -1652,7 +1652,7 @@ var PluralResolver = function () {
1652
1652
 
1653
1653
  function ownKeys$3$1(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; }
1654
1654
 
1655
- function _objectSpread$3$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3$1(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1655
+ function _objectSpread$3$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1656
1656
 
1657
1657
  var Interpolator = function () {
1658
1658
  function Interpolator() {
@@ -1879,7 +1879,7 @@ var Interpolator = function () {
1879
1879
 
1880
1880
  function ownKeys$4$1(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; }
1881
1881
 
1882
- function _objectSpread$4$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4$1(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1882
+ function _objectSpread$4$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1883
1883
 
1884
1884
  function parseFormatStr(formatStr) {
1885
1885
  var formatName = formatStr.toLowerCase().trim();
@@ -2037,7 +2037,7 @@ var Formatter = function () {
2037
2037
 
2038
2038
  function ownKeys$5$1(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; }
2039
2039
 
2040
- function _objectSpread$5$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5$1(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2040
+ function _objectSpread$5$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2041
2041
 
2042
2042
  function _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
2043
2043
 
@@ -2381,13 +2381,13 @@ function transformOptions(options) {
2381
2381
 
2382
2382
  function ownKeys$6$1(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; }
2383
2383
 
2384
- function _objectSpread$6$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6$1(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2384
+ function _objectSpread$6$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2385
2385
 
2386
2386
  function _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
2387
2387
 
2388
2388
  function _isNativeReflectConstruct$3() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
2389
2389
 
2390
- function noop$3() {}
2390
+ function noop$2() {}
2391
2391
 
2392
2392
  function bindMemberFunctions(inst) {
2393
2393
  var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));
@@ -2552,7 +2552,7 @@ var I18n = function (_EventEmitter) {
2552
2552
  }
2553
2553
 
2554
2554
  this.format = this.options.interpolation.format;
2555
- if (!callback) callback = noop$3;
2555
+ if (!callback) callback = noop$2;
2556
2556
 
2557
2557
  if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
2558
2558
  var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
@@ -2613,7 +2613,7 @@ var I18n = function (_EventEmitter) {
2613
2613
  value: function loadResources(language) {
2614
2614
  var _this3 = this;
2615
2615
 
2616
- var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$3;
2616
+ var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$2;
2617
2617
  var usedCallback = callback;
2618
2618
  var usedLng = typeof language === 'string' ? language : this.language;
2619
2619
  if (typeof language === 'function') usedCallback = language;
@@ -2661,7 +2661,7 @@ var I18n = function (_EventEmitter) {
2661
2661
  var deferred = defer();
2662
2662
  if (!lngs) lngs = this.languages;
2663
2663
  if (!ns) ns = this.options.ns;
2664
- if (!callback) callback = noop$3;
2664
+ if (!callback) callback = noop$2;
2665
2665
  this.services.backendConnector.reload(lngs, ns, function (err) {
2666
2666
  deferred.resolve();
2667
2667
  callback(err);
@@ -2940,7 +2940,7 @@ var I18n = function (_EventEmitter) {
2940
2940
  var _this8 = this;
2941
2941
 
2942
2942
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2943
- var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$3;
2943
+ var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop$2;
2944
2944
 
2945
2945
  var mergedOptions = _objectSpread$6$1(_objectSpread$6$1(_objectSpread$6$1({}, this.options), options), {
2946
2946
  isClone: true
@@ -2991,7 +2991,7 @@ var I18n = function (_EventEmitter) {
2991
2991
  return I18n;
2992
2992
  }(EventEmitter);
2993
2993
 
2994
- _defineProperty$2(I18n, "createInstance", function () {
2994
+ _defineProperty(I18n, "createInstance", function () {
2995
2995
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2996
2996
  var callback = arguments.length > 1 ? arguments[1] : undefined;
2997
2997
  return new I18n(options, callback);
@@ -3201,7 +3201,7 @@ var localStorageAvailable = function localStorageAvailable() {
3201
3201
  return hasLocalStorageSupport;
3202
3202
  };
3203
3203
 
3204
- var localStorage = {
3204
+ var localStorage$1 = {
3205
3205
  name: 'localStorage',
3206
3206
  lookup: function lookup(options) {
3207
3207
  var found;
@@ -3375,7 +3375,7 @@ var Browser = /*#__PURE__*/function () {
3375
3375
  this.i18nOptions = i18nOptions;
3376
3376
  this.addDetector(cookie$1);
3377
3377
  this.addDetector(querystring);
3378
- this.addDetector(localStorage);
3378
+ this.addDetector(localStorage$1);
3379
3379
  this.addDetector(sessionStorage);
3380
3380
  this.addDetector(navigator$1);
3381
3381
  this.addDetector(htmlTag);
@@ -3425,7 +3425,7 @@ var Browser = /*#__PURE__*/function () {
3425
3425
 
3426
3426
  Browser.type = 'languageDetector';
3427
3427
 
3428
- function _objectWithoutPropertiesLoose$1(source, excluded) {
3428
+ function _objectWithoutPropertiesLoose(source, excluded) {
3429
3429
  if (source == null) return {};
3430
3430
  var target = {};
3431
3431
  var sourceKeys = Object.keys(source);
@@ -3438,9 +3438,9 @@ function _objectWithoutPropertiesLoose$1(source, excluded) {
3438
3438
  return target;
3439
3439
  }
3440
3440
 
3441
- function _objectWithoutProperties$1(source, excluded) {
3441
+ function _objectWithoutProperties(source, excluded) {
3442
3442
  if (source == null) return {};
3443
- var target = _objectWithoutPropertiesLoose$1(source, excluded);
3443
+ var target = _objectWithoutPropertiesLoose(source, excluded);
3444
3444
  var key, i;
3445
3445
  if (Object.getOwnPropertySymbols) {
3446
3446
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -3456,30 +3456,6 @@ function _objectWithoutProperties$1(source, excluded) {
3456
3456
 
3457
3457
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
3458
3458
 
3459
- /**
3460
- * This file automatically generated from `pre-publish.js`.
3461
- * Do not manually edit.
3462
- */
3463
-
3464
- var voidElements = {
3465
- "area": true,
3466
- "base": true,
3467
- "br": true,
3468
- "col": true,
3469
- "embed": true,
3470
- "hr": true,
3471
- "img": true,
3472
- "input": true,
3473
- "link": true,
3474
- "meta": true,
3475
- "param": true,
3476
- "source": true,
3477
- "track": true,
3478
- "wbr": true
3479
- };
3480
-
3481
- var t$1=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function n$1(n){var r={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},i=n.match(/<\/?([^\s]+?)[/\s>]/);if(i&&(r.name=i[1],(voidElements[i[1]]||"/"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith("!--"))){var s=n.indexOf("--\x3e");return {type:"comment",comment:-1!==s?n.slice(4,s):""}}for(var a=new RegExp(t$1),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,""];o.indexOf("=")>-1&&(l=o.split("=")),r.attrs[l[0]]=l[1],a.lastIndex--;}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,i=/^\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'="'+e[n]+'"');return t.length?" "+t.join(" "):""}(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(a,"")+"</"+t.name+">";case"comment":return e+"\x3c!--"+t.comment+"--\x3e"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf("<")){var u=e.indexOf("<");c.push({type:"text",content:-1===u?e:e.substring(0,u)});}return e.replace(r,function(r,s){if(m){if(r!=="</"+a.name+">")return;m=!1;}var u,f="/"!==r.charAt(1),h=r.startsWith("\x3c!--"),p=s+r.length,d=e.charAt(p);if(h){var v=n$1(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,"tag"===(a=n$1(r)).type&&t.components[a.name]&&(a.type="component",m=!0),a.voidElement||m||!d||"<"===d||a.children.push({type:"text",content:e.slice(p,e.indexOf("<",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&"<"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf("<",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=" "),(x>-1&&l+u.length>=0||" "!==g)&&u.push({type:"text",content:g});}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a("",t)},"")}};
3482
-
3483
3459
  var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;
3484
3460
  var htmlEntities = {
3485
3461
  '&amp;': '&',
@@ -3512,9 +3488,9 @@ var unescape = function unescape(text) {
3512
3488
  return text.replace(matchHtmlEntity, unescapeHtmlEntity);
3513
3489
  };
3514
3490
 
3515
- function ownKeys$c(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; }
3491
+ function ownKeys$8(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; }
3516
3492
 
3517
- function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3493
+ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3518
3494
  var defaultOptions = {
3519
3495
  bindI18n: 'languageChanged',
3520
3496
  bindI18nStore: '',
@@ -3529,7 +3505,7 @@ var i18nInstance;
3529
3505
  var I18nContext = React.createContext();
3530
3506
  function setDefaults() {
3531
3507
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3532
- defaultOptions = _objectSpread$c(_objectSpread$c({}, defaultOptions), options);
3508
+ defaultOptions = _objectSpread$8(_objectSpread$8({}, defaultOptions), options);
3533
3509
  }
3534
3510
  function getDefaults() {
3535
3511
  return defaultOptions;
@@ -3653,275 +3629,7 @@ function hasLoadedNamespace(ns, i18n) {
3653
3629
  });
3654
3630
  }
3655
3631
 
3656
- var _excluded$4 = ["format"],
3657
- _excluded2$3 = ["children", "count", "parent", "i18nKey", "context", "tOptions", "values", "defaults", "components", "ns", "i18n", "t", "shouldUnescape"];
3658
-
3659
- function ownKeys$b(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; }
3660
-
3661
- function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$b(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3662
-
3663
- function hasChildren(node, checkLength) {
3664
- if (!node) return false;
3665
- var base = node.props ? node.props.children : node.children;
3666
- if (checkLength) return base.length > 0;
3667
- return !!base;
3668
- }
3669
-
3670
- function getChildren(node) {
3671
- if (!node) return [];
3672
- return node.props ? node.props.children : node.children;
3673
- }
3674
-
3675
- function hasValidReactChildren(children) {
3676
- if (Object.prototype.toString.call(children) !== '[object Array]') return false;
3677
- return children.every(function (child) {
3678
- return React.isValidElement(child);
3679
- });
3680
- }
3681
-
3682
- function getAsArray(data) {
3683
- return Array.isArray(data) ? data : [data];
3684
- }
3685
-
3686
- function mergeProps(source, target) {
3687
- var newTarget = _objectSpread$b({}, target);
3688
-
3689
- newTarget.props = Object.assign(source.props, target.props);
3690
- return newTarget;
3691
- }
3692
-
3693
- function nodesToString(children, i18nOptions) {
3694
- if (!children) return '';
3695
- var stringNode = '';
3696
- var childrenArray = getAsArray(children);
3697
- var keepArray = i18nOptions.transSupportBasicHtmlNodes && i18nOptions.transKeepBasicHtmlNodesFor ? i18nOptions.transKeepBasicHtmlNodesFor : [];
3698
- childrenArray.forEach(function (child, childIndex) {
3699
- if (typeof child === 'string') {
3700
- stringNode += "".concat(child);
3701
- } else if (React.isValidElement(child)) {
3702
- var childPropsCount = Object.keys(child.props).length;
3703
- var shouldKeepChild = keepArray.indexOf(child.type) > -1;
3704
- var childChildren = child.props.children;
3705
-
3706
- if (!childChildren && shouldKeepChild && childPropsCount === 0) {
3707
- stringNode += "<".concat(child.type, "/>");
3708
- } else if (!childChildren && (!shouldKeepChild || childPropsCount !== 0)) {
3709
- stringNode += "<".concat(childIndex, "></").concat(childIndex, ">");
3710
- } else if (child.props.i18nIsDynamicList) {
3711
- stringNode += "<".concat(childIndex, "></").concat(childIndex, ">");
3712
- } else if (shouldKeepChild && childPropsCount === 1 && typeof childChildren === 'string') {
3713
- stringNode += "<".concat(child.type, ">").concat(childChildren, "</").concat(child.type, ">");
3714
- } else {
3715
- var content = nodesToString(childChildren, i18nOptions);
3716
- stringNode += "<".concat(childIndex, ">").concat(content, "</").concat(childIndex, ">");
3717
- }
3718
- } else if (child === null) {
3719
- warn("Trans: the passed in value is invalid - seems you passed in a null child.");
3720
- } else if (_typeof(child) === 'object') {
3721
- var format = child.format,
3722
- clone = _objectWithoutProperties$1(child, _excluded$4);
3723
-
3724
- var keys = Object.keys(clone);
3725
-
3726
- if (keys.length === 1) {
3727
- var value = format ? "".concat(keys[0], ", ").concat(format) : keys[0];
3728
- stringNode += "{{".concat(value, "}}");
3729
- } else {
3730
- warn("react-i18next: the passed in object contained more than one variable - the object should look like {{ value, format }} where format is optional.", child);
3731
- }
3732
- } else {
3733
- warn("Trans: the passed in value is invalid - seems you passed in a variable like {number} - please pass in variables for interpolation as full objects like {{number}}.", child);
3734
- }
3735
- });
3736
- return stringNode;
3737
- }
3738
-
3739
- function renderNodes(children, targetString, i18n, i18nOptions, combinedTOpts, shouldUnescape) {
3740
- if (targetString === '') return [];
3741
- var keepArray = i18nOptions.transKeepBasicHtmlNodesFor || [];
3742
- var emptyChildrenButNeedsHandling = targetString && new RegExp(keepArray.join('|')).test(targetString);
3743
- if (!children && !emptyChildrenButNeedsHandling) return [targetString];
3744
- var data = {};
3745
-
3746
- function getData(childs) {
3747
- var childrenArray = getAsArray(childs);
3748
- childrenArray.forEach(function (child) {
3749
- if (typeof child === 'string') return;
3750
- if (hasChildren(child)) getData(getChildren(child));else if (_typeof(child) === 'object' && !React.isValidElement(child)) Object.assign(data, child);
3751
- });
3752
- }
3753
-
3754
- getData(children);
3755
- var ast = c.parse("<0>".concat(targetString, "</0>"));
3756
-
3757
- var opts = _objectSpread$b(_objectSpread$b({}, data), combinedTOpts);
3758
-
3759
- function renderInner(child, node, rootReactNode) {
3760
- var childs = getChildren(child);
3761
- var mappedChildren = mapAST(childs, node.children, rootReactNode);
3762
- return hasValidReactChildren(childs) && mappedChildren.length === 0 ? childs : mappedChildren;
3763
- }
3764
-
3765
- function pushTranslatedJSX(child, inner, mem, i, isVoid) {
3766
- if (child.dummy) child.children = inner;
3767
- mem.push(React.cloneElement(child, _objectSpread$b(_objectSpread$b({}, child.props), {}, {
3768
- key: i
3769
- }), isVoid ? undefined : inner));
3770
- }
3771
-
3772
- function mapAST(reactNode, astNode, rootReactNode) {
3773
- var reactNodes = getAsArray(reactNode);
3774
- var astNodes = getAsArray(astNode);
3775
- return astNodes.reduce(function (mem, node, i) {
3776
- var translationContent = node.children && node.children[0] && node.children[0].content && i18n.services.interpolator.interpolate(node.children[0].content, opts, i18n.language);
3777
-
3778
- if (node.type === 'tag') {
3779
- var tmp = reactNodes[parseInt(node.name, 10)];
3780
- if (!tmp && rootReactNode.length === 1 && rootReactNode[0][node.name]) tmp = rootReactNode[0][node.name];
3781
- if (!tmp) tmp = {};
3782
- var child = Object.keys(node.attrs).length !== 0 ? mergeProps({
3783
- props: node.attrs
3784
- }, tmp) : tmp;
3785
- var isElement = React.isValidElement(child);
3786
- var isValidTranslationWithChildren = isElement && hasChildren(node, true) && !node.voidElement;
3787
- var isEmptyTransWithHTML = emptyChildrenButNeedsHandling && _typeof(child) === 'object' && child.dummy && !isElement;
3788
- var isKnownComponent = _typeof(children) === 'object' && children !== null && Object.hasOwnProperty.call(children, node.name);
3789
-
3790
- if (typeof child === 'string') {
3791
- var value = i18n.services.interpolator.interpolate(child, opts, i18n.language);
3792
- mem.push(value);
3793
- } else if (hasChildren(child) || isValidTranslationWithChildren) {
3794
- var inner = renderInner(child, node, rootReactNode);
3795
- pushTranslatedJSX(child, inner, mem, i);
3796
- } else if (isEmptyTransWithHTML) {
3797
- var _inner = mapAST(reactNodes, node.children, rootReactNode);
3798
-
3799
- mem.push(React.cloneElement(child, _objectSpread$b(_objectSpread$b({}, child.props), {}, {
3800
- key: i
3801
- }), _inner));
3802
- } else if (Number.isNaN(parseFloat(node.name))) {
3803
- if (isKnownComponent) {
3804
- var _inner2 = renderInner(child, node, rootReactNode);
3805
-
3806
- pushTranslatedJSX(child, _inner2, mem, i, node.voidElement);
3807
- } else if (i18nOptions.transSupportBasicHtmlNodes && keepArray.indexOf(node.name) > -1) {
3808
- if (node.voidElement) {
3809
- mem.push(React.createElement(node.name, {
3810
- key: "".concat(node.name, "-").concat(i)
3811
- }));
3812
- } else {
3813
- var _inner3 = mapAST(reactNodes, node.children, rootReactNode);
3814
-
3815
- mem.push(React.createElement(node.name, {
3816
- key: "".concat(node.name, "-").concat(i)
3817
- }, _inner3));
3818
- }
3819
- } else if (node.voidElement) {
3820
- mem.push("<".concat(node.name, " />"));
3821
- } else {
3822
- var _inner4 = mapAST(reactNodes, node.children, rootReactNode);
3823
-
3824
- mem.push("<".concat(node.name, ">").concat(_inner4, "</").concat(node.name, ">"));
3825
- }
3826
- } else if (_typeof(child) === 'object' && !isElement) {
3827
- var content = node.children[0] ? translationContent : null;
3828
- if (content) mem.push(content);
3829
- } else if (node.children.length === 1 && translationContent) {
3830
- mem.push(React.cloneElement(child, _objectSpread$b(_objectSpread$b({}, child.props), {}, {
3831
- key: i
3832
- }), translationContent));
3833
- } else {
3834
- mem.push(React.cloneElement(child, _objectSpread$b(_objectSpread$b({}, child.props), {}, {
3835
- key: i
3836
- })));
3837
- }
3838
- } else if (node.type === 'text') {
3839
- var wrapTextNodes = i18nOptions.transWrapTextNodes;
3840
-
3841
- var _content = shouldUnescape ? i18nOptions.unescape(i18n.services.interpolator.interpolate(node.content, opts, i18n.language)) : i18n.services.interpolator.interpolate(node.content, opts, i18n.language);
3842
-
3843
- if (wrapTextNodes) {
3844
- mem.push(React.createElement(wrapTextNodes, {
3845
- key: "".concat(node.name, "-").concat(i)
3846
- }, _content));
3847
- } else {
3848
- mem.push(_content);
3849
- }
3850
- }
3851
-
3852
- return mem;
3853
- }, []);
3854
- }
3855
-
3856
- var result = mapAST([{
3857
- dummy: true,
3858
- children: children || []
3859
- }], ast, getAsArray(children || []));
3860
- return getChildren(result[0]);
3861
- }
3862
-
3863
- function Trans(_ref) {
3864
- var children = _ref.children,
3865
- count = _ref.count,
3866
- parent = _ref.parent,
3867
- i18nKey = _ref.i18nKey,
3868
- context = _ref.context,
3869
- _ref$tOptions = _ref.tOptions,
3870
- tOptions = _ref$tOptions === void 0 ? {} : _ref$tOptions,
3871
- values = _ref.values,
3872
- defaults = _ref.defaults,
3873
- components = _ref.components,
3874
- ns = _ref.ns,
3875
- i18nFromProps = _ref.i18n,
3876
- tFromProps = _ref.t,
3877
- shouldUnescape = _ref.shouldUnescape,
3878
- additionalProps = _objectWithoutProperties$1(_ref, _excluded2$3);
3879
-
3880
- var _ref2 = React.useContext(I18nContext) || {},
3881
- i18nFromContext = _ref2.i18n,
3882
- defaultNSFromContext = _ref2.defaultNS;
3883
-
3884
- var i18n = i18nFromProps || i18nFromContext || getI18n();
3885
-
3886
- if (!i18n) {
3887
- warnOnce('You will need to pass in an i18next instance by using i18nextReactModule');
3888
- return children;
3889
- }
3890
-
3891
- var t = tFromProps || i18n.t.bind(i18n) || function (k) {
3892
- return k;
3893
- };
3894
-
3895
- if (context) tOptions.context = context;
3896
-
3897
- var reactI18nextOptions = _objectSpread$b(_objectSpread$b({}, getDefaults()), i18n.options && i18n.options.react);
3898
-
3899
- var namespaces = ns || t.ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;
3900
- namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];
3901
- var defaultValue = defaults || nodesToString(children, reactI18nextOptions) || reactI18nextOptions.transEmptyNodeValue || i18nKey;
3902
- var hashTransKey = reactI18nextOptions.hashTransKey;
3903
- var key = i18nKey || (hashTransKey ? hashTransKey(defaultValue) : defaultValue);
3904
- var interpolationOverride = values ? tOptions.interpolation : {
3905
- interpolation: _objectSpread$b(_objectSpread$b({}, tOptions.interpolation), {}, {
3906
- prefix: '#$?',
3907
- suffix: '?$#'
3908
- })
3909
- };
3910
-
3911
- var combinedTOpts = _objectSpread$b(_objectSpread$b(_objectSpread$b(_objectSpread$b({}, tOptions), {}, {
3912
- count: count
3913
- }, values), interpolationOverride), {}, {
3914
- defaultValue: defaultValue,
3915
- ns: namespaces
3916
- });
3917
-
3918
- var translation = key ? t(key, combinedTOpts) : defaultValue;
3919
- var content = renderNodes(components || children, translation, i18n, reactI18nextOptions, combinedTOpts, shouldUnescape);
3920
- var useAsParent = parent !== undefined ? parent : reactI18nextOptions.defaultTransParent;
3921
- return useAsParent ? React.createElement(useAsParent, additionalProps, content) : content;
3922
- }
3923
-
3924
- function _iterableToArrayLimit$2(arr, i) {
3632
+ function _iterableToArrayLimit(arr, i) {
3925
3633
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
3926
3634
  if (_i == null) return;
3927
3635
  var _arr = [];
@@ -3946,13 +3654,13 @@ function _iterableToArrayLimit$2(arr, i) {
3946
3654
  return _arr;
3947
3655
  }
3948
3656
 
3949
- function _slicedToArray$2(arr, i) {
3950
- return _arrayWithHoles$2(arr) || _iterableToArrayLimit$2(arr, i) || _unsupportedIterableToArray$2(arr, i) || _nonIterableRest$2();
3657
+ function _slicedToArray(arr, i) {
3658
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
3951
3659
  }
3952
3660
 
3953
- function ownKeys$a(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; }
3661
+ function ownKeys$7(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; }
3954
3662
 
3955
- function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3663
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3956
3664
 
3957
3665
  var usePrevious = function usePrevious(value, ignore) {
3958
3666
  var ref = React.useRef();
@@ -3989,7 +3697,7 @@ function useTranslation(ns) {
3989
3697
 
3990
3698
  if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');
3991
3699
 
3992
- var i18nOptions = _objectSpread$a(_objectSpread$a(_objectSpread$a({}, getDefaults()), i18n.options.react), props);
3700
+ var i18nOptions = _objectSpread$7(_objectSpread$7(_objectSpread$7({}, getDefaults()), i18n.options.react), props);
3993
3701
 
3994
3702
  var useSuspense = i18nOptions.useSuspense,
3995
3703
  keyPrefix = i18nOptions.keyPrefix;
@@ -4005,7 +3713,7 @@ function useTranslation(ns) {
4005
3713
  }
4006
3714
 
4007
3715
  var _useState = React.useState(getT),
4008
- _useState2 = _slicedToArray$2(_useState, 2),
3716
+ _useState2 = _slicedToArray(_useState, 2),
4009
3717
  t = _useState2[0],
4010
3718
  setT = _useState2[1];
4011
3719
 
@@ -4071,12 +3779,12 @@ var alerts$1 = {
4071
3779
  };
4072
3780
  var buttons$1 = {
4073
3781
  cancel: "Cancel",
4074
- copyLink: "Copy link",
4075
- createLink: "Create link",
4076
- inviteFrom: "Invite from",
4077
3782
  proceed: "Proceed",
4078
- saveChanges: "Save changes",
4079
- sendInvites: "Send invites"
3783
+ saveChanges: "Save changes"
3784
+ };
3785
+ var columns$1 = {
3786
+ search: "Search columns",
3787
+ noColumnsFound: "No columns found."
4080
3788
  };
4081
3789
  var common$1 = {
4082
3790
  activate: "Activate",
@@ -4086,6 +3794,8 @@ var common$1 = {
4086
3794
  add_: "Add {{what}}",
4087
3795
  all: "All",
4088
3796
  all_: "All {{what}}",
3797
+ column_one: "Column",
3798
+ column_other: "Columns",
4089
3799
  deactivate: "Deactivate",
4090
3800
  deactivate_: "Deactivate {{what}}",
4091
3801
  deactivated: "Deactivated",
@@ -4093,12 +3803,10 @@ var common$1 = {
4093
3803
  "delete": "Delete",
4094
3804
  delete_: "Delete {{what}}",
4095
3805
  description: "Description",
4096
- download_: "Download {{what}}",
4097
3806
  edit: "Edit",
4098
3807
  edit_: "Edit {{what}}",
4099
3808
  email_one: "Email",
4100
3809
  email_other: "Emails",
4101
- invite_: "Invite {{what}}",
4102
3810
  manage_: "Manage {{what}}",
4103
3811
  name: "Name",
4104
3812
  notFound_: "Sorry, no {{what}} were found.",
@@ -4107,26 +3815,11 @@ var common$1 = {
4107
3815
  role_one: "Role",
4108
3816
  role_other: "Roles",
4109
3817
  search_: "Search {{what}}",
4110
- settings: "Settings",
4111
- update_: "Update {{what}}",
4112
- upload_: "Upload {{what}}"
3818
+ update_: "Update {{what}}"
4113
3819
  };
4114
3820
  var helpers$1 = {
4115
- bulkInvite: "Bulk invite using CSV",
4116
3821
  configPermissions: "Configure permissions for the modules.",
4117
- copiedToClipboard: "Copied to clipboard",
4118
- dropFilesHere: "Drop files here",
4119
- enterMultipleEmails: "Please press space, tab or enter key after entering an email address.",
4120
- expiresIn: "Expires in ",
4121
- files: "Files",
4122
- getInviteLink: "Get invite link",
4123
- inviteLinkInstruction: "Anyone signing up with this link will be added to the list of candidates.",
4124
- noOfRows: "No. of rows",
4125
- status: "Status",
4126
- uploaded: "Uploaded",
4127
- uploadInstruction1: "Files must be in CSV format.",
4128
- uploadInstruction2: "The file must contain the following columns: <strong>{{what}}</strong>.",
4129
- uploadInstruction3: "The first row must contain the header."
3822
+ enterMultipleEmails: "Please press space, tab or enter key after entering an email address."
4130
3823
  };
4131
3824
  var metaNames$1 = {
4132
3825
  agent_one: "Agent",
@@ -4153,6 +3846,7 @@ var tooltips$1 = {
4153
3846
  var validations$1 = {
4154
3847
  enterRoleName: "Please enter a valid role name.",
4155
3848
  filterInvalidEmails: "Click here to remove invalid emails.",
3849
+ limitExceeded: "You have exceeded the limit of {{limit}} characters for the {{what}}.",
4156
3850
  minOneEmail: "Please enter at least one email address.",
4157
3851
  roleRequired: "Please select a role.",
4158
3852
  validEmail: "Please ensure that all email addresses are valid."
@@ -4160,6 +3854,7 @@ var validations$1 = {
4160
3854
  var en = {
4161
3855
  alerts: alerts$1,
4162
3856
  buttons: buttons$1,
3857
+ columns: columns$1,
4163
3858
  common: common$1,
4164
3859
  helpers: helpers$1,
4165
3860
  metaNames: metaNames$1,
@@ -4175,12 +3870,12 @@ var alerts = {
4175
3870
  };
4176
3871
  var buttons = {
4177
3872
  cancel: "Annuler",
4178
- copyLink: "Copier le lien",
4179
- createLink: "Créer un lien",
4180
- inviteFrom: "Inviter de",
4181
3873
  proceed: "Procéder",
4182
- saveChanges: "Sauvegarder les modifications",
4183
- sendInvites: "Envoie des invitations"
3874
+ saveChanges: "Sauvegarder les modifications"
3875
+ };
3876
+ var columns = {
3877
+ search: "Colonnes de recherche",
3878
+ noColumnsFound: "Aucune colonne trouvée."
4184
3879
  };
4185
3880
  var common = {
4186
3881
  activate: "Activer",
@@ -4190,6 +3885,8 @@ var common = {
4190
3885
  add_: "Ajouter {{what}}",
4191
3886
  all: "Tous",
4192
3887
  all_: "tous les {{what}}",
3888
+ column_one: "Colonne",
3889
+ column_other: "Colonnes",
4193
3890
  deactivate: "Désactiver",
4194
3891
  deactivate_: "Désactiver le {{what}}",
4195
3892
  deactivated: "Désactivé",
@@ -4197,12 +3894,10 @@ var common = {
4197
3894
  "delete": "Effacer",
4198
3895
  delete_: "Supprimer le {{what}}",
4199
3896
  description: "La description",
4200
- download_: "Télécharger {{what}}",
4201
3897
  edit: "Éditer",
4202
3898
  edit_: "Modifier le {{what}}",
4203
3899
  email_one: "E-mail",
4204
3900
  email_other: "E-mails",
4205
- invite_: "Inviter des {{what}}",
4206
3901
  manage_: "Gérer {{what}}",
4207
3902
  name: "Nom",
4208
3903
  notFound_: "Désolé, aucun {{what}} n'a été trouvé.",
@@ -4211,26 +3906,11 @@ var common = {
4211
3906
  role_one: "Rôle",
4212
3907
  role_other: "Rôles",
4213
3908
  search_: "Rechercher des {{what}}",
4214
- settings: "Paramètres",
4215
- update_: "Mettre à jour le {{what}}",
4216
- upload_: "Importer des {{what}}"
3909
+ update_: "Mettre à jour le {{what}}"
4217
3910
  };
4218
3911
  var helpers = {
4219
- bulkInvite: "Invitation groupée à l'aide de CSV",
4220
3912
  configPermissions: "Configurez les autorisations pour les modules.",
4221
- copiedToClipboard: "Copié dans le presse-papier",
4222
- dropFilesHere: "Déposez les fichiers ici",
4223
- enterMultipleEmails: "Veuillez appuyer sur espace, tabulation ou entrée après avoir saisi une adresse e-mail.",
4224
- expiresIn: "Expire dans ",
4225
- files: "Fichiers",
4226
- getInviteLink: "Obtenir le lien d'invitation",
4227
- inviteLinkInstruction: "Toute personne s'inscrivant avec ce lien sera ajoutée à la liste des candidats.",
4228
- noOfRows: "Nombre de rangées",
4229
- status: "Statut",
4230
- uploaded: "Téléchargé",
4231
- uploadInstruction1: "Les fichiers doivent être au format CSV.",
4232
- uploadInstruction2: "Le fichier doit contenir les colonnes suivantes: <strong>{{what}}</strong>.",
4233
- uploadInstruction3: "La première ligne doit contenir l'en-tête."
3913
+ enterMultipleEmails: "Veuillez appuyer sur espace, tabulation ou entrée après avoir saisi une adresse e-mail."
4234
3914
  };
4235
3915
  var metaNames = {
4236
3916
  member_one: "Membre",
@@ -4253,7 +3933,9 @@ var tooltips = {
4253
3933
  noPermissionToRemoveRoles: "Veuillez demander à l'administrateur de vous autoriser à supprimer des rôles."
4254
3934
  };
4255
3935
  var validations = {
3936
+ enterRoleName: "Veuillez entrer le nom du rôle",
4256
3937
  filterInvalidEmails: "Cliquez ici pour supprimer les e-mails invalides.",
3938
+ limitExceeded: "Vous avez dépassé la limite de {{limit}} caractères pour le {{what}}.",
4257
3939
  minOneEmail: "Veuillez saisir au moins une adresse e-mail.",
4258
3940
  roleRequired: "Veuillez sélectionner un rôle.",
4259
3941
  validEmail: "Veuillez vous assurer que toutes les adresses e-mail sont valides."
@@ -4261,6 +3943,7 @@ var validations = {
4261
3943
  var fr = {
4262
3944
  alerts: alerts,
4263
3945
  buttons: buttons,
3946
+ columns: columns,
4264
3947
  common: common,
4265
3948
  helpers: helpers,
4266
3949
  metaNames: metaNames,
@@ -4317,7 +4000,7 @@ const getScrollBarWidth = () => {
4317
4000
  document.body.removeChild(outerElement);
4318
4001
  return w1 - w2;
4319
4002
  };
4320
- const noop$2 = () => {};
4003
+ const noop$1 = () => {};
4321
4004
  const slugify = string => string.toString().toLowerCase().replace(/\s+/g, "-") // Replace spaces with -
4322
4005
  .replace(/&/g, "-and-") // Replace & with 'and'
4323
4006
  .replace(/[^\w-]+/g, "") // Remove all non-word characters
@@ -4325,21 +4008,6 @@ const slugify = string => string.toString().toLowerCase().replace(/\s+/g, "-") /
4325
4008
  .replace(/^-+/, "") // Trim - from start of text
4326
4009
  .replace(/-+$/, ""); // Trim - from end of text
4327
4010
 
4328
- function _extends() {
4329
- _extends = Object.assign ? Object.assign.bind() : function (target) {
4330
- for (var i = 1; i < arguments.length; i++) {
4331
- var source = arguments[i];
4332
- for (var key in source) {
4333
- if (Object.prototype.hasOwnProperty.call(source, key)) {
4334
- target[key] = source[key];
4335
- }
4336
- }
4337
- }
4338
- return target;
4339
- };
4340
- return _extends.apply(this, arguments);
4341
- }
4342
-
4343
4011
  const SINGULAR = {
4344
4012
  count: 1
4345
4013
  };
@@ -4393,10 +4061,25 @@ var Subscribable = /*#__PURE__*/function () {
4393
4061
  return Subscribable;
4394
4062
  }();
4395
4063
 
4064
+ function _extends() {
4065
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
4066
+ for (var i = 1; i < arguments.length; i++) {
4067
+ var source = arguments[i];
4068
+ for (var key in source) {
4069
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
4070
+ target[key] = source[key];
4071
+ }
4072
+ }
4073
+ }
4074
+ return target;
4075
+ };
4076
+ return _extends.apply(this, arguments);
4077
+ }
4078
+
4396
4079
  // TYPES
4397
4080
  // UTILS
4398
4081
  var isServer = typeof window === 'undefined';
4399
- function noop$1() {
4082
+ function noop() {
4400
4083
  return undefined;
4401
4084
  }
4402
4085
  function functionalUpdate(updater, input) {
@@ -5259,7 +4942,7 @@ var Query = /*#__PURE__*/function () {
5259
4942
 
5260
4943
  var promise = this.promise;
5261
4944
  (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);
5262
- return promise ? promise.then(noop$1).catch(noop$1) : Promise.resolve();
4945
+ return promise ? promise.then(noop).catch(noop) : Promise.resolve();
5263
4946
  };
5264
4947
 
5265
4948
  _proto.destroy = function destroy() {
@@ -5833,7 +5516,7 @@ var Mutation = /*#__PURE__*/function () {
5833
5516
  _proto.cancel = function cancel() {
5834
5517
  if (this.retryer) {
5835
5518
  this.retryer.cancel();
5836
- return this.retryer.promise.then(noop$1).catch(noop$1);
5519
+ return this.retryer.promise.then(noop).catch(noop);
5837
5520
  }
5838
5521
 
5839
5522
  return Promise.resolve();
@@ -5949,7 +5632,7 @@ var Mutation = /*#__PURE__*/function () {
5949
5632
  _proto.dispatch = function dispatch(action) {
5950
5633
  var _this3 = this;
5951
5634
 
5952
- this.state = reducer$1(this.state, action);
5635
+ this.state = reducer(this.state, action);
5953
5636
  notifyManager.batch(function () {
5954
5637
  _this3.observers.forEach(function (observer) {
5955
5638
  observer.onMutationUpdate(action);
@@ -5973,7 +5656,7 @@ function getDefaultState() {
5973
5656
  };
5974
5657
  }
5975
5658
 
5976
- function reducer$1(state, action) {
5659
+ function reducer(state, action) {
5977
5660
  switch (action.type) {
5978
5661
  case 'failed':
5979
5662
  return _extends({}, state, {
@@ -6122,7 +5805,7 @@ var MutationCache = /*#__PURE__*/function (_Subscribable) {
6122
5805
  return notifyManager.batch(function () {
6123
5806
  return pausedMutations.reduce(function (promise, mutation) {
6124
5807
  return promise.then(function () {
6125
- return mutation.continue().catch(noop$1);
5808
+ return mutation.continue().catch(noop);
6126
5809
  });
6127
5810
  }, Promise.resolve());
6128
5811
  });
@@ -6405,7 +6088,7 @@ var QueryClient = /*#__PURE__*/function () {
6405
6088
  return query.cancel(cancelOptions);
6406
6089
  });
6407
6090
  });
6408
- return Promise.all(promises).then(noop$1).catch(noop$1);
6091
+ return Promise.all(promises).then(noop).catch(noop);
6409
6092
  };
6410
6093
 
6411
6094
  _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {
@@ -6450,10 +6133,10 @@ var QueryClient = /*#__PURE__*/function () {
6450
6133
  }));
6451
6134
  });
6452
6135
  });
6453
- var promise = Promise.all(promises).then(noop$1);
6136
+ var promise = Promise.all(promises).then(noop);
6454
6137
 
6455
6138
  if (!(options == null ? void 0 : options.throwOnError)) {
6456
- promise = promise.catch(noop$1);
6139
+ promise = promise.catch(noop);
6457
6140
  }
6458
6141
 
6459
6142
  return promise;
@@ -6472,7 +6155,7 @@ var QueryClient = /*#__PURE__*/function () {
6472
6155
  };
6473
6156
 
6474
6157
  _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {
6475
- return this.fetchQuery(arg1, arg2, arg3).then(noop$1).catch(noop$1);
6158
+ return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);
6476
6159
  };
6477
6160
 
6478
6161
  _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {
@@ -6482,7 +6165,7 @@ var QueryClient = /*#__PURE__*/function () {
6482
6165
  };
6483
6166
 
6484
6167
  _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {
6485
- return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop$1).catch(noop$1);
6168
+ return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);
6486
6169
  };
6487
6170
 
6488
6171
  _proto.cancelMutations = function cancelMutations() {
@@ -6493,7 +6176,7 @@ var QueryClient = /*#__PURE__*/function () {
6493
6176
  return mutation.cancel();
6494
6177
  });
6495
6178
  });
6496
- return Promise.all(promises).then(noop$1).catch(noop$1);
6179
+ return Promise.all(promises).then(noop).catch(noop);
6497
6180
  };
6498
6181
 
6499
6182
  _proto.resumePausedMutations = function resumePausedMutations() {
@@ -6797,7 +6480,7 @@ var QueryObserver = /*#__PURE__*/function (_Subscribable) {
6797
6480
  var promise = this.currentQuery.fetch(this.options, fetchOptions);
6798
6481
 
6799
6482
  if (!(fetchOptions == null ? void 0 : fetchOptions.throwOnError)) {
6800
- promise = promise.catch(noop$1);
6483
+ promise = promise.catch(noop);
6801
6484
  }
6802
6485
 
6803
6486
  return promise;
@@ -7389,7 +7072,7 @@ function useMutation(arg1, arg2, arg3) {
7389
7072
  };
7390
7073
  }, []);
7391
7074
  var mutate = React__default["default"].useCallback(function (variables, mutateOptions) {
7392
- obsRef.current.mutate(variables, mutateOptions).catch(noop$1);
7075
+ obsRef.current.mutate(variables, mutateOptions).catch(noop);
7393
7076
  }, []);
7394
7077
 
7395
7078
  if (currentResult.error && shouldThrowError(undefined, obsRef.current.options.useErrorBoundary, [currentResult.error])) {
@@ -7536,2296 +7219,115 @@ const withReactQuery = Component => {
7536
7219
  return QueryWrapper;
7537
7220
  };
7538
7221
 
7539
- var propTypes = {exports: {}};
7540
-
7541
- /**
7542
- * Copyright (c) 2013-present, Facebook, Inc.
7543
- *
7544
- * This source code is licensed under the MIT license found in the
7545
- * LICENSE file in the root directory of this source tree.
7546
- */
7222
+ /* eslint-disable @bigbinary/neeto/no-dangling-constants */
7223
+ const BASE_URL = "team_members";
7547
7224
 
7548
- var ReactPropTypesSecret$1 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
7225
+ const fetch$2 = () => axios__default["default"].get(`${BASE_URL}/permissions`);
7226
+ const permissionsApi = {
7227
+ fetch: fetch$2
7228
+ };
7549
7229
 
7550
- var ReactPropTypesSecret_1 = ReactPropTypesSecret$1;
7230
+ const DEFAULT_STALE_TIME = 300000; // 5 minutes
7551
7231
 
7552
- /**
7553
- * Copyright (c) 2013-present, Facebook, Inc.
7554
- *
7555
- * This source code is licensed under the MIT license found in the
7556
- * LICENSE file in the root directory of this source tree.
7557
- */
7232
+ const QUERY_KEYS = {
7233
+ TEAMS: "neeto-team-members-teams",
7234
+ ROLES: "neeto-team-members-roles",
7235
+ PERMISSIONS: "neeto-team-members-permissions"
7236
+ };
7558
7237
 
7559
- var ReactPropTypesSecret = ReactPropTypesSecret_1;
7238
+ function ownKeys$6(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; }
7239
+ function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7240
+ const useFetchPermissions = function () {
7241
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7242
+ return useQuery(QUERY_KEYS.PERMISSIONS, permissionsApi.fetch, _objectSpread$6({
7243
+ staleTime: DEFAULT_STALE_TIME,
7244
+ select: response => response.permissions || response.data.permissions
7245
+ }, options));
7246
+ };
7560
7247
 
7561
- function emptyFunction() {}
7562
- function emptyFunctionWithReset() {}
7563
- emptyFunctionWithReset.resetWarningCache = emptyFunction;
7248
+ const fetch$1 = () => axios__default["default"].get(`${BASE_URL}/organization_roles`);
7249
+ const create$1 = payload => axios__default["default"].post(`${BASE_URL}/organization_roles`, payload);
7250
+ const update$1 = (id, payload) => axios__default["default"].patch(`${BASE_URL}/organization_roles/${id}`, payload);
7251
+ const destroy = (id, payload) => axios__default["default"].delete(`${BASE_URL}/organization_roles/${id}`, {
7252
+ data: payload
7253
+ });
7254
+ const organizationRolesApi = {
7255
+ fetch: fetch$1,
7256
+ create: create$1,
7257
+ update: update$1,
7258
+ destroy
7259
+ };
7564
7260
 
7565
- var factoryWithThrowingShims = function() {
7566
- function shim(props, propName, componentName, location, propFullName, secret) {
7567
- if (secret === ReactPropTypesSecret) {
7568
- // It is still safe when called from React.
7569
- return;
7261
+ const _excluded$1 = ["onSuccess"],
7262
+ _excluded2$1 = ["onSuccess"],
7263
+ _excluded3 = ["onSuccess"];
7264
+ function ownKeys$5(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; }
7265
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7266
+ const useFetchRoles = function () {
7267
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7268
+ return useQuery(QUERY_KEYS.ROLES, organizationRolesApi.fetch, _objectSpread$5({
7269
+ staleTime: DEFAULT_STALE_TIME,
7270
+ select: response => response.organizationRoles || response.data.organizationRoles
7271
+ }, options));
7272
+ };
7273
+ const useCreateRole = _ref => {
7274
+ let onSuccess = _ref.onSuccess,
7275
+ options = _objectWithoutProperties(_ref, _excluded$1);
7276
+ return useMutation(organizationRolesApi.create, _objectSpread$5({
7277
+ onSuccess: response => {
7278
+ queryClient.setQueriesData(QUERY_KEYS.ROLES, cachedData => {
7279
+ if (!!cachedData.data && !!cachedData.data.organizationRoles) {
7280
+ return ramda.modifyPath(["data", "organizationRoles"], ramda.prepend(response.data.organizationRole), cachedData);
7281
+ }
7282
+ return ramda.modifyPath(["organizationRoles"], ramda.prepend(response.organizationRole), cachedData);
7283
+ });
7284
+ neetoui.Toastr.success(response.ntmNotice || response.data.ntmNotice);
7285
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
7570
7286
  }
7571
- var err = new Error(
7572
- 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
7573
- 'Use PropTypes.checkPropTypes() to call them. ' +
7574
- 'Read more at http://fb.me/use-check-prop-types'
7575
- );
7576
- err.name = 'Invariant Violation';
7577
- throw err;
7578
- } shim.isRequired = shim;
7579
- function getShim() {
7580
- return shim;
7581
- } // Important!
7582
- // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
7583
- var ReactPropTypes = {
7584
- array: shim,
7585
- bigint: shim,
7586
- bool: shim,
7587
- func: shim,
7588
- number: shim,
7589
- object: shim,
7590
- string: shim,
7591
- symbol: shim,
7592
-
7593
- any: shim,
7594
- arrayOf: getShim,
7595
- element: shim,
7596
- elementType: shim,
7597
- instanceOf: getShim,
7598
- node: shim,
7599
- objectOf: getShim,
7600
- oneOf: getShim,
7601
- oneOfType: getShim,
7602
- shape: getShim,
7603
- exact: getShim,
7604
-
7605
- checkPropTypes: emptyFunctionWithReset,
7606
- resetWarningCache: emptyFunction
7607
- };
7608
-
7609
- ReactPropTypes.PropTypes = ReactPropTypes;
7610
-
7611
- return ReactPropTypes;
7287
+ }, options));
7612
7288
  };
7613
-
7614
- /**
7615
- * Copyright (c) 2013-present, Facebook, Inc.
7616
- *
7617
- * This source code is licensed under the MIT license found in the
7618
- * LICENSE file in the root directory of this source tree.
7619
- */
7620
-
7621
- {
7622
- // By explicitly using `prop-types` you are opting into new production behavior.
7623
- // http://fb.me/prop-types-in-prod
7624
- propTypes.exports = factoryWithThrowingShims();
7625
- }
7626
-
7627
- /******************************************************************************
7628
- Copyright (c) Microsoft Corporation.
7629
-
7630
- Permission to use, copy, modify, and/or distribute this software for any
7631
- purpose with or without fee is hereby granted.
7632
-
7633
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
7634
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
7635
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
7636
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
7637
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
7638
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
7639
- PERFORMANCE OF THIS SOFTWARE.
7640
- ***************************************************************************** */
7641
-
7642
- function __awaiter(thisArg, _arguments, P, generator) {
7643
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7644
- return new (P || (P = Promise))(function (resolve, reject) {
7645
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7646
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7647
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7648
- step((generator = generator.apply(thisArg, _arguments || [])).next());
7649
- });
7650
- }
7651
-
7652
- function __generator(thisArg, body) {
7653
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
7654
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
7655
- function verb(n) { return function (v) { return step([n, v]); }; }
7656
- function step(op) {
7657
- if (f) throw new TypeError("Generator is already executing.");
7658
- while (_) try {
7659
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
7660
- if (y = 0, t) op = [op[0] & 2, t.value];
7661
- switch (op[0]) {
7662
- case 0: case 1: t = op; break;
7663
- case 4: _.label++; return { value: op[1], done: false };
7664
- case 5: _.label++; y = op[1]; op = [0]; continue;
7665
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
7666
- default:
7667
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
7668
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
7669
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
7670
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
7671
- if (t[2]) _.ops.pop();
7672
- _.trys.pop(); continue;
7673
- }
7674
- op = body.call(thisArg, _);
7675
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
7676
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
7677
- }
7678
- }
7679
-
7680
- function __read(o, n) {
7681
- var m = typeof Symbol === "function" && o[Symbol.iterator];
7682
- if (!m) return o;
7683
- var i = m.call(o), r, ar = [], e;
7684
- try {
7685
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7686
- }
7687
- catch (error) { e = { error: error }; }
7688
- finally {
7689
- try {
7690
- if (r && !r.done && (m = i["return"])) m.call(i);
7691
- }
7692
- finally { if (e) throw e.error; }
7693
- }
7694
- return ar;
7695
- }
7696
-
7697
- function __spreadArray(to, from, pack) {
7698
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
7699
- if (ar || !(i in from)) {
7700
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
7701
- ar[i] = from[i];
7702
- }
7703
- }
7704
- return to.concat(ar || Array.prototype.slice.call(from));
7705
- }
7706
-
7707
- var COMMON_MIME_TYPES = new Map([
7708
- // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
7709
- ['aac', 'audio/aac'],
7710
- ['abw', 'application/x-abiword'],
7711
- ['arc', 'application/x-freearc'],
7712
- ['avif', 'image/avif'],
7713
- ['avi', 'video/x-msvideo'],
7714
- ['azw', 'application/vnd.amazon.ebook'],
7715
- ['bin', 'application/octet-stream'],
7716
- ['bmp', 'image/bmp'],
7717
- ['bz', 'application/x-bzip'],
7718
- ['bz2', 'application/x-bzip2'],
7719
- ['cda', 'application/x-cdf'],
7720
- ['csh', 'application/x-csh'],
7721
- ['css', 'text/css'],
7722
- ['csv', 'text/csv'],
7723
- ['doc', 'application/msword'],
7724
- ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
7725
- ['eot', 'application/vnd.ms-fontobject'],
7726
- ['epub', 'application/epub+zip'],
7727
- ['gz', 'application/gzip'],
7728
- ['gif', 'image/gif'],
7729
- ['heic', 'image/heic'],
7730
- ['heif', 'image/heif'],
7731
- ['htm', 'text/html'],
7732
- ['html', 'text/html'],
7733
- ['ico', 'image/vnd.microsoft.icon'],
7734
- ['ics', 'text/calendar'],
7735
- ['jar', 'application/java-archive'],
7736
- ['jpeg', 'image/jpeg'],
7737
- ['jpg', 'image/jpeg'],
7738
- ['js', 'text/javascript'],
7739
- ['json', 'application/json'],
7740
- ['jsonld', 'application/ld+json'],
7741
- ['mid', 'audio/midi'],
7742
- ['midi', 'audio/midi'],
7743
- ['mjs', 'text/javascript'],
7744
- ['mp3', 'audio/mpeg'],
7745
- ['mp4', 'video/mp4'],
7746
- ['mpeg', 'video/mpeg'],
7747
- ['mpkg', 'application/vnd.apple.installer+xml'],
7748
- ['odp', 'application/vnd.oasis.opendocument.presentation'],
7749
- ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],
7750
- ['odt', 'application/vnd.oasis.opendocument.text'],
7751
- ['oga', 'audio/ogg'],
7752
- ['ogv', 'video/ogg'],
7753
- ['ogx', 'application/ogg'],
7754
- ['opus', 'audio/opus'],
7755
- ['otf', 'font/otf'],
7756
- ['png', 'image/png'],
7757
- ['pdf', 'application/pdf'],
7758
- ['php', 'application/x-httpd-php'],
7759
- ['ppt', 'application/vnd.ms-powerpoint'],
7760
- ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],
7761
- ['rar', 'application/vnd.rar'],
7762
- ['rtf', 'application/rtf'],
7763
- ['sh', 'application/x-sh'],
7764
- ['svg', 'image/svg+xml'],
7765
- ['swf', 'application/x-shockwave-flash'],
7766
- ['tar', 'application/x-tar'],
7767
- ['tif', 'image/tiff'],
7768
- ['tiff', 'image/tiff'],
7769
- ['ts', 'video/mp2t'],
7770
- ['ttf', 'font/ttf'],
7771
- ['txt', 'text/plain'],
7772
- ['vsd', 'application/vnd.visio'],
7773
- ['wav', 'audio/wav'],
7774
- ['weba', 'audio/webm'],
7775
- ['webm', 'video/webm'],
7776
- ['webp', 'image/webp'],
7777
- ['woff', 'font/woff'],
7778
- ['woff2', 'font/woff2'],
7779
- ['xhtml', 'application/xhtml+xml'],
7780
- ['xls', 'application/vnd.ms-excel'],
7781
- ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
7782
- ['xml', 'application/xml'],
7783
- ['xul', 'application/vnd.mozilla.xul+xml'],
7784
- ['zip', 'application/zip'],
7785
- ['7z', 'application/x-7z-compressed'],
7786
- // Others
7787
- ['mkv', 'video/x-matroska'],
7788
- ['mov', 'video/quicktime'],
7789
- ['msg', 'application/vnd.ms-outlook']
7790
- ]);
7791
- function toFileWithPath(file, path) {
7792
- var f = withMimeType(file);
7793
- if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path
7794
- var webkitRelativePath = file.webkitRelativePath;
7795
- Object.defineProperty(f, 'path', {
7796
- value: typeof path === 'string'
7797
- ? path
7798
- // If <input webkitdirectory> is set,
7799
- // the File will have a {webkitRelativePath} property
7800
- // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory
7801
- : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0
7802
- ? webkitRelativePath
7803
- : file.name,
7804
- writable: false,
7805
- configurable: false,
7806
- enumerable: true
7807
- });
7289
+ const useUpdateRole = _ref2 => {
7290
+ let onSuccess = _ref2.onSuccess,
7291
+ options = _objectWithoutProperties(_ref2, _excluded2$1);
7292
+ return useMutation(_ref3 => {
7293
+ let id = _ref3.id,
7294
+ payload = _ref3.payload;
7295
+ return organizationRolesApi.update(id, payload);
7296
+ }, _objectSpread$5({
7297
+ onSuccess: response => {
7298
+ queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
7299
+ queryClient.setQueriesData(QUERY_KEYS.ROLES, cachedData => {
7300
+ if (!!cachedData.data && !!cachedData.data.organizationRoles) {
7301
+ return ramda.assocPath(["data", "organizationRoles", ramda.findIndex(ramda.propEq("id", response.data.organizationRole.id), cachedData.data.organizationRoles)], response.data.organizationRole, cachedData);
7302
+ }
7303
+ return ramda.assocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.organizationRole.id), cachedData.organizationRoles)], response.organizationRole, cachedData);
7304
+ });
7305
+ neetoui.Toastr.success(response.ntmNotice || response.data.ntmNotice);
7306
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
7808
7307
  }
7809
- return f;
7810
- }
7811
- function withMimeType(file) {
7812
- var name = file.name;
7813
- var hasExtension = name && name.lastIndexOf('.') !== -1;
7814
- if (hasExtension && !file.type) {
7815
- var ext = name.split('.')
7816
- .pop().toLowerCase();
7817
- var type = COMMON_MIME_TYPES.get(ext);
7818
- if (type) {
7819
- Object.defineProperty(file, 'type', {
7820
- value: type,
7821
- writable: false,
7822
- configurable: false,
7823
- enumerable: true
7824
- });
7308
+ }, options));
7309
+ };
7310
+ const useDestroyRole = _ref4 => {
7311
+ let _ref4$onSuccess = _ref4.onSuccess,
7312
+ onSuccess = _ref4$onSuccess === void 0 ? noop$1 : _ref4$onSuccess,
7313
+ options = _objectWithoutProperties(_ref4, _excluded3);
7314
+ return useMutation(_ref5 => {
7315
+ let id = _ref5.id,
7316
+ payload = _ref5.payload;
7317
+ return organizationRolesApi.destroy(id, payload);
7318
+ }, _objectSpread$5({
7319
+ onSuccess: response => {
7320
+ queryClient.setQueriesData(QUERY_KEYS.ROLES, cachedData => {
7321
+ if (!!cachedData.data && !!cachedData.data.organizationRoles) {
7322
+ return ramda.dissocPath(["data", "organizationRoles", ramda.findIndex(ramda.propEq("id", response.data.id), cachedData.data.organizationRoles)], cachedData);
7825
7323
  }
7324
+ return ramda.dissocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.id), cachedData.organizationRoles)], cachedData);
7325
+ });
7326
+ neetoui.Toastr.success(response.ntmNotice || response.data.ntmNotice);
7327
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
7826
7328
  }
7827
- return file;
7828
- }
7829
-
7830
- var FILES_TO_IGNORE = [
7831
- // Thumbnail cache files for macOS and Windows
7832
- '.DS_Store',
7833
- 'Thumbs.db' // Windows
7834
- ];
7835
- /**
7836
- * Convert a DragEvent's DataTrasfer object to a list of File objects
7837
- * NOTE: If some of the items are folders,
7838
- * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.
7839
- *
7840
- * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg
7841
- * and a list of File objects will be returned.
7842
- *
7843
- * @param evt
7844
- */
7845
- function fromEvent(evt) {
7846
- return __awaiter(this, void 0, void 0, function () {
7847
- return __generator(this, function (_a) {
7848
- if (isObject(evt) && isDataTransfer(evt.dataTransfer)) {
7849
- return [2 /*return*/, getDataTransferFiles(evt.dataTransfer, evt.type)];
7850
- }
7851
- else if (isChangeEvt(evt)) {
7852
- return [2 /*return*/, getInputFiles(evt)];
7853
- }
7854
- else if (Array.isArray(evt) && evt.every(function (item) { return 'getFile' in item && typeof item.getFile === 'function'; })) {
7855
- return [2 /*return*/, getFsHandleFiles(evt)];
7856
- }
7857
- return [2 /*return*/, []];
7858
- });
7859
- });
7860
- }
7861
- function isDataTransfer(value) {
7862
- return isObject(value);
7863
- }
7864
- function isChangeEvt(value) {
7865
- return isObject(value) && isObject(value.target);
7866
- }
7867
- function isObject(v) {
7868
- return typeof v === 'object' && v !== null;
7869
- }
7870
- function getInputFiles(evt) {
7871
- return fromList(evt.target.files).map(function (file) { return toFileWithPath(file); });
7872
- }
7873
- // Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle
7874
- function getFsHandleFiles(handles) {
7875
- return __awaiter(this, void 0, void 0, function () {
7876
- var files;
7877
- return __generator(this, function (_a) {
7878
- switch (_a.label) {
7879
- case 0: return [4 /*yield*/, Promise.all(handles.map(function (h) { return h.getFile(); }))];
7880
- case 1:
7881
- files = _a.sent();
7882
- return [2 /*return*/, files.map(function (file) { return toFileWithPath(file); })];
7883
- }
7884
- });
7885
- });
7886
- }
7887
- function getDataTransferFiles(dt, type) {
7888
- return __awaiter(this, void 0, void 0, function () {
7889
- var items, files;
7890
- return __generator(this, function (_a) {
7891
- switch (_a.label) {
7892
- case 0:
7893
- if (!dt.items) return [3 /*break*/, 2];
7894
- items = fromList(dt.items)
7895
- .filter(function (item) { return item.kind === 'file'; });
7896
- // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,
7897
- // only 'dragstart' and 'drop' has access to the data (source node)
7898
- if (type !== 'drop') {
7899
- return [2 /*return*/, items];
7900
- }
7901
- return [4 /*yield*/, Promise.all(items.map(toFilePromises))];
7902
- case 1:
7903
- files = _a.sent();
7904
- return [2 /*return*/, noIgnoredFiles(flatten(files))];
7905
- case 2: return [2 /*return*/, noIgnoredFiles(fromList(dt.files)
7906
- .map(function (file) { return toFileWithPath(file); }))];
7907
- }
7908
- });
7909
- });
7910
- }
7911
- function noIgnoredFiles(files) {
7912
- return files.filter(function (file) { return FILES_TO_IGNORE.indexOf(file.name) === -1; });
7913
- }
7914
- // IE11 does not support Array.from()
7915
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility
7916
- // https://developer.mozilla.org/en-US/docs/Web/API/FileList
7917
- // https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList
7918
- function fromList(items) {
7919
- if (items === null) {
7920
- return [];
7921
- }
7922
- var files = [];
7923
- // tslint:disable: prefer-for-of
7924
- for (var i = 0; i < items.length; i++) {
7925
- var file = items[i];
7926
- files.push(file);
7927
- }
7928
- return files;
7929
- }
7930
- // https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem
7931
- function toFilePromises(item) {
7932
- if (typeof item.webkitGetAsEntry !== 'function') {
7933
- return fromDataTransferItem(item);
7934
- }
7935
- var entry = item.webkitGetAsEntry();
7936
- // Safari supports dropping an image node from a different window and can be retrieved using
7937
- // the DataTransferItem.getAsFile() API
7938
- // NOTE: FileSystemEntry.file() throws if trying to get the file
7939
- if (entry && entry.isDirectory) {
7940
- return fromDirEntry(entry);
7941
- }
7942
- return fromDataTransferItem(item);
7943
- }
7944
- function flatten(items) {
7945
- return items.reduce(function (acc, files) { return __spreadArray(__spreadArray([], __read(acc), false), __read((Array.isArray(files) ? flatten(files) : [files])), false); }, []);
7946
- }
7947
- function fromDataTransferItem(item) {
7948
- var file = item.getAsFile();
7949
- if (!file) {
7950
- return Promise.reject("".concat(item, " is not a File"));
7951
- }
7952
- var fwp = toFileWithPath(file);
7953
- return Promise.resolve(fwp);
7954
- }
7955
- // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry
7956
- function fromEntry(entry) {
7957
- return __awaiter(this, void 0, void 0, function () {
7958
- return __generator(this, function (_a) {
7959
- return [2 /*return*/, entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)];
7960
- });
7961
- });
7962
- }
7963
- // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry
7964
- function fromDirEntry(entry) {
7965
- var reader = entry.createReader();
7966
- return new Promise(function (resolve, reject) {
7967
- var entries = [];
7968
- function readEntries() {
7969
- var _this = this;
7970
- // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader
7971
- // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries
7972
- reader.readEntries(function (batch) { return __awaiter(_this, void 0, void 0, function () {
7973
- var files, err_1, items;
7974
- return __generator(this, function (_a) {
7975
- switch (_a.label) {
7976
- case 0:
7977
- if (!!batch.length) return [3 /*break*/, 5];
7978
- _a.label = 1;
7979
- case 1:
7980
- _a.trys.push([1, 3, , 4]);
7981
- return [4 /*yield*/, Promise.all(entries)];
7982
- case 2:
7983
- files = _a.sent();
7984
- resolve(files);
7985
- return [3 /*break*/, 4];
7986
- case 3:
7987
- err_1 = _a.sent();
7988
- reject(err_1);
7989
- return [3 /*break*/, 4];
7990
- case 4: return [3 /*break*/, 6];
7991
- case 5:
7992
- items = Promise.all(batch.map(fromEntry));
7993
- entries.push(items);
7994
- // Continue reading
7995
- readEntries();
7996
- _a.label = 6;
7997
- case 6: return [2 /*return*/];
7998
- }
7999
- });
8000
- }); }, function (err) {
8001
- reject(err);
8002
- });
8003
- }
8004
- readEntries();
8005
- });
8006
- }
8007
- // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry
8008
- function fromFileEntry(entry) {
8009
- return __awaiter(this, void 0, void 0, function () {
8010
- return __generator(this, function (_a) {
8011
- return [2 /*return*/, new Promise(function (resolve, reject) {
8012
- entry.file(function (file) {
8013
- var fwp = toFileWithPath(file, entry.fullPath);
8014
- resolve(fwp);
8015
- }, function (err) {
8016
- reject(err);
8017
- });
8018
- })];
8019
- });
8020
- });
8021
- }
8022
-
8023
- var _default = function (file, acceptedFiles) {
8024
- if (file && acceptedFiles) {
8025
- var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');
8026
- var fileName = file.name || '';
8027
- var mimeType = (file.type || '').toLowerCase();
8028
- var baseMimeType = mimeType.replace(/\/.*$/, '');
8029
- return acceptedFilesArray.some(function (type) {
8030
- var validType = type.trim().toLowerCase();
8031
-
8032
- if (validType.charAt(0) === '.') {
8033
- return fileName.toLowerCase().endsWith(validType);
8034
- } else if (validType.endsWith('/*')) {
8035
- // This is something like a image/* mime type
8036
- return baseMimeType === validType.replace(/\/.*$/, '');
8037
- }
8038
-
8039
- return mimeType === validType;
8040
- });
8041
- }
8042
-
8043
- return true;
8044
- };
8045
-
8046
- function _toConsumableArray$1(arr) { return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread$1(); }
8047
-
8048
- function _nonIterableSpread$1() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8049
-
8050
- function _iterableToArray$1(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
8051
-
8052
- function _arrayWithoutHoles$1(arr) { if (Array.isArray(arr)) return _arrayLikeToArray$1(arr); }
8053
-
8054
- function ownKeys$9(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; }
8055
-
8056
- function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8057
-
8058
- function _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8059
-
8060
- function _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1(); }
8061
-
8062
- function _nonIterableRest$1() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8063
-
8064
- function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(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$1(o, minLen); }
8065
-
8066
- function _arrayLikeToArray$1(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; }
8067
-
8068
- function _iterableToArrayLimit$1(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
8069
-
8070
- function _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; }
8071
-
8072
- var FILE_INVALID_TYPE = "file-invalid-type";
8073
- var FILE_TOO_LARGE = "file-too-large";
8074
- var FILE_TOO_SMALL = "file-too-small";
8075
- var TOO_MANY_FILES = "too-many-files";
8076
-
8077
- var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {
8078
- accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;
8079
- var messageSuffix = Array.isArray(accept) ? "one of ".concat(accept.join(", ")) : accept;
8080
- return {
8081
- code: FILE_INVALID_TYPE,
8082
- message: "File type must be ".concat(messageSuffix)
8083
- };
8084
- };
8085
- var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {
8086
- return {
8087
- code: FILE_TOO_LARGE,
8088
- message: "File is larger than ".concat(maxSize, " ").concat(maxSize === 1 ? "byte" : "bytes")
8089
- };
8090
- };
8091
- var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {
8092
- return {
8093
- code: FILE_TOO_SMALL,
8094
- message: "File is smaller than ".concat(minSize, " ").concat(minSize === 1 ? "byte" : "bytes")
8095
- };
8096
- };
8097
- var TOO_MANY_FILES_REJECTION = {
8098
- code: TOO_MANY_FILES,
8099
- message: "Too many files"
8100
- }; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with
8101
- // that MIME type will always be accepted
8102
-
8103
- function fileAccepted(file, accept) {
8104
- var isAcceptable = file.type === "application/x-moz-file" || _default(file, accept);
8105
- return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];
8106
- }
8107
- function fileMatchSize(file, minSize, maxSize) {
8108
- if (isDefined(file.size)) {
8109
- if (isDefined(minSize) && isDefined(maxSize)) {
8110
- if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];
8111
- if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];
8112
- } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];
8113
- }
8114
-
8115
- return [true, null];
8116
- }
8117
-
8118
- function isDefined(value) {
8119
- return value !== undefined && value !== null;
8120
- }
8121
- /**
8122
- *
8123
- * @param {object} options
8124
- * @param {File[]} options.files
8125
- * @param {string|string[]} [options.accept]
8126
- * @param {number} [options.minSize]
8127
- * @param {number} [options.maxSize]
8128
- * @param {boolean} [options.multiple]
8129
- * @param {number} [options.maxFiles]
8130
- * @param {(f: File) => FileError|FileError[]|null} [options.validator]
8131
- * @returns
8132
- */
8133
-
8134
-
8135
- function allFilesAccepted(_ref) {
8136
- var files = _ref.files,
8137
- accept = _ref.accept,
8138
- minSize = _ref.minSize,
8139
- maxSize = _ref.maxSize,
8140
- multiple = _ref.multiple,
8141
- maxFiles = _ref.maxFiles,
8142
- validator = _ref.validator;
8143
-
8144
- if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {
8145
- return false;
8146
- }
8147
-
8148
- return files.every(function (file) {
8149
- var _fileAccepted = fileAccepted(file, accept),
8150
- _fileAccepted2 = _slicedToArray$1(_fileAccepted, 1),
8151
- accepted = _fileAccepted2[0];
8152
-
8153
- var _fileMatchSize = fileMatchSize(file, minSize, maxSize),
8154
- _fileMatchSize2 = _slicedToArray$1(_fileMatchSize, 1),
8155
- sizeMatch = _fileMatchSize2[0];
8156
-
8157
- var customErrors = validator ? validator(file) : null;
8158
- return accepted && sizeMatch && !customErrors;
8159
- });
8160
- } // React's synthetic events has event.isPropagationStopped,
8161
- // but to remain compatibility with other libs (Preact) fall back
8162
- // to check event.cancelBubble
8163
-
8164
- function isPropagationStopped(event) {
8165
- if (typeof event.isPropagationStopped === "function") {
8166
- return event.isPropagationStopped();
8167
- } else if (typeof event.cancelBubble !== "undefined") {
8168
- return event.cancelBubble;
8169
- }
8170
-
8171
- return false;
8172
- }
8173
- function isEvtWithFiles(event) {
8174
- if (!event.dataTransfer) {
8175
- return !!event.target && !!event.target.files;
8176
- } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types
8177
- // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file
8178
-
8179
-
8180
- return Array.prototype.some.call(event.dataTransfer.types, function (type) {
8181
- return type === "Files" || type === "application/x-moz-file";
8182
- });
8183
- }
8184
-
8185
- function onDocumentDragOver(event) {
8186
- event.preventDefault();
8187
- }
8188
-
8189
- function isIe(userAgent) {
8190
- return userAgent.indexOf("MSIE") !== -1 || userAgent.indexOf("Trident/") !== -1;
8191
- }
8192
-
8193
- function isEdge(userAgent) {
8194
- return userAgent.indexOf("Edge/") !== -1;
8195
- }
8196
-
8197
- function isIeOrEdge() {
8198
- var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;
8199
- return isIe(userAgent) || isEdge(userAgent);
8200
- }
8201
- /**
8202
- * This is intended to be used to compose event handlers
8203
- * They are executed in order until one of them calls `event.isPropagationStopped()`.
8204
- * Note that the check is done on the first invoke too,
8205
- * meaning that if propagation was stopped before invoking the fns,
8206
- * no handlers will be executed.
8207
- *
8208
- * @param {Function} fns the event hanlder functions
8209
- * @return {Function} the event handler to add to an element
8210
- */
8211
-
8212
- function composeEventHandlers() {
8213
- for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
8214
- fns[_key] = arguments[_key];
8215
- }
8216
-
8217
- return function (event) {
8218
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
8219
- args[_key2 - 1] = arguments[_key2];
8220
- }
8221
-
8222
- return fns.some(function (fn) {
8223
- if (!isPropagationStopped(event) && fn) {
8224
- fn.apply(void 0, [event].concat(args));
8225
- }
8226
-
8227
- return isPropagationStopped(event);
8228
- });
8229
- };
8230
- }
8231
- /**
8232
- * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)
8233
- * is supported by the browser.
8234
- * @returns {boolean}
8235
- */
8236
-
8237
- function canUseFileSystemAccessAPI() {
8238
- return "showOpenFilePicker" in window;
8239
- }
8240
- /**
8241
- * Convert the `{accept}` dropzone prop to the
8242
- * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker
8243
- *
8244
- * @param {AcceptProp} accept
8245
- * @returns {{accept: string[]}[]}
8246
- */
8247
-
8248
- function pickerOptionsFromAccept(accept) {
8249
- if (isDefined(accept)) {
8250
- var acceptForPicker = Object.entries(accept).filter(function (_ref2) {
8251
- var _ref3 = _slicedToArray$1(_ref2, 2),
8252
- mimeType = _ref3[0],
8253
- ext = _ref3[1];
8254
-
8255
- var ok = true;
8256
-
8257
- if (!isMIMEType(mimeType)) {
8258
- console.warn("Skipped \"".concat(mimeType, "\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types."));
8259
- ok = false;
8260
- }
8261
-
8262
- if (!Array.isArray(ext) || !ext.every(isExt)) {
8263
- console.warn("Skipped \"".concat(mimeType, "\" because an invalid file extension was provided."));
8264
- ok = false;
8265
- }
8266
-
8267
- return ok;
8268
- }).reduce(function (agg, _ref4) {
8269
- var _ref5 = _slicedToArray$1(_ref4, 2),
8270
- mimeType = _ref5[0],
8271
- ext = _ref5[1];
8272
-
8273
- return _objectSpread$9(_objectSpread$9({}, agg), {}, _defineProperty$1({}, mimeType, ext));
8274
- }, {});
8275
- return [{
8276
- accept: acceptForPicker
8277
- }];
8278
- }
8279
-
8280
- return accept;
8281
- }
8282
- /**
8283
- * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.
8284
- * @param {AcceptProp} accept
8285
- * @returns {string}
8286
- */
8287
-
8288
- function acceptPropAsAcceptAttr(accept) {
8289
- if (isDefined(accept)) {
8290
- return Object.entries(accept).reduce(function (a, _ref6) {
8291
- var _ref7 = _slicedToArray$1(_ref6, 2),
8292
- mimeType = _ref7[0],
8293
- ext = _ref7[1];
8294
-
8295
- return [].concat(_toConsumableArray$1(a), [mimeType], _toConsumableArray$1(ext));
8296
- }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these
8297
- .filter(function (v) {
8298
- return isMIMEType(v) || isExt(v);
8299
- }).join(",");
8300
- }
8301
-
8302
- return undefined;
8303
- }
8304
- /**
8305
- * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).
8306
- *
8307
- * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.
8308
- * @param {any} v
8309
- * @returns {boolean} True if v is an abort exception.
8310
- */
8311
-
8312
- function isAbort(v) {
8313
- return v instanceof DOMException && (v.name === "AbortError" || v.code === v.ABORT_ERR);
8314
- }
8315
- /**
8316
- * Check if v is a security error.
8317
- *
8318
- * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.
8319
- * @param {any} v
8320
- * @returns {boolean} True if v is a security error.
8321
- */
8322
-
8323
- function isSecurityError(v) {
8324
- return v instanceof DOMException && (v.name === "SecurityError" || v.code === v.SECURITY_ERR);
8325
- }
8326
- /**
8327
- * Check if v is a MIME type string.
8328
- *
8329
- * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.
8330
- *
8331
- * @param {string} v
8332
- */
8333
-
8334
- function isMIMEType(v) {
8335
- return v === "audio/*" || v === "video/*" || v === "image/*" || v === "text/*" || /\w+\/[-+.\w]+/g.test(v);
8336
- }
8337
- /**
8338
- * Check if v is a file extension.
8339
- * @param {string} v
8340
- */
8341
-
8342
- function isExt(v) {
8343
- return /^.*\.[\w]+$/.test(v);
8344
- }
8345
- /**
8346
- * @typedef {Object.<string, string[]>} AcceptProp
8347
- */
8348
-
8349
- /**
8350
- * @typedef {object} FileError
8351
- * @property {string} message
8352
- * @property {ErrorCode|string} code
8353
- */
8354
-
8355
- /**
8356
- * @typedef {"file-invalid-type"|"file-too-large"|"file-too-small"|"too-many-files"} ErrorCode
8357
- */
8358
-
8359
- var _excluded$3 = ["children"],
8360
- _excluded2$2 = ["open"],
8361
- _excluded3$1 = ["refKey", "role", "onKeyDown", "onFocus", "onBlur", "onClick", "onDragEnter", "onDragOver", "onDragLeave", "onDrop"],
8362
- _excluded4 = ["refKey", "onChange", "onClick"];
8363
-
8364
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8365
-
8366
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8367
-
8368
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
8369
-
8370
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8371
-
8372
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8373
-
8374
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8375
-
8376
- 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); }
8377
-
8378
- 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; }
8379
-
8380
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
8381
-
8382
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8383
-
8384
- function ownKeys$8(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; }
8385
-
8386
- function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8387
-
8388
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8389
-
8390
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
8391
-
8392
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
8393
- /**
8394
- * Convenience wrapper component for the `useDropzone` hook
8395
- *
8396
- * ```jsx
8397
- * <Dropzone>
8398
- * {({getRootProps, getInputProps}) => (
8399
- * <div {...getRootProps()}>
8400
- * <input {...getInputProps()} />
8401
- * <p>Drag 'n' drop some files here, or click to select files</p>
8402
- * </div>
8403
- * )}
8404
- * </Dropzone>
8405
- * ```
8406
- */
8407
-
8408
- var Dropzone = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
8409
- var children = _ref.children,
8410
- params = _objectWithoutProperties(_ref, _excluded$3);
8411
-
8412
- var _useDropzone = useDropzone(params),
8413
- open = _useDropzone.open,
8414
- props = _objectWithoutProperties(_useDropzone, _excluded2$2);
8415
-
8416
- React.useImperativeHandle(ref, function () {
8417
- return {
8418
- open: open
8419
- };
8420
- }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element
8421
-
8422
- return /*#__PURE__*/React__default["default"].createElement(React.Fragment, null, children(_objectSpread$8(_objectSpread$8({}, props), {}, {
8423
- open: open
8424
- })));
8425
- });
8426
- Dropzone.displayName = "Dropzone"; // Add default props for react-docgen
8427
-
8428
- var defaultProps = {
8429
- disabled: false,
8430
- getFilesFromEvent: fromEvent,
8431
- maxSize: Infinity,
8432
- minSize: 0,
8433
- multiple: true,
8434
- maxFiles: 0,
8435
- preventDropOnDocument: true,
8436
- noClick: false,
8437
- noKeyboard: false,
8438
- noDrag: false,
8439
- noDragEventsBubbling: false,
8440
- validator: null,
8441
- useFsAccessApi: true,
8442
- autoFocus: false
8443
- };
8444
- Dropzone.defaultProps = defaultProps;
8445
- Dropzone.propTypes = {
8446
- /**
8447
- * Render function that exposes the dropzone state and prop getter fns
8448
- *
8449
- * @param {object} params
8450
- * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render
8451
- * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render
8452
- * @param {Function} params.open Open the native file selection dialog
8453
- * @param {boolean} params.isFocused Dropzone area is in focus
8454
- * @param {boolean} params.isFileDialogActive File dialog is opened
8455
- * @param {boolean} params.isDragActive Active drag is in progress
8456
- * @param {boolean} params.isDragAccept Dragged files are accepted
8457
- * @param {boolean} params.isDragReject Some dragged files are rejected
8458
- * @param {File[]} params.acceptedFiles Accepted files
8459
- * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected
8460
- */
8461
- children: propTypes.exports.func,
8462
-
8463
- /**
8464
- * Set accepted file types.
8465
- * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.
8466
- * Keep in mind that mime type determination is not reliable across platforms. CSV files,
8467
- * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under
8468
- * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).
8469
- */
8470
- accept: propTypes.exports.objectOf(propTypes.exports.arrayOf(propTypes.exports.string)),
8471
-
8472
- /**
8473
- * Allow drag 'n' drop (or selection from the file dialog) of multiple files
8474
- */
8475
- multiple: propTypes.exports.bool,
8476
-
8477
- /**
8478
- * If false, allow dropped items to take over the current browser window
8479
- */
8480
- preventDropOnDocument: propTypes.exports.bool,
8481
-
8482
- /**
8483
- * If true, disables click to open the native file selection dialog
8484
- */
8485
- noClick: propTypes.exports.bool,
8486
-
8487
- /**
8488
- * If true, disables SPACE/ENTER to open the native file selection dialog.
8489
- * Note that it also stops tracking the focus state.
8490
- */
8491
- noKeyboard: propTypes.exports.bool,
8492
-
8493
- /**
8494
- * If true, disables drag 'n' drop
8495
- */
8496
- noDrag: propTypes.exports.bool,
8497
-
8498
- /**
8499
- * If true, stops drag event propagation to parents
8500
- */
8501
- noDragEventsBubbling: propTypes.exports.bool,
8502
-
8503
- /**
8504
- * Minimum file size (in bytes)
8505
- */
8506
- minSize: propTypes.exports.number,
8507
-
8508
- /**
8509
- * Maximum file size (in bytes)
8510
- */
8511
- maxSize: propTypes.exports.number,
8512
-
8513
- /**
8514
- * Maximum accepted number of files
8515
- * The default value is 0 which means there is no limitation to how many files are accepted.
8516
- */
8517
- maxFiles: propTypes.exports.number,
8518
-
8519
- /**
8520
- * Enable/disable the dropzone
8521
- */
8522
- disabled: propTypes.exports.bool,
8523
-
8524
- /**
8525
- * Use this to provide a custom file aggregator
8526
- *
8527
- * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
8528
- */
8529
- getFilesFromEvent: propTypes.exports.func,
8530
-
8531
- /**
8532
- * Cb for when closing the file dialog with no selection
8533
- */
8534
- onFileDialogCancel: propTypes.exports.func,
8535
-
8536
- /**
8537
- * Cb for when opening the file dialog
8538
- */
8539
- onFileDialogOpen: propTypes.exports.func,
8540
-
8541
- /**
8542
- * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API
8543
- * to open the file picker instead of using an `<input type="file">` click event.
8544
- */
8545
- useFsAccessApi: propTypes.exports.bool,
8546
-
8547
- /**
8548
- * Set to true to focus the root element on render
8549
- */
8550
- autoFocus: propTypes.exports.bool,
8551
-
8552
- /**
8553
- * Cb for when the `dragenter` event occurs.
8554
- *
8555
- * @param {DragEvent} event
8556
- */
8557
- onDragEnter: propTypes.exports.func,
8558
-
8559
- /**
8560
- * Cb for when the `dragleave` event occurs
8561
- *
8562
- * @param {DragEvent} event
8563
- */
8564
- onDragLeave: propTypes.exports.func,
8565
-
8566
- /**
8567
- * Cb for when the `dragover` event occurs
8568
- *
8569
- * @param {DragEvent} event
8570
- */
8571
- onDragOver: propTypes.exports.func,
8572
-
8573
- /**
8574
- * Cb for when the `drop` event occurs.
8575
- * Note that this callback is invoked after the `getFilesFromEvent` callback is done.
8576
- *
8577
- * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.
8578
- * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.
8579
- * If `multiple` is set to false and additional files are dropped,
8580
- * all files besides the first will be rejected.
8581
- * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.
8582
- *
8583
- * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.
8584
- * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.
8585
- *
8586
- * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.
8587
- * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:
8588
- *
8589
- * ```js
8590
- * function onDrop(acceptedFiles) {
8591
- * const req = request.post('/upload')
8592
- * acceptedFiles.forEach(file => {
8593
- * req.attach(file.name, file)
8594
- * })
8595
- * req.end(callback)
8596
- * }
8597
- * ```
8598
- *
8599
- * @param {File[]} acceptedFiles
8600
- * @param {FileRejection[]} fileRejections
8601
- * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
8602
- */
8603
- onDrop: propTypes.exports.func,
8604
-
8605
- /**
8606
- * Cb for when the `drop` event occurs.
8607
- * Note that if no files are accepted, this callback is not invoked.
8608
- *
8609
- * @param {File[]} files
8610
- * @param {(DragEvent|Event)} event
8611
- */
8612
- onDropAccepted: propTypes.exports.func,
8613
-
8614
- /**
8615
- * Cb for when the `drop` event occurs.
8616
- * Note that if no files are rejected, this callback is not invoked.
8617
- *
8618
- * @param {FileRejection[]} fileRejections
8619
- * @param {(DragEvent|Event)} event
8620
- */
8621
- onDropRejected: propTypes.exports.func,
8622
-
8623
- /**
8624
- * Cb for when there's some error from any of the promises.
8625
- *
8626
- * @param {Error} error
8627
- */
8628
- onError: propTypes.exports.func,
8629
-
8630
- /**
8631
- * Custom validation function. It must return null if there's no errors.
8632
- * @param {File} file
8633
- * @returns {FileError|FileError[]|null}
8634
- */
8635
- validator: propTypes.exports.func
8636
- };
8637
- var Dropzone$1 = Dropzone;
8638
- /**
8639
- * A function that is invoked for the `dragenter`,
8640
- * `dragover` and `dragleave` events.
8641
- * It is not invoked if the items are not files (such as link, text, etc.).
8642
- *
8643
- * @callback dragCb
8644
- * @param {DragEvent} event
8645
- */
8646
-
8647
- /**
8648
- * A function that is invoked for the `drop` or input change event.
8649
- * It is not invoked if the items are not files (such as link, text, etc.).
8650
- *
8651
- * @callback dropCb
8652
- * @param {File[]} acceptedFiles List of accepted files
8653
- * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected
8654
- * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
8655
- */
8656
-
8657
- /**
8658
- * A function that is invoked for the `drop` or input change event.
8659
- * It is not invoked if the items are files (such as link, text, etc.).
8660
- *
8661
- * @callback dropAcceptedCb
8662
- * @param {File[]} files List of accepted files that meet the given criteria
8663
- * (`accept`, `multiple`, `minSize`, `maxSize`)
8664
- * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
8665
- */
8666
-
8667
- /**
8668
- * A function that is invoked for the `drop` or input change event.
8669
- *
8670
- * @callback dropRejectedCb
8671
- * @param {File[]} files List of rejected files that do not meet the given criteria
8672
- * (`accept`, `multiple`, `minSize`, `maxSize`)
8673
- * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
8674
- */
8675
-
8676
- /**
8677
- * A function that is used aggregate files,
8678
- * in a asynchronous fashion, from drag or input change events.
8679
- *
8680
- * @callback getFilesFromEvent
8681
- * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)
8682
- * @returns {(File[]|Promise<File[]>)}
8683
- */
8684
-
8685
- /**
8686
- * An object with the current dropzone state.
8687
- *
8688
- * @typedef {object} DropzoneState
8689
- * @property {boolean} isFocused Dropzone area is in focus
8690
- * @property {boolean} isFileDialogActive File dialog is opened
8691
- * @property {boolean} isDragActive Active drag is in progress
8692
- * @property {boolean} isDragAccept Dragged files are accepted
8693
- * @property {boolean} isDragReject Some dragged files are rejected
8694
- * @property {File[]} acceptedFiles Accepted files
8695
- * @property {FileRejection[]} fileRejections Rejected files and why they were rejected
8696
- */
8697
-
8698
- /**
8699
- * An object with the dropzone methods.
8700
- *
8701
- * @typedef {object} DropzoneMethods
8702
- * @property {Function} getRootProps Returns the props you should apply to the root drop container you render
8703
- * @property {Function} getInputProps Returns the props you should apply to hidden file input you render
8704
- * @property {Function} open Open the native file selection dialog
8705
- */
8706
-
8707
- var initialState = {
8708
- isFocused: false,
8709
- isFileDialogActive: false,
8710
- isDragActive: false,
8711
- isDragAccept: false,
8712
- isDragReject: false,
8713
- acceptedFiles: [],
8714
- fileRejections: []
8715
- };
8716
- /**
8717
- * A React hook that creates a drag 'n' drop area.
8718
- *
8719
- * ```jsx
8720
- * function MyDropzone(props) {
8721
- * const {getRootProps, getInputProps} = useDropzone({
8722
- * onDrop: acceptedFiles => {
8723
- * // do something with the File objects, e.g. upload to some server
8724
- * }
8725
- * });
8726
- * return (
8727
- * <div {...getRootProps()}>
8728
- * <input {...getInputProps()} />
8729
- * <p>Drag and drop some files here, or click to select files</p>
8730
- * </div>
8731
- * )
8732
- * }
8733
- * ```
8734
- *
8735
- * @function useDropzone
8736
- *
8737
- * @param {object} props
8738
- * @param {import("./utils").AcceptProp} [props.accept] Set accepted file types.
8739
- * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.
8740
- * Keep in mind that mime type determination is not reliable across platforms. CSV files,
8741
- * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under
8742
- * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).
8743
- * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files
8744
- * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window
8745
- * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog
8746
- * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.
8747
- * Note that it also stops tracking the focus state.
8748
- * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop
8749
- * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents
8750
- * @param {number} [props.minSize=0] Minimum file size (in bytes)
8751
- * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)
8752
- * @param {boolean} [props.disabled=false] Enable/disable the dropzone
8753
- * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator
8754
- * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection
8755
- * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API
8756
- * to open the file picker instead of using an `<input type="file">` click event.
8757
- * @param {boolean} autoFocus Set to true to auto focus the root element.
8758
- * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog
8759
- * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.
8760
- * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs
8761
- * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs
8762
- * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.
8763
- * Note that this callback is invoked after the `getFilesFromEvent` callback is done.
8764
- *
8765
- * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.
8766
- * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).
8767
- * If `multiple` is set to false and additional files are dropped,
8768
- * all files besides the first will be rejected.
8769
- * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.
8770
- *
8771
- * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.
8772
- * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.
8773
- *
8774
- * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.
8775
- * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:
8776
- *
8777
- * ```js
8778
- * function onDrop(acceptedFiles) {
8779
- * const req = request.post('/upload')
8780
- * acceptedFiles.forEach(file => {
8781
- * req.attach(file.name, file)
8782
- * })
8783
- * req.end(callback)
8784
- * }
8785
- * ```
8786
- * @param {dropAcceptedCb} [props.onDropAccepted]
8787
- * @param {dropRejectedCb} [props.onDropRejected]
8788
- * @param {(error: Error) => void} [props.onError]
8789
- *
8790
- * @returns {DropzoneState & DropzoneMethods}
8791
- */
8792
-
8793
- function useDropzone() {
8794
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8795
-
8796
- var _defaultProps$props = _objectSpread$8(_objectSpread$8({}, defaultProps), props),
8797
- accept = _defaultProps$props.accept,
8798
- disabled = _defaultProps$props.disabled,
8799
- getFilesFromEvent = _defaultProps$props.getFilesFromEvent,
8800
- maxSize = _defaultProps$props.maxSize,
8801
- minSize = _defaultProps$props.minSize,
8802
- multiple = _defaultProps$props.multiple,
8803
- maxFiles = _defaultProps$props.maxFiles,
8804
- onDragEnter = _defaultProps$props.onDragEnter,
8805
- onDragLeave = _defaultProps$props.onDragLeave,
8806
- onDragOver = _defaultProps$props.onDragOver,
8807
- onDrop = _defaultProps$props.onDrop,
8808
- onDropAccepted = _defaultProps$props.onDropAccepted,
8809
- onDropRejected = _defaultProps$props.onDropRejected,
8810
- onFileDialogCancel = _defaultProps$props.onFileDialogCancel,
8811
- onFileDialogOpen = _defaultProps$props.onFileDialogOpen,
8812
- useFsAccessApi = _defaultProps$props.useFsAccessApi,
8813
- autoFocus = _defaultProps$props.autoFocus,
8814
- preventDropOnDocument = _defaultProps$props.preventDropOnDocument,
8815
- noClick = _defaultProps$props.noClick,
8816
- noKeyboard = _defaultProps$props.noKeyboard,
8817
- noDrag = _defaultProps$props.noDrag,
8818
- noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,
8819
- onError = _defaultProps$props.onError,
8820
- validator = _defaultProps$props.validator;
8821
-
8822
- var acceptAttr = React.useMemo(function () {
8823
- return acceptPropAsAcceptAttr(accept);
8824
- }, [accept]);
8825
- var pickerTypes = React.useMemo(function () {
8826
- return pickerOptionsFromAccept(accept);
8827
- }, [accept]);
8828
- var onFileDialogOpenCb = React.useMemo(function () {
8829
- return typeof onFileDialogOpen === "function" ? onFileDialogOpen : noop;
8830
- }, [onFileDialogOpen]);
8831
- var onFileDialogCancelCb = React.useMemo(function () {
8832
- return typeof onFileDialogCancel === "function" ? onFileDialogCancel : noop;
8833
- }, [onFileDialogCancel]);
8834
- /**
8835
- * @constant
8836
- * @type {React.MutableRefObject<HTMLElement>}
8837
- */
8838
-
8839
- var rootRef = React.useRef(null);
8840
- var inputRef = React.useRef(null);
8841
-
8842
- var _useReducer = React.useReducer(reducer, initialState),
8843
- _useReducer2 = _slicedToArray(_useReducer, 2),
8844
- state = _useReducer2[0],
8845
- dispatch = _useReducer2[1];
8846
-
8847
- var isFocused = state.isFocused,
8848
- isFileDialogActive = state.isFileDialogActive;
8849
- var fsAccessApiWorksRef = React.useRef(typeof window !== "undefined" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on
8850
-
8851
- var onWindowFocus = function onWindowFocus() {
8852
- // Execute the timeout only if the file dialog is opened in the browser
8853
- if (!fsAccessApiWorksRef.current && isFileDialogActive) {
8854
- setTimeout(function () {
8855
- if (inputRef.current) {
8856
- var files = inputRef.current.files;
8857
-
8858
- if (!files.length) {
8859
- dispatch({
8860
- type: "closeDialog"
8861
- });
8862
- onFileDialogCancelCb();
8863
- }
8864
- }
8865
- }, 300);
8866
- }
8867
- };
8868
-
8869
- React.useEffect(function () {
8870
- window.addEventListener("focus", onWindowFocus, false);
8871
- return function () {
8872
- window.removeEventListener("focus", onWindowFocus, false);
8873
- };
8874
- }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);
8875
- var dragTargetsRef = React.useRef([]);
8876
-
8877
- var onDocumentDrop = function onDocumentDrop(event) {
8878
- if (rootRef.current && rootRef.current.contains(event.target)) {
8879
- // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler
8880
- return;
8881
- }
8882
-
8883
- event.preventDefault();
8884
- dragTargetsRef.current = [];
8885
- };
8886
-
8887
- React.useEffect(function () {
8888
- if (preventDropOnDocument) {
8889
- document.addEventListener("dragover", onDocumentDragOver, false);
8890
- document.addEventListener("drop", onDocumentDrop, false);
8891
- }
8892
-
8893
- return function () {
8894
- if (preventDropOnDocument) {
8895
- document.removeEventListener("dragover", onDocumentDragOver);
8896
- document.removeEventListener("drop", onDocumentDrop);
8897
- }
8898
- };
8899
- }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true
8900
-
8901
- React.useEffect(function () {
8902
- if (!disabled && autoFocus && rootRef.current) {
8903
- rootRef.current.focus();
8904
- }
8905
-
8906
- return function () {};
8907
- }, [rootRef, autoFocus, disabled]);
8908
- var onErrCb = React.useCallback(function (e) {
8909
- if (onError) {
8910
- onError(e);
8911
- } else {
8912
- // Let the user know something's gone wrong if they haven't provided the onError cb.
8913
- console.error(e);
8914
- }
8915
- }, [onError]);
8916
- var onDragEnterCb = React.useCallback(function (event) {
8917
- event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done
8918
-
8919
- event.persist();
8920
- stopPropagation(event);
8921
- dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);
8922
-
8923
- if (isEvtWithFiles(event)) {
8924
- Promise.resolve(getFilesFromEvent(event)).then(function (files) {
8925
- if (isPropagationStopped(event) && !noDragEventsBubbling) {
8926
- return;
8927
- }
8928
-
8929
- var fileCount = files.length;
8930
- var isDragAccept = fileCount > 0 && allFilesAccepted({
8931
- files: files,
8932
- accept: acceptAttr,
8933
- minSize: minSize,
8934
- maxSize: maxSize,
8935
- multiple: multiple,
8936
- maxFiles: maxFiles,
8937
- validator: validator
8938
- });
8939
- var isDragReject = fileCount > 0 && !isDragAccept;
8940
- dispatch({
8941
- isDragAccept: isDragAccept,
8942
- isDragReject: isDragReject,
8943
- isDragActive: true,
8944
- type: "setDraggedFiles"
8945
- });
8946
-
8947
- if (onDragEnter) {
8948
- onDragEnter(event);
8949
- }
8950
- }).catch(function (e) {
8951
- return onErrCb(e);
8952
- });
8953
- }
8954
- }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);
8955
- var onDragOverCb = React.useCallback(function (event) {
8956
- event.preventDefault();
8957
- event.persist();
8958
- stopPropagation(event);
8959
- var hasFiles = isEvtWithFiles(event);
8960
-
8961
- if (hasFiles && event.dataTransfer) {
8962
- try {
8963
- event.dataTransfer.dropEffect = "copy";
8964
- } catch (_unused) {}
8965
- /* eslint-disable-line no-empty */
8966
-
8967
- }
8968
-
8969
- if (hasFiles && onDragOver) {
8970
- onDragOver(event);
8971
- }
8972
-
8973
- return false;
8974
- }, [onDragOver, noDragEventsBubbling]);
8975
- var onDragLeaveCb = React.useCallback(function (event) {
8976
- event.preventDefault();
8977
- event.persist();
8978
- stopPropagation(event); // Only deactivate once the dropzone and all children have been left
8979
-
8980
- var targets = dragTargetsRef.current.filter(function (target) {
8981
- return rootRef.current && rootRef.current.contains(target);
8982
- }); // Make sure to remove a target present multiple times only once
8983
- // (Firefox may fire dragenter/dragleave multiple times on the same element)
8984
-
8985
- var targetIdx = targets.indexOf(event.target);
8986
-
8987
- if (targetIdx !== -1) {
8988
- targets.splice(targetIdx, 1);
8989
- }
8990
-
8991
- dragTargetsRef.current = targets;
8992
-
8993
- if (targets.length > 0) {
8994
- return;
8995
- }
8996
-
8997
- dispatch({
8998
- type: "setDraggedFiles",
8999
- isDragActive: false,
9000
- isDragAccept: false,
9001
- isDragReject: false
9002
- });
9003
-
9004
- if (isEvtWithFiles(event) && onDragLeave) {
9005
- onDragLeave(event);
9006
- }
9007
- }, [rootRef, onDragLeave, noDragEventsBubbling]);
9008
- var setFiles = React.useCallback(function (files, event) {
9009
- var acceptedFiles = [];
9010
- var fileRejections = [];
9011
- files.forEach(function (file) {
9012
- var _fileAccepted = fileAccepted(file, acceptAttr),
9013
- _fileAccepted2 = _slicedToArray(_fileAccepted, 2),
9014
- accepted = _fileAccepted2[0],
9015
- acceptError = _fileAccepted2[1];
9016
-
9017
- var _fileMatchSize = fileMatchSize(file, minSize, maxSize),
9018
- _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),
9019
- sizeMatch = _fileMatchSize2[0],
9020
- sizeError = _fileMatchSize2[1];
9021
-
9022
- var customErrors = validator ? validator(file) : null;
9023
-
9024
- if (accepted && sizeMatch && !customErrors) {
9025
- acceptedFiles.push(file);
9026
- } else {
9027
- var errors = [acceptError, sizeError];
9028
-
9029
- if (customErrors) {
9030
- errors = errors.concat(customErrors);
9031
- }
9032
-
9033
- fileRejections.push({
9034
- file: file,
9035
- errors: errors.filter(function (e) {
9036
- return e;
9037
- })
9038
- });
9039
- }
9040
- });
9041
-
9042
- if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {
9043
- // Reject everything and empty accepted files
9044
- acceptedFiles.forEach(function (file) {
9045
- fileRejections.push({
9046
- file: file,
9047
- errors: [TOO_MANY_FILES_REJECTION]
9048
- });
9049
- });
9050
- acceptedFiles.splice(0);
9051
- }
9052
-
9053
- dispatch({
9054
- acceptedFiles: acceptedFiles,
9055
- fileRejections: fileRejections,
9056
- type: "setFiles"
9057
- });
9058
-
9059
- if (onDrop) {
9060
- onDrop(acceptedFiles, fileRejections, event);
9061
- }
9062
-
9063
- if (fileRejections.length > 0 && onDropRejected) {
9064
- onDropRejected(fileRejections, event);
9065
- }
9066
-
9067
- if (acceptedFiles.length > 0 && onDropAccepted) {
9068
- onDropAccepted(acceptedFiles, event);
9069
- }
9070
- }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);
9071
- var onDropCb = React.useCallback(function (event) {
9072
- event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done
9073
-
9074
- event.persist();
9075
- stopPropagation(event);
9076
- dragTargetsRef.current = [];
9077
-
9078
- if (isEvtWithFiles(event)) {
9079
- Promise.resolve(getFilesFromEvent(event)).then(function (files) {
9080
- if (isPropagationStopped(event) && !noDragEventsBubbling) {
9081
- return;
9082
- }
9083
-
9084
- setFiles(files, event);
9085
- }).catch(function (e) {
9086
- return onErrCb(e);
9087
- });
9088
- }
9089
-
9090
- dispatch({
9091
- type: "reset"
9092
- });
9093
- }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically
9094
-
9095
- var openFileDialog = React.useCallback(function () {
9096
- // No point to use FS access APIs if context is not secure
9097
- // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection
9098
- if (fsAccessApiWorksRef.current) {
9099
- dispatch({
9100
- type: "openDialog"
9101
- });
9102
- onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker
9103
-
9104
- var opts = {
9105
- multiple: multiple,
9106
- types: pickerTypes
9107
- };
9108
- window.showOpenFilePicker(opts).then(function (handles) {
9109
- return getFilesFromEvent(handles);
9110
- }).then(function (files) {
9111
- setFiles(files, null);
9112
- dispatch({
9113
- type: "closeDialog"
9114
- });
9115
- }).catch(function (e) {
9116
- // AbortError means the user canceled
9117
- if (isAbort(e)) {
9118
- onFileDialogCancelCb(e);
9119
- dispatch({
9120
- type: "closeDialog"
9121
- });
9122
- } else if (isSecurityError(e)) {
9123
- fsAccessApiWorksRef.current = false; // CORS, so cannot use this API
9124
- // Try using the input
9125
-
9126
- if (inputRef.current) {
9127
- inputRef.current.value = null;
9128
- inputRef.current.click();
9129
- } else {
9130
- onErrCb(new Error("Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided."));
9131
- }
9132
- } else {
9133
- onErrCb(e);
9134
- }
9135
- });
9136
- return;
9137
- }
9138
-
9139
- if (inputRef.current) {
9140
- dispatch({
9141
- type: "openDialog"
9142
- });
9143
- onFileDialogOpenCb();
9144
- inputRef.current.value = null;
9145
- inputRef.current.click();
9146
- }
9147
- }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone
9148
-
9149
- var onKeyDownCb = React.useCallback(function (event) {
9150
- // Ignore keyboard events bubbling up the DOM tree
9151
- if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {
9152
- return;
9153
- }
9154
-
9155
- if (event.key === " " || event.key === "Enter" || event.keyCode === 32 || event.keyCode === 13) {
9156
- event.preventDefault();
9157
- openFileDialog();
9158
- }
9159
- }, [rootRef, openFileDialog]); // Update focus state for the dropzone
9160
-
9161
- var onFocusCb = React.useCallback(function () {
9162
- dispatch({
9163
- type: "focus"
9164
- });
9165
- }, []);
9166
- var onBlurCb = React.useCallback(function () {
9167
- dispatch({
9168
- type: "blur"
9169
- });
9170
- }, []); // Cb to open the file dialog when click occurs on the dropzone
9171
-
9172
- var onClickCb = React.useCallback(function () {
9173
- if (noClick) {
9174
- return;
9175
- } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()
9176
- // to ensure React can handle state changes
9177
- // See: https://github.com/react-dropzone/react-dropzone/issues/450
9178
-
9179
-
9180
- if (isIeOrEdge()) {
9181
- setTimeout(openFileDialog, 0);
9182
- } else {
9183
- openFileDialog();
9184
- }
9185
- }, [noClick, openFileDialog]);
9186
-
9187
- var composeHandler = function composeHandler(fn) {
9188
- return disabled ? null : fn;
9189
- };
9190
-
9191
- var composeKeyboardHandler = function composeKeyboardHandler(fn) {
9192
- return noKeyboard ? null : composeHandler(fn);
9193
- };
9194
-
9195
- var composeDragHandler = function composeDragHandler(fn) {
9196
- return noDrag ? null : composeHandler(fn);
9197
- };
9198
-
9199
- var stopPropagation = function stopPropagation(event) {
9200
- if (noDragEventsBubbling) {
9201
- event.stopPropagation();
9202
- }
9203
- };
9204
-
9205
- var getRootProps = React.useMemo(function () {
9206
- return function () {
9207
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
9208
- _ref2$refKey = _ref2.refKey,
9209
- refKey = _ref2$refKey === void 0 ? "ref" : _ref2$refKey,
9210
- role = _ref2.role,
9211
- onKeyDown = _ref2.onKeyDown,
9212
- onFocus = _ref2.onFocus,
9213
- onBlur = _ref2.onBlur,
9214
- onClick = _ref2.onClick,
9215
- onDragEnter = _ref2.onDragEnter,
9216
- onDragOver = _ref2.onDragOver,
9217
- onDragLeave = _ref2.onDragLeave,
9218
- onDrop = _ref2.onDrop,
9219
- rest = _objectWithoutProperties(_ref2, _excluded3$1);
9220
-
9221
- return _objectSpread$8(_objectSpread$8(_defineProperty({
9222
- onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),
9223
- onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),
9224
- onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),
9225
- onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),
9226
- onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),
9227
- onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),
9228
- onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),
9229
- onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),
9230
- role: typeof role === "string" && role !== "" ? role : "presentation"
9231
- }, refKey, rootRef), !disabled && !noKeyboard ? {
9232
- tabIndex: 0
9233
- } : {}), rest);
9234
- };
9235
- }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);
9236
- var onInputElementClick = React.useCallback(function (event) {
9237
- event.stopPropagation();
9238
- }, []);
9239
- var getInputProps = React.useMemo(function () {
9240
- return function () {
9241
- var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
9242
- _ref3$refKey = _ref3.refKey,
9243
- refKey = _ref3$refKey === void 0 ? "ref" : _ref3$refKey,
9244
- onChange = _ref3.onChange,
9245
- onClick = _ref3.onClick,
9246
- rest = _objectWithoutProperties(_ref3, _excluded4);
9247
-
9248
- var inputProps = _defineProperty({
9249
- accept: acceptAttr,
9250
- multiple: multiple,
9251
- type: "file",
9252
- style: {
9253
- display: "none"
9254
- },
9255
- onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),
9256
- onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),
9257
- tabIndex: -1
9258
- }, refKey, inputRef);
9259
-
9260
- return _objectSpread$8(_objectSpread$8({}, inputProps), rest);
9261
- };
9262
- }, [inputRef, accept, multiple, onDropCb, disabled]);
9263
- return _objectSpread$8(_objectSpread$8({}, state), {}, {
9264
- isFocused: isFocused && !disabled,
9265
- getRootProps: getRootProps,
9266
- getInputProps: getInputProps,
9267
- rootRef: rootRef,
9268
- inputRef: inputRef,
9269
- open: composeHandler(openFileDialog)
9270
- });
9271
- }
9272
- /**
9273
- * @param {DropzoneState} state
9274
- * @param {{type: string} & DropzoneState} action
9275
- * @returns {DropzoneState}
9276
- */
9277
-
9278
- function reducer(state, action) {
9279
- /* istanbul ignore next */
9280
- switch (action.type) {
9281
- case "focus":
9282
- return _objectSpread$8(_objectSpread$8({}, state), {}, {
9283
- isFocused: true
9284
- });
9285
-
9286
- case "blur":
9287
- return _objectSpread$8(_objectSpread$8({}, state), {}, {
9288
- isFocused: false
9289
- });
9290
-
9291
- case "openDialog":
9292
- return _objectSpread$8(_objectSpread$8({}, initialState), {}, {
9293
- isFileDialogActive: true
9294
- });
9295
-
9296
- case "closeDialog":
9297
- return _objectSpread$8(_objectSpread$8({}, state), {}, {
9298
- isFileDialogActive: false
9299
- });
9300
-
9301
- case "setDraggedFiles":
9302
- return _objectSpread$8(_objectSpread$8({}, state), {}, {
9303
- isDragActive: action.isDragActive,
9304
- isDragAccept: action.isDragAccept,
9305
- isDragReject: action.isDragReject
9306
- });
9307
-
9308
- case "setFiles":
9309
- return _objectSpread$8(_objectSpread$8({}, state), {}, {
9310
- acceptedFiles: action.acceptedFiles,
9311
- fileRejections: action.fileRejections
9312
- });
9313
-
9314
- case "reset":
9315
- return _objectSpread$8({}, initialState);
9316
-
9317
- default:
9318
- return state;
9319
- }
9320
- }
9321
-
9322
- function noop() {}
9323
-
9324
- const Uploader = _ref => {
9325
- let sampleFileUrl = _ref.sampleFileUrl,
9326
- csvColumns = _ref.csvColumns;
9327
- return /*#__PURE__*/React__default["default"].createElement(Dropzone$1, {
9328
- onDrop: noop$2
9329
- }, _ref2 => {
9330
- let getRootProps = _ref2.getRootProps,
9331
- getInputProps = _ref2.getInputProps;
9332
- return /*#__PURE__*/React__default["default"].createElement("div", _extends({}, getRootProps(), {
9333
- className: "ntm-invitations__dnd"
9334
- }), /*#__PURE__*/React__default["default"].createElement("input", getInputProps()), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9335
- style: "h3"
9336
- }, instance.t("helpers.dropFilesHere")), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9337
- style: "body2"
9338
- }, instance.t("helpers.uploadInstruction1")), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9339
- style: "body2"
9340
- }, /*#__PURE__*/React__default["default"].createElement(Trans, {
9341
- i18nKey: "helpers.uploadInstruction2",
9342
- values: {
9343
- what: csvColumns.join(", ")
9344
- }
9345
- })), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9346
- style: "body2"
9347
- }, instance.t("helpers.uploadInstruction3")), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
9348
- style: "link",
9349
- type: "submit",
9350
- icon: neetoIcons.Download,
9351
- iconPosition: "left",
9352
- label: instance.t("common.download_", {
9353
- what: "sample.csv"
9354
- }),
9355
- onClick: event => {
9356
- event.stopPropagation();
9357
- window.open(sampleFileUrl);
9358
- }
9359
- }));
9360
- });
9361
- };
9362
-
9363
- /* eslint-disable @bigbinary/neeto/no-dangling-constants */
9364
- const DATETIME_OPTIONS = {
9365
- year: "numeric",
9366
- month: "short",
9367
- day: "numeric",
9368
- hour: "numeric",
9369
- minute: "numeric"
9370
- };
9371
- const COLUMN_DATA = [{
9372
- title: instance.t("helpers.files"),
9373
- dataIndex: "filename",
9374
- key: "filename",
9375
- render: (filename, row) => /*#__PURE__*/React__default["default"].createElement("a", {
9376
- href: row.download_url,
9377
- download: true,
9378
- className: "ntm-invitations__table-filename"
9379
- }, /*#__PURE__*/React__default["default"].createElement(neetoIcons.File, null), filename)
9380
- }, {
9381
- title: instance.t("helpers.status"),
9382
- dataIndex: "status",
9383
- key: "status",
9384
- render: status => /*#__PURE__*/React__default["default"].createElement("p", {
9385
- className: classnames__default["default"]("ntm-invitations__table-status", {
9386
- "neeto-ui-text-error-500": status === "failed",
9387
- "neeto-ui-text-success-500": status === "processed"
9388
- })
9389
- }, status)
9390
- }, {
9391
- title: instance.t("helpers.noOfRows"),
9392
- dataIndex: "rows_count",
9393
- key: "rows_count",
9394
- render: rows_count => rows_count !== null && rows_count !== void 0 ? rows_count : "-",
9395
- width: 120,
9396
- align: "center"
9397
- }, {
9398
- title: instance.t("helpers.uploaded"),
9399
- dataIndex: "uploaded_by",
9400
- key: "uploaded_by",
9401
- render: (uploaded_by, row) => `${uploaded_by} at ${new Date(row.created_at).toLocaleString("en-US", DATETIME_OPTIONS)}`
9402
- }];
9403
- const SAMPLE_ROW_DATA = [{
9404
- key: "1",
9405
- filename: "sample-1.csv",
9406
- status: "processed",
9407
- rows_count: "10",
9408
- created_at: new Date(),
9409
- download_url: "https://example.com/sample.csv",
9410
- uploaded_by: "Oliver Smith"
9411
- }, {
9412
- key: "2",
9413
- filename: "sample-2.csv",
9414
- status: "failed",
9415
- rows_count: "20",
9416
- created_at: new Date(),
9417
- download_url: "https://example.com/sample-2.csv",
9418
- uploaded_by: "Sam Smith"
9419
- }, {
9420
- key: "3",
9421
- filename: "sample-3.csv",
9422
- status: "failed",
9423
- rows_count: "30",
9424
- created_at: new Date(),
9425
- download_url: "https://example.com/sample-3.csv",
9426
- uploaded_by: "Eve Smith"
9427
- }, {
9428
- key: "4",
9429
- filename: "sample-4.csv",
9430
- status: "processed",
9431
- rows_count: "40",
9432
- created_at: new Date(),
9433
- download_url: "https://example.com/sample-4.csv",
9434
- uploaded_by: "Anna Smith"
9435
- }, {
9436
- key: "5",
9437
- filename: "sample-5.csv",
9438
- status: "processed",
9439
- rows_count: "50",
9440
- created_at: new Date(),
9441
- download_url: "https://example.com/sample-5.csv",
9442
- uploaded_by: "Will Smith"
9443
- }];
9444
-
9445
- const Uploads = () => /*#__PURE__*/React__default["default"].createElement("div", {
9446
- className: "ntm-invitations__table"
9447
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
9448
- fixedHeight: true,
9449
- rowData: SAMPLE_ROW_DATA,
9450
- columnData: COLUMN_DATA,
9451
- rowSelection: false
9452
- }));
9453
-
9454
- const Csv = _ref => {
9455
- let label = _ref.label,
9456
- sampleFileUrl = _ref.sampleFileUrl,
9457
- csvColumns = _ref.csvColumns,
9458
- setIsCSVInviteSelected = _ref.setIsCSVInviteSelected;
9459
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
9460
- size: "small",
9461
- style: "text",
9462
- icon: neetoIcons.LeftArrow,
9463
- onClick: () => setIsCSVInviteSelected(false)
9464
- })), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Body, {
9465
- className: "ntm-invitations__body"
9466
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9467
- style: "h4"
9468
- }, instance.t("common.upload_", {
9469
- what: label
9470
- })), /*#__PURE__*/React__default["default"].createElement(Uploader, {
9471
- sampleFileUrl: sampleFileUrl,
9472
- csvColumns: csvColumns
9473
- })), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Footer, {
9474
- className: "ntm-invitations__footer"
9475
- }, /*#__PURE__*/React__default["default"].createElement(Uploads, null)));
9476
- };
9477
-
9478
- /* eslint-disable @bigbinary/neeto/no-dangling-constants */
9479
- const BASE_URL = "team_members";
9480
- const INVITATIONS_URL = "neeto_invitations";
9481
-
9482
- const fetch$3 = params => axios__default["default"].get(`${INVITATIONS_URL}/invite_links`, {
9483
- params
9484
- });
9485
- const create$2 = payload => axios__default["default"].post(`${INVITATIONS_URL}/invite_links`, payload);
9486
- const destroy$1 = (id, payload) => axios__default["default"].delete(`${INVITATIONS_URL}/invite_links/${id}`, payload);
9487
- const inviteLinksApi = {
9488
- fetch: fetch$3,
9489
- create: create$2,
9490
- destroy: destroy$1
9491
- };
9492
-
9493
- const DEFAULT_STALE_TIME = 300000; // 5 minutes
9494
- const INVITATIONS_STALE_TIME = 3600000; //1 hour
9495
-
9496
- const QUERY_KEYS = {
9497
- TEAMS: "neeto-team-members-teams",
9498
- ROLES: "neeto-team-members-roles",
9499
- PERMISSIONS: "neeto-team-members-permissions",
9500
- INVITE_LINKS: "neeto-team-members-invite-links"
9501
- };
9502
-
9503
- function ownKeys$7(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; }
9504
- function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9505
- const useFetchInviteLink = function () {
9506
- let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9507
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
9508
- return useQuery([QUERY_KEYS.INVITE_LINKS, params], () => inviteLinksApi.fetch(params), _objectSpread$7({
9509
- staleTime: INVITATIONS_STALE_TIME,
9510
- select: ramda.prop("inviteLink"),
9511
- retry: false
9512
- }, options));
9513
- };
9514
- const useCreateInviteLink = () => useMutation(inviteLinksApi.create, {
9515
- onSuccess: _ref => {
9516
- let inviteLink = _ref.inviteLink;
9517
- const resourceType = inviteLink.resourceType,
9518
- resourceId = inviteLink.resourceId;
9519
- queryClient.setQueryData([QUERY_KEYS.INVITE_LINKS, {
9520
- resource_type: resourceType,
9521
- resource_id: resourceId
9522
- }], {
9523
- inviteLink
9524
- });
9525
- }
9526
- });
9527
- const useDestroyInviteLink = () => useMutation(inviteLinksApi.destroy, {
9528
- onSuccess: _ref2 => {
9529
- let inviteLink = _ref2.inviteLink;
9530
- const resourceType = inviteLink.resourceType,
9531
- resourceId = inviteLink.resourceId;
9532
- queryClient.invalidateQueries([QUERY_KEYS.INVITE_LINKS, {
9533
- resource_type: resourceType,
9534
- resource_id: resourceId
9535
- }]);
9536
- }
9537
- });
9538
-
9539
- var dist$1 = {exports: {}};
9540
-
9541
- (function (module, exports) {
9542
- !function(e,t){module.exports=t(React__default["default"]);}("undefined"!=typeof self?self:commonjsGlobal,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n});},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0});},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=3)}([function(t,r){t.exports=e;},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.Validate=t.Time=void 0;var n=u(r(5)),o=u(r(6));function u(e){return e&&e.__esModule?e:{default:e}}t.Time=n.default,t.Validate=o.default;},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.useInterval=void 0;var n=function(e){return e&&e.__esModule?e:{default:e}}(r(7));t.useInterval=n.default;},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.useTime=t.useStopwatch=t.useTimer=void 0;var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);}return e};t.default=function(e){if((0, o.useEffect)(function(){console.warn("react-timer-hook: default export useTimer is deprecated, use named exports { useTimer, useStopwatch, useTime } instead");},[]),e.expiryTimestamp){var t=(0, u.default)(e);return n({},t,{startTimer:t.start,stopTimer:t.pause,resetTimer:function(){}})}var r=(0, i.default)(e);return n({},r,{startTimer:r.start,stopTimer:r.pause,resetTimer:r.reset})};var o=r(0),u=c(r(4)),i=c(r(8)),a=c(r(9));function c(e){return e&&e.__esModule?e:{default:e}}t.useTimer=u.default,t.useStopwatch=i.default,t.useTime=a.default;},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);}return e},o=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,u=void 0;try{for(var i,a=e[Symbol.iterator]();!(n=(i=a.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){o=!0,u=e;}finally{try{!n&&a.return&&a.return();}finally{if(o)throw u}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.default=function(e){var t=e.expiryTimestamp,r=e.onExpire,s=e.autoStart,l=void 0===s||s,d=(0, u.useState)(t),m=o(d,2),v=m[0],p=m[1],y=(0, u.useState)(i.Time.getSecondsFromExpiry(v)),T=o(y,2),g=T[0],b=T[1],h=(0, u.useState)(l),S=o(h,2),w=S[0],O=S[1],j=(0, u.useState)(l),x=o(j,2),_=x[0],M=x[1],P=(0, u.useState)(f(v)),F=o(P,2),E=F[0],k=F[1];function I(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];k(f(e)),M(t),O(t),p(e),b(i.Time.getSecondsFromExpiry(e));}function D(){var e=new Date;e.setMilliseconds(e.getMilliseconds()+1e3*g),I(e);}return (0, a.useInterval)(function(){E!==c&&k(c);var e=i.Time.getSecondsFromExpiry(v);b(e),e<=0&&(i.Validate.onExpire(r)&&r(),O(!1),k(null));},w?E:null),n({},i.Time.getTimeFromSeconds(g),{start:function(){_?(b(i.Time.getSecondsFromExpiry(v)),O(!0)):D();},pause:function(){O(!1);},resume:D,restart:I,isRunning:w})};var u=r(0),i=r(1),a=r(2),c=1e3;function f(e){if(!i.Validate.expiryTimestamp(e))return null;var t=i.Time.getSecondsFromExpiry(e),r=Math.floor(1e3*(t-Math.floor(t)));return r>0?r:c}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n);}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();var o=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);}return n(e,null,[{key:"getTimeFromSeconds",value:function(e){var t=Math.ceil(e),r=Math.floor(t/86400),n=Math.floor(t%86400/3600),o=Math.floor(t%3600/60);return {seconds:Math.floor(t%60),minutes:o,hours:n,days:r}}},{key:"getSecondsFromExpiry",value:function(e,t){var r=e-(new Date).getTime();if(r>0){var n=r/1e3;return t?Math.round(n):n}return 0}},{key:"getSecondsFromPrevTime",value:function(e,t){var r=(new Date).getTime()-e;if(r>0){var n=r/1e3;return t?Math.round(n):n}return 0}},{key:"getSecondsFromTimeNow",value:function(){var e=new Date;return e.getTime()/1e3-60*e.getTimezoneOffset()}},{key:"getFormattedTimeFromSeconds",value:function(t,r){var n=e.getTimeFromSeconds(t),o=n.seconds,u=n.minutes,i=n.hours,a="",c=i;return "12-hour"===r&&(a=i>=12?"pm":"am",c=i%12),{seconds:o,minutes:u,hours:c,ampm:a}}}]),e}();t.default=o;},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n);}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();var o=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);}return n(e,null,[{key:"expiryTimestamp",value:function(e){var t=new Date(e).getTime()>0;return t||console.warn("react-timer-hook: { useTimer } Invalid expiryTimestamp settings",e),t}},{key:"onExpire",value:function(e){var t=e&&"function"==typeof e;return e&&!t&&console.warn("react-timer-hook: { useTimer } Invalid onExpire settings function",e),t}}]),e}();t.default=o;},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r=(0, n.useRef)();(0, n.useEffect)(function(){r.current=e;}),(0, n.useEffect)(function(){if(!t)return function(){};var e=setInterval(function(){r.current&&r.current();},t);return function(){return clearInterval(e)}},[t]);};var n=r(0);},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);}return e},o=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,u=void 0;try{for(var i,a=e[Symbol.iterator]();!(n=(i=a.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){o=!0,u=e;}finally{try{!n&&a.return&&a.return();}finally{if(o)throw u}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.default=function(e){var t=e.autoStart,r=e.offsetTimestamp,c=(0, u.useState)(i.Time.getSecondsFromExpiry(r,!0)||0),f=o(c,2),s=f[0],l=f[1],d=(0, u.useState)(new Date),m=o(d,2),v=m[0],p=m[1],y=(0, u.useState)(s+i.Time.getSecondsFromPrevTime(v||0,!0)),T=o(y,2),g=T[0],b=T[1],h=(0, u.useState)(t),S=o(h,2),w=S[0],O=S[1];return (0, a.useInterval)(function(){b(s+i.Time.getSecondsFromPrevTime(v,!0));},w?1e3:null),n({},i.Time.getTimeFromSeconds(g),{start:function(){var e=new Date;p(e),O(!0),b(s+i.Time.getSecondsFromPrevTime(e,!0));},pause:function(){l(g),O(!1);},reset:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=i.Time.getSecondsFromExpiry(e,!0)||0,n=new Date;p(n),l(r),O(t),b(r+i.Time.getSecondsFromPrevTime(n,!0));},isRunning:w})};var u=r(0),i=r(1),a=r(2);},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);}return e},o=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var r=[],n=!0,o=!1,u=void 0;try{for(var i,a=e[Symbol.iterator]();!(n=(i=a.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){o=!0,u=e;}finally{try{!n&&a.return&&a.return();}finally{if(o)throw u}}return r}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();t.default=function(e){var t=e.format,r=(0, u.useState)(i.Time.getSecondsFromTimeNow()),c=o(r,2),f=c[0],s=c[1];return (0, a.useInterval)(function(){s(i.Time.getSecondsFromTimeNow());},1e3),n({},i.Time.getFormattedTimeFromSeconds(f,t))};var u=r(0),i=r(1),a=r(2);}])});
9543
- } (dist$1));
9544
-
9545
- const renderTime = time => {
9546
- if (time.days) return `${time.days}d ${time.hours}h`;else if (time.hours) return `${time.hours}h ${time.minutes}m`;
9547
- return `${time.minutes}m ${time.seconds}s`;
9548
- };
9549
-
9550
- const Timer = _ref => {
9551
- let expiresAt = _ref.expiresAt;
9552
- const _useTimer = dist$1.exports.useTimer({
9553
- expiryTimestamp: new Date(expiresAt)
9554
- }),
9555
- seconds = _useTimer.seconds,
9556
- minutes = _useTimer.minutes,
9557
- hours = _useTimer.hours,
9558
- days = _useTimer.days;
9559
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9560
- style: "body3"
9561
- }, /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, instance.t("helpers.expiresIn"), renderTime({
9562
- days,
9563
- hours,
9564
- minutes,
9565
- seconds
9566
- })));
9567
- };
9568
-
9569
- const InviteLink = _ref => {
9570
- let resourceType = _ref.resourceType,
9571
- resourceId = _ref.resourceId;
9572
- const _useFetchInviteLink = useFetchInviteLink({
9573
- resource_type: resourceType,
9574
- resource_id: resourceId
9575
- }),
9576
- inviteLink = _useFetchInviteLink.data,
9577
- isLoading = _useFetchInviteLink.isLoading;
9578
- const _useCreateInviteLink = useCreateInviteLink(),
9579
- createInviteLink = _useCreateInviteLink.mutate,
9580
- isCreating = _useCreateInviteLink.isLoading;
9581
- const _useDestroyInviteLink = useDestroyInviteLink(),
9582
- deleteInviteLink = _useDestroyInviteLink.mutate,
9583
- isDeleting = _useDestroyInviteLink.isLoading;
9584
- const showInviteLink = inviteLink && new Date(inviteLink.expiresAt) > new Date();
9585
- const handleCopyInviteLink = () => {
9586
- navigator.clipboard.writeText(`${window.location.host}/neeto_invitations/${inviteLink.id}`);
9587
- neetoui.Toastr.info(instance.t("helpers.copiedToClipboard"));
9588
- };
9589
- return /*#__PURE__*/React__default["default"].createElement("div", {
9590
- className: "ntm-invitations__invite-link"
9591
- }, /*#__PURE__*/React__default["default"].createElement("div", {
9592
- className: "ntm-invitations__invite-link-instructions"
9593
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9594
- style: "h4"
9595
- }, instance.t("helpers.getInviteLink")), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9596
- style: "body2"
9597
- }, instance.t("helpers.inviteLinkInstruction"))), showInviteLink ? /*#__PURE__*/React__default["default"].createElement("div", {
9598
- className: "ntm-invitations__invite-link-btns"
9599
- }, /*#__PURE__*/React__default["default"].createElement(Timer, {
9600
- expiresAt: inviteLink.expiresAt
9601
- }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
9602
- style: "danger-text",
9603
- label: instance.t("common.delete"),
9604
- loading: isDeleting,
9605
- disabled: isDeleting,
9606
- onClick: () => deleteInviteLink(inviteLink.id)
9607
- }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
9608
- style: "primary",
9609
- label: instance.t("buttons.copyLink"),
9610
- onClick: handleCopyInviteLink
9611
- })) : /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
9612
- style: "secondary",
9613
- loading: isLoading || isCreating,
9614
- disabled: isLoading || isCreating,
9615
- label: instance.t("buttons.createLink"),
9616
- onClick: () => createInviteLink({
9617
- inviteLink: {
9618
- resourceType,
9619
- resourceId
9620
- }
9621
- })
9622
- }));
9623
- };
9624
-
9625
- const Normal = _ref => {
9626
- let label = _ref.label,
9627
- children = _ref.children,
9628
- submitButtonProps = _ref.submitButtonProps,
9629
- setIsCSVInviteSelected = _ref.setIsCSVInviteSelected,
9630
- isCSVInviteEnabled = _ref.isCSVInviteEnabled,
9631
- isInviteLinkEnabled = _ref.isInviteLinkEnabled,
9632
- _ref$inviteLinkProps = _ref.inviteLinkProps,
9633
- inviteLinkProps = _ref$inviteLinkProps === void 0 ? {} : _ref$inviteLinkProps;
9634
- const _useFormikContext = formik.useFormikContext(),
9635
- isSubmitting = _useFormikContext.isSubmitting,
9636
- dirty = _useFormikContext.dirty;
9637
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Header, null, /*#__PURE__*/React__default["default"].createElement("div", {
9638
- className: "ntm-invitations__header"
9639
- })), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Body, {
9640
- className: "ntm-invitations__body"
9641
- }, /*#__PURE__*/React__default["default"].createElement("div", {
9642
- className: "ntm-invitations__body-header"
9643
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9644
- style: "h4"
9645
- }, instance.t("common.invite_", {
9646
- what: label.toLowerCase()
9647
- })), isCSVInviteEnabled && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9648
- style: "body2"
9649
- }, instance.t("buttons.inviteFrom")), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
9650
- style: "secondary",
9651
- icon: neetoIcons.File,
9652
- onClick: () => setIsCSVInviteSelected(true),
9653
- tooltipProps: {
9654
- content: instance.t("helpers.bulkInvite"),
9655
- placement: "bottom"
9656
- }
9657
- }))), /*#__PURE__*/React__default["default"].createElement(formik$1.EmailInput, {
9658
- name: "emails",
9659
- label: null,
9660
- placeholder: instance.t("placeholders.email")
9661
- }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends({
9662
- type: "submit",
9663
- label: instance.t("buttons.sendInvites"),
9664
- className: "ntm-invitations__submit-btn",
9665
- loading: isSubmitting,
9666
- disabled: !dirty || isSubmitting
9667
- }, submitButtonProps)), children), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Footer, {
9668
- className: classnames__default["default"]({
9669
- "ntm-invitations__footer": isInviteLinkEnabled
9670
- })
9671
- }, isInviteLinkEnabled && /*#__PURE__*/React__default["default"].createElement(InviteLink, inviteLinkProps)));
9672
- };
9673
-
9674
- const _excluded$2 = ["label", "isOpen", "onClose", "submitButtonProps", "csvColumns", "sampleFileUrl", "isCSVInviteEnabled", "isInviteLinkEnabled", "inviteLinkProps", "children"];
9675
- const Invitations = _ref => {
9676
- let _ref$label = _ref.label,
9677
- label = _ref$label === void 0 ? instance.t("metaNames.member", PLURAL) : _ref$label,
9678
- _ref$isOpen = _ref.isOpen,
9679
- isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
9680
- _ref$onClose = _ref.onClose,
9681
- onClose = _ref$onClose === void 0 ? noop$2 : _ref$onClose,
9682
- _ref$submitButtonProp = _ref.submitButtonProps,
9683
- submitButtonProps = _ref$submitButtonProp === void 0 ? {} : _ref$submitButtonProp,
9684
- _ref$csvColumns = _ref.csvColumns,
9685
- csvColumns = _ref$csvColumns === void 0 ? [] : _ref$csvColumns,
9686
- _ref$sampleFileUrl = _ref.sampleFileUrl,
9687
- sampleFileUrl = _ref$sampleFileUrl === void 0 ? "" : _ref$sampleFileUrl,
9688
- _ref$isCSVInviteEnabl = _ref.isCSVInviteEnabled,
9689
- isCSVInviteEnabled = _ref$isCSVInviteEnabl === void 0 ? true : _ref$isCSVInviteEnabl,
9690
- _ref$isInviteLinkEnab = _ref.isInviteLinkEnabled,
9691
- isInviteLinkEnabled = _ref$isInviteLinkEnab === void 0 ? true : _ref$isInviteLinkEnab,
9692
- _ref$inviteLinkProps = _ref.inviteLinkProps,
9693
- inviteLinkProps = _ref$inviteLinkProps === void 0 ? {} : _ref$inviteLinkProps,
9694
- children = _ref.children,
9695
- otherProps = _objectWithoutProperties$1(_ref, _excluded$2);
9696
- const _useState = React.useState(false),
9697
- _useState2 = _slicedToArray$2(_useState, 2),
9698
- isCSVInviteSelected = _useState2[0],
9699
- setIsCSVInviteSelected = _useState2[1];
9700
- const handleClose = () => {
9701
- onClose();
9702
- setIsCSVInviteSelected(false);
9703
- };
9704
- return /*#__PURE__*/React__default["default"].createElement(formik.Formik, {
9705
- initialValues: {
9706
- emails: []
9707
- },
9708
- onSubmit: noop$2
9709
- }, /*#__PURE__*/React__default["default"].createElement(formik.Form, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal, _extends({
9710
- isOpen: isOpen,
9711
- onClose: handleClose,
9712
- size: "large"
9713
- }, otherProps), /*#__PURE__*/React__default["default"].createElement("div", {
9714
- className: "ntm-invitations__wrapper"
9715
- }, isCSVInviteSelected ? /*#__PURE__*/React__default["default"].createElement(Csv, {
9716
- label: label,
9717
- csvColumns: csvColumns,
9718
- sampleFileUrl: sampleFileUrl,
9719
- setIsCSVInviteSelected: setIsCSVInviteSelected
9720
- }) : /*#__PURE__*/React__default["default"].createElement(Normal, {
9721
- label: label,
9722
- submitButtonProps: submitButtonProps,
9723
- setIsCSVInviteSelected: setIsCSVInviteSelected,
9724
- isCSVInviteEnabled: isCSVInviteEnabled,
9725
- isInviteLinkEnabled: isInviteLinkEnabled,
9726
- inviteLinkProps: inviteLinkProps
9727
- }, children)))));
9728
- };
9729
- var index$2 = withReactQuery(Invitations);
9730
-
9731
- const fetch$2 = () => axios__default["default"].get(`${BASE_URL}/permissions`);
9732
- const permissionsApi = {
9733
- fetch: fetch$2
9734
- };
9735
-
9736
- function ownKeys$6(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; }
9737
- function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9738
- const useFetchPermissions = function () {
9739
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9740
- return useQuery(QUERY_KEYS.PERMISSIONS, permissionsApi.fetch, _objectSpread$6({
9741
- staleTime: DEFAULT_STALE_TIME,
9742
- select: response => response.permissions || response.data.permissions
9743
- }, options));
9744
- };
9745
-
9746
- const fetch$1 = () => axios__default["default"].get(`${BASE_URL}/organization_roles`);
9747
- const create$1 = payload => axios__default["default"].post(`${BASE_URL}/organization_roles`, payload);
9748
- const update$1 = (id, payload) => axios__default["default"].patch(`${BASE_URL}/organization_roles/${id}`, payload);
9749
- const destroy = (id, payload) => axios__default["default"].delete(`${BASE_URL}/organization_roles/${id}`, {
9750
- data: payload
9751
- });
9752
- const organizationRolesApi = {
9753
- fetch: fetch$1,
9754
- create: create$1,
9755
- update: update$1,
9756
- destroy
9757
- };
9758
-
9759
- const _excluded$1 = ["onSuccess"],
9760
- _excluded2$1 = ["onSuccess"],
9761
- _excluded3 = ["onSuccess"];
9762
- function ownKeys$5(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; }
9763
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9764
- const useFetchRoles = function () {
9765
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9766
- return useQuery(QUERY_KEYS.ROLES, organizationRolesApi.fetch, _objectSpread$5({
9767
- staleTime: DEFAULT_STALE_TIME,
9768
- select: response => response.organizationRoles || response.data.organizationRoles
9769
- }, options));
9770
- };
9771
- const useCreateRole = _ref => {
9772
- let onSuccess = _ref.onSuccess,
9773
- options = _objectWithoutProperties$1(_ref, _excluded$1);
9774
- return useMutation(organizationRolesApi.create, _objectSpread$5({
9775
- onSuccess: response => {
9776
- queryClient.setQueriesData(QUERY_KEYS.ROLES, cachedData => {
9777
- if (!!cachedData.data && !!cachedData.data.organizationRoles) {
9778
- return ramda.modifyPath(["data", "organizationRoles"], ramda.prepend(response.data.organizationRole), cachedData);
9779
- }
9780
- return ramda.modifyPath(["organizationRoles"], ramda.prepend(response.organizationRole), cachedData);
9781
- });
9782
- neetoui.Toastr.success(response.ntmNotice || response.data.ntmNotice);
9783
- onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
9784
- }
9785
- }, options));
9786
- };
9787
- const useUpdateRole = _ref2 => {
9788
- let onSuccess = _ref2.onSuccess,
9789
- options = _objectWithoutProperties$1(_ref2, _excluded2$1);
9790
- return useMutation(_ref3 => {
9791
- let id = _ref3.id,
9792
- payload = _ref3.payload;
9793
- return organizationRolesApi.update(id, payload);
9794
- }, _objectSpread$5({
9795
- onSuccess: response => {
9796
- queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
9797
- queryClient.setQueriesData(QUERY_KEYS.ROLES, cachedData => {
9798
- if (!!cachedData.data && !!cachedData.data.organizationRoles) {
9799
- return ramda.assocPath(["data", "organizationRoles", ramda.findIndex(ramda.propEq("id", response.data.organizationRole.id), cachedData.data.organizationRoles)], response.data.organizationRole, cachedData);
9800
- }
9801
- return ramda.assocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.organizationRole.id), cachedData.organizationRoles)], response.organizationRole, cachedData);
9802
- });
9803
- neetoui.Toastr.success(response.ntmNotice || response.data.ntmNotice);
9804
- onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
9805
- }
9806
- }, options));
9807
- };
9808
- const useDestroyRole = _ref4 => {
9809
- let _ref4$onSuccess = _ref4.onSuccess,
9810
- onSuccess = _ref4$onSuccess === void 0 ? noop$2 : _ref4$onSuccess,
9811
- options = _objectWithoutProperties$1(_ref4, _excluded3);
9812
- return useMutation(_ref5 => {
9813
- let id = _ref5.id,
9814
- payload = _ref5.payload;
9815
- return organizationRolesApi.destroy(id, payload);
9816
- }, _objectSpread$5({
9817
- onSuccess: response => {
9818
- queryClient.setQueriesData(QUERY_KEYS.ROLES, cachedData => {
9819
- if (!!cachedData.data && !!cachedData.data.organizationRoles) {
9820
- return ramda.dissocPath(["data", "organizationRoles", ramda.findIndex(ramda.propEq("id", response.data.id), cachedData.data.organizationRoles)], cachedData);
9821
- }
9822
- return ramda.dissocPath(["organizationRoles", ramda.findIndex(ramda.propEq("id", response.id), cachedData.organizationRoles)], cachedData);
9823
- });
9824
- neetoui.Toastr.success(response.ntmNotice || response.data.ntmNotice);
9825
- onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess();
9826
- }
9827
- }, options));
9828
- };
7329
+ }, options));
7330
+ };
9829
7331
 
9830
7332
  var dist = {exports: {}};
9831
7333
 
@@ -11268,16 +8770,63 @@ const getPermissionGroups = function () {
11268
8770
  return groupedPermissions;
11269
8771
  };
11270
8772
 
8773
+ const transformObjectToDotNotation = function (object) {
8774
+ let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
8775
+ let result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
8776
+ const errorKey = Object.keys(object).find(key => !!object[key]);
8777
+ if (!errorKey) return;
8778
+ const value = object[errorKey];
8779
+ if (!value) return;
8780
+ const nextKey = prefix ? `${prefix}.${errorKey}` : errorKey;
8781
+ ramda.is(Object, value) ? transformObjectToDotNotation(value, nextKey, result) : result.push(nextKey);
8782
+
8783
+ // eslint-disable-next-line consistent-return
8784
+ return result;
8785
+ };
8786
+ const getErrorFieldName = formikErrors => {
8787
+ var _transformObjectToDot;
8788
+ return (_transformObjectToDot = transformObjectToDotNotation(formikErrors)) === null || _transformObjectToDot === void 0 ? void 0 : _transformObjectToDot[0];
8789
+ };
8790
+
8791
+ const ScrollToErrorField = _ref => {
8792
+ let formRef = _ref.formRef;
8793
+ const _useFormikContext = formik.useFormikContext(),
8794
+ submitCount = _useFormikContext.submitCount,
8795
+ isValid = _useFormikContext.isValid,
8796
+ errors = _useFormikContext.errors;
8797
+ const isValidatedReference = React.useRef(false);
8798
+ React.useEffect(() => {
8799
+ isValidatedReference.current = false;
8800
+ }, [submitCount]);
8801
+ React.useEffect(() => {
8802
+ if (!formRef.current) return;
8803
+ if (isValidatedReference.current || isValid) return;
8804
+ isValidatedReference.current = true;
8805
+ const fieldErrorNames = getErrorFieldName(errors);
8806
+ if (fieldErrorNames.length <= 0) return;
8807
+ const errorFormElement = [...formRef.current.elements].find(element => element.name === fieldErrorNames);
8808
+ errorFormElement === null || errorFormElement === void 0 ? void 0 : errorFormElement.scrollIntoView({
8809
+ behavior: "smooth",
8810
+ block: "center"
8811
+ });
8812
+ }, [submitCount, errors]); // eslint-disable-line react-hooks/exhaustive-deps
8813
+
8814
+ return null;
8815
+ };
8816
+
11271
8817
  const ADD_ROLE_FORM_INITIAL_VALUES = {
11272
8818
  name: "",
11273
8819
  description: "",
11274
8820
  permissionIds: []
11275
8821
  };
11276
8822
  const ADD_ROLE_FORM_VALIDATION_SCHEMA = yup.object({
11277
- name: yup.string().trim().required(instance.t("validations.enterRoleName")),
8823
+ name: yup.string().trim().max(40, instance.t("validations.limitExceeded", {
8824
+ what: instance.t("common.name").toLocaleLowerCase(),
8825
+ limit: 40
8826
+ })).required(instance.t("validations.enterRoleName")),
11278
8827
  description: yup.string().trim().max(255, instance.t("validations.limitExceeded", {
11279
- what: instance.t("common.description"),
11280
- count: 255
8828
+ what: instance.t("common.description").toLocaleLowerCase(),
8829
+ limit: 255
11281
8830
  }))
11282
8831
  });
11283
8832
 
@@ -11337,13 +8886,14 @@ const Permissions = _ref => {
11337
8886
  };
11338
8887
 
11339
8888
  function ownKeys$4(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; }
11340
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8889
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11341
8890
  const New = _ref => {
11342
8891
  let isOpen = _ref.isOpen,
11343
8892
  onClose = _ref.onClose,
11344
8893
  permissions = _ref.permissions;
11345
8894
  const _useTranslation = useTranslation(),
11346
8895
  t = _useTranslation.t;
8896
+ const formReference = React.useRef(null);
11347
8897
  const _useCreateRole = useCreateRole({
11348
8898
  onSuccess: onClose
11349
8899
  }),
@@ -11366,16 +8916,19 @@ const New = _ref => {
11366
8916
  }, t("common.add_", {
11367
8917
  what: t("common.role", SINGULAR).toLocaleLowerCase()
11368
8918
  }))), /*#__PURE__*/React__default["default"].createElement(formik.Formik, {
11369
- validateOnChange: false,
11370
- validateOnBlur: false,
11371
8919
  initialValues: ADD_ROLE_FORM_INITIAL_VALUES,
11372
- validationSchema: ADD_ROLE_FORM_VALIDATION_SCHEMA,
11373
- onSubmit: handleFormSubmit
8920
+ onSubmit: handleFormSubmit,
8921
+ validateOnBlur: false,
8922
+ validateOnChange: false,
8923
+ validationSchema: ADD_ROLE_FORM_VALIDATION_SCHEMA
11374
8924
  }, _ref2 => {
11375
8925
  let dirty = _ref2.dirty;
11376
8926
  return /*#__PURE__*/React__default["default"].createElement(formik.Form, {
8927
+ ref: formReference,
11377
8928
  noValidate: true
11378
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
8929
+ }, /*#__PURE__*/React__default["default"].createElement(ScrollToErrorField, {
8930
+ formRef: formReference
8931
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
11379
8932
  className: "ntm-roles-pane__body"
11380
8933
  }, /*#__PURE__*/React__default["default"].createElement("div", {
11381
8934
  className: "ntm-roles-pane__body-wrapper"
@@ -11391,6 +8944,7 @@ const New = _ref => {
11391
8944
  }), /*#__PURE__*/React__default["default"].createElement(formik$1.Textarea, {
11392
8945
  "data-cy": "ntm-add-role-description-text-field",
11393
8946
  label: t("common.description"),
8947
+ maxLength: 255,
11394
8948
  name: "description",
11395
8949
  placeholder: t("placeholders.enter_", {
11396
8950
  what: t("common.description").toLocaleLowerCase()
@@ -11706,13 +9260,14 @@ const Delete = _ref => {
11706
9260
  };
11707
9261
 
11708
9262
  function ownKeys$3(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; }
11709
- function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9263
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11710
9264
  const Edit = _ref => {
11711
9265
  let isOpen = _ref.isOpen,
11712
9266
  onClose = _ref.onClose,
11713
9267
  selectedRole = _ref.selectedRole;
11714
9268
  const _useTranslation = useTranslation(),
11715
9269
  t = _useTranslation.t;
9270
+ const formReference = React.useRef(null);
11716
9271
  const _useUpdateRole = useUpdateRole({
11717
9272
  onSuccess: onClose
11718
9273
  }),
@@ -11733,24 +9288,29 @@ const Edit = _ref => {
11733
9288
  payload
11734
9289
  });
11735
9290
  };
11736
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Modal, {
9291
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
11737
9292
  isOpen: isOpen,
11738
9293
  onClose: onClose
11739
- }, /*#__PURE__*/React__default["default"].createElement(formik.Formik, {
9294
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
9295
+ "data-cy": "ntm-update-role-title",
9296
+ style: "h2"
9297
+ }, t("common.update_", {
9298
+ what: t("common.role", SINGULAR).toLocaleLowerCase()
9299
+ }))), /*#__PURE__*/React__default["default"].createElement(formik.Formik, {
11740
9300
  initialValues: initialValues,
11741
- validationSchema: ADD_ROLE_FORM_VALIDATION_SCHEMA,
11742
- onSubmit: handleFormSubmit
9301
+ onSubmit: handleFormSubmit,
9302
+ validateOnBlur: false,
9303
+ validateOnChange: false,
9304
+ validationSchema: ADD_ROLE_FORM_VALIDATION_SCHEMA
11743
9305
  }, _ref2 => {
11744
9306
  let dirty = _ref2.dirty;
11745
9307
  return /*#__PURE__*/React__default["default"].createElement(formik.Form, {
9308
+ ref: formReference,
11746
9309
  noValidate: true
11747
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11748
- "data-cy": "ntm-update-role-title",
11749
- style: "h2"
11750
- }, t("common.update_", {
11751
- what: t("common.role", SINGULAR).toLocaleLowerCase()
11752
- }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
11753
- className: "ntm-roles-modal__body"
9310
+ }, /*#__PURE__*/React__default["default"].createElement(ScrollToErrorField, {
9311
+ formRef: formReference
9312
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
9313
+ className: "ntm-roles-pane__body"
11754
9314
  }, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
11755
9315
  required: true,
11756
9316
  "data-cy": "ntm-update-role-name-text-field",
@@ -11761,10 +9321,11 @@ const Edit = _ref => {
11761
9321
  }), /*#__PURE__*/React__default["default"].createElement(formik$1.Textarea, {
11762
9322
  "data-cy": "ntm-update-role-description-text-field",
11763
9323
  label: t("common.description"),
9324
+ maxLength: 255,
11764
9325
  name: "description",
11765
9326
  placeholder: t("placeholders.enterDescription")
11766
- }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Footer, null, /*#__PURE__*/React__default["default"].createElement("div", {
11767
- className: "ntm-roles-modal__footer"
9327
+ }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, null, /*#__PURE__*/React__default["default"].createElement("div", {
9328
+ className: "ntm-roles-pane__footer"
11768
9329
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
11769
9330
  "data-cy": "ntm-update-role-submit-button",
11770
9331
  disabled: !dirty || isSubmitting,
@@ -11780,14 +9341,14 @@ const Edit = _ref => {
11780
9341
  }));
11781
9342
  };
11782
9343
 
11783
- const Columns = _ref => {
9344
+ const Columns$1 = _ref => {
11784
9345
  let config = _ref.config,
11785
9346
  filteredGroupPermissions = _ref.filteredGroupPermissions,
11786
9347
  filteredRoles = _ref.filteredRoles,
11787
9348
  roles = _ref.roles,
11788
9349
  setIsScrollPresent = _ref.setIsScrollPresent;
11789
9350
  const _useState = React.useState(DEFAULT_MANAGE_ROLE_VALUES),
11790
- _useState2 = _slicedToArray$2(_useState, 2),
9351
+ _useState2 = _slicedToArray(_useState, 2),
11791
9352
  manageRole = _useState2[0],
11792
9353
  setManageRole = _useState2[1];
11793
9354
  const categories = Object.keys(filteredGroupPermissions);
@@ -11927,15 +9488,15 @@ const Table = _ref => {
11927
9488
  const _useTranslation = useTranslation(),
11928
9489
  t = _useTranslation.t;
11929
9490
  const _useState = React.useState(""),
11930
- _useState2 = _slicedToArray$2(_useState, 2),
9491
+ _useState2 = _slicedToArray(_useState, 2),
11931
9492
  searchTerm = _useState2[0],
11932
9493
  setSearchTerm = _useState2[1];
11933
9494
  const _useState3 = React.useState(permissionGroups),
11934
- _useState4 = _slicedToArray$2(_useState3, 2),
9495
+ _useState4 = _slicedToArray(_useState3, 2),
11935
9496
  filteredGroupPermissions = _useState4[0],
11936
9497
  setFilteredGroupPermissions = _useState4[1];
11937
9498
  const _useState5 = React.useState(false),
11938
- _useState6 = _slicedToArray$2(_useState5, 2),
9499
+ _useState6 = _slicedToArray(_useState5, 2),
11939
9500
  isScrollPresent = _useState6[0],
11940
9501
  setIsScrollPresent = _useState6[1];
11941
9502
  const toggleDropdown = category => {
@@ -11943,7 +9504,7 @@ const Table = _ref => {
11943
9504
  };
11944
9505
  React.useEffect(() => {
11945
9506
  setFilteredGroupPermissions(ramda.fromPairs(ramda.toPairs(permissionGroups).map(_ref2 => {
11946
- let _ref3 = _slicedToArray$2(_ref2, 2),
9507
+ let _ref3 = _slicedToArray(_ref2, 2),
11947
9508
  category = _ref3[0],
11948
9509
  options = _ref3[1];
11949
9510
  return [category, ramda.modify("permissions", ramda.filter(_ref4 => {
@@ -11968,7 +9529,7 @@ const Table = _ref => {
11968
9529
  onClick: () => setIsNewRolePaneOpen(true),
11969
9530
  permissions: config === null || config === void 0 ? void 0 : config.permissions
11970
9531
  })
11971
- }) : /*#__PURE__*/React__default["default"].createElement(Columns, {
9532
+ }) : /*#__PURE__*/React__default["default"].createElement(Columns$1, {
11972
9533
  config: config,
11973
9534
  filteredGroupPermissions: filteredGroupPermissions,
11974
9535
  filteredRoles: filteredRoles,
@@ -11981,15 +9542,15 @@ const Roles = _ref => {
11981
9542
  var _config$permissions$v, _config$permissions, _config$permissions$v2, _config$permissions2;
11982
9543
  let config = _ref.config;
11983
9544
  const _useState = React.useState(""),
11984
- _useState2 = _slicedToArray$2(_useState, 2),
9545
+ _useState2 = _slicedToArray(_useState, 2),
11985
9546
  searchString = _useState2[0],
11986
9547
  setSearchString = _useState2[1];
11987
9548
  const _useState3 = React.useState([]),
11988
- _useState4 = _slicedToArray$2(_useState3, 2),
9549
+ _useState4 = _slicedToArray(_useState3, 2),
11989
9550
  filteredRoles = _useState4[0],
11990
9551
  setFilteredRoles = _useState4[1];
11991
9552
  const _useState5 = React.useState(false),
11992
- _useState6 = _slicedToArray$2(_useState5, 2),
9553
+ _useState6 = _slicedToArray(_useState5, 2),
11993
9554
  isNewRolePaneOpen = _useState6[0],
11994
9555
  setIsNewRolePaneOpen = _useState6[1];
11995
9556
  const _useFetchRoles = useFetchRoles({
@@ -12055,7 +9616,7 @@ const teamsApi = {
12055
9616
  const _excluded = ["onSuccess"],
12056
9617
  _excluded2 = ["onSuccess"];
12057
9618
  function ownKeys$2(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; }
12058
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty$2(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9619
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12059
9620
  const useFetchMembers = function () {
12060
9621
  let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12061
9622
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
@@ -12067,7 +9628,7 @@ const useFetchMembers = function () {
12067
9628
  };
12068
9629
  const useCreateMember = _ref => {
12069
9630
  let onSuccess = _ref.onSuccess,
12070
- options = _objectWithoutProperties$1(_ref, _excluded);
9631
+ options = _objectWithoutProperties(_ref, _excluded);
12071
9632
  return useMutation(teamsApi.create, _objectSpread$2({
12072
9633
  onSuccess: response => {
12073
9634
  queryClient.invalidateQueries(QUERY_KEYS.TEAMS);
@@ -12078,7 +9639,7 @@ const useCreateMember = _ref => {
12078
9639
  };
12079
9640
  const useUpdateMember = _ref2 => {
12080
9641
  let onSuccess = _ref2.onSuccess,
12081
- options = _objectWithoutProperties$1(_ref2, _excluded2);
9642
+ options = _objectWithoutProperties(_ref2, _excluded2);
12082
9643
  return useMutation(_ref3 => {
12083
9644
  let id = _ref3.id,
12084
9645
  payload = _ref3.payload;
@@ -12095,7 +9656,7 @@ const useUpdateMember = _ref2 => {
12095
9656
  const useDebounce = function (value) {
12096
9657
  let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 350;
12097
9658
  const _useState = React.useState(value),
12098
- _useState2 = _slicedToArray$2(_useState, 2),
9659
+ _useState2 = _slicedToArray(_useState, 2),
12099
9660
  debouncedValue = _useState2[0],
12100
9661
  setDebouncedValue = _useState2[1];
12101
9662
  React.useEffect(() => {
@@ -12110,7 +9671,7 @@ const Header = _ref => {
12110
9671
  let _ref$metaName = _ref.metaName,
12111
9672
  metaName = _ref$metaName === void 0 ? "" : _ref$metaName,
12112
9673
  _ref$onClick = _ref.onClick,
12113
- onClick = _ref$onClick === void 0 ? noop$2 : _ref$onClick,
9674
+ onClick = _ref$onClick === void 0 ? noop$1 : _ref$onClick,
12114
9675
  permissions = _ref.permissions;
12115
9676
  return /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
12116
9677
  content: instance.t("tooltips.noPermissionToAddMember"),
@@ -12126,6 +9687,151 @@ const Header = _ref => {
12126
9687
  })));
12127
9688
  };
12128
9689
 
9690
+ const getStorageValue = (key, defaultValue) => {
9691
+ const saved = localStorage.getItem(key);
9692
+ return JSON.parse(saved) || defaultValue;
9693
+ };
9694
+ const useLocalStorage = (key, defaultValue) => {
9695
+ const _useState = React.useState(() => getStorageValue(key, defaultValue)),
9696
+ _useState2 = _slicedToArray(_useState, 2),
9697
+ storedValue = _useState2[0],
9698
+ setStoredValue = _useState2[1];
9699
+ const setValue = value => {
9700
+ if (ramda.isNil(value)) {
9701
+ localStorage.removeItem(key);
9702
+ } else {
9703
+ localStorage.setItem(key, JSON.stringify(value));
9704
+ }
9705
+ setStoredValue(value);
9706
+ };
9707
+ return [storedValue, setValue];
9708
+ };
9709
+
9710
+ const matchesImpl = function (pattern, object) {
9711
+ let __parent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : object;
9712
+ if (object === pattern) return true;
9713
+ if (typeof pattern === "function" && pattern(object, __parent)) return true;
9714
+ if (ramda.isNil(pattern) || ramda.isNil(object)) return false;
9715
+ if (typeof pattern !== "object") return false;
9716
+ return Object.entries(pattern).every(_ref => {
9717
+ let _ref2 = _slicedToArray(_ref, 2),
9718
+ key = _ref2[0],
9719
+ value = _ref2[1];
9720
+ return matchesImpl(value, object[key], __parent);
9721
+ });
9722
+ };
9723
+ const matches = ramda.curry((pattern, object) => matchesImpl(pattern, object));
9724
+ const isNotEmpty = ramda.complement(ramda.isEmpty);
9725
+ const removeBy = ramda.curry((pattern, array) => array.filter(ramda.complement(matches(pattern))));
9726
+ const removeFixedColumns = (fixedColumns, columnData) => removeBy({
9727
+ dataIndex: ramda.includes(ramda.__, fixedColumns)
9728
+ }, columnData);
9729
+ const filterBySearchTerm = (searchTerm, columns) => ramda.filter(_ref3 => {
9730
+ let title = _ref3.title;
9731
+ return ramda.includes(ramda.trim(ramda.toLower(searchTerm)), ramda.trim(ramda.toLower(title)));
9732
+ }, columns);
9733
+
9734
+ const Columns = _ref => {
9735
+ let actionBlock = _ref.actionBlock,
9736
+ _ref$checkboxProps = _ref.checkboxProps,
9737
+ checkboxProps = _ref$checkboxProps === void 0 ? {} : _ref$checkboxProps,
9738
+ _ref$columnData = _ref.columnData,
9739
+ columnData = _ref$columnData === void 0 ? [] : _ref$columnData,
9740
+ _ref$dropdownProps = _ref.dropdownProps,
9741
+ dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps,
9742
+ _ref$fixedColumns = _ref.fixedColumns,
9743
+ fixedColumns = _ref$fixedColumns === void 0 ? [] : _ref$fixedColumns,
9744
+ _ref$isSearchable = _ref.isSearchable,
9745
+ isSearchable = _ref$isSearchable === void 0 ? false : _ref$isSearchable,
9746
+ _ref$localStorageKey = _ref.localStorageKey,
9747
+ localStorageKey = _ref$localStorageKey === void 0 ? "" : _ref$localStorageKey,
9748
+ _ref$noColumnMessage = _ref.noColumnMessage,
9749
+ noColumnMessage = _ref$noColumnMessage === void 0 ? "No columns found!" : _ref$noColumnMessage,
9750
+ _ref$onChange = _ref.onChange,
9751
+ onChange = _ref$onChange === void 0 ? ramda.identity : _ref$onChange,
9752
+ _ref$searchProps = _ref.searchProps,
9753
+ searchProps = _ref$searchProps === void 0 ? {} : _ref$searchProps;
9754
+ // @ts-ignore
9755
+ const Divider = neetoui.Dropdown.Divider,
9756
+ Menu = neetoui.Dropdown.Menu,
9757
+ MenuItem = neetoui.Dropdown.MenuItem;
9758
+ const _useLocalStorage = useLocalStorage(localStorageKey, []),
9759
+ _useLocalStorage2 = _slicedToArray(_useLocalStorage, 2),
9760
+ hiddenColumns = _useLocalStorage2[0],
9761
+ setHiddenColumns = _useLocalStorage2[1];
9762
+ const _useState = React.useState(""),
9763
+ _useState2 = _slicedToArray(_useState, 2),
9764
+ searchTerm = _useState2[0],
9765
+ setSearchTerm = _useState2[1];
9766
+ const columns = removeFixedColumns(fixedColumns, columnData);
9767
+ const filteredColumns = filterBySearchTerm(searchTerm, columns);
9768
+ const handleChange = _ref2 => {
9769
+ let _ref2$target = _ref2.target,
9770
+ dataIndex = _ref2$target.name,
9771
+ checked = _ref2$target.checked;
9772
+ return checked ? setHiddenColumns(ramda.without([dataIndex], hiddenColumns)) : setHiddenColumns(ramda.append(dataIndex, hiddenColumns));
9773
+ };
9774
+ const handleSearch = _ref3 => {
9775
+ let value = _ref3.target.value;
9776
+ return setSearchTerm(value);
9777
+ };
9778
+ React.useEffect(() => {
9779
+ onChange(removeBy({
9780
+ dataIndex: ramda.includes(ramda.__, hiddenColumns)
9781
+ }, columnData));
9782
+ }, [columnData, hiddenColumns]); // eslint-disable-line react-hooks/exhaustive-deps
9783
+
9784
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, _extends({
9785
+ buttonSize: "medium",
9786
+ buttonStyle: "secondary",
9787
+ closeOnSelect: false,
9788
+ label: "Columns",
9789
+ onClose: () => setSearchTerm(""),
9790
+ position: "bottom-end"
9791
+ }, dropdownProps), /*#__PURE__*/React__default["default"].createElement(Menu, null, /*#__PURE__*/React__default["default"].createElement("div", null, isSearchable && /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({
9792
+ className: "neeto-ui-px-3 neeto-ui-py-2",
9793
+ "data-cy": "neeto-ui-columns-search",
9794
+ onChange: handleSearch,
9795
+ placeholder: "Search columns",
9796
+ prefix: /*#__PURE__*/React__default["default"].createElement(neetoIcons.Search, null),
9797
+ type: "search",
9798
+ value: searchTerm
9799
+ }, searchProps)), isNotEmpty(filteredColumns) ? filteredColumns.map(_ref4 => {
9800
+ let dataIndex = _ref4.dataIndex,
9801
+ key = _ref4.key,
9802
+ title = _ref4.title;
9803
+ return /*#__PURE__*/React__default["default"].createElement(MenuItem, {
9804
+ key: key
9805
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
9806
+ className: "neeto-ui-w-full neeto-ui-px-3 neeto-ui-py-2 hover:neeto-ui-bg-gray-200 neeto-ui-cursor-pointer",
9807
+ htmlFor: dataIndex
9808
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Checkbox, _extends({
9809
+ id: dataIndex,
9810
+ name: dataIndex,
9811
+ checked: !hiddenColumns.includes(dataIndex),
9812
+ "data-cy": "neeto-ui-columns-checkbox",
9813
+ label: title,
9814
+ onChange: handleChange
9815
+ }, checkboxProps))));
9816
+ }) : /*#__PURE__*/React__default["default"].createElement("span", {
9817
+ className: "neeto-ui-flex neeto-ui-flex-col neeto-ui-items-center neeto-ui-p-2"
9818
+ }, noColumnMessage), !!actionBlock && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Divider, null), actionBlock))));
9819
+ };
9820
+
9821
+ const FIXED_COLUMNS = ["actions"];
9822
+ const COLUMNS_DROPDOWN_PROPS = {
9823
+ buttonProps: {
9824
+ size: "small"
9825
+ },
9826
+ label: instance.t("common.column", PLURAL)
9827
+ };
9828
+ const COLUMNS_SEARCH_PROPS = {
9829
+ placeholder: instance.t("columns.search")
9830
+ };
9831
+ const MANAGE_ROLES_BUTTON_LABEL = instance.t("common.manage_", {
9832
+ what: instance.t("common.role", PLURAL).toLocaleLowerCase()
9833
+ });
9834
+
12129
9835
  const Left = _ref => {
12130
9836
  let metaName = _ref.metaName,
12131
9837
  count = _ref.count;
@@ -12142,18 +9848,24 @@ Left.defaultProps = {
12142
9848
  count: 0
12143
9849
  };
12144
9850
  const Right = _ref2 => {
12145
- let rolesButtonProps = _ref2.rolesButtonProps;
12146
- const isVisible = !!rolesButtonProps;
12147
- const permissions = window.globalProps.permissions;
12148
- const hasRequiredPermissions = permissions && hasPermission(MANAGE_MEMBER_PERMISSIONS);
12149
- return isVisible && hasRequiredPermissions ? /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends({
9851
+ let columns = _ref2.columns,
9852
+ rolesButtonProps = _ref2.rolesButtonProps,
9853
+ setColumnData = _ref2.setColumnData;
9854
+ const isRolesButtonVisible = !!rolesButtonProps;
9855
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Columns, {
9856
+ columnData: columns,
9857
+ dropdownProps: COLUMNS_DROPDOWN_PROPS,
9858
+ fixedColumns: FIXED_COLUMNS,
9859
+ localStorageKey: "NTM_MEMBERS_TABLE_HIDDEN_COLUMNS",
9860
+ noColumnMessage: instance.t("columns.noColumnsFound"),
9861
+ onChange: setColumnData,
9862
+ searchProps: COLUMNS_SEARCH_PROPS
9863
+ }), isRolesButtonVisible ? /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends({
12150
9864
  "data-cy": "ntm-manage-roles-button",
12151
- label: instance.t("common.manage_", {
12152
- what: instance.t("common.role", PLURAL).toLocaleLowerCase()
12153
- }),
9865
+ label: MANAGE_ROLES_BUTTON_LABEL,
12154
9866
  size: "small",
12155
9867
  style: "secondary"
12156
- }, rolesButtonProps)) : null;
9868
+ }, rolesButtonProps)) : null);
12157
9869
  };
12158
9870
  const SubHeader = {
12159
9871
  Left,
@@ -12202,7 +9914,7 @@ const DEFAULT_FILTER_VALUES = {
12202
9914
  };
12203
9915
 
12204
9916
  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; }
12205
- 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$2(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; }
9917
+ 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; }
12206
9918
  const renderNameColumn = (_ref, diplayStatusTag) => {
12207
9919
  let displayName = _ref.displayName,
12208
9920
  imageUrl = _ref.profileImageUrl,
@@ -12317,6 +10029,7 @@ const getColumnData = _ref5 => {
12317
10029
  width: "25%",
12318
10030
  sorter: true
12319
10031
  }, {
10032
+ dataIndex: "actions",
12320
10033
  key: "icon_button",
12321
10034
  render: (_, props) => renderDropdownButton(props, handleUpdateStatus, handleUpdateRole, permissions),
12322
10035
  width: "10%"
@@ -12367,14 +10080,17 @@ const COUNTER_PROPS = {
12367
10080
  startsFrom: 4
12368
10081
  };
12369
10082
 
12370
- const renderInitialValues = selectedMember => ({
12371
- emails: selectedMember ? [{
12372
- label: selectedMember.email,
12373
- value: selectedMember.email,
12374
- valid: true
12375
- }] : [],
12376
- role: (selectedMember === null || selectedMember === void 0 ? void 0 : selectedMember.role) || ""
12377
- });
10083
+ const renderInitialValues = (selectedMember, roles) => {
10084
+ var _roles$;
10085
+ return {
10086
+ emails: selectedMember ? [{
10087
+ label: selectedMember.email,
10088
+ value: selectedMember.email,
10089
+ valid: true
10090
+ }] : [],
10091
+ role: (selectedMember === null || selectedMember === void 0 ? void 0 : selectedMember.role) || ((_roles$ = roles[1]) === null || _roles$ === void 0 ? void 0 : _roles$.name) || ""
10092
+ };
10093
+ };
12378
10094
  const renderPayload = function (_ref) {
12379
10095
  let role = _ref.role,
12380
10096
  emails = _ref.emails;
@@ -12400,9 +10116,10 @@ const ManageMember = _ref => {
12400
10116
  roles = _ref$roles === void 0 ? [] : _ref$roles,
12401
10117
  selectedMember = _ref.selectedMember;
12402
10118
  const _useState = React.useState(false),
12403
- _useState2 = _slicedToArray$2(_useState, 2),
10119
+ _useState2 = _slicedToArray(_useState, 2),
12404
10120
  hasSubmitted = _useState2[0],
12405
10121
  setHasSubmitted = _useState2[1];
10122
+ const formReference = React.useRef(null);
12406
10123
  const onPaneClose = () => {
12407
10124
  onClose();
12408
10125
  setHasSubmitted(false);
@@ -12449,23 +10166,22 @@ const ManageMember = _ref => {
12449
10166
  }) : instance.t("common.add_", {
12450
10167
  what: instance.t(metaName, SINGULAR).toLocaleLowerCase()
12451
10168
  }))), config !== null && config !== void 0 && (_config$manageMember = config.manageMember) !== null && _config$manageMember !== void 0 && _config$manageMember.component ? config.manageMember.component(manageMemberProps) : /*#__PURE__*/React__default["default"].createElement(formik.Formik, {
12452
- initialValues: renderInitialValues(selectedMember),
10169
+ enableReinitialize: true,
10170
+ initialValues: renderInitialValues(selectedMember, roles),
12453
10171
  onSubmit: handleAddMember,
12454
- validationSchema: VALIDATION_SCHEMA,
12455
- validateOnChange: hasSubmitted,
12456
10172
  validateOnBlur: hasSubmitted,
12457
- enableReinitialize: true
10173
+ validateOnChange: hasSubmitted,
10174
+ validationSchema: VALIDATION_SCHEMA
12458
10175
  }, _ref2 => {
12459
10176
  let values = _ref2.values,
12460
- setFieldValue = _ref2.setFieldValue,
12461
10177
  dirty = _ref2.dirty;
12462
10178
  const emails = values.emails,
12463
10179
  role = values.role;
12464
- const roleValue = role && {
12465
- label: role,
12466
- value: role
12467
- };
12468
- return /*#__PURE__*/React__default["default"].createElement(formik.Form, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
10180
+ return /*#__PURE__*/React__default["default"].createElement(formik.Form, {
10181
+ ref: formReference
10182
+ }, /*#__PURE__*/React__default["default"].createElement(ScrollToErrorField, {
10183
+ formRef: formReference
10184
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
12469
10185
  className: "ntm-members-pane__body"
12470
10186
  }, selectedMember ? /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
12471
10187
  "data-cy": "ntm-manage-member-email-input",
@@ -12483,23 +10199,35 @@ const ManageMember = _ref => {
12483
10199
  label: `${instance.t("common.email", PLURAL)}*`,
12484
10200
  name: "emails",
12485
10201
  placeholder: instance.t("placeholders.email")
12486
- }), /*#__PURE__*/React__default["default"].createElement(formik$1.Select, {
12487
- required: true,
12488
- "data-cy": "ntm-manage-member-role-select",
12489
- label: instance.t("common.role", SINGULAR),
12490
- name: "role",
12491
- onChange: _ref3 => {
12492
- let value = _ref3.value;
12493
- return setFieldValue("role", value);
12494
- },
12495
- options: roles.map(role => ({
12496
- label: role,
12497
- value: role
12498
- })),
12499
- placeholder: instance.t("placeholders.role"),
12500
- size: "medium",
12501
- value: roleValue
12502
- }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
10202
+ }), /*#__PURE__*/React__default["default"].createElement(formik$1.Radio, {
10203
+ stacked: true,
10204
+ className: "ntm-members-radio-group",
10205
+ "data-cy": "ntm-manage-member-roles-group",
10206
+ label: `${instance.t("common.role", SINGULAR)}*`,
10207
+ name: "role"
10208
+ }, roles.map(_ref3 => {
10209
+ let description = _ref3.description,
10210
+ id = _ref3.id,
10211
+ name = _ref3.name;
10212
+ return /*#__PURE__*/React__default["default"].createElement("label", {
10213
+ className: "ntm-members-pane-radio-item__wrapper",
10214
+ htmlFor: slugify(name),
10215
+ key: id
10216
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.Radio.Item, {
10217
+ className: "ntm-members-pane-radio-item__label",
10218
+ "data-cy": "ntm-manage-member-roles-button",
10219
+ defaultChecked: ramda.identical(name, role),
10220
+ id: slugify(name),
10221
+ label: name,
10222
+ name: "role",
10223
+ value: name
10224
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
10225
+ className: "neeto-ui-input__help-text",
10226
+ "data-cy": "ntm-manage-member-roles-description",
10227
+ style: "body3",
10228
+ weight: "normal"
10229
+ }, description));
10230
+ })))), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
12503
10231
  className: "ntm-members-pane__footer"
12504
10232
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
12505
10233
  "data-cy": "ntm-manage-member-submit-button",
@@ -12540,24 +10268,28 @@ const Menu = _ref => {
12540
10268
  };
12541
10269
 
12542
10270
  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; }
12543
- 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$2(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; }
10271
+ 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; }
12544
10272
  const TeamMembers = _ref => {
12545
10273
  var _config$permissions$v, _config$permissions, _config$permissions$v2, _config$permissions2;
12546
10274
  let metaName = _ref.metaName,
12547
10275
  config = _ref.config;
12548
10276
  const _useState = React.useState(DEFAULT_IS_OPEN_VALUES),
12549
- _useState2 = _slicedToArray$2(_useState, 2),
10277
+ _useState2 = _slicedToArray(_useState, 2),
12550
10278
  isOpen = _useState2[0],
12551
10279
  setIsOpen = _useState2[1];
12552
10280
  const _useState3 = React.useState(DEFAULT_FILTER_VALUES),
12553
- _useState4 = _slicedToArray$2(_useState3, 2),
10281
+ _useState4 = _slicedToArray(_useState3, 2),
12554
10282
  filters = _useState4[0],
12555
10283
  setFilters = _useState4[1];
12556
10284
  const _useState5 = React.useState(null),
12557
- _useState6 = _slicedToArray$2(_useState5, 2),
10285
+ _useState6 = _slicedToArray(_useState5, 2),
12558
10286
  selectedMember = _useState6[0],
12559
10287
  setSelectedMember = _useState6[1];
12560
10288
  const debouncedSearch = useDebounce(filters.search, 750);
10289
+ const _useState7 = React.useState([]),
10290
+ _useState8 = _slicedToArray(_useState7, 2),
10291
+ columnData = _useState8[0],
10292
+ setColumnData = _useState8[1];
12561
10293
  const _useFetchMembers = useFetchMembers(_objectSpread(_objectSpread({}, filters), {}, {
12562
10294
  search: debouncedSearch.trim(),
12563
10295
  category: filters.category.toLowerCase()
@@ -12569,8 +10301,8 @@ const TeamMembers = _ref => {
12569
10301
  isMembersFetching = _useFetchMembers.isFetching;
12570
10302
  const _useFetchRoles = useFetchRoles({
12571
10303
  select: response => {
12572
- const roles = response.organizationRoles || response.data.organizationRoles;
12573
- return ramda.pluck("name", roles).sort((a, b) => a.localeCompare(b));
10304
+ var _ref2;
10305
+ return ramda.reverse((_ref2 = response.organizationRoles || response.data.organizationRoles) !== null && _ref2 !== void 0 ? _ref2 : []);
12574
10306
  },
12575
10307
  enabled: (_config$permissions$v2 = config === null || config === void 0 ? void 0 : (_config$permissions2 = config.permissions) === null || _config$permissions2 === void 0 ? void 0 : _config$permissions2.view) !== null && _config$permissions$v2 !== void 0 ? _config$permissions$v2 : DEFAULT_PERMISSION
12576
10308
  }),
@@ -12583,8 +10315,8 @@ const TeamMembers = _ref => {
12583
10315
  isUpdatingMember = _useUpdateMember.isLoading;
12584
10316
  const searchProps = {
12585
10317
  "data-cy": "ntm-search-members-input",
12586
- onChange: _ref2 => {
12587
- let value = _ref2.target.value;
10318
+ onChange: _ref3 => {
10319
+ let value = _ref3.target.value;
12588
10320
  return setFilters(ramda.mergeLeft({
12589
10321
  search: value,
12590
10322
  page: DEFAULT_PAGE_NUMBER
@@ -12619,6 +10351,14 @@ const TeamMembers = _ref => {
12619
10351
  setSelectedMember(user);
12620
10352
  setIsOpen(ramda.assoc("manageMember", true));
12621
10353
  };
10354
+ const columns = React.useMemo(() => getColumnData({
10355
+ memberFilter: filters.category,
10356
+ handleUpdateStatus,
10357
+ handleUpdateRole,
10358
+ permissions: config === null || config === void 0 ? void 0 : config.permissions
10359
+ }), [] // eslint-disable-line react-hooks/exhaustive-deps
10360
+ );
10361
+
12622
10362
  const handleAlertClose = () => {
12623
10363
  setIsOpen(ramda.assoc("alert", false));
12624
10364
  setSelectedMember(null);
@@ -12669,19 +10409,16 @@ const TeamMembers = _ref => {
12669
10409
  count: team === null || team === void 0 ? void 0 : team.membersCount
12670
10410
  }),
12671
10411
  rightActionBlock: /*#__PURE__*/React__default["default"].createElement(SubHeader.Right, {
12672
- rolesButtonProps: config.rolesButtonProps
10412
+ columns: columns,
10413
+ rolesButtonProps: config.rolesButtonProps,
10414
+ setColumnData: setColumnData
12673
10415
  })
12674
10416
  }), (team === null || team === void 0 ? void 0 : team.membersCount) !== 0 ? /*#__PURE__*/React__default["default"].createElement("div", {
12675
10417
  className: "ntm-members__table-wrapper"
12676
10418
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
12677
10419
  fixedHeight: true,
12678
10420
  allowRowClick: false,
12679
- columnData: getColumnData({
12680
- memberFilter: filters.category,
12681
- handleUpdateStatus,
12682
- handleUpdateRole,
12683
- permissions: config === null || config === void 0 ? void 0 : config.permissions
12684
- }),
10421
+ columnData: columnData,
12685
10422
  currentPageNumber: parseInt(filters.page, DEFAULT_RADIX),
12686
10423
  "data-cy": "ntm-members-table",
12687
10424
  defaultPageSize: parseInt(filters.results, DEFAULT_RADIX),
@@ -12732,10 +10469,9 @@ var index = withReactQuery(TeamMembers);
12732
10469
 
12733
10470
  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}}
12734
10471
 
12735
- var css = ":root {\n --ntm-roles-table-default-scroll: 15px;\n}\n\n.ntm-dropdown__button {\n border-radius: 0 !important;\n font-weight: var(--neeto-ui-font-normal);\n min-height: 34px;\n min-width: 150px;\n text-align: left;\n width: 100%;\n}\n\n.ntm-scrollbar__inner {\n width: 100%;\n height: 200px;\n}\n.ntm-scrollbar__outer {\n position: \"absolute\";\n top: 0px;\n left: 0px;\n width: 200px;\n height: 150px;\n overflow: \"hidden\";\n visibility: \"hidden\";\n}\n\n.ntm-empty-state {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n width: 100%;\n}\n.ntm-empty-state__image {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 2rem;\n}\n.ntm-empty-state__title--with-action-block {\n margin-bottom: 1rem;\n}\n.ntm-empty-state__action-block {\n display: flex;\n justify-content: center;\n}\n\n.ntm-members {\n overflow: auto;\n width: 100%;\n}\n.ntm-members-wrapper {\n display: flex;\n}\n.ntm-members-page-loader {\n width: 100%;\n height: 100vh;\n}\n.ntm-members__table-wrapper {\n height: calc(100vh - 205px);\n width: 100%;\n}\n.ntm-members-table__column {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.ntm-members-pane__header {\n margin-bottom: 0.5rem;\n}\n.ntm-members-pane__body {\n width: 100%;\n}\n.ntm-members-pane__body > * + * {\n margin-top: 1rem;\n}\n.ntm-members-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-header {\n border-bottom: 1px solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table__wrapper {\n width: 100%;\n height: calc(100vh - var(--neeto-ui-main-header-height));\n display: flex;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar {\n width: 396px;\n min-width: 396px;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__search {\n padding: 24px 24px 16px;\n height: 72px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list {\n height: calc(\n 100vh - var(--neeto-ui-main-header-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 8px;\n min-height: 48px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item.ntm-roles-table-sidebar__list-item--highlighted {\n background-color: rgb(var(--neeto-ui-primary-100));\n padding: 12px 8px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item:not(.ntm-roles-table-sidebar__list-item--highlighted) {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns {\n width: calc(\n 100vw - var(--neeto-ui-sidebar-width) - 396px - 24px\n );\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__cell {\n width: 100%;\n min-width: 200px;\n min-height: 48px;\n padding: 12px 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox-wrapper {\n position: absolute;\n height: 1rem;\n width: 1rem;\n margin: auto;\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox {\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header {\n display: flex;\n align-items: center;\n overflow-x: auto;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table__cell {\n height: 72px;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header-cell__container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n gap: 1rem;\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__dropdown {\n margin: 3px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__role-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows {\n width: 100%;\n height: calc(\n 100vh - var(--neeto-ui-main-header-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n scrollbar-width: none;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb {\n background: rgb(var(--neeto-ui-gray-300));\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb:hover {\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-track {\n background: rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row {\n display: flex;\n align-items: center;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell {\n overflow: hidden;\n position: relative;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell p {\n opacity: 0;\n width: 340px;\n min-width: 340px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row.ntm-roles-table__row--highlighted .ntm-roles-table__cell {\n background-color: rgb(var(--neeto-ui-primary-100));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row:not(.ntm-roles-table__row--highlighted) .ntm-roles-table__cell {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table-sidebar__drop-down-button {\n color: rgb(var(--neeto-ui-gray-600));\n cursor: pointer;\n}\n\n.ntm-roles-modal__body > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-modal__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-pane__body {\n width: 100%;\n margin-bottom: 1.5rem;\n}\n.ntm-roles-pane__body-wrapper > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-pane__body > * + * {\n margin-top: 1.5rem;\n}\n.ntm-roles-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-permission > * + * {\n margin: 0.5rem;\n}\n.ntm-roles-permission__heading {\n color: rgb(var(--neeto-ui-gray-500));\n text-transform: uppercase;\n}\n.ntm-roles-permission__card {\n background-color: rgb(var(--neeto-ui-white));\n border-radius: var(--neeto-ui-rounded);\n border-width: 1px;\n border-color: rgb(var(--neeto-ui-gray-300));\n cursor: pointer;\n display: flex;\n gap: 0.75rem;\n padding: 1rem 0.75rem;\n}\n.ntm-roles-permission__card--description {\n flex-grow: 1;\n}\n.ntm-roles-permission__card--checkbox {\n padding: 0 0.5rem;\n}\n\n.ntm-invitations__wrapper .ntm-invitations__header {\n height: 28px;\n}\n.ntm-invitations__wrapper .ntm-invitations__body {\n display: flex;\n flex-direction: column;\n}\n.ntm-invitations__wrapper .ntm-invitations__body > * {\n margin-bottom: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__body-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.ntm-invitations__wrapper .ntm-invitations__body-header div {\n display: flex;\n align-items: center;\n}\n.ntm-invitations__wrapper .ntm-invitations__body-header div p {\n margin-right: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__dnd {\n color: rgb(var(--neeto-ui-gray-700));\n background: rgb(var(--neeto-ui-gray-100));\n padding: 20px 40px;\n border: 1px dashed;\n border-radius: 6px;\n cursor: pointer;\n counter-reset: dnd-counter;\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__dnd h3 {\n margin-bottom: 8px;\n text-align: center !important;\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__dnd p::before {\n counter-increment: dnd-counter;\n content: counter(dnd-counter) \". \";\n}\n.ntm-invitations__wrapper .ntm-invitations__body .ntm-invitations__submit-btn {\n align-self: end !important;\n margin-top: 16px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer {\n background: rgb(var(--neeto-ui-gray-100));\n margin-top: 24px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-instructions {\n display: flex;\n flex-direction: column;\n width: 50%;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-instructions h4 {\n margin-bottom: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-btns {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: bold;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-btns > button:first-child {\n margin-right: 8px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__invite-link-btns p {\n font-weight: normal;\n color: rgb(var(--neeto-ui-gray-700));\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table {\n max-height: 192px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table-filename {\n display: flex;\n align-items: center;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table-filename svg {\n margin-right: 4px;\n}\n.ntm-invitations__wrapper .ntm-invitations__footer .ntm-invitations__table-status {\n text-transform: capitalize;\n}";
10472
+ var css = ":root {\n --ntm-roles-table-default-scroll: 15px;\n}\n\n.ntm-dropdown__button {\n border-radius: 0 !important;\n font-weight: var(--neeto-ui-font-normal);\n min-height: 34px;\n min-width: 150px;\n text-align: left;\n width: 100%;\n}\n\n.ntm-scrollbar__inner {\n width: 100%;\n height: 200px;\n}\n.ntm-scrollbar__outer {\n position: \"absolute\";\n top: 0px;\n left: 0px;\n width: 200px;\n height: 150px;\n overflow: \"hidden\";\n visibility: \"hidden\";\n}\n\n.ntm-empty-state {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n width: 100%;\n}\n.ntm-empty-state__image {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 2rem;\n}\n.ntm-empty-state__title--with-action-block {\n margin-bottom: 1rem;\n}\n.ntm-empty-state__action-block {\n display: flex;\n justify-content: center;\n}\n\n.ntm-members {\n overflow: auto;\n width: 100%;\n}\n.ntm-members-wrapper {\n display: flex;\n}\n.ntm-members-page-loader {\n width: 100%;\n height: 100vh;\n}\n.ntm-members__table-wrapper {\n height: calc(100vh - 205px);\n width: 100%;\n}\n.ntm-members-table__column {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.ntm-members-pane__header {\n margin-bottom: 0.5rem;\n}\n.ntm-members-pane__body {\n width: 100%;\n padding-bottom: 1rem;\n}\n.ntm-members-pane__body > * + * {\n margin-top: 1rem;\n}\n.ntm-members-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-members-radio-group {\n width: 100%;\n}\n.ntm-members-radio-group .neeto-ui-radio__container--stacked {\n width: 100%;\n}\n\n.ntm-members-pane-radio-item__wrapper {\n width: 100%;\n cursor: pointer;\n padding: 16px 0px !important;\n border-bottom: 1px solid rgb(var(--neeto-ui-gray-200));\n}\n.ntm-members-pane-radio-item__wrapper:first-child {\n padding-top: 0px !important;\n}\n.ntm-members-pane-radio-item__label {\n margin-bottom: 0 !important;\n}\n.ntm-members-pane-radio-item__description {\n color: rgb(var(--neeto-ui-gray-700));\n}\n\n.ntm-roles-header {\n border-bottom: 1px solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table__wrapper {\n width: 100%;\n height: calc(100vh - var(--neeto-ui-main-header-height));\n display: flex;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar {\n width: 396px;\n min-width: 396px;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__search {\n padding: 24px 24px 16px;\n height: 72px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list {\n height: calc(\n 100vh - var(--neeto-ui-main-header-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 8px;\n min-height: 48px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item.ntm-roles-table-sidebar__list-item--highlighted {\n background-color: rgb(var(--neeto-ui-primary-100));\n padding: 12px 8px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__sidebar .ntm-roles-table-sidebar__list .ntm-roles-table-sidebar__list-item:not(.ntm-roles-table-sidebar__list-item--highlighted) {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns {\n width: calc(\n 100vw - var(--neeto-ui-sidebar-width) - 396px - 24px\n );\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__cell {\n width: 100%;\n min-width: 200px;\n min-height: 48px;\n padding: 12px 8px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-right: thin solid rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox-wrapper {\n position: absolute;\n height: 1rem;\n width: 1rem;\n margin: auto;\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table-cell__checkbox {\n z-index: 10;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header {\n display: flex;\n align-items: center;\n overflow-x: auto;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table__cell {\n height: 72px;\n padding-left: 24px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header-cell__container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n gap: 1rem;\n overflow: hidden;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__dropdown {\n margin: 3px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__header .ntm-roles-table-header__role-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows {\n width: 100%;\n height: calc(\n 100vh - var(--neeto-ui-main-header-height) - 72px -\n var(--ntm-roles-table-default-scroll)\n );\n overflow-y: auto;\n scrollbar-width: none;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar {\n width: 0px;\n height: 0px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb {\n background: rgb(var(--neeto-ui-gray-300));\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-thumb:hover {\n border-radius: 50px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows::-webkit-scrollbar-track {\n background: rgb(var(--neeto-ui-gray-300));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row {\n display: flex;\n align-items: center;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell {\n overflow: hidden;\n position: relative;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row .ntm-roles-table__cell p {\n opacity: 0;\n width: 340px;\n min-width: 340px;\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row.ntm-roles-table__row--highlighted .ntm-roles-table__cell {\n background-color: rgb(var(--neeto-ui-primary-100));\n}\n.ntm-roles-table__wrapper .ntm-roles-table__columns .ntm-roles-table__rows .ntm-roles-table__row:not(.ntm-roles-table__row--highlighted) .ntm-roles-table__cell {\n border-bottom: thin solid rgb(var(--neeto-ui-gray-300));\n}\n\n.ntm-roles-table-sidebar__drop-down-button {\n color: rgb(var(--neeto-ui-gray-600));\n cursor: pointer;\n}\n\n.ntm-roles-modal__body > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-modal__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-pane__body {\n width: 100%;\n margin-bottom: 1.5rem;\n}\n.ntm-roles-pane__body-wrapper > * + * {\n margin-top: 1rem;\n}\n.ntm-roles-pane__body > * + * {\n margin-top: 1.5rem;\n}\n.ntm-roles-pane__footer {\n display: flex;\n gap: 0.5rem;\n}\n\n.ntm-roles-permission > * + * {\n margin: 0.5rem;\n}\n.ntm-roles-permission__heading {\n color: rgb(var(--neeto-ui-gray-500));\n text-transform: uppercase;\n}\n.ntm-roles-permission__card {\n background-color: rgb(var(--neeto-ui-white));\n align-items: center;\n border-radius: var(--neeto-ui-rounded);\n border-width: 1px;\n border-color: rgb(var(--neeto-ui-gray-300));\n cursor: pointer;\n display: flex;\n gap: 0.75rem;\n padding: 1rem 0.75rem;\n}\n.ntm-roles-permission__card--description {\n flex-grow: 1;\n}\n.ntm-roles-permission__card--checkbox {\n padding: 0 0.5rem;\n}\n\ntd.ant-table-column-sort {\n background: transparent;\n}";
12736
10473
  n(css,{});
12737
10474
 
12738
- exports.Invitations = index$2;
12739
10475
  exports.Roles = index$1;
12740
10476
  exports.TeamMembers = index;
12741
10477
  exports.hasPermission = hasPermission;