@bigbinary/neeto-templates-frontend 1.1.2 → 1.1.3

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
@@ -15,25 +15,54 @@ var reactQuery = require('react-query');
15
15
  var axios = require('axios');
16
16
  var require$$0 = require('util');
17
17
  var constants = require('@bigbinary/neeto-commons-frontend/constants');
18
- var CustomSVG = require('images/dashboard/custom');
19
18
  var classnames = require('classnames');
20
19
  var utils$3 = require('@bigbinary/neeto-commons-frontend/utils');
20
+ var formik = require('@bigbinary/neetoui/formik');
21
+ var reactRouterDom = require('react-router-dom');
22
+ var pure = require('@bigbinary/neeto-commons-frontend/pure');
23
+ require('@bigbinary/neeto-molecules/Container');
24
+ require('@bigbinary/neeto-molecules/SubHeader');
25
+ require('@bigbinary/neeto-molecules/TableWrapper');
26
+ var i18next = require('i18next');
27
+ var yup = require('yup');
28
+ var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
29
+ require('react-query/devtools');
21
30
 
22
31
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
32
 
33
+ function _interopNamespace(e) {
34
+ if (e && e.__esModule) return e;
35
+ var n = Object.create(null);
36
+ if (e) {
37
+ Object.keys(e).forEach(function (k) {
38
+ if (k !== 'default') {
39
+ var d = Object.getOwnPropertyDescriptor(e, k);
40
+ Object.defineProperty(n, k, d.get ? d : {
41
+ enumerable: true,
42
+ get: function () { return e[k]; }
43
+ });
44
+ }
45
+ });
46
+ }
47
+ n["default"] = e;
48
+ return Object.freeze(n);
49
+ }
50
+
51
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
24
52
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
53
  var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
26
54
  var Scrollable__default = /*#__PURE__*/_interopDefaultLegacy(Scrollable);
27
55
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
28
56
  var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
29
- var CustomSVG__default = /*#__PURE__*/_interopDefaultLegacy(CustomSVG);
30
57
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
58
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
59
+ var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
31
60
 
