@bigbinary/neeto-molecules 1.15.22 → 1.15.24-beta

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/Builder.js CHANGED
@@ -1,29 +1,34 @@
1
1
  import { _ as _slicedToArray } from './slicedToArray-b4278ecd.js';
2
2
  import React__default, { useState, useMemo, memo, useRef, useEffect } from 'react';
3
+ import classnames from 'classnames';
3
4
  import { noop, isPresent, isNotEmpty, findById, hyphenate } from '@bigbinary/neeto-cist';
5
+ import { useBreakpoints } from '@bigbinary/neeto-commons-frontend/react-utils';
6
+ import { Search, Flash, Collapse, DownArrow, Close } from '@bigbinary/neeto-icons';
7
+ import { Typography, Button, Input } from '@bigbinary/neetoui';
4
8
  import { isEmpty, mergeRight } from 'ramda';
5
9
  import { _ as _defineProperty } from './defineProperty-549061a7.js';
6
10
  import { joinHyphenCase, withEventTargetValue } from '@bigbinary/neeto-commons-frontend/utils/general';
7
- import { Search, Flash, DownArrow } from '@bigbinary/neeto-icons';
8
- import { Typography, Button, Input } from '@bigbinary/neetoui';
9
11
  import { useTranslation } from 'react-i18next';
10
- import { n } from './inject-css-c86de496.js';
11
12
  import { _ as _extends } from './extends-093996c9.js';
12
- import classnames from 'classnames';
13
- import { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';
14
13
  import { _ as _objectWithoutProperties } from './objectWithoutProperties-a0edb288.js';
14
+ import { n } from './inject-css-c86de496.js';
15
+ import { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';
15
16
  import MoreDropdown from './MoreDropdown.js';
16
17
  import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
17
18
  import withT from '@bigbinary/neeto-commons-frontend/react-utils/withT';
18
19
 
19
- var css = ":root{--neeto-molecule-builder-left-sidebar-width:360px;--neeto-molecule-builder-left-sidebar-header-height:70px;--neeto-molecule-builder-left-sidebar-search-height:40px;--neeto-molecule-builder-right-sidebar-width:420px}.neeto-molecules-builder-elements-list-panel{height:100%;min-width:360px;min-width:var(--neeto-molecule-builder-left-sidebar-width);width:360px;width:var(--neeto-molecule-builder-left-sidebar-width)}.neeto-molecules-builder-questions-list-panel__scroll{height:calc(100% - 70px);height:calc(100% - var(--neeto-molecule-builder-left-sidebar-header-height));overflow-y:auto;padding:8px 24px}.neeto-molecules-builder-questions-list-panel__scroll.neeto-molecules-builder-questions-list-panel__scroll--small{height:calc(100% - 110px);height:calc(100% - var(--neeto-molecule-builder-left-sidebar-header-height) - var(--neeto-molecule-builder-left-sidebar-search-height))}.neeto-molecules-builder-elements-list{margin-bottom:24px}.neeto-molecules-builder-elements-list .neeto-ui-accordion__wrapper{border-bottom:none}.neeto-molecules-builder-elements-list .neeto-ui-accordion__wrapper .neeto-ui-accordion__item{padding:12px 0}.neeto-molecules-builder-elements-list .neeto-ui-accordion__wrapper .neeto-ui-accordion__item .neeto-ui-accordion__item-handle{color:rgb(var(--neeto-ui-gray-600));font-size:var(--neeto-ui-text-xs);font-weight:var(--neeto-ui-font-semibold);text-transform:uppercase;transition:var(--neeto-ui-transition)}.neeto-molecules-builder-elements-list .neeto-ui-accordion__wrapper .neeto-ui-accordion__item .neeto-ui-accordion__item-toggle-icon{transform:rotate(90deg)!important}.neeto-molecules-builder-elements-list .neeto-ui-accordion__wrapper .neeto-ui-accordion__item:hover{background-color:transparent}.neeto-molecules-builder-elements-list .neeto-ui-accordion__wrapper .neeto-ui-accordion__item.neeto-ui-accordion__item--open .neeto-ui-accordion__item-handle,.neeto-molecules-builder-elements-list .neeto-ui-accordion__wrapper .neeto-ui-accordion__item:hover .neeto-ui-accordion__item-handle{color:rgb(var(--neeto-ui-gray-800))}.neeto-molecules-builder-elements-list .neeto-ui-accordion__wrapper .neeto-ui-accordion__item.neeto-ui-accordion__item--open .neeto-ui-accordion__item-toggle-icon{transform:rotate(270deg)!important}.neeto-molecules-builder-elements-list .neeto-ui-accordion__wrapper .neeto-ui-accordion__drop{padding:0}.neeto-molecules-builder-element-properties-panel{height:100%;min-width:420px;min-width:var(--neeto-molecule-builder-right-sidebar-width);padding-left:24px;padding-top:24px;width:420px;width:var(--neeto-molecule-builder-right-sidebar-width)}.neeto-molecules-builder-element--active{border-color:rgb(var(--neeto-ui-primary-500))!important;box-shadow:0 0 0 1px rgb(var(--neeto-ui-primary-500))!important}";
20
+ var css = ":root{--neeto-molecule-builder-left-sidebar-width:288px;--neeto-molecule-builder-left-sidebar-width-lg:360px;--neeto-molecule-builder-left-sidebar-header-height:70px;--neeto-molecule-builder-left-sidebar-search-height:40px;--neeto-molecule-builder-right-sidebar-width:420px}.neeto-molecules-builder-elements-list-panel__wrapper{height:100%;min-width:360px;min-width:var(--neeto-molecule-builder-left-sidebar-width-lg);position:relative;transition:all .15s;width:360px;width:var(--neeto-molecule-builder-left-sidebar-width-lg);z-index:101}@media screen and (min-width:768px) and (max-width:1279px){.neeto-molecules-builder-elements-list-panel__wrapper{min-width:288px;min-width:var(--neeto-molecule-builder-left-sidebar-width);width:288px;width:var(--neeto-molecule-builder-left-sidebar-width)}}@media screen and (max-width:767px){.neeto-molecules-builder-elements-list-panel__wrapper{left:0;position:fixed;top:0;transition:none}}@media screen and (max-width:576px){.neeto-molecules-builder-elements-list-panel__wrapper{height:100%;max-width:100%;min-width:0;width:100%}}.neeto-molecules-builder-elements-list-panel__wrapper--collapsed{max-width:0;min-width:0;width:0}.neeto-molecules-builder-elements-list-panel__wrapper--collapsed .neeto-molecules-builder-elements-list-panel__toggler{transform:scale(-1)}@media screen and (max-width:767px){.neeto-molecules-builder-elements-list-panel__wrapper--collapsed .neeto-molecules-builder-elements-list-panel__toggler{top:72px}}@media screen and (max-width:576px){.neeto-molecules-builder-elements-list-panel__wrapper--collapsed .neeto-molecules-builder-elements-list-panel__toggler{left:8px;right:auto}}.neeto-molecules-builder-elements-list-panel__container{height:100%;overflow:hidden;width:100%}.neeto-molecules-builder-elements-list-panel{height:100%;min-width:360px;min-width:var(--neeto-molecule-builder-left-sidebar-width-lg);width:360px;width:var(--neeto-molecule-builder-left-sidebar-width-lg)}@media screen and (min-width:768px) and (max-width:1279px){.neeto-molecules-builder-elements-list-panel{min-width:288px;min-width:var(--neeto-molecule-builder-left-sidebar-width);width:288px;width:var(--neeto-molecule-builder-left-sidebar-width)}}@media screen and (max-width:576px){.neeto-molecules-builder-elements-list-panel{padding-top:24px;width:100%}}.neeto-molecules-builder-elements-list-panel__toggler{flex-shrink:0;left:calc(100% + 8px);position:absolute;top:8px;transition:color .3s ease-in-out}@media screen and (min-width:1024px){.neeto-molecules-builder-elements-list-panel__toggler{opacity:0;pointer-events:none}}@media screen and (max-width:576px){.neeto-molecules-builder-elements-list-panel__toggler{left:24px}}.neeto-molecules-builder-questions-list-panel__scroll{height:calc(100% - 70px);height:calc(100% - var(--neeto-molecule-builder-left-sidebar-header-height));overflow-y:auto;padding:8px 24px;width:100%}.neeto-molecules-builder-questions-list-panel__scroll.neeto-molecules-builder-questions-list-panel__scroll--small{height:calc(100% - 110px);height:calc(100% - var(--neeto-molecule-builder-left-sidebar-header-height) - var(--neeto-molecule-builder-left-sidebar-search-height))}.neeto-molecules-builder-element-properties-panel__wrapper{height:100%;min-width:420px;min-width:var(--neeto-molecule-builder-right-sidebar-width);position:relative;transition:all .15s;width:420px;width:var(--neeto-molecule-builder-right-sidebar-width);z-index:101}.neeto-molecules-builder-element-properties-panel__wrapper .neeto-molecules-builder-properties-panel__close{opacity:0;pointer-events:none;position:absolute;right:8px;top:8px}@media screen and (max-width:1279px){.neeto-molecules-builder-element-properties-panel__wrapper .neeto-molecules-builder-properties-panel__close{opacity:1;pointer-events:all}.neeto-molecules-builder-element-properties-panel__wrapper{position:fixed;right:0;top:0;transition:none}}@media screen and (max-width:576px){.neeto-molecules-builder-element-properties-panel__wrapper{height:100%;max-width:100%;min-width:0;width:100%}}.neeto-molecules-builder-element-properties-panel__wrapper--collapsed{max-width:0;min-width:0;width:0}.neeto-molecules-builder-element-properties-panel{display:flex;flex-direction:column;height:100%;min-width:0;overflow-y:auto;padding-left:24px;padding-top:24px;width:100%}.neeto-molecules-builder-element-properties-panel--collapsed{max-width:0;min-width:0;padding:0;width:0}@media screen and (max-width:1279px){.neeto-molecules-builder-element-properties-panel{padding-top:48px}}.neeto-molecules-builder-element--active{border-color:rgb(var(--neeto-ui-primary-500))!important;box-shadow:0 0 0 1px rgb(var(--neeto-ui-primary-500))!important}.neeto-molecules-builder-panel__backdrop{background-color:rgba(var(--neeto-ui-black),.4);display:none;height:100%;left:0;position:fixed;top:0;visibility:hidden;width:100%;z-index:101}@media screen and (max-width:767px){.neeto-molecules-builder-panel__backdrop{display:block;visibility:visible}}@media screen and (max-width:1279px){.neeto-molecules-builder-panel__backdrop--extended{display:block;visibility:visible}}";
20
21
  n(css,{});
21
22
 
22
- var Body = function Body(props) {
23
- return /*#__PURE__*/React__default.createElement("div", {
24
- className: "neeto-molecules-builder-questions-list-panel__scroll neeto-molecules-builder-questions-list-panel__scroll--small",
25
- "data-testid": props["data-testid"]
26
- }, props.children);
23
+ var _excluded$1 = ["size"];
24
+ var Body = function Body(_ref) {
25
+ var size = _ref.size,
26
+ props = _objectWithoutProperties(_ref, _excluded$1);
27
+ return /*#__PURE__*/React__default.createElement("div", _extends({}, props, {
28
+ className: classnames("neeto-molecules-builder-questions-list-panel__scroll", {
29
+ "neeto-molecules-builder-questions-list-panel__scroll--small": size === "small"
30
+ })
31
+ }));
27
32
  };
28
33
 
29
34
  var Element = function Element(_ref) {
@@ -134,9 +139,8 @@ var ElementList = function ElementList(_ref) {
134
139
  value: searchString,
135
140
  onChange: withEventTargetValue(setSearchString)
136
141
  })), /*#__PURE__*/React__default.createElement(Body, {
137
- "data-testid": "elements-container"
138
- }, /*#__PURE__*/React__default.createElement("div", {
139
- className: "neeto-molecules-builder-questions-list-panel__scroll--small"
142
+ "data-testid": "elements-container",
143
+ size: "small"
140
144
  }, filteredSections.map(function (section) {
141
145
  return /*#__PURE__*/React__default.createElement(Section, {
142
146
  onSelect: onSelect,
@@ -145,7 +149,7 @@ var ElementList = function ElementList(_ref) {
145
149
  key: section.key,
146
150
  title: section.title
147
151
  });
148
- }))));
152
+ })));
149
153
  };
