@bigbinary/neeto-templates-frontend 3.0.6 → 3.0.8

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.
Files changed (59) hide show
  1. package/dist/.ready +1 -0
  2. package/dist/CreateTemplateModal.js +7 -234
  3. package/dist/CreateTemplateModal.js.map +1 -1
  4. package/dist/TemplateSettings.js +7 -20
  5. package/dist/TemplateSettings.js.map +1 -1
  6. package/dist/TemplateTags.js +2 -2
  7. package/dist/TemplateTags.js.map +1 -1
  8. package/dist/cjs/CreateTemplateModal.js +8 -235
  9. package/dist/cjs/CreateTemplateModal.js.map +1 -1
  10. package/dist/cjs/TemplateSettings.js +8 -21
  11. package/dist/cjs/TemplateSettings.js.map +1 -1
  12. package/dist/cjs/TemplateTags.js +1 -1
  13. package/dist/cjs/TemplateTags.js.map +1 -1
  14. package/dist/cjs/index.js +9 -6
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/v2/CreateTemplateModal.js +484 -0
  17. package/dist/cjs/v2/CreateTemplateModal.js.map +1 -0
  18. package/dist/cjs/v2/TemplateSettings.js +335 -0
  19. package/dist/cjs/v2/TemplateSettings.js.map +1 -0
  20. package/dist/cjs/v2/TemplateTags.js +89 -0
  21. package/dist/cjs/v2/TemplateTags.js.map +1 -0
  22. package/dist/cjs/v2/index.js +51 -0
  23. package/dist/cjs/v2/index.js.map +1 -0
  24. package/dist/custom-B69ooaxC.js +254 -0
  25. package/dist/custom-B69ooaxC.js.map +1 -0
  26. package/dist/custom-Y7OHRaLC.js +233 -0
  27. package/dist/custom-Y7OHRaLC.js.map +1 -0
  28. package/dist/index.js +9 -6
  29. package/dist/index.js.map +1 -1
  30. package/dist/query-BHYqZXXl.js.map +1 -1
  31. package/dist/{query-CIe6_co6.js → query-CI8q_ST0.js} +2 -2
  32. package/dist/{query-CIe6_co6.js.map → query-CI8q_ST0.js.map} +1 -1
  33. package/dist/template_tags-BsC73L5P.js +20 -0
  34. package/dist/template_tags-BsC73L5P.js.map +1 -0
  35. package/dist/template_tags-DRZa7U5R.js +22 -0
  36. package/dist/template_tags-DRZa7U5R.js.map +1 -0
  37. package/dist/{useTemplatesApi-AX5fydv5.js → templates-D92QbbVX.js} +3 -79
  38. package/dist/templates-D92QbbVX.js.map +1 -0
  39. package/dist/{useTemplatesApi-Cg_SmcAl.js → templates-Dmrt7dnT.js} +4 -77
  40. package/dist/templates-Dmrt7dnT.js.map +1 -0
  41. package/dist/useTemplatesApi-CFO1OLfz.js +83 -0
  42. package/dist/useTemplatesApi-CFO1OLfz.js.map +1 -0
  43. package/dist/useTemplatesApi-D0AEqebj.js +83 -0
  44. package/dist/useTemplatesApi-D0AEqebj.js.map +1 -0
  45. package/dist/useTemplatesApi-DSXELHFU.js +78 -0
  46. package/dist/useTemplatesApi-DSXELHFU.js.map +1 -0
  47. package/dist/useTemplatesApi-M6UMJYIX.js +78 -0
  48. package/dist/useTemplatesApi-M6UMJYIX.js.map +1 -0
  49. package/dist/v2/CreateTemplateModal.js +463 -0
  50. package/dist/v2/CreateTemplateModal.js.map +1 -0
  51. package/dist/v2/TemplateSettings.js +333 -0
  52. package/dist/v2/TemplateSettings.js.map +1 -0
  53. package/dist/v2/TemplateTags.js +87 -0
  54. package/dist/v2/TemplateTags.js.map +1 -0
  55. package/dist/v2/index.js +43 -0
  56. package/dist/v2/index.js.map +1 -0
  57. package/package.json +47 -35
  58. package/dist/useTemplatesApi-AX5fydv5.js.map +0 -1
  59. package/dist/useTemplatesApi-Cg_SmcAl.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTemplatesApi-M6UMJYIX.js","sources":["../app/javascript/src/hooks/reactQuery/useTemplatesApi.js"],"sourcesContent":["import { refetchTags } from \"@bigbinary/neeto-tags-frontend\";\nimport {\n useMutation,\n useInfiniteQuery,\n useQuery,\n keepPreviousData,\n} from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\nimport { prop } from \"ramda\";\n\nimport templatesApi from \"src/apis/templates\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchTemplates = ({ searchTerm, category }) =>\n useInfiniteQuery({\n queryKey: [QUERY_KEYS.TEMPLATES_LIST, searchTerm, category],\n queryFn: ({ pageParam = 1 }) =>\n templatesApi.list({ page: pageParam, searchTerm, category }),\n getNextPageParam: lastPage =>\n lastPage.hasNextPage ? lastPage.page + 1 : undefined,\n select: data => {\n const templates = data.pages.flatMap(prop(\"templates\"));\n const lastPage = data.pages[data.pages.length - 1];\n\n return {\n templates,\n hasNextPage: lastPage.hasNextPage,\n page: lastPage.page,\n tags: lastPage.tags,\n templatesCount: lastPage.templatesCount,\n };\n },\n initialPageParam: 1,\n placeholderData: keepPreviousData,\n });\n\nconst useCreateTemplate = () =>\n useMutation({ mutationFn: templatesApi.create });\n\nconst useFetchTemplate = ({ resourceId }, options) =>\n useQuery({\n queryKey: [QUERY_KEYS.TEMPLATE, resourceId],\n queryFn: () => templatesApi.fetch({ templateId: resourceId }),\n ...options,\n });\n\nconst useUpdateTemplate = ({ resourceId }) =>\n useMutationWithInvalidation(\n ({ template }) =>\n templatesApi.update({ resourceId, payload: { template } }),\n {\n keysToInvalidate: [\n [QUERY_KEYS.TEMPLATES_LIST],\n [QUERY_KEYS.TEMPLATE, resourceId],\n ],\n onSuccess: () => {\n refetchTags();\n },\n }\n );\n\nexport {\n useCreateTemplate,\n useFetchTemplate,\n useFetchTemplates,\n useUpdateTemplate,\n};\n"],"names":["useFetchTemplates","_ref","searchTerm","category","useInfiniteQuery","queryKey","QUERY_KEYS","TEMPLATES_LIST","queryFn","_ref2","_ref2$pageParam","pageParam","templatesApi","list","page","getNextPageParam","lastPage","hasNextPage","undefined","select","data","templates","pages","flatMap","prop","length","tags","templatesCount","initialPageParam","placeholderData","keepPreviousData","useCreateTemplate","useMutation","mutationFn","create","useFetchTemplate","_ref3","options","resourceId","useQuery","_objectSpread","TEMPLATE","fetch","templateId","useUpdateTemplate","_ref4","useMutationWithInvalidation","_ref5","template","update","payload","keysToInvalidate","onSuccess","refetchTags"],"mappings":"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"}
