@bigbinary/neeto-team-members-frontend 4.4.1 → 4.4.2

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.
@@ -130,7 +130,7 @@
130
130
  "tooltips": {
131
131
  "activateUserToEdit_one": "Please activate the user to edit their role.",
132
132
  "activateUserToEdit_other": "Please activate the selected users to edit their role.",
133
- "adminMustHaveAccess": "Admin permissions cannot be changed by anyone.",
133
+ "adminMustHaveAccess": "{{roleName}} permissions cannot be changed by anyone.",
134
134
  "clickToViewPermissions": "Click to view the roles and their permissions.",
135
135
  "noPermissionToAddMember": "Please ask the admin to permit you to add members.",
136
136
  "noPermissionToAddRole": "Please ask the admin to permit you to add roles.",
@@ -6,7 +6,7 @@ import Dropdown from '@bigbinary/neetoui/Dropdown';
6
6
  import Spinner from '@bigbinary/neetoui/Spinner';
7
7
  import { includes, toLower, map, append, pluck, any, not, isEmpty } from 'ramda';
8
8
  import { useTranslation } from 'react-i18next';
9
- import { A as AssignList } from './index-98835f14.js';
9
+ import { A as AssignList } from './index-dc7f5532.js';
10
10
  import Down from '@bigbinary/neeto-icons/Down';
11
11
  import Avatar from '@bigbinary/neetoui/Avatar';
12
12
  import Tooltip from '@bigbinary/neetoui/Tooltip';
@@ -183,7 +183,8 @@ var MembersDropdown = function MembersDropdown(_ref) {
183
183
  children: [options.map(function (_ref3, index) {
184
184
  var label = _ref3.label,
185
185
  value = _ref3.value,
186
- type = _ref3.type;
186
+ type = _ref3.type,
187
+ profileImagePath = _ref3.profileImagePath;
187
188
  return /*#__PURE__*/jsxs(Fragment, {
188
189
  children: [type === SEARCH_TYPES.TEAM && /*#__PURE__*/jsx(AssignList.TeamsListItem, {
189
190
  active: (config === null || config === void 0 ? void 0 : config.selectedTeam.id) === value,
@@ -196,6 +197,7 @@ var MembersDropdown = function MembersDropdown(_ref) {
196
197
  }
197
198
  }), type === SEARCH_TYPES.MEMBER && /*#__PURE__*/jsx(AssignList.MembersListItem, {
198
199
  active: (config === null || config === void 0 ? void 0 : config.selectedMember.value) === value,
200
+ imageUrl: profileImagePath,
199
201
  memberName: label,
200
202
  onClick: function onClick() {
201
203
  return handleClick(value);
@@ -1 +1 @@
1
- {"version":3,"file":"MembersDropdown.js","sources":["../app/javascript/src/components/MembersDropdown/AssignDropdownTarget.jsx","../app/javascript/src/components/MembersDropdown/constants.js","../app/javascript/src/components/MembersDropdown/utils.js","../app/javascript/src/components/MembersDropdown/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Down } from \"neetoicons\";\nimport { Avatar, Tooltip, Typography } from \"neetoui\";\n\nconst AssignDropdownTarget = ({ selectedMember = {} }) => {\n const { label = \"--\", profileImagePath = \"\" } = selectedMember;\n\n return (\n <div className=\"flex h-10 w-60 cursor-pointer select-none items-center gap-2\">\n {label !== \"--\" && (\n <Avatar\n className=\"flex-shrink-0\"\n user={{ name: label, imageUrl: profileImagePath }}\n />\n )}\n <Tooltip content={label} position=\"top\">\n <Typography className=\"truncate xl:block\" style=\"h5\" weight=\"normal\">\n {label}\n </Typography>\n </Tooltip>\n <Down className=\"flex-shrink-0\" size={16} />\n </div>\n );\n};\n\nexport default memo(AssignDropdownTarget);\n","export const SEARCH_TYPES = {\n MEMBER: \"agent\",\n TEAM: \"group\",\n MEMBER_OR_TEAM: \"agent_or_group\",\n};\n\nexport const TEAM_UNGROUPED = { value: \"ungrouped\", label: \"--\" };\n","import { findBy, isNotEmpty, removeBy } from \"neetocist\";\nimport { includes, toLower, append, pluck, map, any } from \"ramda\";\n\nimport { TEAM_UNGROUPED, SEARCH_TYPES } from \"./constants\";\n\nconst createMembersDropdownOptions = ({\n selectedTeam,\n searchTerm,\n availableTeams,\n onlyMembers = false,\n}) => {\n const tempOptions = [];\n const hasSelectedTeam =\n selectedTeam?.value && selectedTeam.value !== TEAM_UNGROUPED.value;\n\n const filteredTeams = availableTeams.filter(team =>\n isNotEmpty(team.filteredMembers)\n );\n\n const addMembersInTeam = ({ filteredMembers }) =>\n filteredMembers.forEach(member => {\n tempOptions.push({ ...member, type: SEARCH_TYPES.MEMBER });\n });\n\n const containsSearchTerm = includes(toLower(searchTerm));\n\n if (hasSelectedTeam) {\n const selectedTeamData = findBy(\n { value: selectedTeam.value },\n availableTeams\n );\n if (selectedTeamData) addMembersInTeam(selectedTeamData);\n }\n\n if (!hasSelectedTeam) {\n filteredTeams.forEach(team => {\n tempOptions.push({ ...team, type: SEARCH_TYPES.TEAM });\n addMembersInTeam(team);\n });\n }\n\n if (onlyMembers) {\n return removeBy({ type: \"group\" }, tempOptions);\n }\n\n return searchTerm\n ? tempOptions.filter(({ label, filteredMembers = [] }) => {\n const teamAndMembersLabels = map(\n toLower,\n append(label, pluck(\"label\", filteredMembers))\n );\n\n return any(containsSearchTerm, teamAndMembersLabels);\n })\n : tempOptions;\n};\n\nexport { createMembersDropdownOptions };\n","import { Fragment, useMemo, useRef, useState } from \"react\";\n\nimport { useOnClickOutside } from \"neetocommons/react-utils\";\nimport { Typography, Dropdown, Spinner } from \"neetoui\";\nimport { isEmpty, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/components/dropdown.scss\";\n\nimport AssignDropdownTarget from \"./AssignDropdownTarget\";\nimport { SEARCH_TYPES } from \"./constants\";\nimport { createMembersDropdownOptions } from \"./utils\";\n\nimport AssignList from \"../Common/AssignList\";\n\nconst MembersDropdown = ({ config }) => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const dropdownRef = useRef(null);\n\n const { t } = useTranslation();\n\n useOnClickOutside(dropdownRef, () => setIsDropdownOpen(false));\n\n const options = useMemo(\n () =>\n createMembersDropdownOptions({\n searchTerm,\n selectedTeam: config?.selectedTeam,\n availableTeams: config?.availableTeams || [],\n }),\n [config?.selectedTeam, searchTerm, config?.availableTeams]\n );\n\n const handleClick = value => {\n setIsDropdownOpen(false);\n config?.handleUpdate({\n id: config?.selectedMember.value === value ? null : value,\n });\n };\n\n return (\n <div ref={dropdownRef}>\n <Dropdown\n className=\"w-full\"\n closeOnSelect={config?.closeOnSelect ?? true}\n isOpen={isDropdownOpen}\n position=\"bottom-end\"\n ref={dropdownRef}\n targetClassName=\"w-full\"\n customTarget={() => (\n <AssignDropdownTarget selectedMember={config?.selectedMember} />\n )}\n onClick={() => setIsDropdownOpen(not)}\n onClose={() => setSearchTerm(\"\")}\n >\n <AssignList>\n <AssignList.Search\n {...{ searchTerm }}\n handleClearSearchTerm={() => setSearchTerm(\"\")}\n placeholder={config?.searchPlaceholder}\n onChange={({ target: { value } }) => setSearchTerm(value)}\n />\n {config?.isLoading ? (\n <div className=\"flex w-full items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <div\n className=\"ntm-assign-droplist__list-wrapper flex flex-col px-3\"\n key={searchTerm}\n >\n {options.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === SEARCH_TYPES.TEAM && (\n <AssignList.TeamsListItem\n active={config?.selectedTeam.id === value}\n teamName={label}\n onClick={() =>\n config?.handleUpdate({\n id:\n config?.selectedTeam.value === value ? null : value,\n isTeam: true,\n })\n }\n />\n )}\n {type === SEARCH_TYPES.MEMBER && (\n <AssignList.MembersListItem\n active={config?.selectedMember.value === value}\n memberName={label}\n onClick={() => handleClick(value)}\n />\n )}\n </Fragment>\n ))}\n {isEmpty(options) && (\n <div className=\"flex w-full items-center justify-center p-2\">\n <Typography\n data-cy=\"ticket-details-member-no-records-message\"\n style=\"body2\"\n >\n {t(\"neetoTeamMembers.helpers.noRecords\")}\n </Typography>\n </div>\n )}\n </div>\n )}\n </AssignList>\n </Dropdown>\n </div>\n );\n};\n\nexport default MembersDropdown;\n"],"names":["AssignDropdownTarget","_ref","_ref$selectedMember","selectedMember","_selectedMember$label","label","_selectedMember$profi","profileImagePath","_jsxs","className","children","_jsx","Avatar","user","name","imageUrl","Tooltip","content","position","Typography","style","weight","Down","size","memo","SEARCH_TYPES","MEMBER","TEAM","MEMBER_OR_TEAM","TEAM_UNGROUPED","value","createMembersDropdownOptions","selectedTeam","searchTerm","availableTeams","_ref$onlyMembers","onlyMembers","tempOptions","hasSelectedTeam","filteredTeams","filter","team","isNotEmpty","filteredMembers","addMembersInTeam","_ref2","forEach","member","push","_objectSpread","type","containsSearchTerm","includes","toLower","selectedTeamData","findBy","removeBy","_ref3","_ref3$filteredMembers","teamAndMembersLabels","map","append","pluck","any","MembersDropdown","_config$closeOnSelect","config","_useState","useState","_useState2","_slicedToArray","isDropdownOpen","setIsDropdownOpen","_useState3","_useState4","setSearchTerm","dropdownRef","useRef","_useTranslation","useTranslation","t","useOnClickOutside","options","useMemo","handleClick","handleUpdate","id","ref","Dropdown","closeOnSelect","isOpen","targetClassName","customTarget","onClick","not","onClose","AssignList","Search","handleClearSearchTerm","placeholder","searchPlaceholder","onChange","target","isLoading","Spinner","index","Fragment","TeamsListItem","active","teamName","isTeam","MembersListItem","memberName","isEmpty"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAAgC;AAAA,EAAA,IAAAC,mBAAA,GAAAD,IAAA,CAA1BE,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,mBAAA,CAAA;AACjD,EAAA,IAAAE,qBAAA,GAAgDD,cAAc,CAAtDE,KAAK;AAALA,IAAAA,KAAK,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IAAAE,qBAAA,GAA4BH,cAAc,CAAxCI,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA,CAAA;AAE3C,EAAA,oBACEE,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,8DAA8D;AAAAC,IAAAA,QAAA,GAC1EL,KAAK,KAAK,IAAI,iBACbM,GAAA,CAACC,MAAM,EAAA;AACLH,MAAAA,SAAS,EAAC,eAAe;AACzBI,MAAAA,IAAI,EAAE;AAAEC,QAAAA,IAAI,EAAET,KAAK;AAAEU,QAAAA,QAAQ,EAAER,gBAAAA;AAAiB,OAAA;AAAE,KACnD,CACF,eACDI,GAAA,CAACK,OAAO,EAAA;AAACC,MAAAA,OAAO,EAAEZ,KAAM;AAACa,MAAAA,QAAQ,EAAC,KAAK;MAAAR,QAAA,eACrCC,GAAA,CAACQ,UAAU,EAAA;AAACV,QAAAA,SAAS,EAAC,mBAAmB;AAACW,QAAAA,KAAK,EAAC,IAAI;AAACC,QAAAA,MAAM,EAAC,QAAQ;AAAAX,QAAAA,QAAA,EACjEL,KAAAA;OACS,CAAA;AAAC,KACN,CAAC,eACVM,GAAA,CAACW,IAAI,EAAA;AAACb,MAAAA,SAAS,EAAC,eAAe;AAACc,MAAAA,IAAI,EAAE,EAAA;AAAG,KAAE,CAAC,CAAA;AAAA,GACzC,CAAC,CAAA;AAEV,CAAC,CAAA;AAED,6BAAeC,aAAAA,IAAI,CAACxB,oBAAoB,CAAC;;AC1BlC,IAAMyB,YAAY,GAAG;AAC1BC,EAAAA,MAAM,EAAE,OAAO;AACfC,EAAAA,IAAI,EAAE,OAAO;AACbC,EAAAA,cAAc,EAAE,gBAAA;AAClB,CAAC,CAAA;AAEM,IAAMC,cAAc,GAAG;AAAEC,EAAAA,KAAK,EAAE,WAAW;AAAEzB,EAAAA,KAAK,EAAE,IAAA;AAAK,CAAC;;;;ACDjE,IAAM0B,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAA9B,IAAA,EAK5B;AAAA,EAAA,IAJJ+B,YAAY,GAAA/B,IAAA,CAAZ+B,YAAY;IACZC,UAAU,GAAAhC,IAAA,CAAVgC,UAAU;IACVC,cAAc,GAAAjC,IAAA,CAAdiC,cAAc;IAAAC,gBAAA,GAAAlC,IAAA,CACdmC,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,gBAAA,CAAA;EAEnB,IAAME,WAAW,GAAG,EAAE,CAAA;AACtB,EAAA,IAAMC,eAAe,GACnB,CAAAN,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEF,KAAK,KAAIE,YAAY,CAACF,KAAK,KAAKD,cAAc,CAACC,KAAK,CAAA;AAEpE,EAAA,IAAMS,aAAa,GAAGL,cAAc,CAACM,MAAM,CAAC,UAAAC,IAAI,EAAA;AAAA,IAAA,OAC9CC,UAAU,CAACD,IAAI,CAACE,eAAe,CAAC,CAAA;AAAA,GAClC,CAAC,CAAA;AAED,EAAA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,KAAA,EAAA;AAAA,IAAA,IAAMF,eAAe,GAAAE,KAAA,CAAfF,eAAe,CAAA;AAAA,IAAA,OACzCA,eAAe,CAACG,OAAO,CAAC,UAAAC,MAAM,EAAI;AAChCV,MAAAA,WAAW,CAACW,IAAI,CAAAC,aAAA,CAAAA,aAAA,KAAMF,MAAM,CAAA,EAAA,EAAA,EAAA;QAAEG,IAAI,EAAEzB,YAAY,CAACC,MAAAA;AAAM,OAAA,CAAE,CAAC,CAAA;AAC5D,KAAC,CAAC,CAAA;AAAA,GAAA,CAAA;EAEJ,IAAMyB,kBAAkB,GAAGC,QAAQ,CAACC,OAAO,CAACpB,UAAU,CAAC,CAAC,CAAA;AAExD,EAAA,IAAIK,eAAe,EAAE;IACnB,IAAMgB,gBAAgB,GAAGC,MAAM,CAC7B;MAAEzB,KAAK,EAAEE,YAAY,CAACF,KAAAA;KAAO,EAC7BI,cACF,CAAC,CAAA;AACD,IAAA,IAAIoB,gBAAgB,EAAEV,gBAAgB,CAACU,gBAAgB,CAAC,CAAA;AAC1D,GAAA;EAEA,IAAI,CAAChB,eAAe,EAAE;AACpBC,IAAAA,aAAa,CAACO,OAAO,CAAC,UAAAL,IAAI,EAAI;AAC5BJ,MAAAA,WAAW,CAACW,IAAI,CAAAC,aAAA,CAAAA,aAAA,KAAMR,IAAI,CAAA,EAAA,EAAA,EAAA;QAAES,IAAI,EAAEzB,YAAY,CAACE,IAAAA;AAAI,OAAA,CAAE,CAAC,CAAA;MACtDiB,gBAAgB,CAACH,IAAI,CAAC,CAAA;AACxB,KAAC,CAAC,CAAA;AACJ,GAAA;AAEA,EAAA,IAAIL,WAAW,EAAE;AACf,IAAA,OAAOoB,QAAQ,CAAC;AAAEN,MAAAA,IAAI,EAAE,OAAA;KAAS,EAAEb,WAAW,CAAC,CAAA;AACjD,GAAA;EAEA,OAAOJ,UAAU,GACbI,WAAW,CAACG,MAAM,CAAC,UAAAiB,KAAA,EAAqC;AAAA,IAAA,IAAlCpD,KAAK,GAAAoD,KAAA,CAALpD,KAAK;MAAAqD,qBAAA,GAAAD,KAAA,CAAEd,eAAe;AAAfA,MAAAA,eAAe,GAAAe,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA,CAAA;AAC/C,IAAA,IAAMC,oBAAoB,GAAGC,GAAG,CAC9BP,OAAO,EACPQ,MAAM,CAACxD,KAAK,EAAEyD,KAAK,CAAC,OAAO,EAAEnB,eAAe,CAAC,CAC/C,CAAC,CAAA;AAED,IAAA,OAAOoB,GAAG,CAACZ,kBAAkB,EAAEQ,oBAAoB,CAAC,CAAA;GACrD,CAAC,GACFtB,WAAW,CAAA;AACjB,CAAC;;ACvCD,IAAM2B,eAAe,GAAG,SAAlBA,eAAeA,CAAA/D,IAAA,EAAmB;AAAA,EAAA,IAAAgE,qBAAA,CAAA;AAAA,EAAA,IAAbC,MAAM,GAAAjE,IAAA,CAANiE,MAAM,CAAA;AAC/B,EAAA,IAAAC,SAAA,GAA4CC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAApDI,IAAAA,cAAc,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,iBAAiB,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAAI,UAAA,GAAoCL,QAAQ,CAAC,EAAE,CAAC;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAzCxC,IAAAA,UAAU,GAAAyC,UAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,aAAa,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AAEhC,EAAA,IAAME,WAAW,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAEhC,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;EAETC,iBAAiB,CAACL,WAAW,EAAE,YAAA;IAAA,OAAMJ,iBAAiB,CAAC,KAAK,CAAC,CAAA;GAAC,CAAA,CAAA;EAE9D,IAAMU,OAAO,GAAGC,OAAO,CACrB,YAAA;AAAA,IAAA,OACEpD,4BAA4B,CAAC;AAC3BE,MAAAA,UAAU,EAAVA,UAAU;AACVD,MAAAA,YAAY,EAAEkC,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAElC,YAAY;MAClCE,cAAc,EAAE,CAAAgC,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEhC,cAAc,KAAI,EAAA;AAC5C,KAAC,CAAC,CAAA;AAAA,GAAA,EACJ,CAACgC,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAElC,YAAY,EAAEC,UAAU,EAAEiC,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEhC,cAAc,CAC3D,CAAC,CAAA;AAED,EAAA,IAAMkD,WAAW,GAAG,SAAdA,WAAWA,CAAGtD,KAAK,EAAI;IAC3B0C,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACxBN,IAAAA,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,IAANA,MAAM,CAAEmB,YAAY,CAAC;AACnBC,MAAAA,EAAE,EAAE,CAAApB,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAE/D,cAAc,CAAC2B,KAAK,MAAKA,KAAK,GAAG,IAAI,GAAGA,KAAAA;AACtD,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,oBACEnB,GAAA,CAAA,KAAA,EAAA;AAAK4E,IAAAA,GAAG,EAAEX,WAAY;IAAAlE,QAAA,eACpBC,GAAA,CAAC6E,QAAQ,EAAA;AACP/E,MAAAA,SAAS,EAAC,QAAQ;AAClBgF,MAAAA,aAAa,EAAAxB,CAAAA,qBAAA,GAAEC,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEuB,aAAa,MAAAxB,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,IAAK;AAC7CyB,MAAAA,MAAM,EAAEnB,cAAe;AACvBrD,MAAAA,QAAQ,EAAC,YAAY;AACrBqE,MAAAA,GAAG,EAAEX,WAAY;AACjBe,MAAAA,eAAe,EAAC,QAAQ;MACxBC,YAAY,EAAE,SAAAA,YAAA,GAAA;QAAA,oBACZjF,GAAA,CAACX,sBAAoB,EAAA;AAACG,UAAAA,cAAc,EAAE+D,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAE/D,cAAAA;AAAe,SAAE,CAAC,CAAA;OAChE;MACF0F,OAAO,EAAE,SAAAA,OAAA,GAAA;QAAA,OAAMrB,iBAAiB,CAACsB,GAAG,CAAC,CAAA;OAAC;MACtCC,OAAO,EAAE,SAAAA,OAAA,GAAA;QAAA,OAAMpB,aAAa,CAAC,EAAE,CAAC,CAAA;OAAC;MAAAjE,QAAA,eAEjCF,IAAA,CAACwF,UAAU,EAAA;AAAAtF,QAAAA,QAAA,EACTC,cAAAA,GAAA,CAACqF,UAAU,CAACC,MAAM,EAAA;AACVhE,UAAAA,UAAU,EAAVA,UAAU;UAChBiE,qBAAqB,EAAE,SAAAA,qBAAA,GAAA;YAAA,OAAMvB,aAAa,CAAC,EAAE,CAAC,CAAA;WAAC;AAC/CwB,UAAAA,WAAW,EAAEjC,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEkC,iBAAkB;UACvCC,QAAQ,EAAE,SAAAA,QAAAA,CAAAxD,KAAA,EAAA;AAAA,YAAA,IAAaf,KAAK,GAAAe,KAAA,CAAfyD,MAAM,CAAIxE,KAAK,CAAA;YAAA,OAAS6C,aAAa,CAAC7C,KAAK,CAAC,CAAA;AAAA,WAAA;SAC1D,CAAC,EACDoC,MAAM,KAANA,IAAAA,IAAAA,MAAM,eAANA,MAAM,CAAEqC,SAAS,gBAChB5F,GAAA,CAAA,KAAA,EAAA;AAAKF,UAAAA,SAAS,EAAC,8CAA8C;AAAAC,UAAAA,QAAA,eAC3DC,GAAA,CAAC6F,OAAO,EAAE,EAAA,CAAA;SACP,CAAC,gBAENhG,IAAA,CAAA,KAAA,EAAA;AACEC,UAAAA,SAAS,EAAC,sDAAsD;UAAAC,QAAA,EAAA,CAG/DwE,OAAO,CAACtB,GAAG,CAAC,UAAAH,KAAA,EAAyBgD,KAAK,EAAA;AAAA,YAAA,IAA3BpG,KAAK,GAAAoD,KAAA,CAALpD,KAAK;cAAEyB,KAAK,GAAA2B,KAAA,CAAL3B,KAAK;cAAEoB,IAAI,GAAAO,KAAA,CAAJP,IAAI,CAAA;YAAA,oBAChC1C,IAAA,CAACkG,QAAQ,EAAA;cAAAhG,QAAA,EAAA,CACNwC,IAAI,KAAKzB,YAAY,CAACE,IAAI,iBACzBhB,GAAA,CAACqF,UAAU,CAACW,aAAa,EAAA;AACvBC,gBAAAA,MAAM,EAAE,CAAA1C,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAElC,YAAY,CAACsD,EAAE,MAAKxD,KAAM;AAC1C+E,gBAAAA,QAAQ,EAAExG,KAAM;gBAChBwF,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,kBAAA,OACP3B,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAEmB,YAAY,CAAC;AACnBC,oBAAAA,EAAE,EACA,CAAApB,MAAM,KAANA,IAAAA,IAAAA,MAAM,uBAANA,MAAM,CAAElC,YAAY,CAACF,KAAK,MAAKA,KAAK,GAAG,IAAI,GAAGA,KAAK;AACrDgF,oBAAAA,MAAM,EAAE,IAAA;AACV,mBAAC,CAAC,CAAA;AAAA,iBAAA;AACH,eACF,CACF,EACA5D,IAAI,KAAKzB,YAAY,CAACC,MAAM,iBAC3Bf,GAAA,CAACqF,UAAU,CAACe,eAAe,EAAA;AACzBH,gBAAAA,MAAM,EAAE,CAAA1C,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAE/D,cAAc,CAAC2B,KAAK,MAAKA,KAAM;AAC/CkF,gBAAAA,UAAU,EAAE3G,KAAM;gBAClBwF,OAAO,EAAE,SAAAA,OAAA,GAAA;kBAAA,OAAMT,WAAW,CAACtD,KAAK,CAAC,CAAA;AAAA,iBAAA;AAAC,eACnC,CACF,CAAA;AAAA,aAAA,EApBY2E,KAqBL,CAAC,CAAA;AAAA,WACZ,CAAC,EACDQ,OAAO,CAAC/B,OAAO,CAAC,iBACfvE,GAAA,CAAA,KAAA,EAAA;AAAKF,YAAAA,SAAS,EAAC,6CAA6C;YAAAC,QAAA,eAC1DC,GAAA,CAACQ,UAAU,EAAA;AACT,cAAA,SAAA,EAAQ,0CAA0C;AAClDC,cAAAA,KAAK,EAAC,OAAO;cAAAV,QAAA,EAEZsE,CAAC,CAAC,oCAAoC,CAAA;aAC7B,CAAA;AAAC,WACV,CACN,CAAA;AAAA,SAAA,EAnCI/C,UAoCF,CACN,CAAA;OACS,CAAA;KACJ,CAAA;AAAC,GACR,CAAC,CAAA;AAEV;;;;"}
1
+ {"version":3,"file":"MembersDropdown.js","sources":["../app/javascript/src/components/MembersDropdown/AssignDropdownTarget.jsx","../app/javascript/src/components/MembersDropdown/constants.js","../app/javascript/src/components/MembersDropdown/utils.js","../app/javascript/src/components/MembersDropdown/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Down } from \"neetoicons\";\nimport { Avatar, Tooltip, Typography } from \"neetoui\";\n\nconst AssignDropdownTarget = ({ selectedMember = {} }) => {\n const { label = \"--\", profileImagePath = \"\" } = selectedMember;\n\n return (\n <div className=\"flex h-10 w-60 cursor-pointer select-none items-center gap-2\">\n {label !== \"--\" && (\n <Avatar\n className=\"flex-shrink-0\"\n user={{ name: label, imageUrl: profileImagePath }}\n />\n )}\n <Tooltip content={label} position=\"top\">\n <Typography className=\"truncate xl:block\" style=\"h5\" weight=\"normal\">\n {label}\n </Typography>\n </Tooltip>\n <Down className=\"flex-shrink-0\" size={16} />\n </div>\n );\n};\n\nexport default memo(AssignDropdownTarget);\n","export const SEARCH_TYPES = {\n MEMBER: \"agent\",\n TEAM: \"group\",\n MEMBER_OR_TEAM: \"agent_or_group\",\n};\n\nexport const TEAM_UNGROUPED = { value: \"ungrouped\", label: \"--\" };\n","import { findBy, isNotEmpty, removeBy } from \"neetocist\";\nimport { includes, toLower, append, pluck, map, any } from \"ramda\";\n\nimport { TEAM_UNGROUPED, SEARCH_TYPES } from \"./constants\";\n\nconst createMembersDropdownOptions = ({\n selectedTeam,\n searchTerm,\n availableTeams,\n onlyMembers = false,\n}) => {\n const tempOptions = [];\n const hasSelectedTeam =\n selectedTeam?.value && selectedTeam.value !== TEAM_UNGROUPED.value;\n\n const filteredTeams = availableTeams.filter(team =>\n isNotEmpty(team.filteredMembers)\n );\n\n const addMembersInTeam = ({ filteredMembers }) =>\n filteredMembers.forEach(member => {\n tempOptions.push({ ...member, type: SEARCH_TYPES.MEMBER });\n });\n\n const containsSearchTerm = includes(toLower(searchTerm));\n\n if (hasSelectedTeam) {\n const selectedTeamData = findBy(\n { value: selectedTeam.value },\n availableTeams\n );\n if (selectedTeamData) addMembersInTeam(selectedTeamData);\n }\n\n if (!hasSelectedTeam) {\n filteredTeams.forEach(team => {\n tempOptions.push({ ...team, type: SEARCH_TYPES.TEAM });\n addMembersInTeam(team);\n });\n }\n\n if (onlyMembers) {\n return removeBy({ type: \"group\" }, tempOptions);\n }\n\n return searchTerm\n ? tempOptions.filter(({ label, filteredMembers = [] }) => {\n const teamAndMembersLabels = map(\n toLower,\n append(label, pluck(\"label\", filteredMembers))\n );\n\n return any(containsSearchTerm, teamAndMembersLabels);\n })\n : tempOptions;\n};\n\nexport { createMembersDropdownOptions };\n","import { Fragment, useMemo, useRef, useState } from \"react\";\n\nimport { useOnClickOutside } from \"neetocommons/react-utils\";\nimport { Typography, Dropdown, Spinner } from \"neetoui\";\nimport { isEmpty, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\n// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/components/dropdown.scss\";\n\nimport AssignDropdownTarget from \"./AssignDropdownTarget\";\nimport { SEARCH_TYPES } from \"./constants\";\nimport { createMembersDropdownOptions } from \"./utils\";\n\nimport AssignList from \"../Common/AssignList\";\n\nconst MembersDropdown = ({ config }) => {\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n\n const dropdownRef = useRef(null);\n\n const { t } = useTranslation();\n\n useOnClickOutside(dropdownRef, () => setIsDropdownOpen(false));\n\n const options = useMemo(\n () =>\n createMembersDropdownOptions({\n searchTerm,\n selectedTeam: config?.selectedTeam,\n availableTeams: config?.availableTeams || [],\n }),\n [config?.selectedTeam, searchTerm, config?.availableTeams]\n );\n\n const handleClick = value => {\n setIsDropdownOpen(false);\n config?.handleUpdate({\n id: config?.selectedMember.value === value ? null : value,\n });\n };\n\n return (\n <div ref={dropdownRef}>\n <Dropdown\n className=\"w-full\"\n closeOnSelect={config?.closeOnSelect ?? true}\n isOpen={isDropdownOpen}\n position=\"bottom-end\"\n ref={dropdownRef}\n targetClassName=\"w-full\"\n customTarget={() => (\n <AssignDropdownTarget selectedMember={config?.selectedMember} />\n )}\n onClick={() => setIsDropdownOpen(not)}\n onClose={() => setSearchTerm(\"\")}\n >\n <AssignList>\n <AssignList.Search\n {...{ searchTerm }}\n handleClearSearchTerm={() => setSearchTerm(\"\")}\n placeholder={config?.searchPlaceholder}\n onChange={({ target: { value } }) => setSearchTerm(value)}\n />\n {config?.isLoading ? (\n <div className=\"flex w-full items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <div\n className=\"ntm-assign-droplist__list-wrapper flex flex-col px-3\"\n key={searchTerm}\n >\n {options.map(\n ({ label, value, type, profileImagePath }, index) => (\n <Fragment key={index}>\n {type === SEARCH_TYPES.TEAM && (\n <AssignList.TeamsListItem\n active={config?.selectedTeam.id === value}\n teamName={label}\n onClick={() =>\n config?.handleUpdate({\n id:\n config?.selectedTeam.value === value\n ? null\n : value,\n isTeam: true,\n })\n }\n />\n )}\n {type === SEARCH_TYPES.MEMBER && (\n <AssignList.MembersListItem\n active={config?.selectedMember.value === value}\n imageUrl={profileImagePath}\n memberName={label}\n onClick={() => handleClick(value)}\n />\n )}\n </Fragment>\n )\n )}\n {isEmpty(options) && (\n <div className=\"flex w-full items-center justify-center p-2\">\n <Typography\n data-cy=\"ticket-details-member-no-records-message\"\n style=\"body2\"\n >\n {t(\"neetoTeamMembers.helpers.noRecords\")}\n </Typography>\n </div>\n )}\n </div>\n )}\n </AssignList>\n </Dropdown>\n </div>\n );\n};\n\nexport default MembersDropdown;\n"],"names":["AssignDropdownTarget","_ref","_ref$selectedMember","selectedMember","_selectedMember$label","label","_selectedMember$profi","profileImagePath","_jsxs","className","children","_jsx","Avatar","user","name","imageUrl","Tooltip","content","position","Typography","style","weight","Down","size","memo","SEARCH_TYPES","MEMBER","TEAM","MEMBER_OR_TEAM","TEAM_UNGROUPED","value","createMembersDropdownOptions","selectedTeam","searchTerm","availableTeams","_ref$onlyMembers","onlyMembers","tempOptions","hasSelectedTeam","filteredTeams","filter","team","isNotEmpty","filteredMembers","addMembersInTeam","_ref2","forEach","member","push","_objectSpread","type","containsSearchTerm","includes","toLower","selectedTeamData","findBy","removeBy","_ref3","_ref3$filteredMembers","teamAndMembersLabels","map","append","pluck","any","MembersDropdown","_config$closeOnSelect","config","_useState","useState","_useState2","_slicedToArray","isDropdownOpen","setIsDropdownOpen","_useState3","_useState4","setSearchTerm","dropdownRef","useRef","_useTranslation","useTranslation","t","useOnClickOutside","options","useMemo","handleClick","handleUpdate","id","ref","Dropdown","closeOnSelect","isOpen","targetClassName","customTarget","onClick","not","onClose","AssignList","Search","handleClearSearchTerm","placeholder","searchPlaceholder","onChange","target","isLoading","Spinner","index","Fragment","TeamsListItem","active","teamName","isTeam","MembersListItem","memberName","isEmpty"],"mappings":"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"}
package/dist/Roles.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { _ as _slicedToArray } from './slicedToArray-6674c4b8.js';
2
- import require$$0, { useRef, memo, useCallback, useEffect, useState, Fragment as Fragment$1, useMemo } from 'react';
2
+ import require$$0, { useRef, memo, useCallback, useEffect, useState, createElement, Fragment as Fragment$1, useMemo } from 'react';
3
3
  import i18next, { t } from 'i18next';
4
- import { isNotEmpty, isPresent, _findBy, replaceById } from '@bigbinary/neeto-cist';
4
+ import { isNotEmpty, isPresent, _findBy, noop } from '@bigbinary/neeto-cist';
5
5
  import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
6
6
  import { withTitle, useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
7
7
  import Container from '@bigbinary/neeto-molecules/Container';
8
8
  import Spinner from '@bigbinary/neetoui/Spinner';
9
- import { not, map, prop, identical, modify, includes, __, groupBy, pluck, isEmpty, filter } from 'ramda';
9
+ import { not, map, prop, identical, includes, __, groupBy, pluck, isEmpty, filter } from 'ramda';
10
10
  import { c as commonjsGlobal } from './_commonjsHelpers-1789f0cf.js';
11
11
  import { w as withReactQuery } from './withReactQuery-e3d0bd1f.js';
12
12
  import { _ as _defineProperty, a as _typeof } from './defineProperty-b85f2e0f.js';
@@ -30,7 +30,6 @@ import Textarea from '@bigbinary/neetoui/formik/Textarea';
30
30
  import { object, string } from 'yup';
31
31
  import { P as Permissions, g as getChildrenRemovedFromRoot, s as sortPermissionsBySequence, a as getPermissionGroups, b as getModifiedPermissions } from './Permissions-1b52172b.js';
32
32
  import NoData from '@bigbinary/neetoui/NoData';
33
- import { _ as _toConsumableArray } from './toConsumableArray-0e395868.js';
34
33
  import classnames from 'classnames';
35
34
  import Checkbox from '@bigbinary/neetoui/Checkbox';
36
35
  import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
@@ -42,6 +41,7 @@ import Up from '@bigbinary/neeto-icons/Up';
42
41
  import './unsupportedIterableToArray-7c7192e5.js';
43
42
  import './queryClient-71ecdd08.js';
44
43
  import './objectWithoutProperties-a0edb288.js';
44
+ import './toConsumableArray-0e395868.js';
45
45
  import 'formik';
46
46
 
47
47
  var dist = {exports: {}};
@@ -1720,10 +1720,9 @@ var deepClone = function deepClone(object) {
1720
1720
  return result;
1721
1721
  };
1722
1722
  var renderRolesTooltipContent = function renderRolesTooltipContent(roleName) {
1723
- return Object.is(roleName, "Admin") ? t("neetoTeamMembers.tooltips.adminMustHaveAccess") : t("neetoTeamMembers.tooltips.noPermissionToEditRoles");
1724
- };
1725
- var removeDuplicates = function removeDuplicates(array) {
1726
- return _toConsumableArray(new Set(array));
1723
+ return Object.is(roleName, "Admin") || Object.is(roleName, "Owner") ? t("neetoTeamMembers.tooltips.adminMustHaveAccess", {
1724
+ roleName: roleName
1725
+ }) : t("neetoTeamMembers.tooltips.noPermissionToEditRoles");
1727
1726
  };
1728
1727
  var updatePermissionVisibility = function updatePermissionVisibility(categoryName, permissions) {
1729
1728
  var category = permissions.get(categoryName);
@@ -1805,18 +1804,16 @@ var Row = function Row(_ref) {
1805
1804
  _ref$permission = _ref.permission,
1806
1805
  permission = _ref$permission === void 0 ? null : _ref$permission,
1807
1806
  roles = _ref.roles,
1808
- setModifiedRoles = _ref.setModifiedRoles;
1807
+ _ref$setManageRole = _ref.setManageRole,
1808
+ setManageRole = _ref$setManageRole === void 0 ? noop : _ref$setManageRole;
1809
1809
  var isUpdatePermissionGranted = config.permissions.update;
1810
1810
  var permissions = (allPermissionsOfCategory === null || allPermissionsOfCategory === void 0 ? void 0 : allPermissionsOfCategory.get("permissions")) || [];
1811
1811
  var allPermissionIdsOfCategory = map(prop("id"), permissions);
1812
- var handleSubmit = function handleSubmit(role, checked) {
1813
- var permissionIds = isNotEmpty(allPermissionIdsOfCategory) ? allPermissionIdsOfCategory : [permission === null || permission === void 0 ? void 0 : permission.id];
1814
- var modifiedRole = modify("permissionIds", function () {
1815
- return checked ? removeDuplicates([].concat(_toConsumableArray(role.permissionIds), _toConsumableArray(permissionIds))) : role.permissionIds.filter(function (id) {
1816
- return !permissionIds.includes(id);
1817
- });
1818
- }, role);
1819
- setModifiedRoles(replaceById(role.id, modifiedRole));
1812
+ var handleSubmit = function handleSubmit(role) {
1813
+ setManageRole({
1814
+ isEdit: true,
1815
+ selectedRole: role
1816
+ });
1820
1817
  };
1821
1818
  var isCheckboxChecked = function isCheckboxChecked(role) {
1822
1819
  return !allPermissionsOfCategory ? includes(permission === null || permission === void 0 ? void 0 : permission.id, role.permissionIds) : allPermissionIdsOfCategory.every(includes(__, role.permissionIds));
@@ -1834,17 +1831,16 @@ var Row = function Row(_ref) {
1834
1831
  children: /*#__PURE__*/jsx(Tooltip, {
1835
1832
  content: renderRolesTooltipContent(role.name),
1836
1833
  position: "top",
1837
- disabled: isUpdatePermissionGranted && !identical(role.name, "Admin"),
1834
+ disabled: isUpdatePermissionGranted && !identical(role.name, "Admin") && !identical(role.name, "Owner"),
1838
1835
  children: /*#__PURE__*/jsx("div", {
1839
1836
  className: "ntm-roles-table-cell__checkbox-wrapper",
1840
1837
  children: /*#__PURE__*/jsx(Checkbox, {
1841
- disabled: true,
1842
1838
  checked: isCheckboxChecked(role),
1843
1839
  className: "ntm-roles-table-cell__checkbox",
1844
1840
  "data-cy": "ntm-roles-table-permission-checkbox",
1845
- onChange: function onChange(_ref2) {
1846
- var checked = _ref2.target.checked;
1847
- return handleSubmit(role, checked);
1841
+ disabled: identical(role.name, "Admin") || identical(role.name, "Owner"),
1842
+ onChange: function onChange() {
1843
+ return handleSubmit(role);
1848
1844
  }
1849
1845
  })
1850
1846
  })
@@ -1991,7 +1987,6 @@ var Columns = function Columns(_ref) {
1991
1987
  filteredRoles = _ref.filteredRoles,
1992
1988
  permissions = _ref.permissions,
1993
1989
  roles = _ref.roles,
1994
- setModifiedRoles = _ref.setModifiedRoles,
1995
1990
  setIsScrollPresent = _ref.setIsScrollPresent;
1996
1991
  var _useState = useState(DEFAULT_MANAGE_ROLE_VALUES),
1997
1992
  _useState2 = _slicedToArray(_useState, 2),
@@ -2005,9 +2000,9 @@ var Columns = function Columns(_ref) {
2005
2000
  className: "ntm-roles-table__columns",
2006
2001
  children: [/*#__PURE__*/jsx(TableHeader$1, {
2007
2002
  config: config,
2008
- roles: filteredRoles,
2009
2003
  setIsScrollPresent: setIsScrollPresent,
2010
- setManageRole: setManageRole
2004
+ setManageRole: setManageRole,
2005
+ roles: filteredRoles
2011
2006
  }), /*#__PURE__*/jsx(distExports.ScrollSyncPane, {
2012
2007
  group: ["horizontal", "vertical"],
2013
2008
  children: /*#__PURE__*/jsx("div", {
@@ -2018,32 +2013,33 @@ var Columns = function Columns(_ref) {
2018
2013
  var permissions = groupedPermissions.get("permissions");
2019
2014
  return /*#__PURE__*/jsxs("div", {
2020
2015
  children: [/*#__PURE__*/jsx(Row, {
2021
- allPermissionsOfCategory: groupedPermissions,
2022
2016
  config: config,
2023
- roles: filteredRoles,
2024
- setModifiedRoles: setModifiedRoles
2017
+ setManageRole: setManageRole,
2018
+ allPermissionsOfCategory: groupedPermissions,
2019
+ roles: filteredRoles
2025
2020
  }), isPermissionVisible && permissions.map(function (permission) {
2026
- return /*#__PURE__*/jsx(Row, {
2021
+ return /*#__PURE__*/createElement(Row, {
2027
2022
  config: config,
2028
2023
  permission: permission,
2029
- roles: filteredRoles,
2030
- setModifiedRoles: setModifiedRoles
2031
- }, permission.id);
2024
+ setManageRole: setManageRole,
2025
+ key: permission.id,
2026
+ roles: filteredRoles
2027
+ });
2032
2028
  })]
2033
2029
  }, index);
2034
2030
  })
2035
2031
  })
2036
2032
  }), /*#__PURE__*/jsx(ManageRoles, {
2037
2033
  config: config,
2038
- isOpen: manageRole.isEdit,
2034
+ onClose: onClose,
2039
2035
  permissions: permissions,
2040
- selectedRole: manageRole.selectedRole,
2041
- onClose: onClose
2036
+ isOpen: manageRole.isEdit,
2037
+ selectedRole: manageRole.selectedRole
2042
2038
  }), /*#__PURE__*/jsx(Delete, {
2043
- isOpen: manageRole.isDelete,
2039
+ onClose: onClose,
2044
2040
  roles: roles,
2045
- selectedRole: manageRole.selectedRole,
2046
- onClose: onClose
2041
+ isOpen: manageRole.isDelete,
2042
+ selectedRole: manageRole.selectedRole
2047
2043
  })]
2048
2044
  });
2049
2045
  };