150
154
 
151
155
  var _excluded = ["element", "isActive", "handleSelectElement", "isSelectable", "errors", "actions"];
@@ -369,13 +373,34 @@ var ElementsPanel = function ElementsPanel(_ref) {
369
373
  _useState2 = _slicedToArray(_useState, 2),
370
374
  isElementsListVisible = _useState2[0],
371
375
  setIsElementsListVisible = _useState2[1];
376
+ var _useBreakpoints = useBreakpoints(),
377
+ isSize = _useBreakpoints.isSize;
378
+ var isLargerScreen = !isSize("mobile");
379
+ var _useState3 = useState(!isLargerScreen),
380
+ _useState4 = _slicedToArray(_useState3, 2),
381
+ isElementsPanelCollapsed = _useState4[0],
382
+ setIsElementsPanelCollapsed = _useState4[1];
372
383
  var isSelectedElementsEmpty = isEmpty(selectedElements);
373
384
  var shouldShowElementsList = isSelectedElementsEmpty || isElementsListVisible;
374
385
  var handleElementSelect = function handleElementSelect(element) {
375
386
  setIsElementsListVisible(false);
376
387
  handleAddElement(element);
377
388
  };
378
- return /*#__PURE__*/React__default.createElement("div", {
389
+ useEffect(function () {
390
+ setIsElementsPanelCollapsed(!isLargerScreen);
391
+ }, [isLargerScreen]);
392
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, !isElementsPanelCollapsed && /*#__PURE__*/React__default.createElement("div", {
393
+ className: "neeto-molecules-builder-panel__backdrop",
394
+ onClick: function onClick() {
395
+ setIsElementsPanelCollapsed(!isElementsPanelCollapsed);
396
+ }
397
+ }), /*#__PURE__*/React__default.createElement("div", {
398
+ className: classnames("neeto-molecules-builder-elements-list-panel__wrapper", {
399
+ "neeto-molecules-builder-elements-list-panel__wrapper--collapsed": isElementsPanelCollapsed
400
+ })
401
+ }, /*#__PURE__*/React__default.createElement("div", {
402
+ className: "neeto-molecules-builder-elements-list-panel__container"
403
+ }, /*#__PURE__*/React__default.createElement("div", {
379
404
  className: "neeto-molecules-builder-elements-list-panel neeto-ui-bg-gray-100",
380
405
  onClick: function onClick(event) {
381
406
  return event.stopPropagation();
@@ -400,13 +425,20 @@ var ElementsPanel = function ElementsPanel(_ref) {
400
425
  selectedElements: selectedElements,
401
426
  setIsElementsListVisible: setIsElementsListVisible,
402
427
  showElementsFillButton: showElementsFillButton
403
- }));
428
+ }))), /*#__PURE__*/React__default.createElement(Button, {
429
+ className: "neeto-molecules-builder-elements-list-panel__toggler",
430
+ icon: Collapse,
431
+ style: "secondary",
432
+ onClick: function onClick() {
433
+ setIsElementsPanelCollapsed(!isElementsPanelCollapsed);
434
+ }
435
+ })));
404
436
  };
405
437
 