32
- function _arrayWithHoles(arr) {
61
+ function _arrayWithHoles$1(arr) {
33
62
  if (Array.isArray(arr)) return arr;
34
63
  }
35
64
 
36
- function _iterableToArrayLimit(arr, i) {
65
+ function _iterableToArrayLimit$1(arr, i) {
37
66
  var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
38
67
  if (null != _i) {
39
68
  var _s,
@@ -61,27 +90,27 @@ function _iterableToArrayLimit(arr, i) {
61
90
  }
62
91
  }
63
92
 
64
- function _arrayLikeToArray(arr, len) {
93
+ function _arrayLikeToArray$1(arr, len) {
65
94
  if (len == null || len > arr.length) len = arr.length;
66
95
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
67
96
  return arr2;
68
97
  }
69
98
 
70
- function _unsupportedIterableToArray(o, minLen) {
99
+ function _unsupportedIterableToArray$1(o, minLen) {
71
100
  if (!o) return;
72
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
101
+ if (typeof o === "string") return _arrayLikeToArray$1(o, minLen);
73
102
  var n = Object.prototype.toString.call(o).slice(8, -1);
74
103
  if (n === "Object" && o.constructor) n = o.constructor.name;
75
104
  if (n === "Map" || n === "Set") return Array.from(o);
76
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
105
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen);
77
106
  }
78
107
 
79
- function _nonIterableRest() {
108
+ function _nonIterableRest$1() {
80
109
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
81
110
  }
82
111
 
83
- function _slicedToArray(arr, i) {
84
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
112
+ function _slicedToArray$1(arr, i) {
113
+ return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest$1();
85
114
  }
86
115
 
87
116
  var TEMPLATE_SCREENS = {
@@ -137,7 +166,7 @@ function _defineProperty(obj, key, value) {
137
166
  }
138
167
 
139
168
  function _arrayWithoutHoles(arr) {
140
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
169
+ if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);
141
170
  }
142
171
 
143
172
  function _iterableToArray(iter) {
@@ -149,7 +178,7 @@ function _nonIterableSpread() {
149
178
  }
150
179
 
151
180
  function _toConsumableArray(arr) {
152
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
181
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();
153
182
  }
154
183
 
155
184
  function createObserverCache() {
@@ -280,8 +309,8 @@ function useIntersectionObserver(args) {
280
309
  }];
281
310
  }
282
311
 
283
- function _extends() {
284
- _extends = Object.assign || function (target) {
312
+ function _extends$2() {
313
+ _extends$2 = Object.assign || function (target) {
285
314
  for (var i = 1; i < arguments.length; i++) {
286
315
  var source = arguments[i];
287
316
 
@@ -295,7 +324,7 @@ function _extends() {
295
324
  return target;
296
325
  };
297
326
 
298
- return _extends.apply(this, arguments);
327
+ return _extends$2.apply(this, arguments);
299
328
  }
300
329
 
301
330
  function useTrackVisibility(args) {
@@ -315,7 +344,7 @@ function useTrackVisibility(args) {
315
344
  setWasEverVisible(true);
316
345
  }
317
346
 
318
- return [ref, _extends({}, result, {
347
+ return [ref, _extends$2({}, result, {
319
348
  isVisible: isVisible,
320
349
  wasEverVisible: wasEverVisible
321
350
  })];
@@ -363,6 +392,27 @@ function useInfiniteScroll(_ref) {
363
392
  }];
364
393
  }
365
394
 
395
+ var _rect, _path;
396
+ function _extends$1() { _extends$1 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
397
+ const SvgCustom = props => /*#__PURE__*/React__namespace.createElement("svg", _extends$1({
398
+ xmlns: "http://www.w3.org/2000/svg",
399
+ width: 46,
400
+ height: 46,
401
+ fill: "none"
402
+ }, props), _rect || (_rect = /*#__PURE__*/React__namespace.createElement("rect", {
403
+ width: 40,
404
+ height: 40,
405
+ x: 3,
406
+ y: 2,
407
+ fill: "#4558F9",
408
+ rx: 2
409
+ })), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
410
+ fill: "#fff",
411
+ fillRule: "evenodd",
412
+ d: "M23.75 16a.75.75 0 0 0-1.5 0v5.25H17a.75.75 0 0 0 0 1.5h5.25V28a.75.75 0 0 0 1.5 0v-5.25H29a.75.75 0 0 0 0-1.5h-5.25V16Z",
413
+ clipRule: "evenodd"
414
+ })));
415
+
366
416
  function _objectWithoutPropertiesLoose(source, excluded) {
367
417
  if (source == null) return {};
368
418
  var target = {};
@@ -2445,17 +2495,8 @@ var lib = {
2445
2495
  stringify: stringify
2446
2496
  };
2447
2497
 
2448
- var generatePath = function generatePath(path, params) {
2449
- return Object.entries(params).reduce(function (acc, _ref) {
2450
- var _ref2 = _slicedToArray(_ref, 2),
2451
- name = _ref2[0],
2452
- value = _ref2[1];
2453
- return acc.replace(":".concat(name), value);
2454
- }, path);
2455
- };
2456
-
2457
2498
  var _excluded = ["url"];
2458
- var list = function list(_ref) {
2499
+ var list$1 = function list(_ref) {
2459
2500
  var url = _ref.url,
2460
2501
  params = _objectWithoutProperties(_ref, _excluded);
2461
2502
  return axios__default["default"].get(url, {
@@ -2467,31 +2508,33 @@ var list = function list(_ref) {
2467
2508
  }
2468
2509
  });
2469
2510
  };
2470
- var create = function create(_ref2) {
2511
+ var create$1 = function create(_ref2) {
2471
2512
  var id = _ref2.id,
2472
2513
  url = _ref2.url;
2473
2514
  return axios__default["default"].post(url, {
2474
- createTemplate: {
2515
+ template: {
2475
2516
  id: id
2476
2517
  }
2518
+ }, {
2519
+ showToastr: false
2477
2520
  });
2478
2521
  };
2479
- var fetch = function fetch(resourceId, url) {
2480
- return axios__default["default"].get(generatePath(url, {
2481
- resourceId: resourceId
2482
- }));
2483
- };
2484
- var update = function update(_ref3) {
2485
- var resourceId = _ref3.resourceId,
2486
- payload = _ref3.payload,
2522
+ var fetch = function fetch(_ref3) {
2523
+ var templateId = _ref3.templateId,
2487
2524
  url = _ref3.url;
2488
- return axios__default["default"].put(generatePath(url, {
2489
- resourceId: resourceId
2490
- }), payload);
2525
+ return axios__default["default"].get("".concat(url, "/").concat(templateId), {
2526
+ showToastr: false
2527
+ });
2528
+ };
2529
+ var update = function update(_ref4) {
2530
+ var resourceId = _ref4.resourceId,
2531
+ payload = _ref4.payload,
2532
+ url = _ref4.url;
2533
+ return axios__default["default"].put("".concat(url, "/").concat(resourceId), payload);
2491
2534
  };
2492
2535
  var templatesApi = {
2493
- list: list,
2494
- create: create,
2536
+ list: list$1,
2537
+ create: create$1,
2495
2538
  update: update,
2496
2539
  fetch: fetch
2497
2540
  };
@@ -2501,7 +2544,7 @@ var QUERY_KEYS = {
2501
2544
  TEMPLATE_TAGS: "template-tags"
2502
2545
  };
2503
2546
 
2504
- var queryClient = new reactQuery.QueryClient({
2547
+ var queryClient$1 = new reactQuery.QueryClient({
2505
2548
  defaultOptions: {
2506
2549
  queries: {
2507
2550
  staleTime: constants.DEFAULT_STALE_TIME
@@ -2509,8 +2552,8 @@ var queryClient = new reactQuery.QueryClient({
2509
2552
  }
2510
2553
  });
2511
2554
 
2512
- 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; }
2513
- 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; }
2555
+ 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; }
2556
+ 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; }
2514
2557
  var useFetchTemplates = function useFetchTemplates(_ref) {
2515
2558
  var url = _ref.url,
2516
2559
  searchTerm = _ref.searchTerm,
@@ -2543,9 +2586,9 @@ var useFetchTemplates = function useFetchTemplates(_ref) {
2543
2586
  };
2544
2587
  var useCreateTemplate = function useCreateTemplate(_ref3, options) {
2545
2588
  var resourceQueryKey = _ref3.resourceQueryKey;
2546
- return reactQuery.useMutation(templatesApi.create, _objectSpread$1(_objectSpread$1({}, options), {}, {
2589
+ return reactQuery.useMutation(templatesApi.create, _objectSpread$3(_objectSpread$3({}, options), {}, {
2547
2590
  onSuccess: function onSuccess() {
2548
- queryClient.invalidateQueries([resourceQueryKey]);
2591
+ queryClient$1.invalidateQueries([resourceQueryKey]);
2549
2592
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
2550
2593
  args[_key] = arguments[_key];
2551
2594
  }
@@ -2553,6 +2596,34 @@ var useCreateTemplate = function useCreateTemplate(_ref3, options) {
2553
2596
  }
2554
2597
  }));
2555
2598
  };
2599
+ var useFetchTemplate = function useFetchTemplate(_ref4, options) {
2600
+ var resourceId = _ref4.resourceId,
2601
+ url = _ref4.url;
2602
+ return reactQuery.useQuery([QUERY_KEYS.TEMPLATES, resourceId], function () {
2603
+ return templatesApi.fetch({
2604
+ templateId: resourceId,
2605
+ url: url
2606
+ });
2607
+ }, options);
2608
+ };
2609
+ var useUpdateTemplate = function useUpdateTemplate(_ref5) {
2610
+ var resourceId = _ref5.resourceId,
2611
+ url = _ref5.url;
2612
+ return reactQuery.useMutation(function (_ref6) {
2613
+ var template = _ref6.template;
2614
+ return templatesApi.update({
2615
+ resourceId: resourceId,
2616
+ url: url,
2617
+ payload: {
2618
+ template: template
2619
+ }
2620
+ });
2621
+ }, {
2622
+ onSuccess: function onSuccess() {
2623
+ queryClient$1.invalidateQueries([QUERY_KEYS.TEMPLATES]);
2624
+ }
2625
+ });
2626
+ };
2556
2627
 
2557
2628
  var BlankCard = function BlankCard(_ref) {
2558
2629
  var Icon = _ref.icon,
@@ -2681,8 +2752,8 @@ var CategoryItem = function CategoryItem(_ref) {
2681
2752
  }, /*#__PURE__*/React__default["default"].createElement("span", null, label), /*#__PURE__*/React__default["default"].createElement("span", null, count));
2682
2753
  };
2683
2754
 
2684
- 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; }
2685
- 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; }
2755
+ 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; }
2756
+ 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; }
2686
2757
  var List = function List(_ref) {
2687
2758
  var setCurrentScreen = _ref.setCurrentScreen,
2688
2759
  setSelectedTemplate = _ref.setSelectedTemplate,
@@ -2695,11 +2766,11 @@ var List = function List(_ref) {
2695
2766
  var _useTranslation = reactI18next.useTranslation(),
2696
2767
  t = _useTranslation.t;
2697
2768
  var _useState = React.useState(DEFAULT_CATEGORY),
2698
- _useState2 = _slicedToArray(_useState, 2),
2769
+ _useState2 = _slicedToArray$1(_useState, 2),
2699
2770
  currentCategory = _useState2[0],
2700
2771
  _setCurrentCategory = _useState2[1];
2701
2772
  var _useState3 = React.useState(""),
2702
- _useState4 = _slicedToArray(_useState3, 2),
2773
+ _useState4 = _slicedToArray$1(_useState3, 2),
2703
2774
  searchTerm = _useState4[0],
2704
2775
  setSearchTerm = _useState4[1];
2705
2776
  var debouncedSearch = reactUtils.useDebounce(searchTerm).trim();
@@ -2720,7 +2791,7 @@ var List = function List(_ref) {
2720
2791
  rootMargin: "0px 0px 700px 0px",
2721
2792
  delayInMs: INFINITE_SCROLL_DELAY
2722
2793
  }),
2723
- _useInfiniteScroll2 = _slicedToArray(_useInfiniteScroll, 2),
2794
+ _useInfiniteScroll2 = _slicedToArray$1(_useInfiniteScroll, 2),
2724
2795
  sentryRef = _useInfiniteScroll2[0],
2725
2796
  rootRef = _useInfiniteScroll2[1].rootRef;
2726
2797
  var handleCardClick = function handleCardClick(template) {
@@ -2733,7 +2804,7 @@ var List = function List(_ref) {
2733
2804
  var tags = data.tags,
2734
2805
  templates = data.templates,
2735
2806
  templatesCount = data.templatesCount;
2736
- var categories = [_objectSpread(_objectSpread({}, DEFAULT_CATEGORY), {}, {
2807
+ var categories = [_objectSpread$2(_objectSpread$2({}, DEFAULT_CATEGORY), {}, {
2737
2808
  count: templatesCount
2738
2809
  })].concat(_toConsumableArray(tags));
2739
2810
  return /*#__PURE__*/React__default["default"].createElement("div", {
@@ -2795,7 +2866,7 @@ var List = function List(_ref) {
2795
2866
  }, /*#__PURE__*/React__default["default"].createElement(BlankCard, {
2796
2867
  description: t("neetoTemplate.templates.blankCard.description"),
2797
2868
  disabled: isCreating,
2798
- icon: isCreating ? neetoui.Spinner : CustomSVG__default["default"],
2869
+ icon: isCreating ? neetoui.Spinner : SvgCustom,
2799
2870
  title: t("neetoTemplate.templates.blankCard.title"),
2800
2871
  onClick: onCreate
2801
2872
  }), templates === null || templates === void 0 ? void 0 : templates.map(function (template, index) {
@@ -2815,7 +2886,7 @@ var List = function List(_ref) {
2815
2886
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)))));
2816
2887
  };
2817
2888
 
2818
- var Preview = function Preview(_ref) {
2889
+ var Preview$1 = function Preview(_ref) {
2819
2890
  var selectedTemplate = _ref.selectedTemplate,
2820
2891
  setCurrentScreen = _ref.setCurrentScreen,
2821
2892
  afterCreate = _ref.afterCreate,
@@ -2860,11 +2931,11 @@ var Preview = function Preview(_ref) {
2860
2931
  weight: "semibold"
2861
2932
  }, title)), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
2862
2933
  "data-cy": "preview-use-template-button",
2863
- label: t("neetoTemplate.v2.form.templates.editTemplate"),
2934
+ label: t("neetoTemplate.templates.editTemplate"),
2864
2935
  loading: isCreating,
2865
2936
  onClick: handleCreateTemplate
2866
2937
  })), /*#__PURE__*/React__default["default"].createElement("div", {
2867
- className: "nf-share-preview neeto-ui-rounded-sm sticky top-10"
2938
+ className: "neeto-templates-share-preview neeto-ui-rounded-sm sticky top-10"
2868
2939
  }, /*#__PURE__*/React__default["default"].createElement("iframe", {
2869
2940
  className: "w-full flex-1 shadow-inner",
2870
2941
  "data-cy": "iframe-id",
@@ -2887,11 +2958,11 @@ var CreateTemplateModal = function CreateTemplateModal(_ref) {
2887
2958
  _ref$url = _ref.url,
2888
2959
  url = _ref$url === void 0 ? "" : _ref$url;
2889
2960
  var _useState = React.useState(TEMPLATE_SCREENS.LIST),
2890
- _useState2 = _slicedToArray(_useState, 2),
2961
+ _useState2 = _slicedToArray$1(_useState, 2),
2891
2962
  currentScreen = _useState2[0],
2892
2963
  setCurrentScreen = _useState2[1];
2893
2964
  var _useState3 = React.useState({}),
2894
- _useState4 = _slicedToArray(_useState3, 2),
2965
+ _useState4 = _slicedToArray$1(_useState3, 2),
2895
2966
  selectedTemplate = _useState4[0],
2896
2967
  setSelectedTemplate = _useState4[1];
2897
2968
  var onModalClose = function onModalClose() {
@@ -2915,7 +2986,7 @@ var CreateTemplateModal = function CreateTemplateModal(_ref) {
2915
2986
  entity: entity,
2916
2987
  resourceQueryKey: resourceQueryKey,
2917
2988
  url: url
2918
- }) : /*#__PURE__*/React__default["default"].createElement(Preview, {
2989
+ }) : /*#__PURE__*/React__default["default"].createElement(Preview$1, {
2919
2990
  selectedTemplate: selectedTemplate,
2920
2991
  setCurrentScreen: setCurrentScreen,
2921
2992
  afterCreate: afterCreate,
@@ -2924,5 +2995,1146 @@ var CreateTemplateModal = function CreateTemplateModal(_ref) {
2924
2995
  }));
2925
2996
  };
2926
2997
 
2927
- exports.Templates = CreateTemplateModal;
2998
+ function _extends() {
2999
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
3000
+ for (var i = 1; i < arguments.length; i++) {
3001
+ var source = arguments[i];
3002
+ for (var key in source) {
3003
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
3004
+ target[key] = source[key];
3005
+ }
3006
+ }
3007
+ }
3008
+ return target;
3009
+ };
3010
+ return _extends.apply(this, arguments);
3011
+ }
3012
+
3013
+ function _arrayWithHoles(arr) {
3014
+ if (Array.isArray(arr)) return arr;
3015
+ }
3016
+
3017
+ function _iterableToArrayLimit(arr, i) {
3018
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
3019
+ if (null != _i) {
3020
+ var _s,
3021
+ _e,
3022
+ _x,
3023
+ _r,
3024
+ _arr = [],
3025
+ _n = !0,
3026
+ _d = !1;
3027
+ try {
3028
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
3029
+ if (Object(_i) !== _i) return;
3030
+ _n = !1;
3031
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
3032
+ } catch (err) {
3033
+ _d = !0, _e = err;
3034
+ } finally {
3035
+ try {
3036
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
3037
+ } finally {
3038
+ if (_d) throw _e;
3039
+ }
3040
+ }
3041
+ return _arr;
3042
+ }
3043
+ }
3044
+
3045
+ function _arrayLikeToArray(arr, len) {
3046
+ if (len == null || len > arr.length) len = arr.length;
3047
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
3048
+ return arr2;
3049
+ }
3050
+
3051
+ function _unsupportedIterableToArray(o, minLen) {
3052
+ if (!o) return;
3053
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
3054
+ var n = Object.prototype.toString.call(o).slice(8, -1);
3055
+ if (n === "Object" && o.constructor) n = o.constructor.name;
3056
+ if (n === "Map" || n === "Set") return Array.from(o);
3057
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
3058
+ }
3059
+
3060
+ function _nonIterableRest() {
3061
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3062
+ }
3063
+
3064
+ function _slicedToArray(arr, i) {
3065
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
3066
+ }
3067
+
3068
+ 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}}
3069
+
3070
+ var css$1 = ".neeto-chat__metadata-card__spinner{scale:.6}";
3071
+ n(css$1,{});
3072
+
3073
+ var Title = function Title(_ref) {
3074
+ var _ref$titleProps = _ref.titleProps,
3075
+ titleProps = _ref$titleProps === void 0 ? {} : _ref$titleProps,
3076
+ title = _ref.title,
3077
+ isUpdating = _ref.isUpdating,
3078
+ setIsTagsDropdownVisible = _ref.setIsTagsDropdownVisible,
3079
+ showAddTagsOnTitle = _ref.showAddTagsOnTitle;
3080
+ var _useTranslation = reactI18next.useTranslation(),
3081
+ t = _useTranslation.t;
3082
+ var tagsTitle = title || t("neetoTags.common.tag", constants.PLURAL);
3083
+ var _useState = React.useState(false),
3084
+ _useState2 = _slicedToArray(_useState, 2),
3085
+ didStartUpdate = _useState2[0],
3086
+ setDidStartUpdate = _useState2[1];
3087
+ var _useState3 = React.useState(false),
3088
+ _useState4 = _slicedToArray(_useState3, 2),
3089
+ isCheckIconVisible = _useState4[0],
3090
+ setIsCheckIconVisible = _useState4[1];
3091
+ React.useEffect(function () {
3092
+ if (!isUpdating) return;
3093
+ setDidStartUpdate(true);
3094
+ }, [isUpdating]);
3095
+ React.useEffect(function () {
3096
+ if (isUpdating || !didStartUpdate) return;
3097
+ setIsCheckIconVisible(true);
3098
+ setDidStartUpdate(false);
3099
+ setTimeout(function () {
3100
+ setIsCheckIconVisible(false);
3101
+ }, 5000);
3102
+ }, [didStartUpdate, isUpdating]);
3103
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3104
+ className: "mb-2 flex w-full items-center justify-between gap-2"
3105
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3106
+ className: "flex items-center gap-2"
3107
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, _extends({
3108
+ className: "neeto-ui-text-gray-700",
3109
+ style: "h5",
3110
+ weight: "bold"
3111
+ }, titleProps), tagsTitle), /*#__PURE__*/React__default["default"].createElement("div", {
3112
+ className: "inline-flex h-6 items-center"
3113
+ }, isUpdating && /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, {
3114
+ className: "neeto-chat__metadata-card__spinner"
3115
+ }), !isUpdating && isCheckIconVisible && /*#__PURE__*/React__default["default"].createElement(neetoIcons.Check, {
3116
+ className: "neeto-ui-text-success-500",
3117
+ size: 20
3118
+ }))), showAddTagsOnTitle && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
3119
+ icon: neetoIcons.Settings,
3120
+ size: "15",
3121
+ style: "icon",
3122
+ onClick: function onClick() {
3123
+ return setIsTagsDropdownVisible(function (addTag) {
3124
+ return ramda.not(addTag);
3125
+ });
3126
+ }
3127
+ }));
3128
+ };
3129
+
3130
+ /**
3131
+ * A component that helps to manage tags.
3132
+ * Renders selected tags, has dropdown to list down available tags
3133
+ * and allows user to remove tags from the list.
3134
+ */
3135
+ var Tags$2 = function Tags(_ref) {
3136
+ var _ref$title = _ref.title,
3137
+ title = _ref$title === void 0 ? "" : _ref$title,
3138
+ allTags = _ref.allTags,
3139
+ selectedTags = _ref.selectedTags,
3140
+ onTagSelect = _ref.onTagSelect,
3141
+ onTagCreate = _ref.onTagCreate,
3142
+ onTagDelete = _ref.onTagDelete,
3143
+ tagProps = _ref.tagProps,
3144
+ selectProps = _ref.selectProps,
3145
+ buttonProps = _ref.buttonProps,
3146
+ _ref$showSuccessToast = _ref.showSuccessToastr,
3147
+ showSuccessToastr = _ref$showSuccessToast === void 0 ? false : _ref$showSuccessToast,
3148
+ titleProps = _ref.titleProps,
3149
+ _ref$containerProps = _ref.containerProps,
3150
+ containerProps = _ref$containerProps === void 0 ? {} : _ref$containerProps,
3151
+ _ref$isUpdating = _ref.isUpdating,
3152
+ isUpdating = _ref$isUpdating === void 0 ? false : _ref$isUpdating,
3153
+ _ref$showAddTagsOnTit = _ref.showAddTagsOnTitle,
3154
+ showAddTagsOnTitle = _ref$showAddTagsOnTit === void 0 ? true : _ref$showAddTagsOnTit,
3155
+ _ref$showTitleBar = _ref.showTitleBar,
3156
+ showTitleBar = _ref$showTitleBar === void 0 ? true : _ref$showTitleBar,
3157
+ _ref$bodyProps = _ref.bodyProps,
3158
+ bodyProps = _ref$bodyProps === void 0 ? {} : _ref$bodyProps;
3159
+ var _useTranslation = reactI18next.useTranslation(),
3160
+ t = _useTranslation.t;
3161
+ var _useState = React.useState(false),
3162
+ _useState2 = _slicedToArray(_useState, 2),
3163
+ isTagsDropdownVisible = _useState2[0],
3164
+ setIsTagsDropdownVisible = _useState2[1];
3165
+ var tags = React.useMemo(function () {
3166
+ if (!allTags) return [];
3167
+ if (!selectedTags) return allTags;
3168
+ var selectedTagValues = ramda.pluck("value", selectedTags);
3169
+ return allTags.filter(function (_ref2) {
3170
+ var value = _ref2.value;
3171
+ return !selectedTagValues.includes(value);
3172
+ });
3173
+ }, [allTags, selectedTags]);
3174
+ var handleAddExistingTag = function handleAddExistingTag(event) {
3175
+ setIsTagsDropdownVisible(false);
3176
+ onTagSelect(event);
3177
+ // @ts-ignore
3178
+ showSuccessToastr && neetoui.Toastr.success("", {
3179
+ icon: "👍",
3180
+ className: "w-20"
3181
+ });
3182
+ };
3183
+ var handleDeleteTag = function handleDeleteTag(tag) {
3184
+ onTagDelete(tag);
3185
+ // @ts-ignore
3186
+ showSuccessToastr && neetoui.Toastr.success("", {
3187
+ icon: "👍",
3188
+ className: "w-20"
3189
+ });
3190
+ };
3191
+ var isAddTagsButtonVisible = !showAddTagsOnTitle && !isTagsDropdownVisible;
3192
+ var isTagsBodyVisible = pure.isNotEmpty(selectedTags) || isTagsDropdownVisible || isAddTagsButtonVisible;
3193
+ return /*#__PURE__*/React__default["default"].createElement("div", _extends({
3194
+ className: "neeto-ui-tags-wrapper flex w-full flex-col items-start"
3195
+ }, containerProps), showTitleBar && /*#__PURE__*/React__default["default"].createElement(Title, {
3196
+ isUpdating: isUpdating,
3197
+ setIsTagsDropdownVisible: setIsTagsDropdownVisible,
3198
+ showAddTagsOnTitle: showAddTagsOnTitle,
3199
+ title: title,
3200
+ titleProps: titleProps
3201
+ }), isTagsBodyVisible && /*#__PURE__*/React__default["default"].createElement("div", _extends({
3202
+ className: "neeto-ui-bg-white neeto-ui-border-gray-300 neeto-ui-rounded-lg w-full border p-4"
3203
+ }, bodyProps), pure.isNotEmpty(selectedTags) && /*#__PURE__*/React__default["default"].createElement("div", {
3204
+ className: "neeto-ui-flex neeto-ui-flex-row neeto-ui-flex-wrap neeto-ui-items-start neeto-ui-justify-start gap-2 break-all"
3205
+ }, selectedTags === null || selectedTags === void 0 ? void 0 : selectedTags.map(function (tag, index) {
3206
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Tag, _extends({
3207
+ key: "".concat(index, "-").concat(tag.label),
3208
+ label: tag.label,
3209
+ style: "primary",
3210
+ onClose: function onClose() {
3211
+ return handleDeleteTag(tag);
3212
+ }
3213
+ }, tagProps));
3214
+ })), isTagsDropdownVisible && /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
3215
+ autoFocus: true,
3216
+ isCreateable: true,
3217
+ className: "neeto-ui-mt-4",
3218
+ maxLength: 50,
3219
+ options: tags,
3220
+ placeholder: t("neetoTags.placeholder.selectOrCreateTag"),
3221
+ onChange: function onChange(event) {
3222
+ return handleAddExistingTag(event);
3223
+ },
3224
+ onCreateOption: function onCreateOption(event) {
3225
+ setIsTagsDropdownVisible(false);
3226
+ onTagCreate(event);
3227
+ }
3228
+ }, selectProps)), isAddTagsButtonVisible && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, _extends({
3229
+ icon: neetoIcons.Plus,
3230
+ label: t("neetoTags.button.addTag", constants.SINGULAR),
3231
+ size: "small",
3232
+ style: "link",
3233
+ onClick: function onClick() {
3234
+ return setIsTagsDropdownVisible(true);
3235
+ }
3236
+ }, buttonProps))));
3237
+ };
3238
+
3239
+ var queryClient = new reactQuery.QueryClient({
3240
+ queryCache: new reactQuery.QueryCache({
3241
+ onError: function onError(error) {
3242
+ return neetoui.Toastr.error(error);
3243
+ }
3244
+ })
3245
+ });
3246
+
3247
+ var TAG_KEY = "tag-key";
3248
+ var refetchTags = function refetchTags() {
3249
+ return queryClient.invalidateQueries([TAG_KEY]);
3250
+ };
3251
+
3252
+ ({
3253
+ "data-cy": "add-new-tag-button",
3254
+ label: i18next.t("neetoTags.common.addNewTag", constants.SINGULAR)
3255
+ });
3256
+ var TAG_NAME_MAX_LENGTH = 50;
3257
+ var TAG_DESCRIPTION_MAX_LENGTH = 255;
3258
+ yup__namespace.object().shape({
3259
+ name: yup__namespace.string().typeError(i18next.t("neetoTags.validation.nameMustBeString")).required(i18next.t("neetoTags.validation.nameRequired")).max(TAG_NAME_MAX_LENGTH, i18next.t("neetoTags.validation.nameMaxLength", {
3260
+ length: TAG_NAME_MAX_LENGTH
3261
+ })),
3262
+ description: yup__namespace.string().typeError(i18next.t("neetoTags.validation.descriptionMustBeString")).nullable().max(TAG_DESCRIPTION_MAX_LENGTH, i18next.t("neetoTags.validation.descriptionMaxLength", {
3263
+ length: TAG_DESCRIPTION_MAX_LENGTH
3264
+ }))
3265
+ });
3266
+
3267
+ neetoui.Dropdown.Menu;
3268
+ neetoui.Dropdown.MenuItem;
3269
+
3270
+ ({
3271
+ "data-cy": "neeto-tags-go-back-button",
3272
+ size: "small",
3273
+ label: i18next.t("neetoTags.button.goBack")
3274
+ });
3275
+
3276
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
3277
+
3278
+ function getDefaultExportFromCjs (x) {
3279
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
3280
+ }
3281
+
3282
+ function commonjsRequire(path) {
3283
+ throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
3284
+ }
3285
+
3286
+ var pluralize$1 = {exports: {}};
3287
+
3288
+ /* global define */
3289
+ pluralize$1.exports;
3290
+
3291
+ (function (module, exports) {
3292
+ (function (root, pluralize) {
3293
+ /* istanbul ignore else */
3294
+ if (typeof commonjsRequire === 'function' && 'object' === 'object' && 'object' === 'object') {
3295
+ // Node.
3296
+ module.exports = pluralize();
3297
+ } else {
3298
+ // Browser global.
3299
+ root.pluralize = pluralize();
3300
+ }
3301
+ })(commonjsGlobal, function () {
3302
+ // Rule storage - pluralize and singularize need to be run sequentially,
3303
+ // while other rules can be optimized using an object for instant lookups.
3304
+ var pluralRules = [];
3305
+ var singularRules = [];
3306
+ var uncountables = {};
3307
+ var irregularPlurals = {};
3308
+ var irregularSingles = {};
3309
+
3310
+ /**
3311
+ * Sanitize a pluralization rule to a usable regular expression.
3312
+ *
3313
+ * @param {(RegExp|string)} rule
3314
+ * @return {RegExp}
3315
+ */
3316
+ function sanitizeRule (rule) {
3317
+ if (typeof rule === 'string') {
3318
+ return new RegExp('^' + rule + '$', 'i');
3319
+ }
3320
+
3321
+ return rule;
3322
+ }
3323
+
3324
+ /**
3325
+ * Pass in a word token to produce a function that can replicate the case on
3326
+ * another word.
3327
+ *
3328
+ * @param {string} word
3329
+ * @param {string} token
3330
+ * @return {Function}
3331
+ */
3332
+ function restoreCase (word, token) {
3333
+ // Tokens are an exact match.
3334
+ if (word === token) return token;
3335
+
3336
+ // Lower cased words. E.g. "hello".
3337
+ if (word === word.toLowerCase()) return token.toLowerCase();
3338
+
3339
+ // Upper cased words. E.g. "WHISKY".
3340
+ if (word === word.toUpperCase()) return token.toUpperCase();
3341
+
3342
+ // Title cased words. E.g. "Title".
3343
+ if (word[0] === word[0].toUpperCase()) {
3344
+ return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase();
3345
+ }
3346
+
3347
+ // Lower cased words. E.g. "test".
3348
+ return token.toLowerCase();
3349
+ }
3350
+
3351
+ /**
3352
+ * Interpolate a regexp string.
3353
+ *
3354
+ * @param {string} str
3355
+ * @param {Array} args
3356
+ * @return {string}
3357
+ */
3358
+ function interpolate (str, args) {
3359
+ return str.replace(/\$(\d{1,2})/g, function (match, index) {
3360
+ return args[index] || '';
3361
+ });
3362
+ }
3363
+
3364
+ /**
3365
+ * Replace a word using a rule.
3366
+ *
3367
+ * @param {string} word
3368
+ * @param {Array} rule
3369
+ * @return {string}
3370
+ */
3371
+ function replace (word, rule) {
3372
+ return word.replace(rule[0], function (match, index) {
3373
+ var result = interpolate(rule[1], arguments);
3374
+
3375
+ if (match === '') {
3376
+ return restoreCase(word[index - 1], result);
3377
+ }
3378
+
3379
+ return restoreCase(match, result);
3380
+ });
3381
+ }
3382
+
3383
+ /**
3384
+ * Sanitize a word by passing in the word and sanitization rules.
3385
+ *
3386
+ * @param {string} token
3387
+ * @param {string} word
3388
+ * @param {Array} rules
3389
+ * @return {string}
3390
+ */
3391
+ function sanitizeWord (token, word, rules) {
3392
+ // Empty string or doesn't need fixing.
3393
+ if (!token.length || uncountables.hasOwnProperty(token)) {
3394
+ return word;
3395
+ }
3396
+
3397
+ var len = rules.length;
3398
+
3399
+ // Iterate over the sanitization rules and use the first one to match.
3400
+ while (len--) {
3401
+ var rule = rules[len];
3402
+
3403
+ if (rule[0].test(word)) return replace(word, rule);
3404
+ }
3405
+
3406
+ return word;
3407
+ }
3408
+
3409
+ /**
3410
+ * Replace a word with the updated word.
3411
+ *
3412
+ * @param {Object} replaceMap
3413
+ * @param {Object} keepMap
3414
+ * @param {Array} rules
3415
+ * @return {Function}
3416
+ */
3417
+ function replaceWord (replaceMap, keepMap, rules) {
3418
+ return function (word) {
3419
+ // Get the correct token and case restoration functions.
3420
+ var token = word.toLowerCase();
3421
+
3422
+ // Check against the keep object map.
3423
+ if (keepMap.hasOwnProperty(token)) {
3424
+ return restoreCase(word, token);
3425
+ }
3426
+
3427
+ // Check against the replacement map for a direct word replacement.
3428
+ if (replaceMap.hasOwnProperty(token)) {
3429
+ return restoreCase(word, replaceMap[token]);
3430
+ }
3431
+
3432
+ // Run all the rules against the word.
3433
+ return sanitizeWord(token, word, rules);
3434
+ };
3435
+ }
3436
+
3437
+ /**
3438
+ * Check if a word is part of the map.
3439
+ */
3440
+ function checkWord (replaceMap, keepMap, rules, bool) {
3441
+ return function (word) {
3442
+ var token = word.toLowerCase();
3443
+
3444
+ if (keepMap.hasOwnProperty(token)) return true;
3445
+ if (replaceMap.hasOwnProperty(token)) return false;
3446
+
3447
+ return sanitizeWord(token, token, rules) === token;
3448
+ };
3449
+ }
3450
+
3451
+ /**
3452
+ * Pluralize or singularize a word based on the passed in count.
3453
+ *
3454
+ * @param {string} word The word to pluralize
3455
+ * @param {number} count How many of the word exist
3456
+ * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks)
3457
+ * @return {string}
3458
+ */
3459
+ function pluralize (word, count, inclusive) {
3460
+ var pluralized = count === 1
3461
+ ? pluralize.singular(word) : pluralize.plural(word);
3462
+
3463
+ return (inclusive ? count + ' ' : '') + pluralized;
3464
+ }
3465
+
3466
+ /**
3467
+ * Pluralize a word.
3468
+ *
3469
+ * @type {Function}
3470
+ */
3471
+ pluralize.plural = replaceWord(
3472
+ irregularSingles, irregularPlurals, pluralRules
3473
+ );
3474
+
3475
+ /**
3476
+ * Check if a word is plural.
3477
+ *
3478
+ * @type {Function}
3479
+ */
3480
+ pluralize.isPlural = checkWord(
3481
+ irregularSingles, irregularPlurals, pluralRules
3482
+ );
3483
+
3484
+ /**
3485
+ * Singularize a word.
3486
+ *
3487
+ * @type {Function}
3488
+ */
3489
+ pluralize.singular = replaceWord(
3490
+ irregularPlurals, irregularSingles, singularRules
3491
+ );
3492
+
3493
+ /**
3494
+ * Check if a word is singular.
3495
+ *
3496
+ * @type {Function}
3497
+ */
3498
+ pluralize.isSingular = checkWord(
3499
+ irregularPlurals, irregularSingles, singularRules
3500
+ );
3501
+
3502
+ /**
3503
+ * Add a pluralization rule to the collection.
3504
+ *
3505
+ * @param {(string|RegExp)} rule
3506
+ * @param {string} replacement
3507
+ */
3508
+ pluralize.addPluralRule = function (rule, replacement) {
3509
+ pluralRules.push([sanitizeRule(rule), replacement]);
3510
+ };
3511
+
3512
+ /**
3513
+ * Add a singularization rule to the collection.
3514
+ *
3515
+ * @param {(string|RegExp)} rule
3516
+ * @param {string} replacement
3517
+ */
3518
+ pluralize.addSingularRule = function (rule, replacement) {
3519
+ singularRules.push([sanitizeRule(rule), replacement]);
3520
+ };
3521
+
3522
+ /**
3523
+ * Add an uncountable word rule.
3524
+ *
3525
+ * @param {(string|RegExp)} word
3526
+ */
3527
+ pluralize.addUncountableRule = function (word) {
3528
+ if (typeof word === 'string') {
3529
+ uncountables[word.toLowerCase()] = true;
3530
+ return;
3531
+ }
3532
+
3533
+ // Set singular and plural references for the word.
3534
+ pluralize.addPluralRule(word, '$0');
3535
+ pluralize.addSingularRule(word, '$0');
3536
+ };
3537
+
3538
+ /**
3539
+ * Add an irregular word definition.
3540
+ *
3541
+ * @param {string} single
3542
+ * @param {string} plural
3543
+ */
3544
+ pluralize.addIrregularRule = function (single, plural) {
3545
+ plural = plural.toLowerCase();
3546
+ single = single.toLowerCase();
3547
+
3548
+ irregularSingles[single] = plural;
3549
+ irregularPlurals[plural] = single;
3550
+ };
3551
+
3552
+ /**
3553
+ * Irregular rules.
3554
+ */
3555
+ [
3556
+ // Pronouns.
3557
+ ['I', 'we'],
3558
+ ['me', 'us'],
3559
+ ['he', 'they'],
3560
+ ['she', 'they'],
3561
+ ['them', 'them'],
3562
+ ['myself', 'ourselves'],
3563
+ ['yourself', 'yourselves'],
3564
+ ['itself', 'themselves'],
3565
+ ['herself', 'themselves'],
3566
+ ['himself', 'themselves'],
3567
+ ['themself', 'themselves'],
3568
+ ['is', 'are'],
3569
+ ['was', 'were'],
3570
+ ['has', 'have'],
3571
+ ['this', 'these'],
3572
+ ['that', 'those'],
3573
+ // Words ending in with a consonant and `o`.
3574
+ ['echo', 'echoes'],
3575
+ ['dingo', 'dingoes'],
3576
+ ['volcano', 'volcanoes'],
3577
+ ['tornado', 'tornadoes'],
3578
+ ['torpedo', 'torpedoes'],
3579
+ // Ends with `us`.
3580
+ ['genus', 'genera'],
3581
+ ['viscus', 'viscera'],
3582
+ // Ends with `ma`.
3583
+ ['stigma', 'stigmata'],
3584
+ ['stoma', 'stomata'],
3585
+ ['dogma', 'dogmata'],
3586
+ ['lemma', 'lemmata'],
3587
+ ['schema', 'schemata'],
3588
+ ['anathema', 'anathemata'],
3589
+ // Other irregular rules.
3590
+ ['ox', 'oxen'],
3591
+ ['axe', 'axes'],
3592
+ ['die', 'dice'],
3593
+ ['yes', 'yeses'],
3594
+ ['foot', 'feet'],
3595
+ ['eave', 'eaves'],
3596
+ ['goose', 'geese'],
3597
+ ['tooth', 'teeth'],
3598
+ ['quiz', 'quizzes'],
3599
+ ['human', 'humans'],
3600
+ ['proof', 'proofs'],
3601
+ ['carve', 'carves'],
3602
+ ['valve', 'valves'],
3603
+ ['looey', 'looies'],
3604
+ ['thief', 'thieves'],
3605
+ ['groove', 'grooves'],
3606
+ ['pickaxe', 'pickaxes'],
3607
+ ['passerby', 'passersby']
3608
+ ].forEach(function (rule) {
3609
+ return pluralize.addIrregularRule(rule[0], rule[1]);
3610
+ });
3611
+
3612
+ /**
3613
+ * Pluralization rules.
3614
+ */
3615
+ [
3616
+ [/s?$/i, 's'],
3617
+ [/[^\u0000-\u007F]$/i, '$0'],
3618
+ [/([^aeiou]ese)$/i, '$1'],
3619
+ [/(ax|test)is$/i, '$1es'],
3620
+ [/(alias|[^aou]us|t[lm]as|gas|ris)$/i, '$1es'],
3621
+ [/(e[mn]u)s?$/i, '$1s'],
3622
+ [/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i, '$1'],
3623
+ [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1i'],
3624
+ [/(alumn|alg|vertebr)(?:a|ae)$/i, '$1ae'],
3625
+ [/(seraph|cherub)(?:im)?$/i, '$1im'],
3626
+ [/(her|at|gr)o$/i, '$1oes'],
3627
+ [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i, '$1a'],
3628
+ [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i, '$1a'],
3629
+ [/sis$/i, 'ses'],
3630
+ [/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i, '$1$2ves'],
3631
+ [/([^aeiouy]|qu)y$/i, '$1ies'],
3632
+ [/([^ch][ieo][ln])ey$/i, '$1ies'],
3633
+ [/(x|ch|ss|sh|zz)$/i, '$1es'],
3634
+ [/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i, '$1ices'],
3635
+ [/\b((?:tit)?m|l)(?:ice|ouse)$/i, '$1ice'],
3636
+ [/(pe)(?:rson|ople)$/i, '$1ople'],
3637
+ [/(child)(?:ren)?$/i, '$1ren'],
3638
+ [/eaux$/i, '$0'],
3639
+ [/m[ae]n$/i, 'men'],
3640
+ ['thou', 'you']
3641
+ ].forEach(function (rule) {
3642
+ return pluralize.addPluralRule(rule[0], rule[1]);
3643
+ });
3644
+
3645
+ /**
3646
+ * Singularization rules.
3647
+ */
3648
+ [
3649
+ [/s$/i, ''],
3650
+ [/(ss)$/i, '$1'],
3651
+ [/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i, '$1fe'],
3652
+ [/(ar|(?:wo|[ae])l|[eo][ao])ves$/i, '$1f'],
3653
+ [/ies$/i, 'y'],
3654
+ [/\b([pl]|zomb|(?:neck|cross)?t|coll|faer|food|gen|goon|group|lass|talk|goal|cut)ies$/i, '$1ie'],
3655
+ [/\b(mon|smil)ies$/i, '$1ey'],
3656
+ [/\b((?:tit)?m|l)ice$/i, '$1ouse'],
3657
+ [/(seraph|cherub)im$/i, '$1'],
3658
+ [/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i, '$1'],
3659
+ [/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i, '$1sis'],
3660
+ [/(movie|twelve|abuse|e[mn]u)s$/i, '$1'],
3661
+ [/(test)(?:is|es)$/i, '$1is'],
3662
+ [/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i, '$1us'],
3663
+ [/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i, '$1um'],
3664
+ [/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i, '$1on'],
3665
+ [/(alumn|alg|vertebr)ae$/i, '$1a'],
3666
+ [/(cod|mur|sil|vert|ind)ices$/i, '$1ex'],
3667
+ [/(matr|append)ices$/i, '$1ix'],
3668
+ [/(pe)(rson|ople)$/i, '$1rson'],
3669
+ [/(child)ren$/i, '$1'],
3670
+ [/(eau)x?$/i, '$1'],
3671
+ [/men$/i, 'man']
3672
+ ].forEach(function (rule) {
3673
+ return pluralize.addSingularRule(rule[0], rule[1]);
3674
+ });
3675
+
3676
+ /**
3677
+ * Uncountable rules.
3678
+ */
3679
+ [
3680
+ // Singular words with no plurals.
3681
+ 'adulthood',
3682
+ 'advice',
3683
+ 'agenda',
3684
+ 'aid',
3685
+ 'aircraft',
3686
+ 'alcohol',
3687
+ 'ammo',
3688
+ 'analytics',
3689
+ 'anime',
3690
+ 'athletics',
3691
+ 'audio',
3692
+ 'bison',
3693
+ 'blood',
3694
+ 'bream',
3695
+ 'buffalo',
3696
+ 'butter',
3697
+ 'carp',
3698
+ 'cash',
3699
+ 'chassis',
3700
+ 'chess',
3701
+ 'clothing',
3702
+ 'cod',
3703
+ 'commerce',
3704
+ 'cooperation',
3705
+ 'corps',
3706
+ 'debris',
3707
+ 'diabetes',
3708
+ 'digestion',
3709
+ 'elk',
3710
+ 'energy',
3711
+ 'equipment',
3712
+ 'excretion',
3713
+ 'expertise',
3714
+ 'firmware',
3715
+ 'flounder',
3716
+ 'fun',
3717
+ 'gallows',
3718
+ 'garbage',
3719
+ 'graffiti',
3720
+ 'hardware',
3721
+ 'headquarters',
3722
+ 'health',
3723
+ 'herpes',
3724
+ 'highjinks',
3725
+ 'homework',
3726
+ 'housework',
3727
+ 'information',
3728
+ 'jeans',
3729
+ 'justice',
3730
+ 'kudos',
3731
+ 'labour',
3732
+ 'literature',
3733
+ 'machinery',
3734
+ 'mackerel',
3735
+ 'mail',
3736
+ 'media',
3737
+ 'mews',
3738
+ 'moose',
3739
+ 'music',
3740
+ 'mud',
3741
+ 'manga',
3742
+ 'news',
3743
+ 'only',
3744
+ 'personnel',
3745
+ 'pike',
3746
+ 'plankton',
3747
+ 'pliers',
3748
+ 'police',
3749
+ 'pollution',
3750
+ 'premises',
3751
+ 'rain',
3752
+ 'research',
3753
+ 'rice',
3754
+ 'salmon',
3755
+ 'scissors',
3756
+ 'series',
3757
+ 'sewage',
3758
+ 'shambles',
3759
+ 'shrimp',
3760
+ 'software',
3761
+ 'species',
3762
+ 'staff',
3763
+ 'swine',
3764
+ 'tennis',
3765
+ 'traffic',
3766
+ 'transportation',
3767
+ 'trout',
3768
+ 'tuna',
3769
+ 'wealth',
3770
+ 'welfare',
3771
+ 'whiting',
3772
+ 'wildebeest',
3773
+ 'wildlife',
3774
+ 'you',
3775
+ /pok[eé]mon$/i,
3776
+ // Regexes.
3777
+ /[^aeiou]ese$/i, // "chinese", "japanese"
3778
+ /deer$/i, // "deer", "reindeer"
3779
+ /fish$/i, // "fish", "blowfish", "angelfish"
3780
+ /measles$/i,
3781
+ /o[iu]s$/i, // "carnivorous"
3782
+ /pox$/i, // "chickpox", "smallpox"
3783
+ /sheep$/i
3784
+ ].forEach(pluralize.addUncountableRule);
3785
+
3786
+ return pluralize;
3787
+ });
3788
+ } (pluralize$1, pluralize$1.exports));
3789
+
3790
+ var pluralizeExports = pluralize$1.exports;
3791
+ var pluralize = /*@__PURE__*/getDefaultExportFromCjs(pluralizeExports);
3792
+
3793
+ reactUtils.withT(function (_ref) {
3794
+ var t = _ref.t,
3795
+ _ref$destinationTags = _ref.destinationTags,
3796
+ destinationTags = _ref$destinationTags === void 0 ? [] : _ref$destinationTags,
3797
+ handleSubmit = _ref.handleSubmit,
3798
+ _ref$isSubmitting = _ref.isSubmitting,
3799
+ isSubmitting = _ref$isSubmitting === void 0 ? false : _ref$isSubmitting,
3800
+ setShowModal = _ref.setShowModal,
3801
+ _ref$showModal = _ref.showModal,
3802
+ showModal = _ref$showModal === void 0 ? false : _ref$showModal,
3803
+ _ref$sourceTags = _ref.sourceTags,
3804
+ sourceTags = _ref$sourceTags === void 0 ? [] : _ref$sourceTags,
3805
+ _ref$tagType = _ref.tagType,
3806
+ tagType = _ref$tagType === void 0 ? "" : _ref$tagType;
3807
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Modal, {
3808
+ isOpen: showModal,
3809
+ onClose: function onClose() {
3810
+ return setShowModal(false);
3811
+ }
3812
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
3813
+ id: "dialog1Title",
3814
+ style: "h2"
3815
+ }, t("neetoTags.common.mergeTag", constants.PLURAL))), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Body, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
3816
+ lineHeight: "normal",
3817
+ style: "body2"
3818
+ }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
3819
+ i18nKey: "neetoTags.helper.mergeTagsMessage",
3820
+ values: {
3821
+ count: sourceTags.length,
3822
+ sourceTags: ramda.pluck("name", sourceTags),
3823
+ destinationTag: ramda.pluck("name", destinationTags),
3824
+ entities: pluralize(tagType.label.toLowerCase())
3825
+ }
3826
+ }))), /*#__PURE__*/React__default["default"].createElement(neetoui.Modal.Footer, {
3827
+ className: "space-x-2"
3828
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
3829
+ "data-cy": "neeto-tags-merge-proceed-button",
3830
+ disabled: isSubmitting,
3831
+ label: t("neetoTags.button.proceed"),
3832
+ loading: isSubmitting,
3833
+ onClick: handleSubmit
3834
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
3835
+ "data-cy": "neeto-tags-merge-cancel-button",
3836
+ label: t("neetoTags.button.cancel"),
3837
+ style: "text",
3838
+ onClick: function onClick() {
3839
+ return setShowModal(false);
3840
+ }
3841
+ })));
3842
+ });
3843
+
3844
+ var css = ".neeto-tags-border{border-width:thin}.ntm-empty-state{height:100%;margin:auto;width:100%}.ntm-empty-state,.ntm-empty-state__image{align-items:center;display:flex;justify-content:center}.ntm-empty-state__image{margin-left:0 auto 4rem auto}.ntm-empty-state__title{font-size:1.25rem;line-height:1.75rem;margin-bottom:1rem;text-align:center}.ntm-empty-state__description{margin-bottom:1.5rem;text-align:center}.ntm-empty-state__action-block{display:flex;justify-content:center}.neeto-tags-table__wrapper{height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height) - var(--neeto-molecules-sub-header-height) - var(--neeto-molecules-sub-header-bottom-margin));padding:0 24px;width:100%}.neeto-tags-table__column{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.neeto-tags-merge__wrapper{height:calc(100vh - var(--neeto-molecules-main-header-with-breadcrumbs-height));margin:0 auto;max-width:1200px;padding:0 24px 24px;width:100%}.neeto-tags-merge__wrapper .neeto-tags-merge__container{display:flex;flex-direction:row;height:100%;justify-content:space-between;width:100%}.neeto-tags-merge__wrapper .neeto-tags-merge__container .neeto-tags-merge__list{width:48%}.neeto-tags-merge__wrapper .neeto-tags-merge__container .neeto-tags-merge__list .neeto-tags-merge__items{height:calc(100vh - var(--neeto-molecules-main-header-height) - 120px);overflow-y:auto;padding-top:16px}";
3845
+ n(css,{});
3846
+
3847
+ var NEETO_TEMPLATES_URL = "/neeto_templates_engine/api/v1";
3848
+ var TEMPLATE_TAGS_URL = "".concat(NEETO_TEMPLATES_URL, "/tags/template_tags");
3849
+
3850
+ var create = function create(payload) {
3851
+ return axios__default["default"].post(TEMPLATE_TAGS_URL, {
3852
+ tag: payload
3853
+ });
3854
+ };
3855
+ var list = function list() {
3856
+ return axios__default["default"].get(TEMPLATE_TAGS_URL);
3857
+ };
3858
+ var templateTagsApi = {
3859
+ create: create,
3860
+ list: list
3861
+ };
3862
+
3863
+ 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; }
3864
+ 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; }
3865
+ var useCreateTemplateTag = function useCreateTemplateTag(options) {
3866
+ var queryClient = reactQuery.useQueryClient();
3867
+ return reactQuery.useMutation(templateTagsApi.create, _objectSpread$1(_objectSpread$1({}, options), {}, {
3868
+ onSuccess: function onSuccess() {
3869
+ var _options$onSuccess;
3870
+ refetchTags();
3871
+ queryClient.invalidateQueries(QUERY_KEYS.TEMPLATE_TAGS);
3872
+ options === null || options === void 0 || (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 ? void 0 : _options$onSuccess.call(options);
3873
+ }
3874
+ }));
3875
+ };
3876
+ var useFetchTemplateTags = function useFetchTemplateTags() {
3877
+ return reactQuery.useQuery([QUERY_KEYS.TEMPLATE_TAGS], templateTagsApi.list);
3878
+ };
3879
+
3880
+ var PageWrapper = function PageWrapper(_ref) {
3881
+ var children = _ref.children;
3882
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3883
+ className: "nf-form-settings__wrapper w-full flex-col"
3884
+ }, children);
3885
+ };
3886
+ var PageHeader = function PageHeader(_ref2) {
3887
+ var title = _ref2.title,
3888
+ breadcrumbs = _ref2.breadcrumbs;
3889
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3890
+ className: "w-full px-6"
3891
+ }, /*#__PURE__*/React__default["default"].createElement(NeetoHeader__default["default"], {
3892
+ breadcrumbs: breadcrumbs,
3893
+ size: "small",
3894
+ title: title
3895
+ }));
3896
+ };
3897
+ var customPropEqualityCheck = function customPropEqualityCheck(prevProps, nextProps) {
3898
+ return prevProps.title === nextProps.title && prevProps.breadcrumbs === nextProps.breadcrumbs;
3899
+ };
3900
+ var MemoizedPageHeader = /*#__PURE__*/React.memo(PageHeader, customPropEqualityCheck);
3901
+ var PageContent = function PageContent(_ref3) {
3902
+ var children = _ref3.children,
3903
+ _ref3$className = _ref3.className,
3904
+ className = _ref3$className === void 0 ? "" : _ref3$className;
3905
+ return /*#__PURE__*/React__default["default"].createElement(Scrollable__default["default"], {
3906
+ className: "w-full px-6 pb-6"
3907
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3908
+ className: classnames__default["default"](["mx-auto max-w-7xl", className])
3909
+ }, children));
3910
+ };
3911
+
3912
+ var Tags = function Tags(_ref) {
3913
+ var allTags = _ref.allTags,
3914
+ selectedTags = _ref.selectedTags,
3915
+ onUpdate = _ref.onUpdate,
3916
+ onCreate = _ref.onCreate,
3917
+ isLoading = _ref.isLoading,
3918
+ className = _ref.className,
3919
+ _ref$labelProps = _ref.labelProps,
3920
+ labelProps = _ref$labelProps === void 0 ? {} : _ref$labelProps;
3921
+ var handleTagSelect = function handleTagSelect(newTag) {
3922
+ return onUpdate([].concat(_toConsumableArray(selectedTags), [newTag]));
3923
+ };
3924
+ var handleTagRemove = function handleTagRemove(removedTag) {
3925
+ var updatedTags = neetoCist.removeBy({
3926
+ value: removedTag.value
3927
+ }, selectedTags);
3928
+ onUpdate(updatedTags);
3929
+ };
3930
+ var handleTagCreate = function handleTagCreate(tagName) {
3931
+ onCreate({
3932
+ name: tagName
3933
+ }, {
3934
+ onSuccess: function onSuccess(_ref2) {
3935
+ var tag = _ref2.tag;
3936
+ return handleTagSelect({
3937
+ value: tag.id,
3938
+ label: tag.name
3939
+ });
3940
+ }
3941
+ });
3942
+ };
3943
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3944
+ className: className
3945
+ }, labelProps.label && /*#__PURE__*/React__default["default"].createElement(neetoui.Label, labelProps, labelProps.label), /*#__PURE__*/React__default["default"].createElement("div", {
3946
+ className: "neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-ui-bg-white border p-4"
3947
+ }, /*#__PURE__*/React__default["default"].createElement(Tags$2, {
3948
+ allTags: allTags,
3949
+ selectedTags: selectedTags,
3950
+ buttonProps: {
3951
+ loading: isLoading,
3952
+ disabled: isLoading,
3953
+ iconPosition: "left"
3954
+ },
3955
+ onTagCreate: handleTagCreate,
3956
+ onTagDelete: handleTagRemove,
3957
+ onTagSelect: handleTagSelect
3958
+ })));
3959
+ };
3960
+
3961
+ var Preview = function Preview(_ref) {
3962
+ var template = _ref.template,
3963
+ imageUrl = _ref.imageUrl;
3964
+ return /*#__PURE__*/React__default["default"].createElement("div", {
3965
+ className: "neeto-template neeto-ui-bg-white outline-none neeto-ui-shadow-sm hover:neeto-ui-border-gray-400 focus:neeto-ui-border-gray-500 neeto-ui-rounded-lg flex cursor-pointer flex-col overflow-hidden border transition-colors duration-300 ease-in-out",
3966
+ tabIndex: 0
3967
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
3968
+ className: "neeto-template__header"
3969
+ }, /*#__PURE__*/React__default["default"].createElement("img", {
3970
+ className: "neeto-template__image",
3971
+ src: imageUrl || "https://d2v7kzglnr2dnh.cloudfront.net/images/neetoForm/default-form-template.svg"
3972
+ })), /*#__PURE__*/React__default["default"].createElement("div", {
3973
+ className: "neeto-ui-bg-white flex items-center justify-between gap-2 rounded-b-lg px-2 py-1.5"
3974
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
3975
+ className: "neeto-ui-text-gray-800",
3976
+ lineHeight: "normal",
3977
+ style: "body2"
3978
+ }, template.title)));
3979
+ };
3980
+
3981
+ var buildSelectOptionsBy = function buildSelectOptionsBy(labelField, options) {
3982
+ var valueField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "id";
3983
+ return options.map(function (option) {
3984
+ return {
3985
+ value: option[valueField],
3986
+ label: option[labelField]
3987
+ };
3988
+ });
3989
+ };
3990
+ var buildTagOptions = function buildTagOptions() {
3991
+ var tags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
3992
+ return neetoCist.renameKeys({
3993
+ id: "value",
3994
+ name: "label"
3995
+ }, tags);
3996
+ };
3997
+ var buildTemplateUpdatePayload = function buildTemplateUpdatePayload(values) {
3998
+ return {
3999
+ image: values.imageSignedId,
4000
+ tagIds: ramda.pluck("value", values === null || values === void 0 ? void 0 : values.tags)
4001
+ };
4002
+ };
4003
+
4004
+ 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; }
4005
+ 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; }
4006
+ var TemplateSettings = function TemplateSettings(_ref) {
4007
+ var _ref$onCancelTemplate = _ref.onCancelTemplatePreview,
4008
+ onCancelTemplatePreview = _ref$onCancelTemplate === void 0 ? "" : _ref$onCancelTemplate,
4009
+ _ref$breadcrumbs = _ref.breadcrumbs,
4010
+ breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
4011
+ resourceType = _ref.resourceType,
4012
+ _ref$url = _ref.url,
4013
+ url = _ref$url === void 0 ? "" : _ref$url;
4014
+ var _useParams = reactRouterDom.useParams(),
4015
+ resourceId = _useParams["".concat(resourceType, "Id")];
4016
+ var _useTranslation = reactI18next.useTranslation(),
4017
+ t = _useTranslation.t;
4018
+ var _useFetchTemplate = useFetchTemplate({
4019
+ resourceId: resourceId,
4020
+ url: url
4021
+ }),
4022
+ data = _useFetchTemplate.data,
4023
+ isFetchingTemplate = _useFetchTemplate.isLoading;
4024
+ var _useUpdateTemplate = useUpdateTemplate({
4025
+ resourceId: resourceId,
4026
+ url: url
4027
+ }),
4028
+ updateTemplate = _useUpdateTemplate.mutate,
4029
+ isUpdatingTemplate = _useUpdateTemplate.isLoading;
4030
+ var _useCreateTemplateTag = useCreateTemplateTag(),
4031
+ createTemplateTag = _useCreateTemplateTag.mutate,
4032
+ isCreatingTags = _useCreateTemplateTag.isLoading;
4033
+ var _useFetchTemplateTags = useFetchTemplateTags(),
4034
+ _useFetchTemplateTags2 = _useFetchTemplateTags.data,
4035
+ templateTags = _useFetchTemplateTags2 === void 0 ? {} : _useFetchTemplateTags2,
4036
+ isTagsLoading = _useFetchTemplateTags.isLoading;
4037
+ var handleSubmit = function handleSubmit(values) {
4038
+ updateTemplate({
4039
+ template: buildTemplateUpdatePayload(values)
4040
+ });
4041
+ };
4042
+ var handleRemoveImage = function handleRemoveImage(setFieldValue) {
4043
+ setFieldValue("imageUrl", "");
4044
+ setFieldValue("imageSignedId", null);
4045
+ };
4046
+ var isLoading = isFetchingTemplate || isTagsLoading;
4047
+ var tags = buildTagOptions(data === null || data === void 0 ? void 0 : data.tags);
4048
+ var formInitialValues = _objectSpread(_objectSpread({
4049
+ imageUrl: null
4050
+ }, data), {}, {
4051
+ tags: tags
4052
+ });
4053
+ return /*#__PURE__*/React__default["default"].createElement(PageWrapper, null, /*#__PURE__*/React__default["default"].createElement(MemoizedPageHeader, {
4054
+ breadcrumbs: breadcrumbs,
4055
+ title: t("neetoTemplate.templateSettings.title")
4056
+ }), /*#__PURE__*/React__default["default"].createElement(PageContent, {
4057
+ className: "h-full"
4058
+ }, isLoading ? /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4059
+ className: "mb-1",
4060
+ "data-cy": "thank-you-action-text",
4061
+ style: "h2",
4062
+ weight: "semibold"
4063
+ }, t("neetoTemplate.templateSettings.configureTemplates")), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4064
+ className: "mb-2",
4065
+ "data-cy": "thank-you-description-label",
4066
+ style: "body2"
4067
+ }, t("neetoTemplate.templateSettings.subText")), /*#__PURE__*/React__default["default"].createElement(formik.Form, {
4068
+ formikProps: {
4069
+ enableReinitialize: true,
4070
+ initialValues: formInitialValues,
4071
+ onSubmit: handleSubmit
4072
+ }
4073
+ }, function (_ref2) {
4074
+ var values = _ref2.values,
4075
+ setFieldValue = _ref2.setFieldValue,
4076
+ dirty = _ref2.dirty;
4077
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", {
4078
+ className: "grid grid-cols-2 gap-8 pt-6"
4079
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4080
+ className: "space-y-4"
4081
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4082
+ className: "mb-3",
4083
+ style: "h4",
4084
+ weight: "semibold"
4085
+ }, t("neetoTemplate.templateSettings.imageLabel")), values.imageUrl && /*#__PURE__*/React__default["default"].createElement("div", {
4086
+ className: "w-100 mb-6 flex flex-row justify-center"
4087
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
4088
+ className: "neeto-ui-bg-gray-100 relative flex h-80 w-96 flex-row items-center justify-center p-4"
4089
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
4090
+ className: "neeto-ui-rounded-full absolute right-0 top-0",
4091
+ "data-cy": "remove-image",
4092
+ icon: neetoIcons.Delete,
4093
+ size: "small",
4094
+ style: "danger-text",
4095
+ tooltipProps: {
4096
+ content: t("neetoTemplate.templateSettings.removeImage")
4097
+ },
4098
+ onClick: function onClick() {
4099
+ return handleRemoveImage(setFieldValue);
4100
+ }
4101
+ }))), /*#__PURE__*/React__default["default"].createElement(Tags, {
4102
+ className: "space-y-2",
4103
+ isLoading: isCreatingTags,
4104
+ selectedTags: values.tags,
4105
+ allTags: buildSelectOptionsBy("name", templateTags.tags),
4106
+ labelProps: {
4107
+ label: t("neetoTemplate.templateSettings.categoryLabel")
4108
+ },
4109
+ onCreate: createTemplateTag,
4110
+ onUpdate: function onUpdate(tags) {
4111
+ return setFieldValue("tags", tags);
4112
+ }
4113
+ })), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4114
+ className: "mb-3",
4115
+ style: "h4",
4116
+ weight: "semibold"
4117
+ }, t("neetoTemplate.templateSettings.previewLabel")), /*#__PURE__*/React__default["default"].createElement(Preview, {
4118
+ imageUrl: values.imageUrl,
4119
+ template: data
4120
+ }))), /*#__PURE__*/React__default["default"].createElement("div", {
4121
+ className: "mt-6 flex flex-row items-center justify-start"
4122
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
4123
+ className: "mr-3",
4124
+ "data-cy": "save-changes-button",
4125
+ disabled: !dirty,
4126
+ loading: isUpdatingTemplate,
4127
+ type: "submit",
4128
+ label: t("neetoTemplate.templateSettings.button.saveChanges")
4129
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
4130
+ "data-cy": "reset-changes-button",
4131
+ label: t("neetoTemplate.templateSettings.button.cancel"),
4132
+ style: "text",
4133
+ to: onCancelTemplatePreview
4134
+ })));
4135
+ }))));
4136
+ };
4137
+
4138
+ exports.CreateTemplateModal = CreateTemplateModal;
4139
+ exports.TemplateSettings = TemplateSettings;
2928
4140
  //# sourceMappingURL=index.cjs.js.map