@bigbinary/neeto-templates-frontend 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CreateTemplateModal.js +633 -0
- package/dist/CreateTemplateModal.js.map +1 -0
- package/dist/TemplateSettings.js +349 -0
- package/dist/TemplateSettings.js.map +1 -0
- package/dist/TemplateTags.js +115 -0
- package/dist/TemplateTags.js.map +1 -0
- package/dist/cjs/CreateTemplateModal.js +664 -0
- package/dist/cjs/CreateTemplateModal.js.map +1 -0
- package/dist/cjs/TemplateSettings.js +363 -0
- package/dist/cjs/TemplateSettings.js.map +1 -0
- package/dist/cjs/TemplateTags.js +121 -0
- package/dist/cjs/TemplateTags.js.map +1 -0
- package/dist/cjs/index.js +46 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/index.js +32 -1294
- package/dist/index.js.map +1 -1
- package/dist/query-96f06430.js +68 -0
- package/dist/query-96f06430.js.map +1 -0
- package/dist/query-ddc455b2.js +60 -0
- package/dist/query-ddc455b2.js.map +1 -0
- package/dist/useTemplatesApi-81e0a50f.js +179 -0
- package/dist/useTemplatesApi-81e0a50f.js.map +1 -0
- package/dist/useTemplatesApi-f81c070d.js +190 -0
- package/dist/useTemplatesApi-f81c070d.js.map +1 -0
- package/package.json +27 -14
- package/dist/index.cjs.js +0 -1341
- package/dist/index.cjs.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateTemplateModal.js","sources":["../../app/javascript/src/components/CreateTemplateModal/constants.js","../../node_modules/react-intersection-observer-hook/dist/react-intersection-observer-hook.esm.js","../../node_modules/react-infinite-scroll-hook/dist/react-infinite-scroll-hook.esm.js","../../app/javascript/src/assets/dashboard/custom.svg","../../app/javascript/src/components/CreateTemplateModal/BlankCard.jsx","../../app/javascript/src/components/CreateTemplateModal/Card.jsx","../../app/javascript/src/components/CreateTemplateModal/CategoryItem.jsx","../../app/javascript/src/components/CreateTemplateModal/List.jsx","../../app/javascript/src/components/CreateTemplateModal/Preview.jsx","../../app/javascript/src/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 { useRef, useState, useCallback } from 'react';\n\nfunction createObserverCache() {\n var cachesByRoot = new Map();\n\n function getObserver(_ref) {\n var root = _ref.root,\n rootMargin = _ref.rootMargin,\n threshold = _ref.threshold;\n var cacheByRoot = cachesByRoot.get(root);\n\n if (!cacheByRoot) {\n cacheByRoot = new Map();\n cachesByRoot.set(root, cacheByRoot);\n }\n\n var cacheKey = JSON.stringify({\n rootMargin: rootMargin,\n threshold: threshold\n });\n var cachedObserver = cacheByRoot.get(cacheKey);\n\n if (!cachedObserver) {\n var entryCallbacks = new Map();\n var observer = new IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n var callback = entryCallbacks.get(entry.target);\n callback == null ? void 0 : callback(entry);\n });\n }, {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold\n });\n cachedObserver = {\n observer: observer,\n entryCallbacks: entryCallbacks\n };\n cacheByRoot.set(cacheKey, cachedObserver);\n }\n\n return {\n observe: function observe(node, callback) {\n var _cachedObserver, _cachedObserver2;\n\n (_cachedObserver = cachedObserver) == null ? void 0 : _cachedObserver.entryCallbacks.set(node, callback);\n (_cachedObserver2 = cachedObserver) == null ? void 0 : _cachedObserver2.observer.observe(node);\n },\n unobserve: function unobserve(node) {\n var _cachedObserver3, _cachedObserver4;\n\n (_cachedObserver3 = cachedObserver) == null ? void 0 : _cachedObserver3.entryCallbacks[\"delete\"](node);\n (_cachedObserver4 = cachedObserver) == null ? void 0 : _cachedObserver4.observer.unobserve(node);\n }\n };\n }\n\n return {\n getObserver: getObserver\n };\n}\n\nvar DEFAULT_ROOT_MARGIN = '0px';\nvar DEFAULT_THRESHOLD = [0];\nvar observerCache = /*#__PURE__*/createObserverCache(); // For more info:\n// https://developers.google.com/web/updates/2016/04/intersectionobserver\n// https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n\nfunction useIntersectionObserver(args) {\n var _args$rootMargin, _args$threshold;\n\n var rootMargin = (_args$rootMargin = args == null ? void 0 : args.rootMargin) != null ? _args$rootMargin : DEFAULT_ROOT_MARGIN;\n var threshold = (_args$threshold = args == null ? void 0 : args.threshold) != null ? _args$threshold : DEFAULT_THRESHOLD;\n var nodeRef = useRef(null);\n var rootRef = useRef(null);\n var observerRef = useRef(null);\n\n var _useState = useState(),\n entry = _useState[0],\n setEntry = _useState[1];\n\n var observe = useCallback(function () {\n var node = nodeRef.current;\n\n if (!node) {\n setEntry(undefined);\n return;\n }\n\n var observer = observerCache.getObserver({\n root: rootRef.current,\n rootMargin: rootMargin,\n threshold: threshold\n });\n observer.observe(node, function (observedEntry) {\n setEntry(observedEntry);\n });\n observerRef.current = observer;\n }, [rootMargin, threshold]);\n var unobserve = useCallback(function () {\n var currentObserver = observerRef.current;\n var node = nodeRef.current;\n\n if (node) {\n currentObserver == null ? void 0 : currentObserver.unobserve(node);\n }\n\n observerRef.current = null;\n }, []); // React will call the ref callback with the DOM element when the component mounts,\n // and call it with null when it unmounts.\n // So, we don't need an useEffect etc to unobserve nodes.\n // When nodeRef.current is null, it will be unobserved and observe function\n // won't do anything.\n\n var refCallback = useCallback(function (node) {\n unobserve();\n nodeRef.current = node;\n observe();\n }, [observe, unobserve]);\n var rootRefCallback = useCallback(function (rootNode) {\n unobserve();\n rootRef.current = rootNode;\n observe();\n }, [observe, unobserve]);\n return [refCallback, {\n entry: entry,\n rootRef: rootRefCallback\n }];\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction useTrackVisibility(args) {\n var _result$entry;\n\n var _useIntersectionObser = useIntersectionObserver(args),\n ref = _useIntersectionObser[0],\n result = _useIntersectionObser[1];\n\n var isVisible = Boolean((_result$entry = result.entry) == null ? void 0 : _result$entry.isIntersecting);\n\n var _useState = useState(isVisible),\n wasEverVisible = _useState[0],\n setWasEverVisible = _useState[1];\n\n if (isVisible && !wasEverVisible) {\n setWasEverVisible(true);\n }\n\n return [ref, _extends({}, result, {\n isVisible: isVisible,\n wasEverVisible: wasEverVisible\n })];\n}\n\nexport { useIntersectionObserver, useTrackVisibility };\n//# sourceMappingURL=react-intersection-observer-hook.esm.js.map\n","import { useEffect } from 'react';\nimport { useTrackVisibility } from 'react-intersection-observer-hook';\n\nvar DEFAULT_DELAY_IN_MS = 100;\n\nfunction useInfiniteScroll(_ref) {\n var loading = _ref.loading,\n hasNextPage = _ref.hasNextPage,\n onLoadMore = _ref.onLoadMore,\n rootMargin = _ref.rootMargin,\n disabled = _ref.disabled,\n _ref$delayInMs = _ref.delayInMs,\n delayInMs = _ref$delayInMs === void 0 ? DEFAULT_DELAY_IN_MS : _ref$delayInMs;\n\n var _useTrackVisibility = useTrackVisibility({\n rootMargin: rootMargin\n }),\n ref = _useTrackVisibility[0],\n _useTrackVisibility$ = _useTrackVisibility[1],\n rootRef = _useTrackVisibility$.rootRef,\n isVisible = _useTrackVisibility$.isVisible;\n\n var shouldLoadMore = !disabled && !loading && isVisible && hasNextPage; // eslint-disable-next-line consistent-return\n\n useEffect(function () {\n if (shouldLoadMore) {\n // When we trigger 'onLoadMore' and new items are added to the list,\n // right before they become rendered on the screen, 'loading' becomes false\n // and 'isVisible' can be true for a brief time, based on the scroll position.\n // So, it triggers 'onLoadMore' just after the first one is finished.\n // We use a small delay here to prevent this kind of situations.\n // It can be configured by hook args.\n var timer = setTimeout(function () {\n onLoadMore();\n }, delayInMs);\n return function () {\n clearTimeout(timer);\n };\n }\n }, [onLoadMore, shouldLoadMore, delayInMs]);\n return [ref, {\n rootRef: rootRef\n }];\n}\n\nexport default useInfiniteScroll;\n//# sourceMappingURL=react-infinite-scroll-hook.esm.js.map\n","<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"46\" height=\"46\" fill=\"none\" viewBox=\"0 0 46 46\"><rect width=\"40\" height=\"40\" x=\"3\" y=\"2\" fill=\"#008068\" rx=\"2\"/><path fill=\"#fff\" fill-rule=\"evenodd\" d=\"M23.75 16C23.75 15.5858 23.4142 15.25 23 15.25C22.5858 15.25 22.25 15.5858 22.25 16V21.25H17C16.5858 21.25 16.25 21.5858 16.25 22C16.25 22.4142 16.5858 22.75 17 22.75H22.25V28C22.25 28.4142 22.5858 28.75 23 28.75C23.4142 28.75 23.75 28.4142 23.75 28V22.75H29C29.4142 22.75 29.75 22.4142 29.75 22C29.75 21.5858 29.4142 21.25 29 21.25H23.75V16Z\" clip-rule=\"evenodd\"/></svg>\n","import React from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nconst BlankCard = ({\n icon: Icon,\n title,\n description,\n onClick = noop,\n disabled = false,\n}) => (\n <div\n className=\"neeto-ui-rounded-lg neeto-ui-bg-white hover:neeto-ui-bg-white neeto-ui-border-primary-500 flex cursor-pointer flex-col items-center justify-center border border-dashed p-6 outline-none transition-all duration-300 ease-in-out hover:border-solid focus:border-solid\"\n data-cy=\"start-from-scratch-button\"\n tabIndex={0}\n onClick={!disabled ? onClick : noop}\n >\n <div className=\"neeto-ui-text-primary-500 mb-4\">\n <Icon size={40} />\n </div>\n <Typography\n className=\"text-center\"\n lineHeight=\"normal\"\n style=\"h5\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n <Typography\n className=\"neeto-ui-text-gray-600 text-center\"\n lineHeight=\"leading-4\"\n style=\"body3\"\n >\n {description}\n </Typography>\n </div>\n);\n\nexport default BlankCard;\n","import React from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst Card = ({ template, onClick }) => (\n <div\n {...{ onClick }}\n className=\"neeto-template neeto-template-thumbnail neeto-ui-bg-white neeto-ui-shadow-xs hover:neeto-ui-border-gray-500 focus:neeto-ui-border-gray-500 neeto-ui-rounded-lg flex cursor-pointer flex-col overflow-hidden border outline-none transition-colors duration-300 ease-in-out\"\n data-cy=\"template-card\"\n tabIndex={0}\n >\n <div className=\"neeto-template__header relative overflow-hidden\">\n <img\n className=\"neeto-template__image\"\n data-cy=\"template-thumbnail-image\"\n src={\n template.imageUrl ||\n \"https://d2v7kzglnr2dnh.cloudfront.net/images/neetoForm/default-form-template.svg\"\n }\n />\n </div>\n <div className=\"neeto-template__description neeto-ui-bg-white 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\"\n data-cy=\"template-card-title\"\n lineHeight=\"normal\"\n style=\"h5\"\n >\n {template.title}\n </Typography>\n </div>\n </div>\n);\n\nexport default Card;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { joinHyphenCase } from \"neetocommons/utils\";\n\nconst CategoryItem = ({ label, count, isActive, setCurrentCategory }) => (\n <button\n data-cy={`category-${joinHyphenCase(label)}`}\n tabIndex={0}\n className={classnames(\n \"neeto-ui-rounded-lg outline-none flex w-full items-center justify-between gap-2 border border-solid px-3 py-2 text-sm font-medium leading-4 transition-all duration-300 ease-in-out\",\n {\n \"neeto-ui-text-gray-700 hover:neeto-ui-bg-gray-200 focus:neeto-ui-bg-gray-200 border-transparent\":\n !isActive,\n \"neeto-ui-text-gray-800 neeto-ui-bg-white neeto-ui-border-gray-300 focus:neeto-ui-border-gray-500\":\n isActive,\n }\n )}\n onClick={setCurrentCategory}\n >\n <span>{label}</span>\n <span>{count}</span>\n </button>\n);\n\nexport default CategoryItem;\n","import React, { useState } from \"react\";\n\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport Search from \"neetomolecules/Search\";\nimport { Spinner, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\nimport useInfiniteScroll from \"react-infinite-scroll-hook\";\n\nimport CustomSVG from \"assets/dashboard/custom\";\nimport { useFetchTemplates } from \"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}) => {\n const { t } = useTranslation();\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 <PageLoader />;\n }\n\n const { tags = [], templates = [], templatesCount = 0 } = data;\n\n const categories = [{ ...DEFAULT_CATEGORY, count: templatesCount }, ...tags];\n\n return (\n <div className=\"neeto-ui-bg-gray-100 relative flex min-h-full items-start\">\n <div className=\"sticky left-0 top-0 w-52 flex-shrink-0 space-y-8 py-6 pl-4 md:w-72 md:pl-10 lg:w-80 xl:pl-16\">\n <div className=\"space-y-4\">\n <div className=\"space-y-1\">\n <Typography\n data-cy=\"create-new-form-title\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoTemplate.templates.createNewEntity\")}\n </Typography>\n <Typography lineHeight=\"normal\" style=\"body2\">\n {t(\"neetoTemplate.templates.description\")}\n </Typography>\n </div>\n <Search\n autoFocus\n disableTrimOnBlur\n data-cy=\"template-search-input\"\n placeholder={t(\"neetoTemplate.templates.search\")}\n onSearch={value => setSearchTerm(value)}\n />\n </div>\n <div className=\"space-y-3\">\n <Typography\n className=\"uppercase\"\n data-cy=\"template-categories-label\"\n style=\"h6\"\n >\n {t(\"neetoTemplate.templates.categories\")}\n </Typography>\n <div className=\"space-y-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 className=\"h-screen w-full overflow-y-auto py-8 pl-5 pr-4 md:pl-8 md:pr-20 xl:px-20\"\n ref={rootRef}\n >\n <div className=\"flex-grow space-y-6\">\n <div className=\"grid grid-cols-1 gap-4 md: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 React, { useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useBreakpoints } from \"neetocommons/react-utils\";\nimport ResponsiveDevicePicker from \"neetomolecules/ResponsiveDevicePicker\";\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateTemplate } from \"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 neeto-ui-border-gray-200 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-cy=\"preview-template-title\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {title}\n </Typography>\n </div>\n <div className=\"hidden flex-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=\"flex-shrink-0\"\n data-cy=\"preview-template-back-button\"\n style=\"secondary\"\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=\"flex-shrink-0\"\n data-cy=\"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=\"neeto-ui-bg-gray-200 neeto-templates-full-page-preview__holder-wrapper min-h-0 flex-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-cy=\"iframe-id\"\n src={previewUrl}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\nexport default Preview;\n","import React, { useState } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { Modal } from \"neetoui\";\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}) => {\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 <Modal\n {...{ isOpen }}\n className=\"neeto-template-list h-screen w-screen overflow-y-auto\"\n closeButton={currentScreen === TEMPLATE_SCREENS.LIST}\n size=\"fullScreen\"\n onClose={onModalClose}\n >\n {currentScreen === TEMPLATE_SCREENS.LIST ? (\n <List\n {...{\n afterCreate,\n isCreating,\n onCreate,\n refetchResource,\n setCurrentScreen,\n setSelectedTemplate,\n }}\n />\n ) : (\n <Preview\n {...{\n afterCreate,\n refetchResource,\n selectedTemplate,\n setCurrentScreen,\n }}\n />\n )}\n </Modal>\n );\n};\n\nexport default CreateTemplateModal;\n"],"names":["TEMPLATE_SCREENS","LIST","PREVIEW","DEFAULT_CATEGORY","id","name","INFINITE_SCROLL_DELAY","RESPONSIVE_DEVICES","DESKTOP","TABLET","MOBILE","useRef","useState","useCallback","_extends","useEffect","React","BlankCard","_ref","Icon","icon","title","description","_ref$onClick","onClick","noop","_ref$disabled","disabled","_jsxs","className","tabIndex","children","_jsx","size","Typography","lineHeight","style","weight","Card","template","src","imageUrl","CategoryItem","label","count","isActive","setCurrentCategory","concat","joinHyphenCase","classnames","List","setCurrentScreen","setSelectedTemplate","onCreate","isCreating","afterCreate","refetchResource","_useTranslation","useTranslation","t","_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","PageLoader","_data$tags","tags","_data$templates","templates","_data$templatesCount","templatesCount","categories","_objectSpread","_toConsumableArray","Search","autoFocus","disableTrimOnBlur","placeholder","onSearch","value","map","_ref2","_createElement","key","ref","Spinner","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","currentScreen","onModalClose","setTimeout","Modal","closeButton"],"mappings":"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"}
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var query = require('../query-96f06430.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var classnames = require('classnames');
|
|
6
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
7
|
+
var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
|
|
8
|
+
var Typography = require('@bigbinary/neetoui/Typography');
|
|
9
|
+
var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
|
|
10
|
+
var Form = require('@bigbinary/neetoui/formik/Form');
|
|
11
|
+
var reactI18next = require('react-i18next');
|
|
12
|
+
var reactRouterDom = require('react-router-dom');
|
|
13
|
+
var useTemplatesApi = require('../useTemplatesApi-f81c070d.js');
|
|
14
|
+
var neetoTagsFrontend = require('@bigbinary/neeto-tags-frontend');
|
|
15
|
+
var reactQuery = require('@tanstack/react-query');
|
|
16
|
+
var axios = require('axios');
|
|
17
|
+
var neetoImageUploaderFrontend = require('@bigbinary/neeto-image-uploader-frontend');
|
|
18
|
+
var formik = require('formik');
|
|
19
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
20
|
+
var Header = require('@bigbinary/neeto-molecules/Header');
|
|
21
|
+
var Scrollable = require('@bigbinary/neeto-molecules/Scrollable');
|
|
22
|
+
var Label = require('@bigbinary/neetoui/Label');
|
|
23
|
+
var ramda = require('ramda');
|
|
24
|
+
require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
25
|
+
|
|
26
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
27
|
+
|
|
28
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
29
|
+
var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
|
|
30
|
+
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
31
|
+
var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
|
|
32
|
+
var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form);
|
|
33
|
+
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
34
|
+
var Header__default = /*#__PURE__*/_interopDefaultLegacy(Header);
|
|
35
|
+
var Scrollable__default = /*#__PURE__*/_interopDefaultLegacy(Scrollable);
|
|
36
|
+
var Label__default = /*#__PURE__*/_interopDefaultLegacy(Label);
|
|
37
|
+
|
|
38
|
+
var create = function create(payload) {
|
|
39
|
+
return axios__default["default"].post(query.TEMPLATE_TAGS_URL, {
|
|
40
|
+
tag: payload
|
|
41
|
+
}, {
|
|
42
|
+
showToastr: false
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
var list = function list() {
|
|
46
|
+
return axios__default["default"].get(query.TEMPLATE_TAGS_URL);
|
|
47
|
+
};
|
|
48
|
+
var templateTagsApi = {
|
|
49
|
+
create: create,
|
|
50
|
+
list: list
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
function ownKeys$2(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; }
|
|
54
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { query._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
55
|
+
var useCreateTemplateTag = function useCreateTemplateTag(options) {
|
|
56
|
+
return reactQuery.useMutation(_objectSpread$2(_objectSpread$2({
|
|
57
|
+
mutationFn: templateTagsApi.create
|
|
58
|
+
}, options), {}, {
|
|
59
|
+
onSuccess: function onSuccess() {
|
|
60
|
+
var _options$onSuccess;
|
|
61
|
+
neetoTagsFrontend.refetchTags();
|
|
62
|
+
options === null || options === void 0 || (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 || _options$onSuccess.call(options);
|
|
63
|
+
}
|
|
64
|
+
}));
|
|
65
|
+
};
|
|
66
|
+
var useFetchTemplateTags = function useFetchTemplateTags() {
|
|
67
|
+
return reactQuery.useQuery({
|
|
68
|
+
queryKey: [query.QUERY_KEYS.TEMPLATE_TAGS],
|
|
69
|
+
queryFn: templateTagsApi.list
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var FormikImageUploader = function FormikImageUploader(_ref) {
|
|
74
|
+
var name = _ref.name;
|
|
75
|
+
var _useField = formik.useField(name),
|
|
76
|
+
_useField2 = useTemplatesApi._slicedToArray(_useField, 3),
|
|
77
|
+
field = _useField2[0];
|
|
78
|
+
_useField2[1];
|
|
79
|
+
var setValue = _useField2[2].setValue;
|
|
80
|
+
var _useFormikContext = formik.useFormikContext(),
|
|
81
|
+
setFieldValue = _useFormikContext.setFieldValue;
|
|
82
|
+
var handleImageUpload = function handleImageUpload(file) {
|
|
83
|
+
setFieldValue("imageSignedId", file.signedId);
|
|
84
|
+
return setValue(file.url);
|
|
85
|
+
};
|
|
86
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoImageUploaderFrontend.ImageUploader, {
|
|
87
|
+
className: "h-52 w-full md:h-80",
|
|
88
|
+
src: field.value,
|
|
89
|
+
uploadConfig: query.IMAGE_UPLOAD_CONFIG,
|
|
90
|
+
onUploadComplete: handleImageUpload
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
var PageWrapper = function PageWrapper(_ref) {
|
|
95
|
+
var children = _ref.children,
|
|
96
|
+
className = _ref.className;
|
|
97
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
98
|
+
className: classnames__default["default"]("w-full flex-col", className),
|
|
99
|
+
children: children
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
var PageHeader = function PageHeader(_ref2) {
|
|
103
|
+
var title = _ref2.title,
|
|
104
|
+
breadcrumbs = _ref2.breadcrumbs;
|
|
105
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
106
|
+
className: "w-full px-6",
|
|
107
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Header__default["default"], {
|
|
108
|
+
breadcrumbs: breadcrumbs,
|
|
109
|
+
size: "small",
|
|
110
|
+
title: title
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
var customPropEqualityCheck = function customPropEqualityCheck(prevProps, nextProps) {
|
|
115
|
+
return prevProps.title === nextProps.title && prevProps.breadcrumbs === nextProps.breadcrumbs;
|
|
116
|
+
};
|
|
117
|
+
var MemoizedPageHeader = /*#__PURE__*/React.memo(PageHeader, customPropEqualityCheck);
|
|
118
|
+
var PageContent = function PageContent(_ref3) {
|
|
119
|
+
var children = _ref3.children,
|
|
120
|
+
_ref3$className = _ref3.className,
|
|
121
|
+
className = _ref3$className === void 0 ? "" : _ref3$className;
|
|
122
|
+
return /*#__PURE__*/jsxRuntime.jsx(Scrollable__default["default"], {
|
|
123
|
+
className: "w-full px-6 pb-6",
|
|
124
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
125
|
+
className: classnames__default["default"](["mx-auto max-w-7xl", className]),
|
|
126
|
+
children: children
|
|
127
|
+
})
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
function ownKeys$1(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; }
|
|
132
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { query._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
133
|
+
var Tags = function Tags(_ref) {
|
|
134
|
+
var allTags = _ref.allTags,
|
|
135
|
+
selectedTags = _ref.selectedTags,
|
|
136
|
+
onUpdate = _ref.onUpdate,
|
|
137
|
+
onCreate = _ref.onCreate,
|
|
138
|
+
isLoading = _ref.isLoading,
|
|
139
|
+
className = _ref.className,
|
|
140
|
+
_ref$labelProps = _ref.labelProps,
|
|
141
|
+
labelProps = _ref$labelProps === void 0 ? {} : _ref$labelProps;
|
|
142
|
+
var handleTagSelect = function handleTagSelect(newTag) {
|
|
143
|
+
return onUpdate([].concat(useTemplatesApi._toConsumableArray(selectedTags), [newTag]));
|
|
144
|
+
};
|
|
145
|
+
var handleTagRemove = function handleTagRemove(removedTag) {
|
|
146
|
+
var updatedTags = neetoCist.removeBy({
|
|
147
|
+
value: removedTag.value
|
|
148
|
+
}, selectedTags);
|
|
149
|
+
onUpdate(updatedTags);
|
|
150
|
+
};
|
|
151
|
+
var handleTagCreate = function handleTagCreate(tagName) {
|
|
152
|
+
onCreate({
|
|
153
|
+
name: tagName
|
|
154
|
+
}, {
|
|
155
|
+
onSuccess: function onSuccess(_ref2) {
|
|
156
|
+
var tag = _ref2.tag;
|
|
157
|
+
return handleTagSelect({
|
|
158
|
+
value: tag.id,
|
|
159
|
+
label: tag.name
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
165
|
+
className: className,
|
|
166
|
+
children: [labelProps.label && /*#__PURE__*/jsxRuntime.jsx(Label__default["default"], _objectSpread$1(_objectSpread$1({}, labelProps), {}, {
|
|
167
|
+
children: labelProps.label
|
|
168
|
+
})), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
169
|
+
className: "neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-ui-bg-white border p-4",
|
|
170
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoTagsFrontend.TagsComponent, {
|
|
171
|
+
allTags: allTags,
|
|
172
|
+
selectedTags: selectedTags,
|
|
173
|
+
buttonProps: {
|
|
174
|
+
loading: isLoading,
|
|
175
|
+
disabled: isLoading,
|
|
176
|
+
iconPosition: "left"
|
|
177
|
+
},
|
|
178
|
+
onTagCreate: handleTagCreate,
|
|
179
|
+
onTagDelete: handleTagRemove,
|
|
180
|
+
onTagSelect: handleTagSelect
|
|
181
|
+
})
|
|
182
|
+
})]
|
|
183
|
+
});
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
var Preview = function Preview(_ref) {
|
|
187
|
+
var template = _ref.template,
|
|
188
|
+
imageUrl = _ref.imageUrl;
|
|
189
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
190
|
+
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",
|
|
191
|
+
tabIndex: 0,
|
|
192
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
193
|
+
className: "neeto-template__header",
|
|
194
|
+
children: /*#__PURE__*/jsxRuntime.jsx("img", {
|
|
195
|
+
className: "neeto-template__image",
|
|
196
|
+
"data-cy": "template-image-preview",
|
|
197
|
+
src: imageUrl || "https://d2v7kzglnr2dnh.cloudfront.net/images/neetoForm/default-form-template.svg"
|
|
198
|
+
})
|
|
199
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
200
|
+
className: "neeto-ui-bg-white flex items-center justify-between gap-2 rounded-b-lg px-2 py-1.5",
|
|
201
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
202
|
+
className: "neeto-ui-text-gray-800",
|
|
203
|
+
"data-cy": "template-title-text",
|
|
204
|
+
lineHeight: "normal",
|
|
205
|
+
style: "body2",
|
|
206
|
+
children: template.title
|
|
207
|
+
})
|
|
208
|
+
})]
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
var buildSelectOptionsBy = function buildSelectOptionsBy(labelField) {
|
|
213
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
214
|
+
var valueField = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "id";
|
|
215
|
+
return options.map(function (option) {
|
|
216
|
+
return {
|
|
217
|
+
value: option[valueField],
|
|
218
|
+
label: option[labelField]
|
|
219
|
+
};
|
|
220
|
+
});
|
|
221
|
+
};
|
|
222
|
+
var buildTagOptions = function buildTagOptions() {
|
|
223
|
+
var tags = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
224
|
+
return neetoCist.renameKeys({
|
|
225
|
+
id: "value",
|
|
226
|
+
name: "label"
|
|
227
|
+
}, tags);
|
|
228
|
+
};
|
|
229
|
+
var buildTemplateUpdatePayload = function buildTemplateUpdatePayload(values) {
|
|
230
|
+
return {
|
|
231
|
+
image: values.imageSignedId || null,
|
|
232
|
+
tagIds: ramda.pluck("value", values === null || values === void 0 ? void 0 : values.tags)
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
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; }
|
|
237
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { query._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; }
|
|
238
|
+
var TemplateSettings = function TemplateSettings(_ref) {
|
|
239
|
+
var _ref$onCancelTemplate = _ref.onCancelTemplatePreview,
|
|
240
|
+
onCancelTemplatePreview = _ref$onCancelTemplate === void 0 ? "" : _ref$onCancelTemplate,
|
|
241
|
+
_ref$breadcrumbs = _ref.breadcrumbs,
|
|
242
|
+
breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
|
|
243
|
+
_ref$className = _ref.className,
|
|
244
|
+
className = _ref$className === void 0 ? "" : _ref$className;
|
|
245
|
+
var _useParams = reactRouterDom.useParams(),
|
|
246
|
+
resourceId = _useParams.id;
|
|
247
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
248
|
+
t = _useTranslation.t;
|
|
249
|
+
var _useFetchTemplate = useTemplatesApi.useFetchTemplate({
|
|
250
|
+
resourceId: resourceId
|
|
251
|
+
}),
|
|
252
|
+
data = _useFetchTemplate.data,
|
|
253
|
+
isFetchingTemplate = _useFetchTemplate.isLoading;
|
|
254
|
+
var _useUpdateTemplate = useTemplatesApi.useUpdateTemplate({
|
|
255
|
+
resourceId: resourceId
|
|
256
|
+
}),
|
|
257
|
+
updateTemplate = _useUpdateTemplate.mutate,
|
|
258
|
+
isUpdatingTemplate = _useUpdateTemplate.isPending;
|
|
259
|
+
var _useCreateTemplateTag = useCreateTemplateTag(),
|
|
260
|
+
createTemplateTag = _useCreateTemplateTag.mutate,
|
|
261
|
+
isCreatingTags = _useCreateTemplateTag.isPending;
|
|
262
|
+
var _useFetchTemplateTags = useFetchTemplateTags(),
|
|
263
|
+
_useFetchTemplateTags2 = _useFetchTemplateTags.data,
|
|
264
|
+
templateTags = _useFetchTemplateTags2 === void 0 ? {} : _useFetchTemplateTags2,
|
|
265
|
+
isTagsLoading = _useFetchTemplateTags.isLoading;
|
|
266
|
+
var handleSubmit = function handleSubmit(values) {
|
|
267
|
+
updateTemplate({
|
|
268
|
+
template: buildTemplateUpdatePayload(values)
|
|
269
|
+
});
|
|
270
|
+
};
|
|
271
|
+
var isLoading = isFetchingTemplate || isTagsLoading;
|
|
272
|
+
var tags = buildTagOptions(data === null || data === void 0 ? void 0 : data.tags);
|
|
273
|
+
var resourceInitialValues = _objectSpread(_objectSpread({
|
|
274
|
+
imageUrl: null
|
|
275
|
+
}, data), {}, {
|
|
276
|
+
tags: tags
|
|
277
|
+
});
|
|
278
|
+
return /*#__PURE__*/jsxRuntime.jsxs(PageWrapper, {
|
|
279
|
+
className: className,
|
|
280
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(MemoizedPageHeader, {
|
|
281
|
+
breadcrumbs: breadcrumbs,
|
|
282
|
+
title: t("neetoTemplate.templateSettings.title")
|
|
283
|
+
}), /*#__PURE__*/jsxRuntime.jsx(PageContent, {
|
|
284
|
+
className: classnames__default["default"]({
|
|
285
|
+
"min-h-0": !isLoading,
|
|
286
|
+
"h-full": isLoading
|
|
287
|
+
}),
|
|
288
|
+
children: isLoading ? /*#__PURE__*/jsxRuntime.jsx(PageLoader__default["default"], {}) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
289
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
290
|
+
className: "mb-1",
|
|
291
|
+
"data-cy": "thank-you-action-text",
|
|
292
|
+
style: "h2",
|
|
293
|
+
weight: "semibold",
|
|
294
|
+
children: t("neetoTemplate.templateSettings.configureTemplates")
|
|
295
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
296
|
+
className: "mb-2",
|
|
297
|
+
"data-cy": "thank-you-description-label",
|
|
298
|
+
style: "body2",
|
|
299
|
+
children: t("neetoTemplate.templateSettings.subText")
|
|
300
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Form__default["default"], {
|
|
301
|
+
formikProps: {
|
|
302
|
+
enableReinitialize: true,
|
|
303
|
+
initialValues: resourceInitialValues,
|
|
304
|
+
onSubmit: handleSubmit
|
|
305
|
+
},
|
|
306
|
+
children: function children(_ref2) {
|
|
307
|
+
var values = _ref2.values,
|
|
308
|
+
setFieldValue = _ref2.setFieldValue;
|
|
309
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
310
|
+
className: "grid grid-cols-2 gap-8 pt-6",
|
|
311
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
312
|
+
className: "space-y-4",
|
|
313
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
314
|
+
className: "mb-3",
|
|
315
|
+
style: "h4",
|
|
316
|
+
weight: "semibold",
|
|
317
|
+
children: t("neetoTemplate.templateSettings.imageLabel")
|
|
318
|
+
}), /*#__PURE__*/jsxRuntime.jsx(FormikImageUploader, {
|
|
319
|
+
name: "imageUrl"
|
|
320
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Tags, {
|
|
321
|
+
allTags: buildSelectOptionsBy("name", templateTags.tags),
|
|
322
|
+
className: "space-y-2",
|
|
323
|
+
isLoading: isCreatingTags,
|
|
324
|
+
selectedTags: values.tags,
|
|
325
|
+
labelProps: {
|
|
326
|
+
label: t("neetoTemplate.templateSettings.categoryLabel")
|
|
327
|
+
},
|
|
328
|
+
onCreate: createTemplateTag,
|
|
329
|
+
onUpdate: function onUpdate(tags) {
|
|
330
|
+
return setFieldValue("tags", tags);
|
|
331
|
+
}
|
|
332
|
+
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
333
|
+
className: "mt-12 flex flex-row items-center justify-start",
|
|
334
|
+
children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock__default["default"], {
|
|
335
|
+
isSubmitting: isUpdatingTemplate,
|
|
336
|
+
cancelButtonProps: {
|
|
337
|
+
to: onCancelTemplatePreview,
|
|
338
|
+
"data-cy": "reset-changes-button",
|
|
339
|
+
onClick: neetoCist.noop
|
|
340
|
+
}
|
|
341
|
+
})
|
|
342
|
+
})]
|
|
343
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
344
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
345
|
+
className: "mb-3",
|
|
346
|
+
style: "h4",
|
|
347
|
+
weight: "semibold",
|
|
348
|
+
children: t("neetoTemplate.templateSettings.previewLabel")
|
|
349
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Preview, {
|
|
350
|
+
imageUrl: values.imageUrl,
|
|
351
|
+
template: data
|
|
352
|
+
})]
|
|
353
|
+
})]
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
})]
|
|
357
|
+
})
|
|
358
|
+
})]
|
|
359
|
+
});
|
|
360
|
+
};
|
|
361
|
+
|
|
362
|
+
module.exports = TemplateSettings;
|
|
363
|
+
//# sourceMappingURL=TemplateSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateSettings.js","sources":["../../app/javascript/src/apis/template_tags.js","../../app/javascript/src/hooks/reactQuery/useTemplateTagsApi.js","../../app/javascript/src/components/TemplateSettings/Common/FormikImageUploader.jsx","../../app/javascript/src/components/TemplateSettings/Common/SinglePageLayout.jsx","../../app/javascript/src/components/TemplateSettings/Common/Tags.jsx","../../app/javascript/src/components/TemplateSettings/Preview.jsx","../../app/javascript/src/components/TemplateSettings/utils.js","../../app/javascript/src/components/TemplateSettings/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { TEMPLATE_TAGS_URL } from \"src/constants\";\n\nconst create = payload =>\n axios.post(TEMPLATE_TAGS_URL, { tag: payload }, { showToastr: false });\nconst list = () => axios.get(TEMPLATE_TAGS_URL);\n\nconst templateTagsApi = { create, list };\n\nexport default templateTagsApi;\n","import { refetchTags } from \"@bigbinary/neeto-tags-frontend\";\nimport { useQuery, useMutation } from \"@tanstack/react-query\";\n\nimport templateTagsApi from \"src/apis/template_tags\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useCreateTemplateTag = options =>\n useMutation({\n mutationFn: templateTagsApi.create,\n ...options,\n onSuccess: () => {\n refetchTags();\n options?.onSuccess?.();\n },\n });\n\nconst useFetchTemplateTags = () =>\n useQuery({\n queryKey: [QUERY_KEYS.TEMPLATE_TAGS],\n queryFn: templateTagsApi.list,\n });\n\nexport { useCreateTemplateTag, useFetchTemplateTags };\n","import React from \"react\";\n\nimport { ImageUploader } from \"@bigbinary/neeto-image-uploader-frontend\";\nimport { useField, useFormikContext } from \"formik\";\n\nimport { IMAGE_UPLOAD_CONFIG } from \"src/constants\";\n\nconst FormikImageUploader = ({ name }) => {\n const [field, _, { setValue }] = useField(name);\n const { setFieldValue } = useFormikContext();\n\n const handleImageUpload = file => {\n setFieldValue(\"imageSignedId\", file.signedId);\n\n return setValue(file.url);\n };\n\n return (\n <ImageUploader\n className=\"h-52 w-full md:h-80\"\n src={field.value}\n uploadConfig={IMAGE_UPLOAD_CONFIG}\n onUploadComplete={handleImageUpload}\n />\n );\n};\n\nexport default FormikImageUploader;\n","import React, { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport Header from \"neetomolecules/Header\";\nimport Scrollable from \"neetomolecules/Scrollable\";\n\nconst PageWrapper = ({ children, className }) => (\n <div className={classnames(\"w-full flex-col\", className)}>{children}</div>\n);\n\nconst PageHeader = ({ title, breadcrumbs }) => (\n <div className=\"w-full px-6\">\n <Header breadcrumbs={breadcrumbs} size=\"small\" {...{ title }} />\n </div>\n);\n\nconst customPropEqualityCheck = (prevProps, nextProps) =>\n prevProps.title === nextProps.title &&\n prevProps.breadcrumbs === nextProps.breadcrumbs;\nconst MemoizedPageHeader = memo(PageHeader, customPropEqualityCheck);\n\nconst PageContent = ({ children, className = \"\" }) => (\n <Scrollable className=\"w-full px-6 pb-6\">\n <div className={classnames([\"mx-auto max-w-7xl\", className])}>\n {children}\n </div>\n </Scrollable>\n);\nexport { PageWrapper, MemoizedPageHeader as PageHeader, PageContent };\n","import React from \"react\";\n\nimport { TagsComponent } from \"@bigbinary/neeto-tags-frontend\";\nimport { removeBy } from \"neetocist\";\nimport { Label } from \"neetoui\";\n\nconst Tags = ({\n allTags,\n selectedTags,\n onUpdate,\n onCreate,\n isLoading,\n className,\n labelProps = {},\n}) => {\n const handleTagSelect = newTag => onUpdate([...selectedTags, newTag]);\n\n const handleTagRemove = removedTag => {\n const updatedTags = removeBy({ value: removedTag.value }, selectedTags);\n onUpdate(updatedTags);\n };\n\n const handleTagCreate = tagName => {\n onCreate(\n { name: tagName },\n {\n onSuccess: ({ tag }) =>\n handleTagSelect({ value: tag.id, label: tag.name }),\n }\n );\n };\n\n return (\n <div {...{ className }}>\n {labelProps.label && <Label {...labelProps}>{labelProps.label}</Label>}\n <div className=\"neeto-ui-border-gray-300 neeto-ui-rounded-lg neeto-ui-bg-white border p-4\">\n <TagsComponent\n {...{ allTags, selectedTags }}\n buttonProps={{\n loading: isLoading,\n disabled: isLoading,\n iconPosition: \"left\",\n }}\n onTagCreate={handleTagCreate}\n onTagDelete={handleTagRemove}\n onTagSelect={handleTagSelect}\n />\n </div>\n </div>\n );\n};\n\nexport default Tags;\n","import React from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst Preview = ({ template, imageUrl }) => (\n <div\n 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\"\n tabIndex={0}\n >\n <div className=\"neeto-template__header\">\n <img\n className=\"neeto-template__image\"\n data-cy=\"template-image-preview\"\n src={\n imageUrl ||\n \"https://d2v7kzglnr2dnh.cloudfront.net/images/neetoForm/default-form-template.svg\"\n }\n />\n </div>\n <div className=\"neeto-ui-bg-white flex items-center justify-between gap-2 rounded-b-lg px-2 py-1.5\">\n <Typography\n className=\"neeto-ui-text-gray-800\"\n data-cy=\"template-title-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {template.title}\n </Typography>\n </div>\n </div>\n);\n\nexport default Preview;\n","import { renameKeys } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nexport const buildSelectOptionsBy = (\n labelField,\n options = [],\n valueField = \"id\"\n) =>\n options.map(option => ({\n value: option[valueField],\n label: option[labelField],\n }));\n\nexport const buildTagOptions = (tags = []) =>\n renameKeys({ id: \"value\", name: \"label\" }, tags);\n\nexport const buildTemplateUpdatePayload = values => ({\n image: values.imageSignedId || null,\n tagIds: pluck(\"value\", values?.tags),\n});\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport { Typography } from \"neetoui\";\nimport { ActionBlock, Form } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\n\nimport {\n useFetchTemplate,\n useUpdateTemplate,\n} from \"hooks/reactQuery/useTemplatesApi\";\nimport {\n useCreateTemplateTag,\n useFetchTemplateTags,\n} from \"hooks/reactQuery/useTemplateTagsApi\";\n\nimport FormikImageUploader from \"./Common/FormikImageUploader\";\nimport {\n PageWrapper,\n PageHeader,\n PageContent,\n} from \"./Common/SinglePageLayout\";\nimport Tags from \"./Common/Tags\";\nimport Preview from \"./Preview\";\nimport {\n buildSelectOptionsBy,\n buildTagOptions,\n buildTemplateUpdatePayload,\n} from \"./utils\";\n\nconst TemplateSettings = ({\n onCancelTemplatePreview = \"\",\n breadcrumbs = [],\n className = \"\",\n}) => {\n const { id: resourceId } = useParams();\n const { t } = useTranslation();\n\n const { data, isLoading: isFetchingTemplate } = useFetchTemplate({\n resourceId,\n });\n\n const { mutate: updateTemplate, isPending: isUpdatingTemplate } =\n useUpdateTemplate({ resourceId });\n\n const { mutate: createTemplateTag, isPending: isCreatingTags } =\n useCreateTemplateTag();\n\n const { data: templateTags = {}, isLoading: isTagsLoading } =\n useFetchTemplateTags();\n\n const handleSubmit = values => {\n updateTemplate({ template: buildTemplateUpdatePayload(values) });\n };\n\n const isLoading = isFetchingTemplate || isTagsLoading;\n const tags = buildTagOptions(data?.tags);\n\n const resourceInitialValues = { imageUrl: null, ...data, tags };\n\n return (\n <PageWrapper {...{ className }}>\n <PageHeader\n {...{ breadcrumbs }}\n title={t(\"neetoTemplate.templateSettings.title\")}\n />\n <PageContent\n className={classnames({\n \"min-h-0\": !isLoading,\n \"h-full\": isLoading,\n })}\n >\n {isLoading ? (\n <PageLoader />\n ) : (\n <>\n <Typography\n className=\"mb-1\"\n data-cy=\"thank-you-action-text\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {t(\"neetoTemplate.templateSettings.configureTemplates\")}\n </Typography>\n <Typography\n className=\"mb-2\"\n data-cy=\"thank-you-description-label\"\n style=\"body2\"\n >\n {t(\"neetoTemplate.templateSettings.subText\")}\n </Typography>\n <Form\n formikProps={{\n enableReinitialize: true,\n initialValues: resourceInitialValues,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setFieldValue }) => (\n <div className=\"grid grid-cols-2 gap-8 pt-6\">\n <div className=\"space-y-4\">\n <Typography className=\"mb-3\" style=\"h4\" weight=\"semibold\">\n {t(\"neetoTemplate.templateSettings.imageLabel\")}\n </Typography>\n <FormikImageUploader name=\"imageUrl\" />\n <Tags\n allTags={buildSelectOptionsBy(\"name\", templateTags.tags)}\n className=\"space-y-2\"\n isLoading={isCreatingTags}\n selectedTags={values.tags}\n labelProps={{\n label: t(\n \"neetoTemplate.templateSettings.categoryLabel\"\n ),\n }}\n onCreate={createTemplateTag}\n onUpdate={tags => setFieldValue(\"tags\", tags)}\n />\n <div className=\"mt-12 flex flex-row items-center justify-start\">\n <ActionBlock\n isSubmitting={isUpdatingTemplate}\n cancelButtonProps={{\n to: onCancelTemplatePreview,\n \"data-cy\": \"reset-changes-button\",\n onClick: noop,\n }}\n />\n </div>\n </div>\n <div>\n <Typography className=\"mb-3\" style=\"h4\" weight=\"semibold\">\n {t(\"neetoTemplate.templateSettings.previewLabel\")}\n </Typography>\n <Preview imageUrl={values.imageUrl} template={data} />\n </div>\n </div>\n )}\n </Form>\n </>\n )}\n </PageContent>\n </PageWrapper>\n );\n};\n\nexport default TemplateSettings;\n"],"names":["create","payload","axios","post","TEMPLATE_TAGS_URL","tag","showToastr","list","get","templateTagsApi","useCreateTemplateTag","options","useMutation","_objectSpread","mutationFn","onSuccess","_options$onSuccess","refetchTags","call","useFetchTemplateTags","useQuery","queryKey","QUERY_KEYS","TEMPLATE_TAGS","queryFn","FormikImageUploader","_ref","name","_useField","useField","_useField2","_slicedToArray","field","_","setValue","_useFormikContext","useFormikContext","setFieldValue","handleImageUpload","file","signedId","url","_jsx","ImageUploader","className","src","value","uploadConfig","IMAGE_UPLOAD_CONFIG","onUploadComplete","PageWrapper","children","classnames","PageHeader","_ref2","title","breadcrumbs","Header","size","customPropEqualityCheck","prevProps","nextProps","MemoizedPageHeader","memo","PageContent","_ref3","_ref3$className","Scrollable","Tags","allTags","selectedTags","onUpdate","onCreate","isLoading","_ref$labelProps","labelProps","handleTagSelect","newTag","concat","_toConsumableArray","handleTagRemove","removedTag","updatedTags","removeBy","handleTagCreate","tagName","id","label","_jsxs","Label","TagsComponent","buttonProps","loading","disabled","iconPosition","onTagCreate","onTagDelete","onTagSelect","Preview","template","imageUrl","tabIndex","Typography","lineHeight","style","buildSelectOptionsBy","labelField","arguments","length","undefined","valueField","map","option","buildTagOptions","tags","renameKeys","buildTemplateUpdatePayload","values","image","imageSignedId","tagIds","pluck","TemplateSettings","_ref$onCancelTemplate","onCancelTemplatePreview","_ref$breadcrumbs","_ref$className","_useParams","useParams","resourceId","_useTranslation","useTranslation","t","_useFetchTemplate","useFetchTemplate","data","isFetchingTemplate","_useUpdateTemplate","useUpdateTemplate","updateTemplate","mutate","isUpdatingTemplate","isPending","_useCreateTemplateTag","createTemplateTag","isCreatingTags","_useFetchTemplateTags","_useFetchTemplateTags2","templateTags","isTagsLoading","handleSubmit","resourceInitialValues","PageLoader","_Fragment","weight","Form","formikProps","enableReinitialize","initialValues","onSubmit","ActionBlock","isSubmitting","cancelButtonProps","to","onClick","noop"],"mappings":"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"}
|