406
438
  var EmptyProperty = withT(function (_ref) {
407
439
  var t = _ref.t;
408
440
  return /*#__PURE__*/React__default.createElement("div", {
409
- className: "space-y-4 "
441
+ className: "space-y-4 pb-6 pr-6"
410
442
  }, /*#__PURE__*/React__default.createElement("div", {
411
443
  className: "neeto-ui-bg-gray-200 neeto-ui-text-gray-600 neeto-ui-rounded-lg flex w-full flex-col items-center justify-center space-y-2 px-16 py-8"
412
444
  }, /*#__PURE__*/React__default.createElement(Typography, {
@@ -424,7 +456,7 @@ var EmptyProperty = withT(function (_ref) {
424
456
  var Skeleton = withT(function (_ref) {
425
457
  var t = _ref.t;
426
458
  return /*#__PURE__*/React__default.createElement("div", {
427
- className: "space-y-4 pr-6"
459
+ className: "space-y-4 pb-6 pr-6"
428
460
  }, /*#__PURE__*/React__default.createElement("div", {
429
461
  className: "neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-12 w-full"
430
462
  }), /*#__PURE__*/React__default.createElement("div", {
@@ -442,11 +474,47 @@ var Skeleton = withT(function (_ref) {
442
474
  });
443
475
 
444
476
  var PropertiesPanel = function PropertiesPanel(_ref) {
445
- var children = _ref.children;
446
- return /*#__PURE__*/React__default.createElement("div", {
477
+ var id = _ref.id,
478
+ children = _ref.children,
479
+ onClose = _ref.onClose;
480
+ var _useBreakpoints = useBreakpoints(function (window) {
481
+ return {
482
+ largeDesktop: window.innerWidth >= 1280
483
+ };
484
+ }),
485
+ isSize = _useBreakpoints.isSize;
486
+ var isLargerScreen = isSize("largeDesktop");
487
+ var _useState = useState(!isLargerScreen),
488
+ _useState2 = _slicedToArray(_useState, 2),
489
+ isPropertiesPanelCollapsed = _useState2[0],
490
+ setIsPropertiesPanelCollapsed = _useState2[1];
491
+ useEffect(function () {
492
+ setIsPropertiesPanelCollapsed(!isLargerScreen);
493
+ }, [isLargerScreen]);
494
+ useEffect(function () {
495
+ if (!id) return;
496
+ setIsPropertiesPanelCollapsed(false);
497
+ }, [id]);
498
+ var handleCollapsePanel = function handleCollapsePanel() {
499
+ setIsPropertiesPanelCollapsed(!isPropertiesPanelCollapsed);
500
+ onClose === null || onClose === void 0 ? void 0 : onClose(id);
501
+ };
502
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, !isPropertiesPanelCollapsed && /*#__PURE__*/React__default.createElement("div", {
503
+ className: "neeto-molecules-builder-panel__backdrop neeto-molecules-builder-panel__backdrop--extended",
504
+ onClick: handleCollapsePanel
505
+ }), /*#__PURE__*/React__default.createElement("div", {
506
+ className: classnames("neeto-molecules-builder-element-properties-panel__wrapper", {
507
+ "neeto-molecules-builder-element-properties-panel__wrapper--collapsed": isPropertiesPanelCollapsed
508
+ })
509
+ }, /*#__PURE__*/React__default.createElement("div", {
447
510
  className: "neeto-molecules-builder-element-properties-panel neeto-ui-bg-gray-100",
448
511
  "data-cy": "properties-panel"
449
- }, children !== null && children !== void 0 ? children : /*#__PURE__*/React__default.createElement(Skeleton, null));
512
+ }, children !== null && children !== void 0 ? children : /*#__PURE__*/React__default.createElement(Skeleton, null)), !isPropertiesPanelCollapsed && /*#__PURE__*/React__default.createElement(Button, {
513
+ className: "neeto-molecules-builder-properties-panel__close",
514
+ icon: Close,
515
+ style: "secondary",
516
+ onClick: handleCollapsePanel
517
+ })));
450
518
  };
451
519
  PropertiesPanel.EmptyProperty = EmptyProperty;
452
520
 
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.js","sources":["../src/components/Builder/Body.jsx","../src/components/Builder/ElementsPanel/ElementsList/Element.jsx","../src/components/Builder/ElementsPanel/ElementsList/Section.jsx","../src/components/Builder/ElementsPanel/ElementsList/TitleBar.jsx","../src/components/Builder/ElementsPanel/ElementsList/index.jsx","../src/components/Builder/ElementsPanel/SelectedElementsList/SelectedElement.jsx","../src/components/Builder/ElementsPanel/SelectedElementsList/TitleBar.jsx","../src/components/Builder/ElementsPanel/SelectedElementsList/index.jsx","../src/components/Builder/ElementsPanel/index.jsx","../src/components/Builder/PropertiesPanel/EmptyProperty.jsx","../src/components/Builder/PropertiesPanel/Skeleton.jsx","../src/components/Builder/PropertiesPanel/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport \"./styles.scss\";\n\nconst Body = props => (\n <div\n className=\"neeto-molecules-builder-questions-list-panel__scroll neeto-molecules-builder-questions-list-panel__scroll--small\"\n data-testid={props[\"data-testid\"]}\n >\n {props.children}\n </div>\n);\n\nexport default Body;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\n\nconst Element = ({ label, icon: Icon, isCreatable = true, onClick }) => (\n <div\n data-cy={`add-${joinHyphenCase(label)}-element`}\n className={classnames(\n \"neeto-ui-border-gray-400 neeto-ui-bg-white hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-all duration-300 ease-in-out\",\n { \"neeto-ui-bg-gray-300 cursor-not-allowed\": !isCreatable }\n )}\n onClick={isCreatable ? onClick : noop}\n >\n <div className=\"flex flex-grow items-center gap-2\">\n {Icon && <Icon data-cy=\"form-icon\" />}\n <Typography className=\"leading-4\" style=\"body2\">\n {label}\n </Typography>\n </div>\n </div>\n);\n\nexport default Element;\n","import React from \"react\";\n\nimport { Typography } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\n\nimport Element from \"./Element\";\n\nconst Section = ({ title, elements, onSelect, isCreatable }) => {\n if (isEmpty(elements)) {\n return null;\n }\n\n return (\n <>\n {title && (\n <Typography className=\"py-3\" style=\"h6\" textTransform=\"uppercase\">\n {title}\n </Typography>\n )}\n {elements.map(element => (\n <Element\n {...element}\n isCreatable={isCreatable(element.value)}\n key={element.label}\n onClick={() => onSelect(element)}\n />\n ))}\n </>\n );\n};\n\nexport default Section;\n","import React from \"react\";\n\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst TitleBar = ({ setIsElementsListVisible, isSelectedElementsEmpty }) => {\n const { t } = useTranslation();\n\n const onCancel = () => setIsElementsListVisible(false);\n\n return (\n <div\n className=\"flex items-center justify-between p-6 pb-4\"\n data-testid=\"elements-panel-title\"\n >\n <Typography\n data-cy=\"elements-list-title\"\n lineHeight=\"normal\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.builderSidebar.addNewElement\")}\n </Typography>\n {!isSelectedElementsEmpty && (\n <Button\n data-cy=\"cancel-button\"\n label={t(\"neetoMolecules.builderSidebar.cancel\")}\n size=\"small\"\n style=\"text\"\n onClick={onCancel}\n />\n )}\n </div>\n );\n};\n\nexport default TitleBar;\n","import React, { useMemo, useState } from \"react\";\n\nimport { isNotEmpty, isPresent } from \"neetocist\";\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Search } from \"neetoicons\";\nimport { Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Body from \"components/Builder/Body\";\n\nimport Section from \"./Section\";\nimport TitleBar from \"./TitleBar\";\n\nconst ElementList = ({\n setIsElementsListVisible,\n elementSections = [],\n onSelect,\n isSelectedElementsEmpty,\n}) => {\n const { t } = useTranslation();\n const [searchString, setSearchString] = useState(\"\");\n\n const filteredSections = useMemo(\n () =>\n elementSections\n .map(section => ({\n ...section,\n elements: section.elements.filter(element =>\n element.label.toLowerCase().includes(searchString.toLowerCase())\n ),\n }))\n .filter(section =>\n isPresent(searchString) ? isNotEmpty(section.elements) : true\n ),\n [searchString, elementSections]\n );\n\n return (\n <>\n <TitleBar {...{ isSelectedElementsEmpty, setIsElementsListVisible }} />\n <div className=\"mb-2 px-6\">\n <Input\n autoFocus\n data-testid=\"elements-panel-search-field\"\n placeholder={t(\"neetoMolecules.builderSidebar.searchElements\")}\n prefix={<Search />}\n value={searchString}\n onChange={withEventTargetValue(setSearchString)}\n />\n </div>\n <Body data-testid=\"elements-container\">\n <div className=\"neeto-molecules-builder-questions-list-panel__scroll--small\">\n {filteredSections.map(section => (\n <Section\n {...{ onSelect }}\n elements={section.elements}\n isCreatable={section.isCreatable}\n key={section.key}\n title={section.title}\n />\n ))}\n </div>\n </Body>\n </>\n );\n};\n\nexport default ElementList;\n","import React, { memo, useEffect, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop, findById, isNotEmpty, hyphenate } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nconst SelectedElement = ({\n element,\n isActive,\n handleSelectElement,\n isSelectable = true,\n errors = [],\n actions = [],\n ...props\n}) => {\n const Icon = element.icon;\n const rootElementRef = useRef();\n\n const onClick = () => handleSelectElement(element);\n\n const shouldShowDropdown = isNotEmpty(actions);\n\n const menuItems =\n typeof actions === \"function\"\n ? actions(element)\n : actions.map(action =>\n mergeRight(action, {\n onClick: () => {\n action.onClick(element);\n },\n })\n );\n\n useEffect(() => {\n const rootElement = rootElementRef.current;\n\n if (\n !rootElement ||\n !isActive ||\n typeof rootElement?.scrollIntoView !== \"function\"\n ) {\n return;\n }\n rootElement.scrollIntoView({ behavior: \"smooth\", block: \"nearest\" });\n }, [isActive, rootElementRef]);\n\n const error = findById(element.id, errors);\n\n return (\n <div\n data-testid={props[\"data-testid\"]}\n ref={rootElementRef}\n className={classnames(\n \"neeto-ui-border-gray-400 neeto-ui-bg-white hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-all duration-300 ease-in-out\",\n { \"neeto-molecules-builder-element--active\": isActive },\n { \"hover:neeto-ui-bg-error-100 neeto-ui-bg-error-100\": error }\n )}\n onClick={isSelectable ? onClick : noop}\n >\n <div\n className=\"flex flex-grow items-center gap-2 overflow-hidden\"\n data-cy=\"new-element-field\"\n >\n {Icon && (\n <div className=\"flex-shrink-0\">\n <Icon />\n </div>\n )}\n <Typography\n className=\"truncate leading-snug\"\n data-cy={`${hyphenate(element.label, \"new-element\")}-label`}\n style=\"body2\"\n >\n {element.label}\n </Typography>\n </div>\n {shouldShowDropdown && (\n <MoreDropdown\n {...{ menuItems }}\n isDisabled={element.isPending}\n dropdownButtonProps={{\n className: \"min-h-0 flex-shrink-0\",\n \"data-testid\": `${hyphenate(element.label)}-more-dropdown`,\n \"data-cy\": `${hyphenate(\n element.label,\n \"new-element\"\n )}-more-dropdown`,\n loading: element.isPending,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default memo(SelectedElement);\n","import React from \"react\";\n\nimport { PLURAL } from \"neetocommons/constants\";\nimport { Flash } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst TitleBar = ({\n setIsElementsListVisible,\n isLoading,\n showElementsFillButton,\n isAddingAllElements,\n addAllElements,\n isAddingNewElement,\n}) => {\n const { t } = useTranslation();\n\n const handleAddElement = () => setIsElementsListVisible(true);\n\n return (\n <div\n className=\"flex items-center justify-between p-6 pb-4\"\n data-testid=\"selected-elements-title\"\n >\n <Typography\n data-cy=\"elements-title\"\n lineHeight=\"normal\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.builderSidebar.element\", PLURAL)}\n </Typography>\n <div className=\"flex items-center justify-between space-x-2\">\n <Button\n data-cy=\"add-element-button\"\n data-testid=\"add-element-button\"\n disabled={isLoading}\n label={t(\"neetoMolecules.builderSidebar.addNewElement\")}\n loading={isAddingNewElement}\n size=\"small\"\n style=\"secondary\"\n onClick={handleAddElement}\n />\n {showElementsFillButton && (\n <Button\n data-cy=\"add-all-elements-button\"\n disabled={isAddingAllElements}\n icon={Flash}\n loading={isAddingAllElements}\n size=\"small\"\n style=\"secondary\"\n tooltipProps={{\n content: t(\"neetoMolecules.builderSidebar.addAllElements\"),\n }}\n onClick={addAllElements}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default TitleBar;\n","import React from \"react\";\n\nimport { DragDropContext, Draggable, Droppable } from \"@hello-pangea/dnd\";\nimport { isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\n\nimport Body from \"components/Builder/Body\";\n\nimport SelectedElement from \"./SelectedElement\";\nimport TitleBar from \"./TitleBar\";\n\nconst SelectedElementsList = ({\n handleDragEnd,\n handleSelectElement,\n isDragDisabled,\n isElementVisible,\n selectedElementId,\n selectedElements,\n setIsElementsListVisible,\n fixedLastElement,\n fixedFirstElement,\n selectedElementActions,\n addAllElements,\n isAddingAllElements,\n showElementsFillButton,\n isAddingNewElement,\n}) => (\n <>\n <TitleBar\n {...{\n addAllElements,\n isAddingAllElements,\n isAddingNewElement,\n setIsElementsListVisible,\n showElementsFillButton,\n }}\n />\n <Body data-testid=\"selected-elements-container\">\n {isPresent(fixedFirstElement) && (\n <SelectedElement\n {...{ handleSelectElement }}\n isSelectable\n actions={fixedFirstElement.actions}\n data-cy=\"welcome-element\"\n data-testid=\"welcome-record\"\n element={fixedFirstElement}\n index={0}\n isActive={selectedElementId === fixedFirstElement.id}\n />\n )}\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable droppableId=\"droppable-question-list\">\n {({ innerRef, droppableProps, placeholder }) => (\n <div\n ref={innerRef}\n {...droppableProps}\n data-testid=\"selected-elements-droppable-container\"\n >\n {selectedElements?.map((element, index) => {\n const isVisible = isElementVisible?.(element) ?? true;\n\n if (!isVisible) return null;\n\n const key =\n element.id ?? `element-${joinHyphenCase(element.label)}`;\n\n return (\n <Draggable\n {...{ index, isDragDisabled }}\n draggableId={element.id ?? `element-${index}`}\n key={key}\n >\n {({ innerRef, draggableProps, dragHandleProps }) => (\n <div\n ref={innerRef}\n {...draggableProps}\n {...dragHandleProps}\n >\n <SelectedElement\n {...{ element, handleSelectElement }}\n isSelectable\n actions={selectedElementActions}\n isActive={selectedElementId === element.id}\n key={element.id ?? index}\n />\n </div>\n )}\n </Draggable>\n );\n })}\n {placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n {isPresent(fixedLastElement) && (\n <SelectedElement\n {...{ handleSelectElement }}\n isSelectable\n actions={fixedLastElement.actions}\n data-cy=\"submit-button-element\"\n data-testid=\"submit-button-record\"\n element={fixedLastElement}\n isActive={selectedElementId === fixedLastElement.id}\n />\n )}\n </Body>\n </>\n);\n\nexport default SelectedElementsList;\n","import React, { useState } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport ElementList from \"./ElementsList\";\nimport SelectedElementsList from \"./SelectedElementsList\";\n\nimport \"../styles.scss\";\n\nconst ElementsPanel = ({\n elementSections,\n selectedElements = [],\n handleAddElement,\n isElementVisible,\n fixedFirstElement,\n fixedLastElement,\n handleDragEnd = noop,\n isDragDisabled = true,\n handleSelectElement,\n selectedElementId,\n selectedElementActions,\n addAllElements = noop,\n isAddingAllElements = false,\n showElementsFillButton = false,\n isAddingNewElement = false,\n}) => {\n const [isElementsListVisible, setIsElementsListVisible] = useState(false);\n\n const isSelectedElementsEmpty = isEmpty(selectedElements);\n const shouldShowElementsList =\n isSelectedElementsEmpty || isElementsListVisible;\n\n const handleElementSelect = element => {\n setIsElementsListVisible(false);\n handleAddElement(element);\n };\n\n return (\n <div\n className=\"neeto-molecules-builder-elements-list-panel neeto-ui-bg-gray-100\"\n onClick={event => event.stopPropagation()}\n >\n {shouldShowElementsList ? (\n <ElementList\n {...{\n elementSections,\n isSelectedElementsEmpty,\n setIsElementsListVisible,\n }}\n onSelect={handleElementSelect}\n />\n ) : (\n <SelectedElementsList\n {...{\n addAllElements,\n fixedFirstElement,\n fixedLastElement,\n handleDragEnd,\n handleSelectElement,\n isAddingAllElements,\n isAddingNewElement,\n isDragDisabled,\n isElementVisible,\n selectedElementActions,\n selectedElementId,\n selectedElements,\n setIsElementsListVisible,\n showElementsFillButton,\n }}\n />\n )}\n </div>\n );\n};\n\nElementsPanel.propTypes = {\n /**\n * List of supported elements to be rendered in the ElementsList panel.\n */\n elementSections: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n elements: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n icon: PropTypes.elementType,\n })\n ),\n key: PropTypes.string,\n isCreatable: PropTypes.func,\n })\n ),\n /**\n * List of selected elements.\n */\n selectedElements: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n kind: PropTypes.string,\n position: PropTypes.number,\n isPending: PropTypes.bool,\n label: PropTypes.string,\n icon: PropTypes.elementType,\n })\n ),\n /**\n * Callback that will be triggered when an element is clicked from the elements list.\n */\n handleAddElement: PropTypes.func,\n /**\n * Function that will be used to check whether the element is visible.\n * The callback will be triggered with element info at the time of render.\n */\n isElementVisible: PropTypes.func,\n /**\n * The record that's to be rendered as first record.\n * This won't be draggable.\n */\n fixedFirstElement: PropTypes.shape({\n id: PropTypes.string,\n kind: PropTypes.string,\n position: PropTypes.number,\n label: PropTypes.string,\n icon: PropTypes.node,\n }),\n /**\n * The record that's to be rendered as the last record.\n * This won't be draggable.\n */\n fixedLastElement: PropTypes.shape({\n id: PropTypes.string,\n kind: PropTypes.string,\n position: PropTypes.number,\n label: PropTypes.string,\n icon: PropTypes.node,\n }),\n /**\n * The callback that will be triggered at the end of a drag event.\n */\n handleDragEnd: PropTypes.func,\n /**\n * Boolean to mention that the drag feature should be disabled.\n */\n isDragDisabled: PropTypes.bool,\n /**\n * The callback that will be triggered when an element is clicked from the elements list.\n */\n handleSelectElement: PropTypes.func,\n /**\n * Id of the current selected element.\n */\n selectedElementId: PropTypes.string,\n /**\n * Actions to be rendered on the selected elements.\n */\n selectedElementActions: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n key: PropTypes.string,\n onClick: PropTypes.func,\n isVisible: PropTypes.bool,\n })\n ),\n PropTypes.func,\n ]),\n\n /**\n * Function that will be called when clicked on the add all elements button.\n */\n addAllElements: PropTypes.func,\n /**\n * Boolean to notate whether all elements are being added.\n */\n isAddingAllElements: PropTypes.bool,\n /**\n * Boolean to control the visibility of add all elements button.\n */\n showElementsFillButton: PropTypes.bool,\n /**\n * Boolean to notate whether an element is being added.\n */\n isAddingNewElement: PropTypes.bool,\n};\n\nexport default ElementsPanel;\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Typography } from \"neetoui\";\n\nconst EmptyProperty = withT(({ t }) => (\n <div className=\"space-y-4 \">\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-text-gray-600 neeto-ui-rounded-lg flex w-full flex-col items-center justify-center space-y-2 px-16 py-8\">\n <Typography\n className=\"text-center\"\n data-cy=\"build-page-text-label\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.builderSidebar.noQuestionProperties\")}\n </Typography>\n </div>\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-40 w-full\" />\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-72 w-full\" />\n </div>\n));\n\nexport default EmptyProperty;\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { DownArrow } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\n\nconst Skeleton = withT(({ t }) => (\n <div className=\"space-y-4 pr-6\">\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-12 w-full\" />\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-text-gray-600 neeto-ui-rounded-lg flex w-full flex-col items-center justify-center space-y-2 px-16 py-8\">\n <Typography\n className=\"text-center\"\n data-cy=\"build-page-text-label\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.builderSidebar.emptyQuestionProperties\")}\n </Typography>\n <DownArrow />\n </div>\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-40 w-full\" />\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-72 w-full\" />\n </div>\n));\n\nexport default Skeleton;\n","import React from \"react\";\n\nimport EmptyProperty from \"./EmptyProperty\";\nimport Skeleton from \"./Skeleton\";\n\nimport \"../styles.scss\";\n\nconst PropertiesPanel = ({ children }) => (\n <div\n className=\"neeto-molecules-builder-element-properties-panel neeto-ui-bg-gray-100\"\n data-cy=\"properties-panel\"\n >\n {children ?? <Skeleton />}\n </div>\n);\n\nPropertiesPanel.EmptyProperty = EmptyProperty;\n\nexport default PropertiesPanel;\n"],"names":["Body","props","React","createElement","className","children","Element","_ref","label","Icon","icon","_ref$isCreatable","isCreatable","onClick","concat","joinHyphenCase","classnames","noop","Typography","style","Section","title","elements","onSelect","isEmpty","Fragment","textTransform","map","element","_extends","value","key","TitleBar","setIsElementsListVisible","isSelectedElementsEmpty","_useTranslation","useTranslation","t","onCancel","lineHeight","weight","Button","size","ElementList","_ref$elementSections","elementSections","_useState","useState","_useState2","_slicedToArray","searchString","setSearchString","filteredSections","useMemo","section","_objectSpread","filter","toLowerCase","includes","isPresent","isNotEmpty","Input","autoFocus","placeholder","prefix","Search","onChange","withEventTargetValue","SelectedElement","isActive","handleSelectElement","_ref$isSelectable","isSelectable","_ref$errors","errors","_ref$actions","actions","_objectWithoutProperties","_excluded","rootElementRef","useRef","shouldShowDropdown","menuItems","action","mergeRight","useEffect","rootElement","current","scrollIntoView","behavior","block","error","findById","id","ref","hyphenate","MoreDropdown","isDisabled","isPending","dropdownButtonProps","loading","memo","isLoading","showElementsFillButton","isAddingAllElements","addAllElements","isAddingNewElement","handleAddElement","PLURAL","disabled","Flash","tooltipProps","content","SelectedElementsList","handleDragEnd","isDragDisabled","isElementVisible","selectedElementId","selectedElements","fixedLastElement","fixedFirstElement","selectedElementActions","index","DragDropContext","onDragEnd","Droppable","droppableId","_ref2","innerRef","droppableProps","_isElementVisible","_element$id","_element$id2","isVisible","Draggable","draggableId","_ref3","_element$id3","draggableProps","dragHandleProps","ElementsPanel","_ref$selectedElements","_ref$handleDragEnd","_ref$isDragDisabled","_ref$addAllElements","_ref$isAddingAllEleme","_ref$showElementsFill","_ref$isAddingNewEleme","isElementsListVisible","shouldShowElementsList","handleElementSelect","event","stopPropagation","EmptyProperty","withT","Skeleton","DownArrow","PropertiesPanel"],"mappings":"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"}
1
+ {"version":3,"file":"Builder.js","sources":["../src/components/Builder/Body.jsx","../src/components/Builder/ElementsPanel/ElementsList/Element.jsx","../src/components/Builder/ElementsPanel/ElementsList/Section.jsx","../src/components/Builder/ElementsPanel/ElementsList/TitleBar.jsx","../src/components/Builder/ElementsPanel/ElementsList/index.jsx","../src/components/Builder/ElementsPanel/SelectedElementsList/SelectedElement.jsx","../src/components/Builder/ElementsPanel/SelectedElementsList/TitleBar.jsx","../src/components/Builder/ElementsPanel/SelectedElementsList/index.jsx","../src/components/Builder/ElementsPanel/index.jsx","../src/components/Builder/PropertiesPanel/EmptyProperty.jsx","../src/components/Builder/PropertiesPanel/Skeleton.jsx","../src/components/Builder/PropertiesPanel/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\n\nimport \"./styles.scss\";\n\nconst Body = ({ size, ...props }) => (\n <div\n {...props}\n className={classnames(\n \"neeto-molecules-builder-questions-list-panel__scroll\",\n {\n \"neeto-molecules-builder-questions-list-panel__scroll--small\":\n size === \"small\",\n }\n )}\n />\n);\n\nexport default Body;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\nimport { Typography } from \"neetoui\";\n\nconst Element = ({ label, icon: Icon, isCreatable = true, onClick }) => (\n <div\n data-cy={`add-${joinHyphenCase(label)}-element`}\n className={classnames(\n \"neeto-ui-border-gray-400 neeto-ui-bg-white hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-all duration-300 ease-in-out\",\n { \"neeto-ui-bg-gray-300 cursor-not-allowed\": !isCreatable }\n )}\n onClick={isCreatable ? onClick : noop}\n >\n <div className=\"flex flex-grow items-center gap-2\">\n {Icon && <Icon data-cy=\"form-icon\" />}\n <Typography className=\"leading-4\" style=\"body2\">\n {label}\n </Typography>\n </div>\n </div>\n);\n\nexport default Element;\n","import React from \"react\";\n\nimport { Typography } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\n\nimport Element from \"./Element\";\n\nconst Section = ({ title, elements, onSelect, isCreatable }) => {\n if (isEmpty(elements)) {\n return null;\n }\n\n return (\n <>\n {title && (\n <Typography className=\"py-3\" style=\"h6\" textTransform=\"uppercase\">\n {title}\n </Typography>\n )}\n {elements.map(element => (\n <Element\n {...element}\n isCreatable={isCreatable(element.value)}\n key={element.label}\n onClick={() => onSelect(element)}\n />\n ))}\n </>\n );\n};\n\nexport default Section;\n","import React from \"react\";\n\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst TitleBar = ({ setIsElementsListVisible, isSelectedElementsEmpty }) => {\n const { t } = useTranslation();\n\n const onCancel = () => setIsElementsListVisible(false);\n\n return (\n <div\n className=\"flex items-center justify-between p-6 pb-4\"\n data-testid=\"elements-panel-title\"\n >\n <Typography\n data-cy=\"elements-list-title\"\n lineHeight=\"normal\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.builderSidebar.addNewElement\")}\n </Typography>\n {!isSelectedElementsEmpty && (\n <Button\n data-cy=\"cancel-button\"\n label={t(\"neetoMolecules.builderSidebar.cancel\")}\n size=\"small\"\n style=\"text\"\n onClick={onCancel}\n />\n )}\n </div>\n );\n};\n\nexport default TitleBar;\n","import React, { useMemo, useState } from \"react\";\n\nimport { isNotEmpty, isPresent } from \"neetocist\";\nimport { withEventTargetValue } from \"neetocommons/utils/general\";\nimport { Search } from \"neetoicons\";\nimport { Input } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Body from \"components/Builder/Body\";\n\nimport Section from \"./Section\";\nimport TitleBar from \"./TitleBar\";\n\nconst ElementList = ({\n setIsElementsListVisible,\n elementSections = [],\n onSelect,\n isSelectedElementsEmpty,\n}) => {\n const { t } = useTranslation();\n const [searchString, setSearchString] = useState(\"\");\n\n const filteredSections = useMemo(\n () =>\n elementSections\n .map(section => ({\n ...section,\n elements: section.elements.filter(element =>\n element.label.toLowerCase().includes(searchString.toLowerCase())\n ),\n }))\n .filter(section =>\n isPresent(searchString) ? isNotEmpty(section.elements) : true\n ),\n [searchString, elementSections]\n );\n\n return (\n <>\n <TitleBar {...{ isSelectedElementsEmpty, setIsElementsListVisible }} />\n <div className=\"mb-2 px-6\">\n <Input\n autoFocus\n data-testid=\"elements-panel-search-field\"\n placeholder={t(\"neetoMolecules.builderSidebar.searchElements\")}\n prefix={<Search />}\n value={searchString}\n onChange={withEventTargetValue(setSearchString)}\n />\n </div>\n <Body data-testid=\"elements-container\" size=\"small\">\n {filteredSections.map(section => (\n <Section\n {...{ onSelect }}\n elements={section.elements}\n isCreatable={section.isCreatable}\n key={section.key}\n title={section.title}\n />\n ))}\n </Body>\n </>\n );\n};\n\nexport default ElementList;\n","import React, { memo, useEffect, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop, findById, isNotEmpty, hyphenate } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\n\nimport MoreDropdown from \"components/MoreDropdown\";\n\nconst SelectedElement = ({\n element,\n isActive,\n handleSelectElement,\n isSelectable = true,\n errors = [],\n actions = [],\n ...props\n}) => {\n const Icon = element.icon;\n const rootElementRef = useRef();\n\n const onClick = () => handleSelectElement(element);\n\n const shouldShowDropdown = isNotEmpty(actions);\n\n const menuItems =\n typeof actions === \"function\"\n ? actions(element)\n : actions.map(action =>\n mergeRight(action, {\n onClick: () => {\n action.onClick(element);\n },\n })\n );\n\n useEffect(() => {\n const rootElement = rootElementRef.current;\n\n if (\n !rootElement ||\n !isActive ||\n typeof rootElement?.scrollIntoView !== \"function\"\n ) {\n return;\n }\n rootElement.scrollIntoView({ behavior: \"smooth\", block: \"nearest\" });\n }, [isActive, rootElementRef]);\n\n const error = findById(element.id, errors);\n\n return (\n <div\n data-testid={props[\"data-testid\"]}\n ref={rootElementRef}\n className={classnames(\n \"neeto-ui-border-gray-400 neeto-ui-bg-white hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-all duration-300 ease-in-out\",\n { \"neeto-molecules-builder-element--active\": isActive },\n { \"hover:neeto-ui-bg-error-100 neeto-ui-bg-error-100\": error }\n )}\n onClick={isSelectable ? onClick : noop}\n >\n <div\n className=\"flex flex-grow items-center gap-2 overflow-hidden\"\n data-cy=\"new-element-field\"\n >\n {Icon && (\n <div className=\"flex-shrink-0\">\n <Icon />\n </div>\n )}\n <Typography\n className=\"truncate leading-snug\"\n data-cy={`${hyphenate(element.label, \"new-element\")}-label`}\n style=\"body2\"\n >\n {element.label}\n </Typography>\n </div>\n {shouldShowDropdown && (\n <MoreDropdown\n {...{ menuItems }}\n isDisabled={element.isPending}\n dropdownButtonProps={{\n className: \"min-h-0 flex-shrink-0\",\n \"data-testid\": `${hyphenate(element.label)}-more-dropdown`,\n \"data-cy\": `${hyphenate(\n element.label,\n \"new-element\"\n )}-more-dropdown`,\n loading: element.isPending,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default memo(SelectedElement);\n","import React from \"react\";\n\nimport { PLURAL } from \"neetocommons/constants\";\nimport { Flash } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nconst TitleBar = ({\n setIsElementsListVisible,\n isLoading,\n showElementsFillButton,\n isAddingAllElements,\n addAllElements,\n isAddingNewElement,\n}) => {\n const { t } = useTranslation();\n\n const handleAddElement = () => setIsElementsListVisible(true);\n\n return (\n <div\n className=\"flex items-center justify-between p-6 pb-4\"\n data-testid=\"selected-elements-title\"\n >\n <Typography\n data-cy=\"elements-title\"\n lineHeight=\"normal\"\n style=\"h3\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.builderSidebar.element\", PLURAL)}\n </Typography>\n <div className=\"flex items-center justify-between space-x-2\">\n <Button\n data-cy=\"add-element-button\"\n data-testid=\"add-element-button\"\n disabled={isLoading}\n label={t(\"neetoMolecules.builderSidebar.addNewElement\")}\n loading={isAddingNewElement}\n size=\"small\"\n style=\"secondary\"\n onClick={handleAddElement}\n />\n {showElementsFillButton && (\n <Button\n data-cy=\"add-all-elements-button\"\n disabled={isAddingAllElements}\n icon={Flash}\n loading={isAddingAllElements}\n size=\"small\"\n style=\"secondary\"\n tooltipProps={{\n content: t(\"neetoMolecules.builderSidebar.addAllElements\"),\n }}\n onClick={addAllElements}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default TitleBar;\n","import React from \"react\";\n\nimport { DragDropContext, Draggable, Droppable } from \"@hello-pangea/dnd\";\nimport { isPresent } from \"neetocist\";\nimport { joinHyphenCase } from \"neetocommons/utils/general\";\n\nimport Body from \"components/Builder/Body\";\n\nimport SelectedElement from \"./SelectedElement\";\nimport TitleBar from \"./TitleBar\";\n\nconst SelectedElementsList = ({\n handleDragEnd,\n handleSelectElement,\n isDragDisabled,\n isElementVisible,\n selectedElementId,\n selectedElements,\n setIsElementsListVisible,\n fixedLastElement,\n fixedFirstElement,\n selectedElementActions,\n addAllElements,\n isAddingAllElements,\n showElementsFillButton,\n isAddingNewElement,\n}) => (\n <>\n <TitleBar\n {...{\n addAllElements,\n isAddingAllElements,\n isAddingNewElement,\n setIsElementsListVisible,\n showElementsFillButton,\n }}\n />\n <Body data-testid=\"selected-elements-container\">\n {isPresent(fixedFirstElement) && (\n <SelectedElement\n {...{ handleSelectElement }}\n isSelectable\n actions={fixedFirstElement.actions}\n data-cy=\"welcome-element\"\n data-testid=\"welcome-record\"\n element={fixedFirstElement}\n index={0}\n isActive={selectedElementId === fixedFirstElement.id}\n />\n )}\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable droppableId=\"droppable-question-list\">\n {({ innerRef, droppableProps, placeholder }) => (\n <div\n ref={innerRef}\n {...droppableProps}\n data-testid=\"selected-elements-droppable-container\"\n >\n {selectedElements?.map((element, index) => {\n const isVisible = isElementVisible?.(element) ?? true;\n\n if (!isVisible) return null;\n\n const key =\n element.id ?? `element-${joinHyphenCase(element.label)}`;\n\n return (\n <Draggable\n {...{ index, isDragDisabled }}\n draggableId={element.id ?? `element-${index}`}\n key={key}\n >\n {({ innerRef, draggableProps, dragHandleProps }) => (\n <div\n ref={innerRef}\n {...draggableProps}\n {...dragHandleProps}\n >\n <SelectedElement\n {...{ element, handleSelectElement }}\n isSelectable\n actions={selectedElementActions}\n isActive={selectedElementId === element.id}\n key={element.id ?? index}\n />\n </div>\n )}\n </Draggable>\n );\n })}\n {placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n {isPresent(fixedLastElement) && (\n <SelectedElement\n {...{ handleSelectElement }}\n isSelectable\n actions={fixedLastElement.actions}\n data-cy=\"submit-button-element\"\n data-testid=\"submit-button-record\"\n element={fixedLastElement}\n isActive={selectedElementId === fixedLastElement.id}\n />\n )}\n </Body>\n </>\n);\n\nexport default SelectedElementsList;\n","import React, { useEffect, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { useBreakpoints } from \"neetocommons/react-utils\";\nimport { Collapse } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport ElementList from \"./ElementsList\";\nimport SelectedElementsList from \"./SelectedElementsList\";\n\nimport \"../styles.scss\";\n\nconst ElementsPanel = ({\n elementSections,\n selectedElements = [],\n handleAddElement,\n isElementVisible,\n fixedFirstElement,\n fixedLastElement,\n handleDragEnd = noop,\n isDragDisabled = true,\n handleSelectElement,\n selectedElementId,\n selectedElementActions,\n addAllElements = noop,\n isAddingAllElements = false,\n showElementsFillButton = false,\n isAddingNewElement = false,\n}) => {\n const [isElementsListVisible, setIsElementsListVisible] = useState(false);\n const { isSize } = useBreakpoints();\n const isLargerScreen = !isSize(\"mobile\");\n\n const [isElementsPanelCollapsed, setIsElementsPanelCollapsed] = useState(\n !isLargerScreen\n );\n\n const isSelectedElementsEmpty = isEmpty(selectedElements);\n const shouldShowElementsList =\n isSelectedElementsEmpty || isElementsListVisible;\n\n const handleElementSelect = element => {\n setIsElementsListVisible(false);\n handleAddElement(element);\n };\n\n useEffect(() => {\n setIsElementsPanelCollapsed(!isLargerScreen);\n }, [isLargerScreen]);\n\n return (\n <>\n {!isElementsPanelCollapsed && (\n <div\n className=\"neeto-molecules-builder-panel__backdrop\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n )}\n <div\n className={classnames(\n \"neeto-molecules-builder-elements-list-panel__wrapper\",\n {\n \"neeto-molecules-builder-elements-list-panel__wrapper--collapsed\":\n isElementsPanelCollapsed,\n }\n )}\n >\n <div className=\"neeto-molecules-builder-elements-list-panel__container\">\n <div\n className=\"neeto-molecules-builder-elements-list-panel neeto-ui-bg-gray-100\"\n onClick={event => event.stopPropagation()}\n >\n {shouldShowElementsList ? (\n <ElementList\n {...{\n elementSections,\n isSelectedElementsEmpty,\n setIsElementsListVisible,\n }}\n onSelect={handleElementSelect}\n />\n ) : (\n <SelectedElementsList\n {...{\n addAllElements,\n fixedFirstElement,\n fixedLastElement,\n handleDragEnd,\n handleSelectElement,\n isAddingAllElements,\n isAddingNewElement,\n isDragDisabled,\n isElementVisible,\n selectedElementActions,\n selectedElementId,\n selectedElements,\n setIsElementsListVisible,\n showElementsFillButton,\n }}\n />\n )}\n </div>\n </div>\n <Button\n className=\"neeto-molecules-builder-elements-list-panel__toggler\"\n icon={Collapse}\n style=\"secondary\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n </div>\n </>\n );\n};\n\nElementsPanel.propTypes = {\n /**\n * List of supported elements to be rendered in the ElementsList panel.\n */\n elementSections: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n elements: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n icon: PropTypes.elementType,\n })\n ),\n key: PropTypes.string,\n isCreatable: PropTypes.func,\n })\n ),\n /**\n * List of selected elements.\n */\n selectedElements: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n kind: PropTypes.string,\n position: PropTypes.number,\n isPending: PropTypes.bool,\n label: PropTypes.string,\n icon: PropTypes.elementType,\n })\n ),\n /**\n * Callback that will be triggered when an element is clicked from the elements list.\n */\n handleAddElement: PropTypes.func,\n /**\n * Function that will be used to check whether the element is visible.\n * The callback will be triggered with element info at the time of render.\n */\n isElementVisible: PropTypes.func,\n /**\n * The record that's to be rendered as first record.\n * This won't be draggable.\n */\n fixedFirstElement: PropTypes.shape({\n id: PropTypes.string,\n kind: PropTypes.string,\n position: PropTypes.number,\n label: PropTypes.string,\n icon: PropTypes.node,\n }),\n /**\n * The record that's to be rendered as the last record.\n * This won't be draggable.\n */\n fixedLastElement: PropTypes.shape({\n id: PropTypes.string,\n kind: PropTypes.string,\n position: PropTypes.number,\n label: PropTypes.string,\n icon: PropTypes.node,\n }),\n /**\n * The callback that will be triggered at the end of a drag event.\n */\n handleDragEnd: PropTypes.func,\n /**\n * Boolean to mention that the drag feature should be disabled.\n */\n isDragDisabled: PropTypes.bool,\n /**\n * The callback that will be triggered when an element is clicked from the elements list.\n */\n handleSelectElement: PropTypes.func,\n /**\n * Id of the current selected element.\n */\n selectedElementId: PropTypes.string,\n /**\n * Actions to be rendered on the selected elements.\n */\n selectedElementActions: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n key: PropTypes.string,\n onClick: PropTypes.func,\n isVisible: PropTypes.bool,\n })\n ),\n PropTypes.func,\n ]),\n\n /**\n * Function that will be called when clicked on the add all elements button.\n */\n addAllElements: PropTypes.func,\n /**\n * Boolean to notate whether all elements are being added.\n */\n isAddingAllElements: PropTypes.bool,\n /**\n * Boolean to control the visibility of add all elements button.\n */\n showElementsFillButton: PropTypes.bool,\n /**\n * Boolean to notate whether an element is being added.\n */\n isAddingNewElement: PropTypes.bool,\n};\n\nexport default ElementsPanel;\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { Typography } from \"neetoui\";\n\nconst EmptyProperty = withT(({ t }) => (\n <div className=\"space-y-4 pb-6 pr-6\">\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-text-gray-600 neeto-ui-rounded-lg flex w-full flex-col items-center justify-center space-y-2 px-16 py-8\">\n <Typography\n className=\"text-center\"\n data-cy=\"build-page-text-label\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.builderSidebar.noQuestionProperties\")}\n </Typography>\n </div>\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-40 w-full\" />\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-72 w-full\" />\n </div>\n));\n\nexport default EmptyProperty;\n","import React from \"react\";\n\nimport withT from \"neetocommons/react-utils/withT\";\nimport { DownArrow } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\n\nconst Skeleton = withT(({ t }) => (\n <div className=\"space-y-4 pb-6 pr-6\">\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-12 w-full\" />\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-text-gray-600 neeto-ui-rounded-lg flex w-full flex-col items-center justify-center space-y-2 px-16 py-8\">\n <Typography\n className=\"text-center\"\n data-cy=\"build-page-text-label\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {t(\"neetoMolecules.builderSidebar.emptyQuestionProperties\")}\n </Typography>\n <DownArrow />\n </div>\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-40 w-full\" />\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-lg h-72 w-full\" />\n </div>\n));\n\nexport default Skeleton;\n","import React, { useEffect, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { useBreakpoints } from \"neetocommons/react-utils\";\nimport { Close } from \"neetoicons\";\nimport { Button } from \"neetoui\";\n\nimport EmptyProperty from \"./EmptyProperty\";\nimport Skeleton from \"./Skeleton\";\n\nimport \"../styles.scss\";\n\nconst PropertiesPanel = ({ id, children, onClose }) => {\n const { isSize } = useBreakpoints(window => ({\n largeDesktop: window.innerWidth >= 1280,\n }));\n const isLargerScreen = isSize(\"largeDesktop\");\n const [isPropertiesPanelCollapsed, setIsPropertiesPanelCollapsed] = useState(\n !isLargerScreen\n );\n\n useEffect(() => {\n setIsPropertiesPanelCollapsed(!isLargerScreen);\n }, [isLargerScreen]);\n\n useEffect(() => {\n if (!id) return;\n setIsPropertiesPanelCollapsed(false);\n }, [id]);\n\n const handleCollapsePanel = () => {\n setIsPropertiesPanelCollapsed(!isPropertiesPanelCollapsed);\n onClose?.(id);\n };\n\n return (\n <>\n {!isPropertiesPanelCollapsed && (\n <div\n className=\"neeto-molecules-builder-panel__backdrop neeto-molecules-builder-panel__backdrop--extended\"\n onClick={handleCollapsePanel}\n />\n )}\n <div\n className={classnames(\n \"neeto-molecules-builder-element-properties-panel__wrapper\",\n {\n \"neeto-molecules-builder-element-properties-panel__wrapper--collapsed\":\n isPropertiesPanelCollapsed,\n }\n )}\n >\n <div\n className=\"neeto-molecules-builder-element-properties-panel neeto-ui-bg-gray-100\"\n data-cy=\"properties-panel\"\n >\n {children ?? <Skeleton />}\n </div>\n {!isPropertiesPanelCollapsed && (\n <Button\n className=\"neeto-molecules-builder-properties-panel__close\"\n icon={Close}\n style=\"secondary\"\n onClick={handleCollapsePanel}\n />\n )}\n </div>\n </>\n );\n};\n\nPropertiesPanel.EmptyProperty = EmptyProperty;\n\nexport default PropertiesPanel;\n"],"names":["Body","_ref","size","props","_objectWithoutProperties","_excluded","React","createElement","_extends","className","classnames","Element","label","Icon","icon","_ref$isCreatable","isCreatable","onClick","concat","joinHyphenCase","noop","Typography","style","Section","title","elements","onSelect","isEmpty","Fragment","textTransform","map","element","value","key","TitleBar","setIsElementsListVisible","isSelectedElementsEmpty","_useTranslation","useTranslation","t","onCancel","lineHeight","weight","Button","ElementList","_ref$elementSections","elementSections","_useState","useState","_useState2","_slicedToArray","searchString","setSearchString","filteredSections","useMemo","section","_objectSpread","filter","toLowerCase","includes","isPresent","isNotEmpty","Input","autoFocus","placeholder","prefix","Search","onChange","withEventTargetValue","SelectedElement","isActive","handleSelectElement","_ref$isSelectable","isSelectable","_ref$errors","errors","_ref$actions","actions","rootElementRef","useRef","shouldShowDropdown","menuItems","action","mergeRight","useEffect","rootElement","current","scrollIntoView","behavior","block","error","findById","id","ref","hyphenate","MoreDropdown","isDisabled","isPending","dropdownButtonProps","loading","memo","isLoading","showElementsFillButton","isAddingAllElements","addAllElements","isAddingNewElement","handleAddElement","PLURAL","disabled","Flash","tooltipProps","content","SelectedElementsList","handleDragEnd","isDragDisabled","isElementVisible","selectedElementId","selectedElements","fixedLastElement","fixedFirstElement","selectedElementActions","index","DragDropContext","onDragEnd","Droppable","droppableId","_ref2","innerRef","droppableProps","_isElementVisible","_element$id","_element$id2","isVisible","Draggable","draggableId","_ref3","_element$id3","draggableProps","dragHandleProps","ElementsPanel","_ref$selectedElements","_ref$handleDragEnd","_ref$isDragDisabled","_ref$addAllElements","_ref$isAddingAllEleme","_ref$showElementsFill","_ref$isAddingNewEleme","isElementsListVisible","_useBreakpoints","useBreakpoints","isSize","isLargerScreen","_useState3","_useState4","isElementsPanelCollapsed","setIsElementsPanelCollapsed","shouldShowElementsList","handleElementSelect","event","stopPropagation","Collapse","EmptyProperty","withT","Skeleton","DownArrow","PropertiesPanel","children","onClose","window","largeDesktop","innerWidth","isPropertiesPanelCollapsed","setIsPropertiesPanelCollapsed","handleCollapsePanel","Close"],"mappings":"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"}
package/dist/Rename.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ as _slicedToArray } from './slicedToArray-b4278ecd.js';
2
- import React__default, { useState, useRef } from 'react';
2
+ import React__default, { useState, useRef, useMemo } from 'react';
3
3
  import classnames from 'classnames';
4
- import { isPresent, isNotEmpty } from '@bigbinary/neeto-cist';
4
+ import { isPresent, isNotEmpty, notEquals } from '@bigbinary/neeto-cist';
5
5
  import useOnClickOutside from '@bigbinary/neeto-commons-frontend/react-utils/useOnClickOutside';
6
6
  import useStateWithDependency from '@bigbinary/neeto-commons-frontend/react-utils/useStateWithDependency';
7
7
  import { isEmpty } from 'ramda';
@@ -43,7 +43,11 @@ var Editor = function Editor(_ref) {
43
43
  setName = _ref.setName,
44
44
  inputProps = _ref.inputProps,
45
45
  editMode = _ref.editMode;
46
- var closeRef = useHotkeys("escape", handleClose, {
46
+ var closeRef = useHotkeys("escape", function (event) {
47
+ return handleClose({
48
+ event: event
49
+ });
50
+ }, {
47
51
  mode: "scoped",
48
52
  enabled: editMode
49
53
  });
@@ -86,7 +90,11 @@ var Editor = function Editor(_ref) {
86
90
  disabled: isLoading,
87
91
  icon: Close,
88
92
  style: "text",
89
- onClick: handleClose
93
+ onClick: function onClick(event) {
94
+ return handleClose({
95
+ event: event
96
+ });
97
+ }
90
98
  }, cancelButtonProps))),
91
99
  onChange: withEventTargetValue(setName),
92
100
  onClick: function onClick(event) {
@@ -243,19 +251,28 @@ var Rename = function Rename(_ref) {
243
251
  editMode = _useState2[0],
244
252
  setEditMode = _useState2[1];
245
253
  var renameRef = useRef(null);
254
+ var initialName = useMemo(function () {
255
+ return name;
256
+ }, [editMode]);
246
257
  useOnClickOutside(renameRef, function () {
247
- return editMode && handleClose();
258
+ return editMode && handleClose({
259
+ saveOnOutsideClick: notEquals(name, initialName)
260
+ });
248
261
  });
249
262
  var handleRename = function handleRename(event, name) {
250
- event.stopPropagation();
263
+ event === null || event === void 0 ? void 0 : event.stopPropagation();
251
264
  var newName = allowEmptySubmission && isEmpty(name) ? defaultName : name;
252
265
  setName(newName);
253
266
  onRename === null || onRename === void 0 ? void 0 : onRename(newName);
254
267
  setEditMode(false);
255
268
  };
256
- var handleClose = function handleClose(event) {
269
+ var handleClose = function handleClose(_ref2) {
270
+ var _ref2$event = _ref2.event,
271
+ event = _ref2$event === void 0 ? null : _ref2$event,
272
+ _ref2$saveOnOutsideCl = _ref2.saveOnOutsideClick,
273
+ saveOnOutsideClick = _ref2$saveOnOutsideCl === void 0 ? false : _ref2$saveOnOutsideCl;
257
274
  event === null || event === void 0 ? void 0 : event.stopPropagation();
258
- setName(value);
275
+ saveOnOutsideClick ? handleRename(event, name) : setName(value);
259
276
  setEditMode(false);
260
277
  };
261
278
  var handleRenameClick = function handleRenameClick(event) {