@@ -0,0 +1,463 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { useState, createElement } from 'react';
3
+ import { Typography, Spinner, Accordion, Button, Dialog } from '@bigbinary/neeto-atoms';
4
+ import { noop, capitalize, isPresent } from '@bigbinary/neeto-cist';
5
+ import { useTranslation } from 'react-i18next';
6
+ import '../templates-Dmrt7dnT.js';
7
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
8
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
+ import { globalProps } from '@bigbinary/neeto-commons-frontend/v2/initializers';
10
+ import Neeto from '@bigbinary/neeto-icons/typeface-logos/Neeto';
11
+ import * as ProductTypefaceLogos from '@bigbinary/neeto-icons/typeface-logos';
12
+ import HelpPopover from '@bigbinary/neeto-molecules/v2/HelpPopover';
13
+ import Search from '@bigbinary/neeto-molecules/v2/Search';
14
+ import { u as useInfiniteScroll, S as SvgCustom } from '../custom-Y7OHRaLC.js';
15
+ import { u as useFetchTemplates, a as useCreateTemplate } from '../useTemplatesApi-DSXELHFU.js';
16
+ import { jsxs, jsx } from 'react/jsx-runtime';
17
+ import { CLOUDFRONT_BASE_URL } from '@bigbinary/neeto-commons-frontend/v2/constants';
18
+ import classnames from 'classnames';
19
+ import { joinHyphenCase } from '@bigbinary/neeto-commons-frontend/v2/utils';
20
+ import { useBreakpoints } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
21
+ import ResponsiveDevicePicker from '@bigbinary/neeto-molecules/v2/ResponsiveDevicePicker';
22
+ import 'axios';
23
+ import '../query-CI8q_ST0.js';
24
+ import '@bigbinary/neeto-tags-frontend/v2/utils';
25
+ import '@tanstack/react-query';
26
+ import '@bigbinary/neeto-commons-frontend/react-utils';
27
+ import 'ramda';
28
+
29
+ var TEMPLATE_SCREENS = {
30
+ LIST: "List",
31
+ PREVIEW: "Preview"
32
+ };
33
+ var DEFAULT_CATEGORY = {
34
+ id: "all",
35
+ name: "All"
36
+ };
37
+ var INFINITE_SCROLL_DELAY = 500;
38
+ var RESPONSIVE_DEVICES = {
39
+ DESKTOP: "desktop",
40
+ TABLET: "tablet",
41
+ MOBILE: "mobile"
42
+ };
43
+
44
+ var BlankCard = function BlankCard(_ref) {
45
+ var Icon = _ref.icon,
46
+ title = _ref.title,
47
+ description = _ref.description,
48
+ _ref$onClick = _ref.onClick,
49
+ onClick = _ref$onClick === void 0 ? noop : _ref$onClick,
50
+ _ref$disabled = _ref.disabled,
51
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled;
52
+ return /*#__PURE__*/jsxs("div", {
53
+ className: "bg-background hover:bg-background border-foreground flex cursor-pointer flex-col items-center justify-center rounded-lg border border-dashed p-6 outline-none transition-all duration-300 ease-in-out hover:border-solid focus:border-solid",
54
+ "data-testid": "start-from-scratch-button",
55
+ tabIndex: 0,
56
+ onClick: !disabled ? onClick : noop,
57
+ children: [/*#__PURE__*/jsx("div", {
58
+ className: "text-primary mb-4",
59
+ children: /*#__PURE__*/jsx(Icon, {
60
+ size: 40
61
+ })
62
+ }), /*#__PURE__*/jsx(Typography, {
63
+ className: "text-center leading-normal",
64
+ variant: "h6",
65
+ weight: "semibold",
66
+ children: title
67
+ }), /*#__PURE__*/jsx(Typography, {
68
+ className: "text-muted-foreground text-center leading-4",
69
+ variant: "body3",
70
+ children: description
71
+ })]
72
+ });
73
+ };
74
+
75
+ var Card = function Card(_ref) {
76
+ var template = _ref.template,
77
+ onClick = _ref.onClick;
78
+ return /*#__PURE__*/jsxs("div", {
79
+ onClick: onClick,
80
+ className: "neeto-template neeto-template-thumbnail bg-background border-border hover:border-ring focus:border-ring flex cursor-pointer flex-col overflow-hidden rounded-lg border outline-none transition-colors duration-300 ease-in-out",
81
+ "data-testid": "template-card",
82
+ tabIndex: 0,
83
+ children: [/*#__PURE__*/jsx("div", {
84
+ className: "neeto-template__header relative overflow-hidden",
85
+ children: /*#__PURE__*/jsx("img", {
86
+ className: "neeto-template__image",
87
+ "data-testid": "template-thumbnail-image",
88
+ src: template.imageUrl || "".concat(CLOUDFRONT_BASE_URL, "/images/neetoForm/default-form-template.svg")
89
+ })
90
+ }), /*#__PURE__*/jsx("div", {
91
+ className: "neeto-template__description bg-background flex items-center justify-between gap-2 rounded-b-lg px-3 py-1.5",
92
+ children: /*#__PURE__*/jsx(Typography, {
93
+ className: "neeto-template-thumbnail__title line-clamp-2 leading-normal",
94
+ "data-testid": "template-card-title",
95
+ variant: "h6",
96
+ weight: "medium",
97
+ children: template.title
98
+ })
99
+ })]
100
+ });
101
+ };
102
+
103
+ var CategoryItem = function CategoryItem(_ref) {
104
+ var label = _ref.label,
105
+ count = _ref.count,
106
+ isActive = _ref.isActive,
107
+ setCurrentCategory = _ref.setCurrentCategory;
108
+ return /*#__PURE__*/jsxs("button", {
109
+ "data-testid": "category-".concat(joinHyphenCase(label)),
110
+ tabIndex: 0,
111
+ className: classnames("flex w-full items-center justify-between gap-2 rounded-lg border border-solid px-3 py-2 text-sm font-medium leading-4 outline-none transition-all duration-300 ease-in-out", {
112
+ "text-muted-foreground hover:bg-muted focus:bg-muted border-transparent": !isActive,
113
+ "text-foreground bg-background border-border focus:border-ring": isActive
114
+ }),
115
+ onClick: setCurrentCategory,
116
+ children: [/*#__PURE__*/jsx("span", {
117
+ className: "text-start",
118
+ children: label
119
+ }), /*#__PURE__*/jsx("span", {
120
+ children: count
121
+ })]
122
+ });
123
+ };
124
+
125
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
126
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
127
+ var List = function List(_ref) {
128
+ var _ProductTypefaceLogos;
129
+ var setCurrentScreen = _ref.setCurrentScreen,
130
+ setSelectedTemplate = _ref.setSelectedTemplate,
131
+ onCreate = _ref.onCreate,
132
+ isCreating = _ref.isCreating,
133
+ afterCreate = _ref.afterCreate,
134
+ refetchResource = _ref.refetchResource,
135
+ titleHelpPopoverProps = _ref.titleHelpPopoverProps,
136
+ title = _ref.title,
137
+ description = _ref.description;
138
+ var _useTranslation = useTranslation(),
139
+ t = _useTranslation.t;
140
+ var productName = globalProps.appName.substr(5);
141
+ var logoName = "Neeto".concat(capitalize(productName.toLowerCase()));
142
+ var ProductTypefaceLogo = (_ProductTypefaceLogos = ProductTypefaceLogos[logoName]) !== null && _ProductTypefaceLogos !== void 0 ? _ProductTypefaceLogos : Neeto;
143
+ var _useState = useState(DEFAULT_CATEGORY),
144
+ _useState2 = _slicedToArray(_useState, 2),
145
+ currentCategory = _useState2[0],
146
+ _setCurrentCategory = _useState2[1];
147
+ var _useState3 = useState(""),
148
+ _useState4 = _slicedToArray(_useState3, 2),
149
+ searchTerm = _useState4[0],
150
+ setSearchTerm = _useState4[1];
151
+ var _useFetchTemplates = useFetchTemplates({
152
+ searchTerm: searchTerm,
153
+ category: currentCategory
154
+ }),
155
+ _useFetchTemplates$ha = _useFetchTemplates.hasNextPage,
156
+ hasNextPage = _useFetchTemplates$ha === void 0 ? false : _useFetchTemplates$ha,
157
+ fetchNextPage = _useFetchTemplates.fetchNextPage,
158
+ isTemplatesLoading = _useFetchTemplates.isLoading,
159
+ _useFetchTemplates$da = _useFetchTemplates.data,
160
+ data = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da;
161
+ var _useInfiniteScroll = useInfiniteScroll({
162
+ loading: isTemplatesLoading,
163
+ hasNextPage: hasNextPage,
164
+ onLoadMore: fetchNextPage,
165
+ rootMargin: "0px 0px 700px 0px",
166
+ delayInMs: INFINITE_SCROLL_DELAY
167
+ }),
168
+ _useInfiniteScroll2 = _slicedToArray(_useInfiniteScroll, 2),
169
+ sentryRef = _useInfiniteScroll2[0],
170
+ rootRef = _useInfiniteScroll2[1].rootRef;
171
+ var handleCardClick = function handleCardClick(template) {
172
+ setCurrentScreen(TEMPLATE_SCREENS.PREVIEW);
173
+ setSelectedTemplate(template);
174
+ };
175
+ if (isTemplatesLoading) {
176
+ return /*#__PURE__*/jsx("div", {
177
+ className: "flex h-full w-full items-center justify-center",
178
+ children: /*#__PURE__*/jsx(Spinner, {})
179
+ });
180
+ }
181
+ var _data$tags = data.tags,
182
+ tags = _data$tags === void 0 ? [] : _data$tags,
183
+ _data$templates = data.templates,
184
+ templates = _data$templates === void 0 ? [] : _data$templates,
185
+ _data$templatesCount = data.templatesCount,
186
+ templatesCount = _data$templatesCount === void 0 ? 0 : _data$templatesCount;
187
+ var categories = [_objectSpread(_objectSpread({}, DEFAULT_CATEGORY), {}, {
188
+ count: templatesCount
189
+ })].concat(_toConsumableArray(tags));
190
+ return /*#__PURE__*/jsxs("div", {
191
+ className: "bg-muted relative flex flex-col items-start md:min-h-full md:flex-row",
192
+ children: [/*#__PURE__*/jsxs("div", {
193
+ className: "w-full shrink-0 space-y-6 p-6 xl:p-10 md:sticky md:start-0 md:top-0 md:h-screen md:w-72 md:space-y-10 md:overflow-y-auto lg:w-80",
194
+ children: [/*#__PURE__*/jsx(ProductTypefaceLogo, {
195
+ className: "h-9 w-auto max-w-full"
196
+ }), /*#__PURE__*/jsxs("div", {
197
+ children: [/*#__PURE__*/jsx(Accordion, {
198
+ collapsible: true,
199
+ className: "md:hidden",
200
+ children: /*#__PURE__*/jsx(Accordion.Item, {
201
+ title: t("neetoTemplate.templates.categories"),
202
+ children: categories.map(function (_ref2) {
203
+ var id = _ref2.id,
204
+ name = _ref2.name,
205
+ count = _ref2.count;
206
+ return /*#__PURE__*/createElement(CategoryItem, {
207
+ count: count,
208
+ isActive: currentCategory.id === id,
209
+ key: id,
210
+ label: name,
211
+ setCurrentCategory: function setCurrentCategory() {
212
+ return _setCurrentCategory({
213
+ id: id,
214
+ name: name
215
+ });
216
+ }
217
+ });
218
+ })
219
+ })
220
+ }), /*#__PURE__*/jsxs("div", {
221
+ className: "hidden md:flex md:flex-col",
222
+ children: [/*#__PURE__*/jsx(Typography, {
223
+ className: "mb-4",
224
+ "data-testid": "template-categories-label",
225
+ variant: "h5",
226
+ weight: "semibold",
227
+ children: t("neetoTemplate.templates.categories")
228
+ }), /*#__PURE__*/jsx("div", {
229
+ className: "flex flex-col gap-2",
230
+ children: categories.map(function (_ref3) {
231
+ var id = _ref3.id,
232
+ name = _ref3.name,
233
+ count = _ref3.count;
234
+ return /*#__PURE__*/createElement(CategoryItem, {
235
+ count: count,
236
+ isActive: currentCategory.id === id,
237
+ key: id,
238
+ label: name,
239
+ setCurrentCategory: function setCurrentCategory() {
240
+ return _setCurrentCategory({
241
+ id: id,
242
+ name: name
243
+ });
244
+ }
245
+ });
246
+ })
247
+ })]
248
+ })]
249
+ })]
250
+ }), /*#__PURE__*/jsxs("div", {
251
+ className: "md:h-screen w-full p-6 md:overflow-y-auto xl:p-10",
252
+ ref: rootRef,
253
+ children: [/*#__PURE__*/jsxs("div", {
254
+ className: "flex flex-col mb-10",
255
+ children: [/*#__PURE__*/jsxs("div", {
256
+ className: "flex gap-1.5 items-center",
257
+ children: [/*#__PURE__*/jsx(Typography, {
258
+ className: "mb-2",
259
+ "data-testid": "create-new-form-title",
260
+ variant: "h2",
261
+ children: title || t("neetoTemplate.templates.createNewEntity")
262
+ }), isPresent(titleHelpPopoverProps) && /*#__PURE__*/jsx(HelpPopover, _objectSpread(_objectSpread({}, titleHelpPopoverProps), {}, {
263
+ side: "top"
264
+ }))]
265
+ }), /*#__PURE__*/jsx(Typography, {
266
+ className: "mb-6 leading-normal",
267
+ variant: "body1",
268
+ children: description || t("neetoTemplate.templates.description")
269
+ }), /*#__PURE__*/jsx(Search, {
270
+ autoFocus: true,
271
+ disableTrimOnBlur: true,
272
+ "data-testid": "template-search-input",
273
+ placeholder: t("neetoTemplate.templates.search"),
274
+ size: "large",
275
+ onSearch: function onSearch(value) {
276
+ return setSearchTerm(value);
277
+ }
278
+ })]
279
+ }), /*#__PURE__*/jsxs("div", {
280
+ className: "grow space-y-6",
281
+ children: [/*#__PURE__*/jsxs("div", {
282
+ className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 lg:gap-5 xl:gap-6 2xl:grid-cols-4",
283
+ children: [/*#__PURE__*/jsx(BlankCard, {
284
+ description: t("neetoTemplate.templates.blankCard.description"),
285
+ disabled: isCreating,
286
+ icon: isCreating ? Spinner : SvgCustom,
287
+ title: t("neetoTemplate.templates.blankCard.title"),
288
+ onClick: onCreate
289
+ }), templates.map(function (template, index) {
290
+ return /*#__PURE__*/createElement(Card, {
291
+ afterCreate: afterCreate,
292
+ refetchResource: refetchResource,
293
+ template: template,
294
+ key: index,
295
+ onClick: function onClick() {
296
+ return handleCardClick(template);
297
+ }
298
+ });
299
+ })]
300
+ }), hasNextPage && /*#__PURE__*/jsx("div", {
301
+ className: "my-10 text-center",
302
+ ref: sentryRef,
303
+ children: /*#__PURE__*/jsx(Spinner, {})
304
+ })]
305
+ })]
306
+ })]
307
+ });
308
+ };
309
+
310
+ var Preview = function Preview(_ref) {
311
+ var selectedTemplate = _ref.selectedTemplate,
312
+ setCurrentScreen = _ref.setCurrentScreen,
313
+ afterCreate = _ref.afterCreate,
314
+ refetchResource = _ref.refetchResource;
315
+ var _useTranslation = useTranslation(),
316
+ t = _useTranslation.t;
317
+ var _useBreakpoints = useBreakpoints(),
318
+ isSize = _useBreakpoints.isSize;
319
+ var _useCreateTemplate = useCreateTemplate(),
320
+ createTemplate = _useCreateTemplate.mutate,
321
+ isCreating = _useCreateTemplate.isPending;
322
+ var _useState = useState(RESPONSIVE_DEVICES.DESKTOP),
323
+ _useState2 = _slicedToArray(_useState, 2),
324
+ selectedDevice = _useState2[0],
325
+ setSelectedDevice = _useState2[1];
326
+ var handleCreateTemplate = function handleCreateTemplate() {
327
+ createTemplate({
328
+ id: selectedTemplate.id
329
+ }, {
330
+ onSuccess: function onSuccess(response) {
331
+ afterCreate(response);
332
+ refetchResource();
333
+ }
334
+ });
335
+ };
336
+ var title = selectedTemplate.title,
337
+ previewUrl = selectedTemplate.previewUrl;
338
+ return /*#__PURE__*/jsxs("div", {
339
+ className: "neeto-templates-full-page-preview flex h-full w-full flex-col",
340
+ children: [/*#__PURE__*/jsx("div", {
341
+ className: "neeto-templates-full-page-preview__header border-border border-b px-4",
342
+ children: /*#__PURE__*/jsxs("div", {
343
+ className: "mx-auto flex w-full max-w-6xl items-center justify-between py-[9px]",
344
+ children: [/*#__PURE__*/jsx("div", {
345
+ className: "w-1/3",
346
+ children: /*#__PURE__*/jsx(Typography, {
347
+ className: "truncate leading-tight",
348
+ "data-testid": "preview-template-title",
349
+ variant: "h5",
350
+ weight: "semibold",
351
+ children: title
352
+ })
353
+ }), /*#__PURE__*/jsx("div", {
354
+ className: "hidden shrink-0 lg:flex",
355
+ children: /*#__PURE__*/jsx(ResponsiveDevicePicker, {
356
+ selectedDevice: selectedDevice,
357
+ onDeviceChange: setSelectedDevice
358
+ })
359
+ }), /*#__PURE__*/jsxs("div", {
360
+ className: "flex w-1/3 items-center justify-end gap-2",
361
+ children: [/*#__PURE__*/jsx(Button, {
362
+ className: "shrink-0",
363
+ "data-testid": "preview-template-back-button",
364
+ variant: "outline",
365
+ label: isSize("mobile") ? t("neetoTemplate.templates.back") : t("neetoTemplate.templates.backToTemplates"),
366
+ onClick: function onClick() {
367
+ return setCurrentScreen(TEMPLATE_SCREENS.LIST);
368
+ }
369
+ }), /*#__PURE__*/jsx(Button, {
370
+ className: "shrink-0",
371
+ "data-testid": "preview-use-template-button",
372
+ disabled: isCreating,
373
+ label: t("neetoTemplate.templates.editTemplate"),
374
+ loading: isCreating,
375
+ onClick: handleCreateTemplate
376
+ })]
377
+ })]
378
+ })
379
+ }), /*#__PURE__*/jsx("div", {
380
+ className: "bg-muted neeto-templates-full-page-preview__holder-wrapper min-h-0 grow",
381
+ children: /*#__PURE__*/jsx("div", {
382
+ className: classnames("neeto-templates-full-page-preview__holder m-auto", {
383
+ "neeto-templates-full-page-preview__holder--desktop": selectedDevice === RESPONSIVE_DEVICES.DESKTOP,
384
+ "neeto-templates-full-page-preview__holder--tablet": selectedDevice === RESPONSIVE_DEVICES.TABLET,
385
+ "neeto-templates-full-page-preview__holder--mobile": selectedDevice === RESPONSIVE_DEVICES.MOBILE
386
+ }),
387
+ children: /*#__PURE__*/jsx("div", {
388
+ className: "neeto-templates-full-page-preview__device-border h-full w-full",
389
+ children: /*#__PURE__*/jsx("iframe", {
390
+ className: "neeto-templates-full-page-preview__iframe h-full w-full border-none",
391
+ "data-testid": "iframe-id",
392
+ src: previewUrl
393
+ })
394
+ })
395
+ })
396
+ })]
397
+ });
398
+ };
399
+
400
+ var CreateTemplateModal = function CreateTemplateModal(_ref) {
401
+ var isOpen = _ref.isOpen,
402
+ onClose = _ref.onClose,
403
+ isCreating = _ref.isCreating,
404
+ refetchResource = _ref.refetchResource,
405
+ _ref$onCreate = _ref.onCreate,
406
+ onCreate = _ref$onCreate === void 0 ? noop : _ref$onCreate,
407
+ _ref$afterCreate = _ref.afterCreate,
408
+ afterCreate = _ref$afterCreate === void 0 ? noop : _ref$afterCreate,
409
+ _ref$titleHelpPopover = _ref.titleHelpPopoverProps,
410
+ titleHelpPopoverProps = _ref$titleHelpPopover === void 0 ? {} : _ref$titleHelpPopover,
411
+ title = _ref.title,
412
+ description = _ref.description;
413
+ var _useTranslation = useTranslation(),
414
+ t = _useTranslation.t;
415
+ var _useState = useState(TEMPLATE_SCREENS.LIST),
416
+ _useState2 = _slicedToArray(_useState, 2),
417
+ currentScreen = _useState2[0],
418
+ setCurrentScreen = _useState2[1];
419
+ var _useState3 = useState({}),
420
+ _useState4 = _slicedToArray(_useState3, 2),
421
+ selectedTemplate = _useState4[0],
422
+ setSelectedTemplate = _useState4[1];
423
+ var onModalClose = function onModalClose() {
424
+ onClose();
425
+ setTimeout(function () {
426
+ setCurrentScreen(TEMPLATE_SCREENS.LIST);
427
+ }, 300); //To accommodate the animation duration.
428
+ };
429
+ return /*#__PURE__*/jsxs(Dialog, {
430
+ isOpen: isOpen,
431
+ className: "neeto-template-list block h-screen w-screen gap-0 overflow-y-auto p-0",
432
+ closeButton: currentScreen === TEMPLATE_SCREENS.LIST,
433
+ size: "fullScreen",
434
+ onClose: onModalClose,
435
+ children: [/*#__PURE__*/jsx(Dialog.Header, {
436
+ className: "sr-only",
437
+ children: /*#__PURE__*/jsx(Dialog.Title, {
438
+ children: title || t("neetoTemplate.templates.createNewEntity")
439
+ })
440
+ }), /*#__PURE__*/jsx(Dialog.Body, {
441
+ className: "h-full w-full",
442
+ children: currentScreen === TEMPLATE_SCREENS.LIST ? /*#__PURE__*/jsx(List, {
443
+ afterCreate: afterCreate,
444
+ description: description,
445
+ isCreating: isCreating,
446
+ onCreate: onCreate,
447
+ refetchResource: refetchResource,
448
+ setCurrentScreen: setCurrentScreen,
449
+ setSelectedTemplate: setSelectedTemplate,
450
+ title: title,
451
+ titleHelpPopoverProps: titleHelpPopoverProps
452
+ }) : /*#__PURE__*/jsx(Preview, {
453
+ afterCreate: afterCreate,
454
+ refetchResource: refetchResource,
455
+ selectedTemplate: selectedTemplate,
456
+ setCurrentScreen: setCurrentScreen
457
+ })
458
+ })]
459
+ });
460
+ };
461
+
462
+ export { CreateTemplateModal as default };
463
+ //# sourceMappingURL=CreateTemplateModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateTemplateModal.js","sources":["../../app/javascript/src/v2/components/CreateTemplateModal/constants.js","../../app/javascript/src/v2/components/CreateTemplateModal/BlankCard.jsx","../../app/javascript/src/v2/components/CreateTemplateModal/Card.jsx","../../app/javascript/src/v2/components/CreateTemplateModal/CategoryItem.jsx","../../app/javascript/src/v2/components/CreateTemplateModal/List.jsx","../../app/javascript/src/v2/components/CreateTemplateModal/Preview.jsx","../../app/javascript/src/v2/components/CreateTemplateModal/index.jsx"],"sourcesContent":["export const TEMPLATE_SCREENS = { LIST: \"List\", PREVIEW: \"Preview\" };\n\nexport const DEFAULT_CATEGORY = { id: \"all\", name: \"All\" };\n\nexport const INFINITE_SCROLL_DELAY = 500;\n\nexport const MENU_ITEMS = { CREATE: \"create\", PREVIEW: \"preview\" };\n\nexport const RESPONSIVE_DEVICES = {\n DESKTOP: \"desktop\",\n TABLET: \"tablet\",\n MOBILE: \"mobile\",\n};\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport { noop } from \"neetocist\";\n\nconst BlankCard = ({\n icon: Icon,\n title,\n description,\n onClick = noop,\n disabled = false,\n}) => (\n <div\n className=\"bg-background hover:bg-background border-foreground flex cursor-pointer flex-col items-center justify-center rounded-lg border border-dashed p-6 outline-none transition-all duration-300 ease-in-out hover:border-solid focus:border-solid\"\n data-testid=\"start-from-scratch-button\"\n tabIndex={0}\n onClick={!disabled ? onClick : noop}\n >\n <div className=\"text-primary mb-4\">\n <Icon size={40} />\n </div>\n <Typography\n className=\"text-center leading-normal\"\n variant=\"h6\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n <Typography\n className=\"text-muted-foreground text-center leading-4\"\n variant=\"body3\"\n >\n {description}\n </Typography>\n </div>\n);\n\nexport default BlankCard;\n","import { Typography } from \"@bigbinary/neeto-atoms\";\nimport { CLOUDFRONT_BASE_URL } from \"neetocommons/v2/constants\";\n\nconst Card = ({ template, onClick }) => (\n <div\n {...{ onClick }}\n className=\"neeto-template neeto-template-thumbnail bg-background border-border hover:border-ring focus:border-ring flex cursor-pointer flex-col overflow-hidden rounded-lg border outline-none transition-colors duration-300 ease-in-out\"\n data-testid=\"template-card\"\n tabIndex={0}\n >\n <div className=\"neeto-template__header relative overflow-hidden\">\n <img\n className=\"neeto-template__image\"\n data-testid=\"template-thumbnail-image\"\n src={\n template.imageUrl ||\n `${CLOUDFRONT_BASE_URL}/images/neetoForm/default-form-template.svg`\n }\n />\n </div>\n <div className=\"neeto-template__description bg-background flex items-center justify-between gap-2 rounded-b-lg px-3 py-1.5\">\n <Typography\n className=\"neeto-template-thumbnail__title line-clamp-2 leading-normal\"\n data-testid=\"template-card-title\"\n variant=\"h6\"\n weight=\"medium\"\n >\n {template.title}\n </Typography>\n </div>\n </div>\n);\n\nexport default Card;\n","import classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/v2/utils\";\n\nconst CategoryItem = ({ label, count, isActive, setCurrentCategory }) => (\n <button\n data-testid={`category-${joinHyphenCase(label)}`}\n tabIndex={0}\n className={classnames(\n \"flex w-full items-center justify-between gap-2 rounded-lg border border-solid px-3 py-2 text-sm font-medium leading-4 outline-none transition-all duration-300 ease-in-out\",\n {\n \"text-muted-foreground hover:bg-muted focus:bg-muted border-transparent\":\n !isActive,\n \"text-foreground bg-background border-border focus:border-ring\":\n isActive,\n }\n )}\n onClick={setCurrentCategory}\n >\n <span className=\"text-start\">{label}</span>\n <span>{count}</span>\n </button>\n);\n\nexport default CategoryItem;\n","import { useState } from \"react\";\n\nimport { Spinner, Typography, Accordion } from \"@bigbinary/neeto-atoms\";\nimport { isPresent, capitalize } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { Neeto } from \"neetoicons/typeface-logos\";\nimport * as ProductTypefaceLogos from \"neetoicons/typeface-logos\";\nimport HelpPopover from \"neetomolecules/v2/HelpPopover\";\nimport Search from \"neetomolecules/v2/Search\";\nimport { useTranslation } from \"react-i18next\";\nimport useInfiniteScroll from \"react-infinite-scroll-hook\";\n\nimport CustomSVG from \"assets/dashboard/custom\";\nimport { useFetchTemplates } from \"v2/hooks/reactQuery/useTemplatesApi\";\n\nimport BlankCard from \"./BlankCard\";\nimport Card from \"./Card\";\nimport CategoryItem from \"./CategoryItem\";\nimport {\n DEFAULT_CATEGORY,\n INFINITE_SCROLL_DELAY,\n TEMPLATE_SCREENS,\n} from \"./constants\";\n\nconst List = ({\n setCurrentScreen,\n setSelectedTemplate,\n onCreate,\n isCreating,\n afterCreate,\n refetchResource,\n titleHelpPopoverProps,\n title,\n description,\n}) => {\n const { t } = useTranslation();\n\n const productName = globalProps.appName.substr(5);\n const logoName = `Neeto${capitalize(productName.toLowerCase())}`;\n const ProductTypefaceLogo = ProductTypefaceLogos[logoName] ?? Neeto;\n\n const [currentCategory, setCurrentCategory] = useState(DEFAULT_CATEGORY);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const {\n hasNextPage = false,\n fetchNextPage,\n isLoading: isTemplatesLoading,\n data = {},\n } = useFetchTemplates({ searchTerm, category: currentCategory });\n\n const [sentryRef, { rootRef }] = useInfiniteScroll({\n loading: isTemplatesLoading,\n hasNextPage,\n onLoadMore: fetchNextPage,\n rootMargin: \"0px 0px 700px 0px\",\n delayInMs: INFINITE_SCROLL_DELAY,\n });\n\n const handleCardClick = template => {\n setCurrentScreen(TEMPLATE_SCREENS.PREVIEW);\n setSelectedTemplate(template);\n };\n\n if (isTemplatesLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n const { tags = [], templates = [], templatesCount = 0 } = data;\n\n const categories = [{ ...DEFAULT_CATEGORY, count: templatesCount }, ...tags];\n\n return (\n <div className=\"bg-muted relative flex flex-col items-start md:min-h-full md:flex-row\">\n <div className=\"w-full shrink-0 space-y-6 p-6 xl:p-10 md:sticky md:start-0 md:top-0 md:h-screen md:w-72 md:space-y-10 md:overflow-y-auto lg:w-80\">\n <ProductTypefaceLogo className=\"h-9 w-auto max-w-full\" />\n <div>\n <Accordion collapsible className=\"md:hidden\">\n <Accordion.Item title={t(\"neetoTemplate.templates.categories\")}>\n {categories.map(({ id, name, count }) => (\n <CategoryItem\n {...{ count }}\n isActive={currentCategory.id === id}\n key={id}\n label={name}\n setCurrentCategory={() => setCurrentCategory({ id, name })}\n />\n ))}\n </Accordion.Item>\n </Accordion>\n <div className=\"hidden md:flex md:flex-col\">\n <Typography\n className=\"mb-4\"\n data-testid=\"template-categories-label\"\n variant=\"h5\"\n weight=\"semibold\"\n >\n {t(\"neetoTemplate.templates.categories\")}\n </Typography>\n <div className=\"flex flex-col gap-2\">\n {categories.map(({ id, name, count }) => (\n <CategoryItem\n {...{ count }}\n isActive={currentCategory.id === id}\n key={id}\n label={name}\n setCurrentCategory={() => setCurrentCategory({ id, name })}\n />\n ))}\n </div>\n </div>\n </div>\n </div>\n <div\n className=\"md:h-screen w-full p-6 md:overflow-y-auto xl:p-10\"\n ref={rootRef}\n >\n <div className=\"flex flex-col mb-10\">\n <div className=\"flex gap-1.5 items-center\">\n <Typography\n className=\"mb-2\"\n data-testid=\"create-new-form-title\"\n variant=\"h2\"\n >\n {title || t(\"neetoTemplate.templates.createNewEntity\")}\n </Typography>\n {isPresent(titleHelpPopoverProps) && (\n <HelpPopover {...titleHelpPopoverProps} side=\"top\" />\n )}\n </div>\n <Typography className=\"mb-6 leading-normal\" variant=\"body1\">\n {description || t(\"neetoTemplate.templates.description\")}\n </Typography>\n <Search\n autoFocus\n disableTrimOnBlur\n data-testid=\"template-search-input\"\n placeholder={t(\"neetoTemplate.templates.search\")}\n size=\"large\"\n onSearch={value => setSearchTerm(value)}\n />\n </div>\n <div className=\"grow space-y-6\">\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 lg:gap-5 xl:gap-6 2xl:grid-cols-4\">\n <BlankCard\n description={t(\"neetoTemplate.templates.blankCard.description\")}\n disabled={isCreating}\n icon={isCreating ? Spinner : CustomSVG}\n title={t(\"neetoTemplate.templates.blankCard.title\")}\n onClick={onCreate}\n />\n {templates.map((template, index) => (\n <Card\n {...{ afterCreate, refetchResource, template }}\n key={index}\n onClick={() => handleCardClick(template)}\n />\n ))}\n </div>\n {hasNextPage && (\n <div className=\"my-10 text-center\" ref={sentryRef}>\n <Spinner />\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default List;\n","import { useState } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { useBreakpoints } from \"neetocommons/v2/react-utils\";\nimport ResponsiveDevicePicker from \"neetomolecules/v2/ResponsiveDevicePicker\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateTemplate } from \"v2/hooks/reactQuery/useTemplatesApi\";\n\nimport { TEMPLATE_SCREENS, RESPONSIVE_DEVICES } from \"./constants\";\n\nconst Preview = ({\n selectedTemplate,\n setCurrentScreen,\n afterCreate,\n refetchResource,\n}) => {\n const { t } = useTranslation();\n\n const { isSize } = useBreakpoints();\n\n const { mutate: createTemplate, isPending: isCreating } = useCreateTemplate();\n\n const [selectedDevice, setSelectedDevice] = useState(\n RESPONSIVE_DEVICES.DESKTOP\n );\n\n const handleCreateTemplate = () => {\n createTemplate(\n { id: selectedTemplate.id },\n {\n onSuccess: response => {\n afterCreate(response);\n refetchResource();\n },\n }\n );\n };\n\n const { title, previewUrl } = selectedTemplate;\n\n return (\n <div className=\"neeto-templates-full-page-preview flex h-full w-full flex-col\">\n <div className=\"neeto-templates-full-page-preview__header border-border border-b px-4\">\n <div className=\"mx-auto flex w-full max-w-6xl items-center justify-between py-[9px]\">\n <div className=\"w-1/3\">\n <Typography\n className=\"truncate leading-tight\"\n data-testid=\"preview-template-title\"\n variant=\"h5\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n </div>\n <div className=\"hidden shrink-0 lg:flex\">\n <ResponsiveDevicePicker\n {...{ selectedDevice }}\n onDeviceChange={setSelectedDevice}\n />\n </div>\n <div className=\"flex w-1/3 items-center justify-end gap-2\">\n <Button\n className=\"shrink-0\"\n data-testid=\"preview-template-back-button\"\n variant=\"outline\"\n label={\n isSize(\"mobile\")\n ? t(\"neetoTemplate.templates.back\")\n : t(\"neetoTemplate.templates.backToTemplates\")\n }\n onClick={() => setCurrentScreen(TEMPLATE_SCREENS.LIST)}\n />\n <Button\n className=\"shrink-0\"\n data-testid=\"preview-use-template-button\"\n disabled={isCreating}\n label={t(\"neetoTemplate.templates.editTemplate\")}\n loading={isCreating}\n onClick={handleCreateTemplate}\n />\n </div>\n </div>\n </div>\n <div className=\"bg-muted neeto-templates-full-page-preview__holder-wrapper min-h-0 grow\">\n <div\n className={classnames(\n \"neeto-templates-full-page-preview__holder m-auto\",\n {\n \"neeto-templates-full-page-preview__holder--desktop\":\n selectedDevice === RESPONSIVE_DEVICES.DESKTOP,\n \"neeto-templates-full-page-preview__holder--tablet\":\n selectedDevice === RESPONSIVE_DEVICES.TABLET,\n \"neeto-templates-full-page-preview__holder--mobile\":\n selectedDevice === RESPONSIVE_DEVICES.MOBILE,\n }\n )}\n >\n <div className=\"neeto-templates-full-page-preview__device-border h-full w-full\">\n <iframe\n className=\"neeto-templates-full-page-preview__iframe h-full w-full border-none\"\n data-testid=\"iframe-id\"\n src={previewUrl}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\nexport default Preview;\n","import { useState } from \"react\";\n\nimport { Dialog } from \"@bigbinary/neeto-atoms\";\nimport { noop } from \"neetocist\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/application.css\";\n\nimport { TEMPLATE_SCREENS } from \"./constants\";\nimport List from \"./List\";\nimport Preview from \"./Preview\";\n\nconst CreateTemplateModal = ({\n isOpen,\n onClose,\n isCreating,\n refetchResource,\n onCreate = noop,\n afterCreate = noop,\n titleHelpPopoverProps = {},\n title,\n description,\n}) => {\n const { t } = useTranslation();\n const [currentScreen, setCurrentScreen] = useState(TEMPLATE_SCREENS.LIST);\n const [selectedTemplate, setSelectedTemplate] = useState({});\n\n const onModalClose = () => {\n onClose();\n setTimeout(() => {\n setCurrentScreen(TEMPLATE_SCREENS.LIST);\n }, 300); //To accommodate the animation duration.\n };\n\n return (\n <Dialog\n {...{ isOpen }}\n className=\"neeto-template-list block h-screen w-screen gap-0 overflow-y-auto p-0\"\n closeButton={currentScreen === TEMPLATE_SCREENS.LIST}\n size=\"fullScreen\"\n onClose={onModalClose}\n >\n <Dialog.Header className=\"sr-only\">\n <Dialog.Title>\n {title || t(\"neetoTemplate.templates.createNewEntity\")}\n </Dialog.Title>\n </Dialog.Header>\n <Dialog.Body className=\"h-full w-full\">\n {currentScreen === TEMPLATE_SCREENS.LIST ? (\n <List\n {...{\n afterCreate,\n description,\n isCreating,\n onCreate,\n refetchResource,\n setCurrentScreen,\n setSelectedTemplate,\n title,\n titleHelpPopoverProps,\n }}\n />\n ) : (\n <Preview\n {...{\n afterCreate,\n refetchResource,\n selectedTemplate,\n setCurrentScreen,\n }}\n />\n )}\n </Dialog.Body>\n </Dialog>\n );\n};\n\nexport default CreateTemplateModal;\n"],"names":["TEMPLATE_SCREENS","LIST","PREVIEW","DEFAULT_CATEGORY","id","name","INFINITE_SCROLL_DELAY","RESPONSIVE_DEVICES","DESKTOP","TABLET","MOBILE","BlankCard","_ref","Icon","icon","title","description","_ref$onClick","onClick","noop","_ref$disabled","disabled","_jsxs","className","tabIndex","children","_jsx","size","Typography","variant","weight","Card","template","src","imageUrl","concat","CLOUDFRONT_BASE_URL","CategoryItem","label","count","isActive","setCurrentCategory","joinHyphenCase","classnames","List","_ProductTypefaceLogos","setCurrentScreen","setSelectedTemplate","onCreate","isCreating","afterCreate","refetchResource","titleHelpPopoverProps","_useTranslation","useTranslation","t","productName","globalProps","appName","substr","logoName","capitalize","toLowerCase","ProductTypefaceLogo","ProductTypefaceLogos","Neeto","_useState","useState","_useState2","_slicedToArray","currentCategory","_useState3","_useState4","searchTerm","setSearchTerm","_useFetchTemplates","useFetchTemplates","category","_useFetchTemplates$ha","hasNextPage","fetchNextPage","isTemplatesLoading","isLoading","_useFetchTemplates$da","data","_useInfiniteScroll","useInfiniteScroll","loading","onLoadMore","rootMargin","delayInMs","_useInfiniteScroll2","sentryRef","rootRef","handleCardClick","Spinner","_data$tags","tags","_data$templates","templates","_data$templatesCount","templatesCount","categories","_objectSpread","_toConsumableArray","Accordion","collapsible","Item","map","_ref2","_createElement","key","_ref3","ref","isPresent","HelpPopover","side","Search","autoFocus","disableTrimOnBlur","placeholder","onSearch","value","CustomSVG","index","Preview","selectedTemplate","_useBreakpoints","useBreakpoints","isSize","_useCreateTemplate","useCreateTemplate","createTemplate","mutate","isPending","selectedDevice","setSelectedDevice","handleCreateTemplate","onSuccess","response","previewUrl","ResponsiveDevicePicker","onDeviceChange","Button","CreateTemplateModal","isOpen","onClose","_ref$onCreate","_ref$afterCreate","_ref$titleHelpPopover","currentScreen","onModalClose","setTimeout","Dialog","closeButton","Header","Title","Body"],"mappings":"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"}