@bigbinary/neeto-team-members-frontend 4.2.6 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +25 -29
  2. package/dist/Groups.js +767 -0
  3. package/dist/Groups.js.map +1 -0
  4. package/dist/ManageMember.js +55 -0
  5. package/dist/ManageMember.js.map +1 -0
  6. package/dist/MembersDropdown.js +220 -0
  7. package/dist/MembersDropdown.js.map +1 -0
  8. package/dist/Permissions-6735df34.js +223 -0
  9. package/dist/Permissions-6735df34.js.map +1 -0
  10. package/dist/Permissions-952ec2fa.js +235 -0
  11. package/dist/Permissions-952ec2fa.js.map +1 -0
  12. package/dist/Permissions.js +16 -0
  13. package/dist/Permissions.js.map +1 -0
  14. package/dist/Profile.js +961 -0
  15. package/dist/Profile.js.map +1 -0
  16. package/dist/Roles.js +2353 -0
  17. package/dist/Roles.js.map +1 -0
  18. package/dist/RolesRadioGroup-3aa7b822.js +297 -0
  19. package/dist/RolesRadioGroup-3aa7b822.js.map +1 -0
  20. package/dist/RolesRadioGroup-94aca05f.js +337 -0
  21. package/dist/RolesRadioGroup-94aca05f.js.map +1 -0
  22. package/dist/RolesRadioGroup.js +22 -0
  23. package/dist/RolesRadioGroup.js.map +1 -0
  24. package/dist/TeamMembers.js +817 -0
  25. package/dist/TeamMembers.js.map +1 -0
  26. package/dist/TeamsAndMembersDropdown.js +414 -0
  27. package/dist/TeamsAndMembersDropdown.js.map +1 -0
  28. package/dist/TeamsDropdown.js +110 -0
  29. package/dist/TeamsDropdown.js.map +1 -0
  30. package/dist/_commonjsHelpers-1789f0cf.js +8 -0
  31. package/dist/_commonjsHelpers-1789f0cf.js.map +1 -0
  32. package/dist/_commonjsHelpers-b3309d7b.js +11 -0
  33. package/dist/_commonjsHelpers-b3309d7b.js.map +1 -0
  34. package/dist/cjs/Groups.js +812 -0
  35. package/dist/cjs/Groups.js.map +1 -0
  36. package/dist/cjs/ManageMember.js +61 -0
  37. package/dist/cjs/ManageMember.js.map +1 -0
  38. package/dist/cjs/MembersDropdown.js +231 -0
  39. package/dist/cjs/MembersDropdown.js.map +1 -0
  40. package/dist/cjs/Permissions.js +22 -0
  41. package/dist/cjs/Permissions.js.map +1 -0
  42. package/dist/cjs/Profile.js +1003 -0
  43. package/dist/cjs/Profile.js.map +1 -0
  44. package/dist/cjs/Roles.js +2382 -0
  45. package/dist/cjs/Roles.js.map +1 -0
  46. package/dist/cjs/RolesRadioGroup.js +28 -0
  47. package/dist/cjs/RolesRadioGroup.js.map +1 -0
  48. package/dist/cjs/TeamMembers.js +837 -0
  49. package/dist/cjs/TeamMembers.js.map +1 -0
  50. package/dist/cjs/TeamsAndMembersDropdown.js +427 -0
  51. package/dist/cjs/TeamsAndMembersDropdown.js.map +1 -0
  52. package/dist/cjs/TeamsDropdown.js +119 -0
  53. package/dist/cjs/TeamsDropdown.js.map +1 -0
  54. package/dist/cjs/constants.js +15 -0
  55. package/dist/cjs/constants.js.map +1 -0
  56. package/dist/cjs/hooks.js +28 -0
  57. package/dist/cjs/hooks.js.map +1 -0
  58. package/dist/cjs/index.js +124 -0
  59. package/dist/cjs/index.js.map +1 -0
  60. package/dist/cjs/utils.js +544 -0
  61. package/dist/cjs/utils.js.map +1 -0
  62. package/dist/constants-2685e5d6.js +57 -0
  63. package/dist/constants-2685e5d6.js.map +1 -0
  64. package/dist/constants-576b89ac.js +45 -0
  65. package/dist/constants-576b89ac.js.map +1 -0
  66. package/dist/constants.js +4 -0
  67. package/dist/constants.js.map +1 -0
  68. package/dist/defineProperty-2cb3c6e2.js +43 -0
  69. package/dist/defineProperty-2cb3c6e2.js.map +1 -0
  70. package/dist/defineProperty-9b13c73c.js +46 -0
  71. package/dist/defineProperty-9b13c73c.js.map +1 -0
  72. package/dist/hooks.js +18 -0
  73. package/dist/hooks.js.map +1 -0
  74. package/dist/index-2757050a.js +1022 -0
  75. package/dist/index-2757050a.js.map +1 -0
  76. package/dist/index-5f1a8667.js +179 -0
  77. package/dist/index-5f1a8667.js.map +1 -0
  78. package/dist/index-7b978a0f.js +149 -0
  79. package/dist/index-7b978a0f.js.map +1 -0
  80. package/dist/index-9d0683d6.js +137 -0
  81. package/dist/index-9d0683d6.js.map +1 -0
  82. package/dist/index-cbfbc296.js +167 -0
  83. package/dist/index-cbfbc296.js.map +1 -0
  84. package/dist/index-f4f1d674.js +981 -0
  85. package/dist/index-f4f1d674.js.map +1 -0
  86. package/dist/index.js +97 -10060
  87. package/dist/index.js.map +1 -1
  88. package/dist/inject-css-80a5faa3.js +6 -0
  89. package/dist/inject-css-80a5faa3.js.map +1 -0
  90. package/dist/inject-css-c86de496.js +4 -0
  91. package/dist/inject-css-c86de496.js.map +1 -0
  92. package/dist/objectWithoutProperties-2fed2d7d.js +33 -0
  93. package/dist/objectWithoutProperties-2fed2d7d.js.map +1 -0
  94. package/dist/objectWithoutProperties-a0edb288.js +31 -0
  95. package/dist/objectWithoutProperties-a0edb288.js.map +1 -0
  96. package/dist/queryClient-71ecdd08.js +14 -0
  97. package/dist/queryClient-71ecdd08.js.map +1 -0
  98. package/dist/queryClient-febad37e.js +16 -0
  99. package/dist/queryClient-febad37e.js.map +1 -0
  100. package/dist/slicedToArray-6674c4b8.js +44 -0
  101. package/dist/slicedToArray-6674c4b8.js.map +1 -0
  102. package/dist/slicedToArray-8e69d42b.js +46 -0
  103. package/dist/slicedToArray-8e69d42b.js.map +1 -0
  104. package/dist/toConsumableArray-0e395868.js +20 -0
  105. package/dist/toConsumableArray-0e395868.js.map +1 -0
  106. package/dist/toConsumableArray-e41a15ba.js +22 -0
  107. package/dist/toConsumableArray-e41a15ba.js.map +1 -0
  108. package/dist/unsupportedIterableToArray-7c7192e5.js +17 -0
  109. package/dist/unsupportedIterableToArray-7c7192e5.js.map +1 -0
  110. package/dist/unsupportedIterableToArray-fa2816fd.js +20 -0
  111. package/dist/unsupportedIterableToArray-fa2816fd.js.map +1 -0
  112. package/dist/useMembersSidenav-68b9f94e.js +17 -0
  113. package/dist/useMembersSidenav-68b9f94e.js.map +1 -0
  114. package/dist/useMembersSidenav-7aaa6f93.js +23 -0
  115. package/dist/useMembersSidenav-7aaa6f93.js.map +1 -0
  116. package/dist/useTeamsApi-6254d23b.js +2208 -0
  117. package/dist/useTeamsApi-6254d23b.js.map +1 -0
  118. package/dist/useTeamsApi-da997902.js +2194 -0
  119. package/dist/useTeamsApi-da997902.js.map +1 -0
  120. package/dist/utils-531cc50b.js +41 -0
  121. package/dist/utils-531cc50b.js.map +1 -0
  122. package/dist/utils-d5dc0b0b.js +45 -0
  123. package/dist/utils-d5dc0b0b.js.map +1 -0
  124. package/dist/utils.js +538 -0
  125. package/dist/utils.js.map +1 -0
  126. package/dist/withReactQuery-efba53ba.js +21 -0
  127. package/dist/withReactQuery-efba53ba.js.map +1 -0
  128. package/dist/withReactQuery-f0b38396.js +19 -0
  129. package/dist/withReactQuery-f0b38396.js.map +1 -0
  130. package/package.json +15 -3
  131. package/dist/index.cjs.js +0 -10157
  132. package/dist/index.cjs.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-2757050a.js","sources":["../app/javascript/src/components/TeamMembers/constants.js","../app/javascript/src/components/TeamMembers/utils.jsx","../app/javascript/src/components/TeamMembers/ManageMember/AppList.jsx","../app/javascript/src/components/TeamMembers/ManageMember/Confirmation.jsx","../app/javascript/src/components/TeamMembers/ManageMember/MultipleEmailInput.jsx","../app/javascript/src/components/TeamMembers/ManageMember/NameInputs.jsx","../app/javascript/src/components/TeamMembers/ManageMember/SubscriptionPlan.jsx","../app/javascript/src/components/TeamMembers/ManageMember/index.jsx"],"sourcesContent":["import { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { clamp } from \"ramda\";\n\nconst { page, pageSize } = getQueryParams();\n\nexport const DEFAULT_RADIX = 10;\n\nexport const DEFAULT_IS_OPEN_VALUES = {\n menuBar: false,\n manageMember: false,\n alert: false,\n};\n\nexport const DEFAULT_FILTER_VALUES = {\n page: clamp(1, Infinity, parseInt(page)) || DEFAULT_PAGE_INDEX,\n pageSize: clamp(10, 100, parseInt(pageSize)) || DEFAULT_PAGE_SIZE,\n sortBy: \"\",\n orderBy: \"\",\n neetoFilters: [],\n};\n\nexport const DEFAULT_SELECTED_ROWS = {\n active: [],\n emails: [],\n keys: [],\n displayNames: [],\n};\n\nexport const TEAM_MEMBERS_HIDDEN_COLUMNS = \"TEAM_MEMBERS_TABLE_HIDDEN_COLUMNS\";\n","import i18next from \"i18next\";\nimport { isNotEmpty, toLabelAndValue } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { taxonomies } from \"neetocommons/initializers\";\nimport { buildUrl, getQueryParams, hyphenize } from \"neetocommons/utils\";\nimport MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { Avatar, Dropdown, Tag, Typography } from \"neetoui\";\nimport { assoc, curry, filter, identical, mergeLeft, not } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport { SUBSCRIPTION_PLANS } from \"src/common/constants\";\n\nimport { DEFAULT_RADIX } from \"./constants\";\n\nconst { MenuItem } = Dropdown;\n\nconst renderNameColumn = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n}) => {\n const {\n displayName: name,\n profileImageUrl: imageUrl,\n subscriptionPlan,\n } = tableData;\n\n return (\n <div className=\"ntm-members-table__wrapper\">\n <div className=\"ntm-members-table__column\">\n <Avatar size=\"medium\" user={{ name, imageUrl }} />\n <Typography\n data-cy={`ntm-member-name-${hyphenize(name)}`}\n style=\"body2\"\n >\n {name}\n </Typography>\n {subscriptionPlan === SUBSCRIPTION_PLANS.PRO && (\n <Tag\n className=\"neeto-ui-text-transform-uppercase\"\n data-cy=\"ntm-member-subscription-plan-tag\"\n label={i18next.t(\"neetoTeamMembers.common.pro\")}\n style=\"info\"\n type=\"outline\"\n />\n )}\n </div>\n {renderDropdownButton({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n })}\n </div>\n );\n};\n\nconst renderDropdownButton = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n}) => (\n <MoreDropdown\n dropdownProps={{ appendTo: () => document.body, strategy: \"fixed\" }}\n isDisabled={not(config.permissions.update)}\n dropdownButtonProps={{\n className: \"flex-shrink-0\",\n \"data-cy\": \"ntm-members-table-row-dropdown-button\",\n tooltipProps: {\n content: i18next.t(\n \"neetoTeamMembers.tooltips.noPermissionToEditMembers\"\n ),\n disabled: config.permissions.update,\n position: \"top\",\n },\n }}\n menuTopChildren={\n <>\n <MenuItem.Button\n className=\"ntm-dropdown__button\"\n data-cy=\"ntm-edit-member-button\"\n size=\"small\"\n onClick={() => handleUpdateRole(tableData)}\n >\n {i18next.t(\"neetoTeamMembers.common.edit\")}\n </MenuItem.Button>\n {config?.table?.dropdownProps?.(tableData)}\n <MenuItem.Button\n className=\"ntm-dropdown__button\"\n data-cy=\"ntm-deactivate-member-button\"\n size=\"small\"\n onClick={() => handleUpdateStatus(tableData)}\n >\n {i18next.t(\"neetoTeamMembers.common.remove\")}\n </MenuItem.Button>\n </>\n }\n />\n);\n\nconst getDefaultAlertTitle = ({ member }) =>\n member?.active\n ? i18next.t(\"neetoTeamMembers.common.remove_\", {\n what: taxonomies.member.singular,\n })\n : i18next.t(\"neetoTeamMembers.common.activate_\", {\n what: taxonomies.member.singular,\n });\n\nconst getDefaultAlertMessage = ({ member }) => (\n <Trans\n i18nKey=\"neetoTeamMembers.alerts.messages.removeMember\"\n values={{ ...SINGULAR, person: member?.displayName }}\n />\n);\n\nconst getDefaultColumns = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n otherColumns,\n isSize,\n}) => [\n {\n dataIndex: \"name\",\n key: \"name\",\n width: 300,\n fixed: isNotEmpty(otherColumns) && !isSize(\"mobile\"),\n render: (_, tableData) =>\n renderNameColumn({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n tableData,\n }),\n sorter: true,\n title: i18next.t(\"neetoTeamMembers.common.name\"),\n isHidable: false,\n },\n {\n dataIndex: \"email\",\n key: \"email\",\n sorter: true,\n width: 350,\n title: i18next.t(\"neetoTeamMembers.common.email\", SINGULAR),\n },\n {\n dataIndex: \"role\",\n key: \"organization_role\",\n sorter: true,\n width: 200,\n title: i18next.t(\"neetoTeamMembers.common.role\", SINGULAR),\n },\n {\n dataIndex: \"subscriptionPlan\",\n key: \"subscription_plan\",\n hidden: true,\n isHidable: false,\n title: \"\",\n },\n];\n\nconst removeExcludedRole = curry(\n (excludedRoles, role) => !excludedRoles?.includes(role?.name)\n);\n\nconst getSubscriptionLabelAndValue = () =>\n Object.entries(SUBSCRIPTION_PLANS).map(([key, value]) => ({\n label: key,\n value,\n }));\n\nexport const getColumnData = ({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n isSize,\n}) => {\n const otherColumns = config?.otherColumns ?? [];\n const defaultColumns = getDefaultColumns({\n config,\n handleUpdateRole,\n handleUpdateStatus,\n otherColumns,\n isSize,\n });\n\n const columns = defaultColumns.map(column => {\n const otherColumn = otherColumns.find(({ dataIndex }) =>\n identical(dataIndex, column.dataIndex)\n );\n\n return otherColumn || column;\n });\n\n otherColumns.forEach(otherColumn => {\n const column = columns.find(({ dataIndex }) =>\n identical(dataIndex, otherColumn.dataIndex)\n );\n if (!column) columns.push(otherColumn);\n });\n\n return columns;\n};\n\nexport const renderUpdateAlert = (field, props) => {\n const { config, member } = props;\n\n if (config?.alert?.[field]) {\n return config.alert?.[field]({\n active: member?.active,\n id: member?.id,\n name: member?.displayName,\n });\n }\n\n return field === \"title\"\n ? getDefaultAlertTitle(props)\n : getDefaultAlertMessage(props);\n};\n\nexport const handlePageChange = (setFilters, history) => (page, pageSize) => {\n const searchParams = getQueryParams({ toCamelCase: false });\n history.replace(\n buildUrl(\n window.location.pathname,\n mergeLeft({ page, page_size: pageSize }, searchParams)\n )\n );\n setFilters(mergeLeft({ page, pageSize }));\n};\n\nexport const renderPaginationProps = size => ({\n pageSize: parseInt(size, DEFAULT_RADIX),\n});\n\nexport const defaultNeetoFiltersColumns = () => [\n {\n key: \"email\",\n label: i18next.t(\"neetoTeamMembers.common.email\", SINGULAR),\n model: \"User\",\n node: \"email\",\n showRuleSelector: true,\n type: \"text\",\n },\n {\n key: \"name\",\n label: i18next.t(\"neetoTeamMembers.common.name\"),\n model: \"User\",\n node: \"first_name,last_name\",\n type: \"text\",\n values: \"\",\n },\n {\n key: \"role\",\n label: i18next.t(\"neetoTeamMembers.common.role\", SINGULAR),\n model: \"OrganizationRole\",\n node: \"organization_role.name\",\n type: \"multi_option\",\n values: [],\n },\n {\n key: \"subscription_plan\",\n label: i18next.t(\"neetoTeamMembers.common.subscriptionPlan\", SINGULAR),\n model: \"User\",\n node: \"subscription_plan\",\n type: \"single_option\",\n values: [],\n },\n];\n\nexport const buildFilterColumns = ({\n options: { emails = [], organizationRoles = [] },\n emailConfig: { setSearchTerm, isLoading },\n}) => {\n const columnValues = {\n email: emails.map(toLabelAndValue),\n role: organizationRoles.map(toLabelAndValue),\n subscription_plan: getSubscriptionLabelAndValue(),\n };\n\n return defaultNeetoFiltersColumns().map(column => {\n const values = columnValues[column.key];\n if (column.key === \"role\") return assoc(\"values\", values, column);\n\n const emailConfig = {\n values,\n isLoading,\n onInputChange: setSearchTerm,\n };\n\n return mergeLeft(emailConfig, column);\n });\n};\n\nexport const getFilteredRoles = (roles = [], config = {}) =>\n filter(removeExcludedRole(config?.excludedRoles), roles);\n\nexport const generateNoDataContent = ({ buttonProps }) => {\n const { disabled, onClick } = buttonProps;\n const noDataTitleTranslationKey = \"notFound_\";\n\n const noDataTitle = i18next.t(\n `neetoTeamMembers.common.${noDataTitleTranslationKey}`,\n { what: taxonomies.member.plural }\n );\n\n const noDataButtonProps = {\n \"data-cy\": \"ntm-add-member-button\",\n disabled,\n label: i18next.t(\"neetoTeamMembers.common.addNew_\", {\n what: taxonomies.member.singular,\n }),\n onClick,\n };\n\n return { noDataTitle, noDataButtonProps };\n};\n","import { useEffect, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { toLabelAndValue } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport useFetchNeetoApps from \"neetocommons/react-utils/useFetchNeetoApps\";\nimport { Checkbox, Tooltip, Button, Typography } from \"neetoui\";\nimport { Select, Switch } from \"neetoui/formik\";\nimport { pluck, not } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { neetoAuthManageProductUrl } from \"./utils\";\n\nconst AppList = ({ globalRoles, savedStateRef }) => {\n const { t } = useTranslation();\n const [isAppListEnabled, setIsAppListEnabled] = useState(\n savedStateRef.current.isAppListEnabled\n );\n\n const { data: { isOwner, neetoApps } = {} } = useFetchNeetoApps();\n\n const {\n values: { emails = [], appRoles = [] },\n setFieldValue,\n } = useFormikContext();\n\n const selectedEmail = pluck(\"value\", emails);\n const isManageProductsLinkEnabled = isOwner && neetoApps?.length >= 3;\n\n useEffect(() => {\n if (savedStateRef.current.isAppListEnabled !== isAppListEnabled) {\n appRoles?.forEach((appRole, index) => {\n if (appRole?.appName === globalProps.appName?.substring(5)) {\n setFieldValue(`appRoles[${index}].isEnabled`, true);\n\n return;\n }\n\n setFieldValue(`appRoles[${index}].isEnabled`, isAppListEnabled);\n });\n }\n savedStateRef.current.isAppListEnabled = isAppListEnabled;\n }, [isAppListEnabled]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const buildRoleOptions = roles =>\n roles.map(role => toLabelAndValue(role.name));\n\n return (\n <div className=\"neeto-ui-flex neeto-ui-flex-col neeto-ui-gap-6\">\n <div className=\"neeto-ui-w-full space-y-3\">\n <Checkbox\n checked={isAppListEnabled}\n className=\"ntm-manage-members__checkbox-align-start\"\n data-cy=\"ntm-manage-members-app-list-checkbox\"\n label={\n <Typography component=\"span\" lineHeight=\"relaxed\" style=\"body2\">\n <Trans\n i18nKey=\"neetoTeamMembers.helpers.addMembersToNeetoProducts\"\n values={{ emails: selectedEmail }}\n />\n </Typography>\n }\n onChange={() => setIsAppListEnabled(not)}\n />\n {isManageProductsLinkEnabled && (\n <Typography style=\"body2\">\n <Trans\n i18nKey=\"neetoTeamMembers.helpers.manageProducts\"\n components={{\n button: (\n <Button href={neetoAuthManageProductUrl} style=\"link\" />\n ),\n }}\n />\n </Typography>\n )}\n </div>\n <div className=\"neeto-ui-w-full\">\n {appRoles.map(({ appName, isEnabled }, index) => {\n const isCurrentApp = appName === globalProps.appName?.substring(5);\n const isAppRoleSelectionChecked = isCurrentApp || isEnabled;\n\n return (\n <div className=\"ntm-manage-members__app-roles\" key={appName}>\n <Tooltip\n content={t(\"neetoTeamMembers.tooltips.hostAppIsRequired\")}\n disabled={!isCurrentApp}\n position=\"left\"\n >\n <span>\n <Switch\n checked={isAppRoleSelectionChecked}\n disabled={isCurrentApp}\n name={`appsRoles[${index}].isEnabled`}\n label={t(\"neetoTeamMembers.labels.neeto_\", {\n product: appName,\n })}\n onChange={({ target }) => {\n setFieldValue(\n `appRoles[${index}].isEnabled`,\n target.checked\n );\n }}\n />\n </span>\n </Tooltip>\n <Tooltip\n content={t(\"neetoTeamMembers.tooltips.goBackToChangeRole\")}\n disabled={!isCurrentApp}\n position=\"top\"\n >\n <span className=\"ntm-manage-members-app-roles__select-wrapper\">\n <Select\n isDisabled={isCurrentApp || !isEnabled}\n name={`appRoles[${index}].activeRole`}\n options={buildRoleOptions(globalRoles[appName])}\n size=\"small\"\n strategy=\"fixed\"\n onChange={({ value }) => {\n setFieldValue(`appRoles[${index}].activeRole`, value);\n }}\n />\n </span>\n </Tooltip>\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default AppList;\n","import { useFormikContext } from \"formik\";\nimport { filterBy } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Typography } from \"neetoui\";\nimport { pluck } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { getSingleInvitationTranslationProps } from \"./utils\";\n\nconst Confirmation = () => {\n const { t } = useTranslation();\n const {\n values: { emails, role, appRoles },\n } = useFormikContext();\n\n const selectedEmail = pluck(\"value\", emails);\n const activeAppRoles = filterBy({ isEnabled: true }, appRoles);\n\n return activeAppRoles.length > 1 ? (\n <div className=\"neeto-ui-flex neeto-ui-flex-col neeto-ui-gap-6\">\n <div className=\"neeto-ui-w-full\">\n <Typography component=\"span\" lineHeight=\"relaxed\" style=\"body2\">\n <Trans\n i18nKey=\"neetoTeamMembers.helpers.multipleProductInvitation\"\n values={{\n count: selectedEmail.length,\n emails: selectedEmail,\n orgName: globalProps.organization?.name,\n }}\n />\n </Typography>\n </div>\n <table className=\"neeto-ui-w-full ntm-product-roles-table\">\n <thead>\n <tr>\n <th>{t(\"neetoTeamMembers.common.productName\")}</th>\n <th>{t(\"neetoTeamMembers.common.role\", SINGULAR)}</th>\n </tr>\n </thead>\n <tbody>\n {activeAppRoles.map(({ appName, activeRole }) => (\n <tr key={appName}>\n <td>\n <Typography component=\"span\" lineHeight=\"relaxed\" style=\"body2\">\n {t(\"neetoTeamMembers.labels.neeto_\", { product: appName })}\n </Typography>\n </td>\n <td>\n <Typography component=\"span\" lineHeight=\"relaxed\" style=\"body2\">\n {activeRole}\n </Typography>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n ) : (\n <Typography component=\"span\" lineHeight=\"relaxed\" style=\"body2\">\n <Trans\n i18nKey=\"neetoTeamMembers.helpers.singleProductInvitation\"\n values={getSingleInvitationTranslationProps({\n activeAppRoles,\n role,\n selectedEmail,\n })}\n />\n </Typography>\n );\n};\n\nexport default Confirmation;\n","import { useFormikContext } from \"formik\";\nimport { PLURAL, SINGULAR } from \"neetocommons/constants\";\nimport { Typography } from \"neetoui\";\nimport { MultiEmailInput, Input } from \"neetoui/formik\";\nimport { head } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { COUNTER_PROPS, EMAIL_REGEX, FILTER_INVALID_EMAILS } from \"./constants\";\n\nconst MultipleEmailInput = ({\n emails = [],\n innerRef,\n selectedMember = null,\n}) => {\n const { t } = useTranslation();\n const { setFieldValue } = useFormikContext();\n\n const handleInputChange = event => {\n const email = event.target.value;\n const emailList = [\n { label: email, value: email, valid: EMAIL_REGEX.test(email) },\n ];\n setFieldValue(\"emails\", emailList);\n };\n\n return (\n <div className=\"neeto-ui-w-full\">\n {selectedMember ? (\n <Input\n data-cy=\"ntm-manage-member-email-input\"\n name=\"emails\"\n size=\"medium\"\n type=\"email\"\n value={head(emails)?.value}\n label={\n <span className=\"neeto-ui-w-full neeto-ui-flex neeto-ui-justify-between\">\n <Typography component=\"span\" style=\"body2\">\n {t(\"neetoTeamMembers.common.email\", SINGULAR)}\n </Typography>\n </span>\n }\n onChange={handleInputChange}\n />\n ) : (\n <MultiEmailInput\n required\n counter={COUNTER_PROPS}\n data-cy=\"ntm-manage-member-email-input\"\n filterInvalidEmails={FILTER_INVALID_EMAILS}\n helpText={t(\"neetoTeamMembers.helpers.enterMultipleEmails\")}\n label={t(\"neetoTeamMembers.common.email\", PLURAL)}\n name=\"emails\"\n placeholder={t(\"neetoTeamMembers.placeholders.email\")}\n ref={innerRef}\n />\n )}\n </div>\n );\n};\n\nexport default MultipleEmailInput;\n","import { Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nconst NameInputs = ({ innerRef }) => {\n const { t } = useTranslation();\n\n return (\n <div className=\"neeto-ui-flex neeto-ui-w-full neeto-ui-gap-4\">\n <Input\n data-cy=\"ntm-edit-member-first-name-text-field\"\n label={t(\"neetoTeamMembers.labels.firstName\")}\n name=\"firstName\"\n ref={innerRef}\n />\n <Input\n data-cy=\"ntm-edit-member-last-name-text-field\"\n label={t(\"neetoTeamMembers.labels.lastName\")}\n name=\"lastName\"\n />\n </div>\n );\n};\n\nexport default NameInputs;\n","import { useFormikContext } from \"formik\";\nimport { currencyFormat } from \"neetocommons/utils\";\nimport { Warning } from \"neetoicons\";\nimport { Callout, Typography } from \"neetoui\";\nimport { Checkbox } from \"neetoui/formik\";\nimport { Trans } from \"react-i18next\";\n\nimport { SUBSCRIPTION_PLANS } from \"src/common/constants\";\n\nconst SubscriptionPlan = ({ subscription }) => {\n const { values, setFieldValue } = useFormikContext();\n\n const isProPlan = values?.subscriptionPlan === SUBSCRIPTION_PLANS.PRO;\n\n const handleChange = event =>\n setFieldValue(\n \"subscriptionPlan\",\n event.target.checked ? SUBSCRIPTION_PLANS.PRO : SUBSCRIPTION_PLANS.FREE\n );\n\n return (\n <div className=\"flex flex-col space-y-4\">\n <Checkbox\n label={<Trans i18nKey=\"neetoTeamMembers.labels.upgradeToProPlan\" />}\n name=\"isSubscriptionProPlan\"\n onChange={handleChange}\n />\n {isProPlan && (\n <Callout icon={Warning} style=\"warning\">\n <Typography style=\"body2\" weight=\"normal\">\n <Trans\n i18nKey=\"neetoTeamMembers.helpers.subscriptionWarning\"\n values={{\n amount: currencyFormat.withSymbol(\n subscription?.plan?.amount,\n subscription?.plan?.currency?.toUpperCase(),\n { maximumFractionDigits: 2, minimumFractionDigits: 0 }\n ),\n }}\n />\n </Typography>\n </Callout>\n )}\n </div>\n );\n};\n\nexport default SubscriptionPlan;\n","import { useRef, useState, useEffect } from \"react\";\n\nimport classnames from \"classnames\";\nimport { globalProps, taxonomies } from \"neetocommons/initializers\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport { Info, LeftArrow } from \"neetoicons\";\nimport { Button, Typography, Toastr, Callout } from \"neetoui\";\nimport { ActionBlock, Form } from \"neetoui/formik\";\nimport { reverse, isEmpty, groupBy, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ScrollToErrorField from \"components/Common/ScrollToErrorField\";\nimport { useFetchGlobalRoles, useFetchRoles } from \"hooks/roles/useRolesApi\";\nimport {\n useFetchMembers,\n useCreateMember,\n useUpdateMember,\n useMembersCreationStatus,\n refetchMembers,\n} from \"hooks/teams/useTeamsApi\";\n// eslint-disable-next-line import/extensions\nimport \"src/stylesheets/components/_manage-members.scss\";\n\nimport AppList from \"./AppList\";\nimport Confirmation from \"./Confirmation\";\nimport {\n DEFAULT_COMPONENT_CONFIG,\n MEMBERS_FORM_COMPONENT_MAPPER,\n FORM_PAGES,\n} from \"./constants\";\nimport MultipleEmailInput from \"./MultipleEmailInput\";\nimport NameInputs from \"./NameInputs\";\nimport RolesRadioGroup from \"./RolesRadioGroup\";\nimport SubscriptionPlan from \"./SubscriptionPlan\";\nimport {\n buildValidationSchema,\n renderInitialValues,\n renderPayload,\n} from \"./utils\";\n\nimport { getFilteredRoles } from \"../utils\";\n\nconst ManageMember = ({\n config,\n onComplete,\n roles = [],\n selectedMember = null,\n componentConfig = {},\n}) => {\n const { t } = useTranslation();\n\n const [isCreationStatusPollingEnabled, setIsCreationStatusPollingEnabled] =\n useState(false);\n\n const isViewPermissionGranted = config.permissions.view;\n const isNotDevelopment = globalProps.railsEnv !== \"development\";\n\n const { data: team } = useFetchMembers({ enabled: isViewPermissionGranted });\n\n const [currentPage, setCurrentPage] = useState(FORM_PAGES.MAIN);\n const formReference = useRef(null);\n const inputReference = useRef(null);\n const appListSavedStateReference = useRef({ isAppListEnabled: true });\n const shouldSkipAppListPage = useRef(false);\n const formikValues = useRef(null);\n\n const manageMemberComponentConfig = {\n ...DEFAULT_COMPONENT_CONFIG,\n initialFocusRef: inputReference,\n ...componentConfig,\n };\n\n const Component =\n MEMBERS_FORM_COMPONENT_MAPPER[manageMemberComponentConfig.type || \"pane\"];\n\n const haveToFetchRoles = isEmpty(roles) && isViewPermissionGranted;\n\n const isEditForm = !!selectedMember;\n const isLastPage = currentPage === FORM_PAGES.CONFIRMATION || isEditForm;\n const isSubscriptionVisible = !isEditForm && config.subscription?.isActive;\n\n const { data: rolesList = roles, isLoading: isRolesLoading } = useFetchRoles({\n select: response => reverse(response.organizationRoles ?? []),\n enabled: haveToFetchRoles,\n });\n\n const { data: globalRoles = {}, isLoading: isGlobalRolesLoading } =\n useFetchGlobalRoles({\n select: response => groupBy(prop(\"appName\"), response ?? []),\n enabled: isNotDevelopment && !selectedMember && isViewPermissionGranted,\n });\n\n const filteredRoles = getFilteredRoles(rolesList, config);\n\n const {\n data: { jobId, totalCount } = {},\n mutate: createMember,\n isLoading: isCreatingMember,\n } = useCreateMember({\n onSuccess: () => setIsCreationStatusPollingEnabled(true),\n });\n\n const refetchInterval = query => {\n const { isCompleted } = query.state.data || {};\n\n if (isCompleted) {\n setIsCreationStatusPollingEnabled(false);\n\n return false;\n }\n\n return 2000;\n };\n\n const { data: creationStatus } = useMembersCreationStatus(jobId, {\n refetchInterval,\n enabled: isCreationStatusPollingEnabled,\n });\n\n useEffect(() => {\n const { isCompleted, isSuccessful, users, error } = creationStatus || {};\n\n if (!isCompleted) return;\n handleClose();\n config?.createMember?.onSuccess?.callback({ users });\n\n if (isSuccessful) {\n showThumbsUpToastr();\n } else {\n Toastr.error(error);\n }\n\n refetchMembers();\n }, [creationStatus]);\n\n const { mutate: updateMember, isPending: isUpdatingMember } = useUpdateMember(\n {\n onSuccess: () => {\n handleClose(true);\n config?.updateMember?.onSuccess?.callback();\n },\n }\n );\n\n const hasRoleChanged = ({ submitted, values }) =>\n submitted && values?.role !== selectedMember?.role;\n\n const handleClose = (submitted = false) => {\n onComplete({\n submitted: hasRoleChanged({ submitted, values: formikValues.current }),\n });\n setCurrentPage(FORM_PAGES.MAIN);\n appListSavedStateReference.current = { isAppListEnabled: true };\n setIsCreationStatusPollingEnabled(false);\n };\n\n const isSubmitting =\n isCreatingMember ||\n isUpdatingMember ||\n isRolesLoading ||\n isGlobalRolesLoading;\n\n const handleAddMember = values => {\n selectedMember\n ? // @ts-ignore\n updateMember({\n id: selectedMember.id,\n payload: renderPayload(values, selectedMember),\n })\n : createMember(renderPayload(values));\n };\n\n const handleOnSubmit = values => {\n shouldSkipAppListPage.current = isEmpty(values.appRoles);\n\n if (isLastPage) {\n handleAddMember(values);\n } else if (\n currentPage === FORM_PAGES.APP_LIST ||\n shouldSkipAppListPage.current\n ) {\n setCurrentPage(FORM_PAGES.CONFIRMATION);\n } else if (currentPage === FORM_PAGES.MAIN) {\n setCurrentPage(FORM_PAGES.APP_LIST);\n }\n };\n\n const handleBackButton = () => {\n if (currentPage === FORM_PAGES.APP_LIST || shouldSkipAppListPage.current) {\n setCurrentPage(FORM_PAGES.MAIN);\n } else if (currentPage === FORM_PAGES.CONFIRMATION) {\n setCurrentPage(FORM_PAGES.APP_LIST);\n }\n };\n\n const getTitle = () =>\n selectedMember\n ? t(\"neetoTeamMembers.common.edit_\", { what: taxonomies.member.singular })\n : t(\"neetoTeamMembers.common.addNew_\", {\n what: taxonomies.member.singular,\n });\n\n const renderFormPage = (page, emails, role) => {\n switch (page) {\n case FORM_PAGES.MAIN:\n return (\n <>\n {selectedMember && <NameInputs innerRef={inputReference} />}\n <MultipleEmailInput\n {...{ emails, selectedMember }}\n innerRef={inputReference}\n />\n {isSubscriptionVisible && (\n <SubscriptionPlan\n {...{ handleClose }}\n subscription={config.subscription}\n />\n )}\n <RolesRadioGroup\n {...{ config, globalRoles, role }}\n isEdit={!!selectedMember}\n roles={filteredRoles}\n />\n {config.additionalFields?.component}\n </>\n );\n case FORM_PAGES.APP_LIST:\n return (\n <AppList\n {...{ globalRoles }}\n savedStateRef={appListSavedStateReference}\n />\n );\n case FORM_PAGES.CONFIRMATION:\n return <Confirmation />;\n default:\n return null;\n }\n };\n\n return (\n <Component\n className={manageMemberComponentConfig.className}\n data-cy=\"ntm-manage-members-pane-wrapper\"\n initialFocusRef={manageMemberComponentConfig.initialFocusRef}\n isOpen={manageMemberComponentConfig.isOpen}\n onClose={() => handleClose(false)}\n >\n <Component.Header\n {...manageMemberComponentConfig.headerProps}\n className={classnames([\n { \"ntm-manage-members__header\": currentPage !== FORM_PAGES.MAIN },\n manageMemberComponentConfig.headerProps?.className,\n ])}\n >\n {currentPage !== FORM_PAGES.MAIN && (\n <Button\n aria-label=\"Back\"\n icon={LeftArrow}\n size=\"medium\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoTeamMembers.buttons.back\"),\n position: \"bottom\",\n }}\n onClick={handleBackButton}\n />\n )}\n <Typography\n className=\"ntm-members-form__header\"\n data-cy=\"ntm-manage-members-pane-header\"\n style=\"h2\"\n weight=\"semibold\"\n >\n {getTitle()}\n </Typography>\n </Component.Header>\n <Form\n ref={formReference}\n formikProps={{\n enableReinitialize: true,\n initialValues: renderInitialValues({\n additionalFieldsInitialValues:\n config.additionalFields?.initialValues,\n globalRoles,\n roles: filteredRoles,\n selectedMember,\n }),\n onSubmit: handleOnSubmit,\n validationSchema: buildValidationSchema({\n selectedMember,\n ...team,\n }),\n }}\n >\n {({ values, isValid }) => {\n const { emails, role } = values;\n formikValues.current = values;\n\n return (\n <>\n <ScrollToErrorField formRef={formReference} />\n <Component.Body\n {...manageMemberComponentConfig.bodyProps}\n className={classnames([\n \"ntm-members-form__body\",\n manageMemberComponentConfig.bodyProps?.className,\n ])}\n >\n {isCreationStatusPollingEnabled && (\n <Callout className=\"w-full\" icon={Info} style=\"info\">\n {t(\"neetoTeamMembers.helpers.memberCreationStatus\", {\n count: emails.length,\n completedCount: creationStatus?.progress?.completedCount,\n totalCount,\n })}\n </Callout>\n )}\n {renderFormPage(currentPage, emails, role)}\n </Component.Body>\n <Component.Footer\n {...manageMemberComponentConfig.footerProps}\n className={classnames([\n \"ntm-members-form__footer\",\n manageMemberComponentConfig.footerProps?.className,\n ])}\n >\n <ActionBlock\n isSubmitting={isSubmitting || isCreationStatusPollingEnabled}\n cancelButtonProps={{\n \"data-cy\": \"ntm-manage-member-cancel-button\",\n onClick: () => handleClose(false),\n }}\n submitButtonProps={{\n \"data-cy\": isLastPage\n ? \"ntm-manage-member-submit-button\"\n : \"ntm-manage-member-continue-button\",\n label: isLastPage\n ? t(\"neetoTeamMembers.buttons.saveChanges\")\n : t(\"neetoTeamMembers.buttons.continue\"),\n disabled: !isValid,\n }}\n />\n </Component.Footer>\n </>\n );\n }}\n </Form>\n </Component>\n );\n};\n\nexport default ManageMember;\n"],"names":["_getQueryParams","getQueryParams","page","pageSize","DEFAULT_RADIX","DEFAULT_IS_OPEN_VALUES","menuBar","manageMember","alert","DEFAULT_FILTER_VALUES","clamp","Infinity","parseInt","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","sortBy","orderBy","neetoFilters","DEFAULT_SELECTED_ROWS","active","emails","keys","displayNames","TEAM_MEMBERS_HIDDEN_COLUMNS","MenuItem","Dropdown","renderNameColumn","_ref","config","handleUpdateRole","handleUpdateStatus","tableData","name","displayName","imageUrl","profileImageUrl","subscriptionPlan","_jsxs","className","children","_jsx","Avatar","size","user","Typography","concat","hyphenize","style","SUBSCRIPTION_PLANS","PRO","Tag","label","i18next","t","type","renderDropdownButton","_ref2","_config$table","_config$table$dropdow","MoreDropdown","dropdownProps","appendTo","document","body","strategy","isDisabled","not","permissions","update","dropdownButtonProps","tooltipProps","content","disabled","position","menuTopChildren","_Fragment","Button","onClick","table","call","getDefaultAlertTitle","_ref3","member","what","taxonomies","singular","getDefaultAlertMessage","_ref4","Trans","i18nKey","values","_objectSpread","SINGULAR","person","getDefaultColumns","_ref5","otherColumns","isSize","dataIndex","key","width","fixed","isNotEmpty","render","_","sorter","title","isHidable","hidden","removeExcludedRole","curry","excludedRoles","role","includes","getSubscriptionLabelAndValue","Object","entries","map","_ref6","_ref7","_slicedToArray","value","getColumnData","_ref8","_config$otherColumns","defaultColumns","columns","column","otherColumn","find","_ref9","identical","forEach","_ref10","push","renderUpdateAlert","field","props","_config$alert","_config$alert2","id","handlePageChange","setFilters","history","searchParams","toCamelCase","replace","buildUrl","window","location","pathname","mergeLeft","page_size","renderPaginationProps","defaultNeetoFiltersColumns","model","node","showRuleSelector","buildFilterColumns","_ref11","_ref11$options","options","_ref11$options$emails","_ref11$options$organi","organizationRoles","_ref11$emailConfig","emailConfig","setSearchTerm","isLoading","columnValues","email","toLabelAndValue","subscription_plan","assoc","onInputChange","getFilteredRoles","roles","arguments","length","undefined","filter","generateNoDataContent","_ref12","buttonProps","noDataTitleTranslationKey","noDataTitle","plural","noDataButtonProps","AppList","globalRoles","savedStateRef","_useTranslation","useTranslation","_useState","useState","current","isAppListEnabled","_useState2","setIsAppListEnabled","_useFetchNeetoApps","useFetchNeetoApps","_useFetchNeetoApps$da","data","_useFetchNeetoApps$da2","isOwner","neetoApps","_useFormikContext","useFormikContext","_useFormikContext$val","_useFormikContext$val2","_useFormikContext$val3","appRoles","setFieldValue","selectedEmail","pluck","isManageProductsLinkEnabled","useEffect","appRole","index","_globalProps$appName","appName","globalProps","substring","buildRoleOptions","Checkbox","checked","component","lineHeight","onChange","components","button","href","neetoAuthManageProductUrl","_globalProps$appName2","isEnabled","isCurrentApp","isAppRoleSelectionChecked","Tooltip","Switch","product","target","Select","Confirmation","_globalProps$organiza","activeAppRoles","filterBy","count","orgName","organization","activeRole","getSingleInvitationTranslationProps","MultipleEmailInput","_head","_ref$emails","innerRef","_ref$selectedMember","selectedMember","handleInputChange","event","emailList","valid","EMAIL_REGEX","test","Input","head","MultiEmailInput","required","counter","COUNTER_PROPS","filterInvalidEmails","FILTER_INVALID_EMAILS","helpText","PLURAL","placeholder","ref","NameInputs","SubscriptionPlan","_subscription$plan","_subscription$plan2","subscription","isProPlan","handleChange","FREE","Callout","icon","Warning","weight","amount","currencyFormat","withSymbol","plan","currency","toUpperCase","maximumFractionDigits","minimumFractionDigits","ManageMember","_config$subscription","_manageMemberComponen","_config$additionalFie2","onComplete","_ref$roles","_ref$componentConfig","componentConfig","isCreationStatusPollingEnabled","setIsCreationStatusPollingEnabled","isViewPermissionGranted","view","isNotDevelopment","railsEnv","_useFetchMembers","useFetchMembers","enabled","team","_useState3","FORM_PAGES","MAIN","_useState4","currentPage","setCurrentPage","formReference","useRef","inputReference","appListSavedStateReference","shouldSkipAppListPage","formikValues","manageMemberComponentConfig","DEFAULT_COMPONENT_CONFIG","initialFocusRef","Component","MEMBERS_FORM_COMPONENT_MAPPER","haveToFetchRoles","isEmpty","isEditForm","isLastPage","CONFIRMATION","isSubscriptionVisible","isActive","_useFetchRoles","useFetchRoles","select","response","_response$organizatio","reverse","_useFetchRoles$data","rolesList","isRolesLoading","_useFetchGlobalRoles","useFetchGlobalRoles","groupBy","prop","_useFetchGlobalRoles$","isGlobalRolesLoading","filteredRoles","_useCreateMember","useCreateMember","onSuccess","_useCreateMember$data","_useCreateMember$data2","jobId","totalCount","createMember","mutate","isCreatingMember","refetchInterval","query","state","isCompleted","_useMembersCreationSt","useMembersCreationStatus","creationStatus","_config$createMember","isSuccessful","users","error","handleClose","callback","showThumbsUpToastr","Toastr","refetchMembers","_useUpdateMember","useUpdateMember","_config$updateMember","updateMember","isUpdatingMember","isPending","hasRoleChanged","submitted","isSubmitting","handleAddMember","payload","renderPayload","handleOnSubmit","APP_LIST","handleBackButton","getTitle","renderFormPage","_config$additionalFie","RolesRadioGroup","isEdit","additionalFields","isOpen","onClose","Header","headerProps","classnames","LeftArrow","Form","formikProps","enableReinitialize","initialValues","renderInitialValues","additionalFieldsInitialValues","onSubmit","validationSchema","buildValidationSchema","_manageMemberComponen2","_creationStatus$progr","_manageMemberComponen3","isValid","ScrollToErrorField","formRef","Body","bodyProps","Info","completedCount","progress","Footer","footerProps","ActionBlock","cancelButtonProps","submitButtonProps"],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ 'use strict';
2
+
3
+ var objectWithoutProperties = require('./objectWithoutProperties-2fed2d7d.js');
4
+ var defineProperty = require('./defineProperty-9b13c73c.js');
5
+ var reactQuery = require('@tanstack/react-query');
6
+ var neetoCist = require('@bigbinary/neeto-cist');
7
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
8
+ var axios = require('axios');
9
+ var constants = require('./constants-2685e5d6.js');
10
+ var toConsumableArray = require('./toConsumableArray-e41a15ba.js');
11
+ var require$$0 = require('react');
12
+ var formik = require('formik');
13
+ var ramda = require('ramda');
14
+
15
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
+
17
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
18
+
19
+ var fetch$1 = function fetch() {
20
+ return axios__default["default"].get("".concat(constants.BASE_URL, "/global_roles"));
21
+ };
22
+ var globalRolesApi = {
23
+ fetch: fetch$1
24
+ };
25
+
26
+ var fetch = function fetch() {
27
+ return axios__default["default"].get("".concat(constants.BASE_URL, "/organization_roles"));
28
+ };
29
+ var create = function create(payload) {
30
+ return axios__default["default"].post("".concat(constants.BASE_URL, "/organization_roles"), payload);
31
+ };
32
+ var update = function update(id, payload) {
33
+ return axios__default["default"].patch("".concat(constants.BASE_URL, "/organization_roles/").concat(id), payload);
34
+ };
35
+ var destroy = function destroy(id, payload) {
36
+ return axios__default["default"]["delete"]("".concat(constants.BASE_URL, "/organization_roles/").concat(id), {
37
+ data: payload
38
+ });
39
+ };
40
+ var bulkUpdate = function bulkUpdate(payload) {
41
+ return axios__default["default"].patch("".concat(constants.BASE_URL, "/organization_roles/bulk_update"), payload);
42
+ };
43
+ var organizationRolesApi = {
44
+ bulkUpdate: bulkUpdate,
45
+ create: create,
46
+ destroy: destroy,
47
+ fetch: fetch,
48
+ update: update
49
+ };
50
+
51
+ var _excluded = ["onSuccess"],
52
+ _excluded2 = ["onSuccess"],
53
+ _excluded3 = ["onSuccess"],
54
+ _excluded4 = ["onSuccess"];
55
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
56
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
57
+ var useFetchRoles = function useFetchRoles() {
58
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
59
+ return reactQuery.useQuery(_objectSpread({
60
+ queryKey: [constants.QUERY_KEYS.ROLES],
61
+ queryFn: organizationRolesApi.fetch,
62
+ select: function select(response) {
63
+ return response === null || response === void 0 ? void 0 : response.organizationRoles;
64
+ }
65
+ }, options));
66
+ };
67
+ var useFetchGlobalRoles = function useFetchGlobalRoles() {
68
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
69
+ return reactQuery.useQuery(_objectSpread({
70
+ queryKey: [constants.QUERY_KEYS.GLOBAL_ROLES],
71
+ queryFn: globalRolesApi.fetch
72
+ }, options));
73
+ };
74
+ var useCreateRole = function useCreateRole(_ref) {
75
+ var _onSuccess = _ref.onSuccess,
76
+ options = objectWithoutProperties._objectWithoutProperties(_ref, _excluded);
77
+ return reactUtils.useMutationWithInvalidation(organizationRolesApi.create, _objectSpread({
78
+ keysToInvalidate: [[constants.QUERY_KEYS.TEAMS_DEPENDENCIES], [constants.QUERY_KEYS.ROLES]],
79
+ onSuccess: function onSuccess() {
80
+ _onSuccess === null || _onSuccess === void 0 || _onSuccess();
81
+ }
82
+ }, options));
83
+ };
84
+ var useUpdateRole = function useUpdateRole(_ref2) {
85
+ var _onSuccess2 = _ref2.onSuccess,
86
+ options = objectWithoutProperties._objectWithoutProperties(_ref2, _excluded2);
87
+ return reactUtils.useMutationWithInvalidation(function (_ref3) {
88
+ var id = _ref3.id,
89
+ payload = _ref3.payload;
90
+ return organizationRolesApi.update(id, payload);
91
+ }, _objectSpread({
92
+ keysToInvalidate: [[constants.QUERY_KEYS.TEAMS], [constants.QUERY_KEYS.TEAMS_DEPENDENCIES], [constants.QUERY_KEYS.ROLES]],
93
+ onSuccess: function onSuccess() {
94
+ _onSuccess2 === null || _onSuccess2 === void 0 || _onSuccess2();
95
+ }
96
+ }, options));
97
+ };
98
+ var useDestroyRole = function useDestroyRole(_ref4) {
99
+ var _ref4$onSuccess = _ref4.onSuccess,
100
+ _onSuccess3 = _ref4$onSuccess === void 0 ? neetoCist.noop : _ref4$onSuccess,
101
+ options = objectWithoutProperties._objectWithoutProperties(_ref4, _excluded3);
102
+ return reactUtils.useMutationWithInvalidation(function (_ref5) {
103
+ var id = _ref5.id,
104
+ payload = _ref5.payload;
105
+ return organizationRolesApi.destroy(id, payload);
106
+ }, _objectSpread({
107
+ keysToInvalidate: [[constants.QUERY_KEYS.TEAMS], [constants.QUERY_KEYS.TEAMS_DEPENDENCIES], [constants.QUERY_KEYS.ROLES]],
108
+ onSuccess: function onSuccess() {
109
+ _onSuccess3 === null || _onSuccess3 === void 0 || _onSuccess3();
110
+ }
111
+ }, options));
112
+ };
113
+ var useBulkUpdateRoles = function useBulkUpdateRoles(_ref6) {
114
+ var _onSuccess4 = _ref6.onSuccess,
115
+ options = objectWithoutProperties._objectWithoutProperties(_ref6, _excluded4);
116
+ return reactUtils.useMutationWithInvalidation(organizationRolesApi.bulkUpdate, _objectSpread({
117
+ keysToInvalidate: [[constants.QUERY_KEYS.TEAMS], [constants.QUERY_KEYS.TEAMS_DEPENDENCIES], [constants.QUERY_KEYS.ROLES]],
118
+ onSuccess: function onSuccess() {
119
+ _onSuccess4 === null || _onSuccess4 === void 0 || _onSuccess4();
120
+ }
121
+ }, options));
122
+ };
123
+
124
+ var transformObjectToDotNotation = function transformObjectToDotNotation(object) {
125
+ var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
126
+ var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
127
+ var errorKey = Object.keys(object).find(function (key) {
128
+ return !!object[key];
129
+ });
130
+ if (!errorKey) return;
131
+ var value = object[errorKey];
132
+ if (!value) return;
133
+ var nextKey = prefix ? "".concat(prefix, ".").concat(errorKey) : errorKey;
134
+ ramda.is(Object, value) ? transformObjectToDotNotation(value, nextKey, result) : result.push(nextKey);
135
+
136
+ // eslint-disable-next-line consistent-return
137
+ return result;
138
+ };
139
+ var getErrorFieldName = function getErrorFieldName(formikErrors) {
140
+ var _transformObjectToDot;
141
+ return (_transformObjectToDot = transformObjectToDotNotation(formikErrors)) === null || _transformObjectToDot === void 0 ? void 0 : _transformObjectToDot[0];
142
+ };
143
+
144
+ var ScrollToErrorField = function ScrollToErrorField(_ref) {
145
+ var formRef = _ref.formRef;
146
+ var _useFormikContext = formik.useFormikContext(),
147
+ submitCount = _useFormikContext.submitCount,
148
+ isValid = _useFormikContext.isValid,
149
+ errors = _useFormikContext.errors;
150
+ var isValidatedReference = require$$0.useRef(false);
151
+ require$$0.useEffect(function () {
152
+ isValidatedReference.current = false;
153
+ }, [submitCount]);
154
+ require$$0.useEffect(function () {
155
+ if (!formRef.current) return;
156
+ if (isValidatedReference.current || isValid) return;
157
+ isValidatedReference.current = true;
158
+ var fieldErrorNames = getErrorFieldName(errors);
159
+ if (fieldErrorNames.length <= 0) return;
160
+ var errorFormElement = toConsumableArray._toConsumableArray(formRef.current.elements).find(function (element) {
161
+ return element.name === fieldErrorNames;
162
+ });
163
+ errorFormElement === null || errorFormElement === void 0 || errorFormElement.scrollIntoView({
164
+ behavior: "smooth",
165
+ block: "center"
166
+ });
167
+ }, [submitCount, errors]); // eslint-disable-line react-hooks/exhaustive-deps
168
+
169
+ return null;
170
+ };
171
+
172
+ exports.ScrollToErrorField = ScrollToErrorField;
173
+ exports.useBulkUpdateRoles = useBulkUpdateRoles;
174
+ exports.useCreateRole = useCreateRole;
175
+ exports.useDestroyRole = useDestroyRole;
176
+ exports.useFetchGlobalRoles = useFetchGlobalRoles;
177
+ exports.useFetchRoles = useFetchRoles;
178
+ exports.useUpdateRole = useUpdateRole;
179
+ //# sourceMappingURL=index-5f1a8667.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-5f1a8667.js","sources":["../app/javascript/src/apis/global_roles.js","../app/javascript/src/apis/organization_roles.js","../app/javascript/src/hooks/roles/useRolesApi.js","../app/javascript/src/components/Common/ScrollToErrorField/utils.js","../app/javascript/src/components/Common/ScrollToErrorField/index.js"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/common/constants\";\n\nconst fetch = () => axios.get(`${BASE_URL}/global_roles`);\n\nconst globalRolesApi = { fetch };\n\nexport default globalRolesApi;\n","import axios from \"axios\";\n\nimport { BASE_URL } from \"src/common/constants\";\n\nconst fetch = () => axios.get(`${BASE_URL}/organization_roles`);\n\nconst create = payload => axios.post(`${BASE_URL}/organization_roles`, payload);\n\nconst update = (id, payload) =>\n axios.patch(`${BASE_URL}/organization_roles/${id}`, payload);\n\nconst destroy = (id, payload) =>\n axios.delete(`${BASE_URL}/organization_roles/${id}`, { data: payload });\n\nconst bulkUpdate = payload =>\n axios.patch(`${BASE_URL}/organization_roles/bulk_update`, payload);\n\nconst organizationRolesApi = { bulkUpdate, create, destroy, fetch, update };\n\nexport default organizationRolesApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { noop } from \"neetocist\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport globalRolesApi from \"apis/global_roles\";\nimport organizationRolesApi from \"apis/organization_roles\";\nimport { QUERY_KEYS } from \"src/common/constants\";\n\nconst useFetchRoles = (options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.ROLES],\n queryFn: organizationRolesApi.fetch,\n select: response => response?.organizationRoles,\n ...options,\n });\n\nconst useFetchGlobalRoles = (options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.GLOBAL_ROLES],\n queryFn: globalRolesApi.fetch,\n ...options,\n });\n\nconst useCreateRole = ({ onSuccess, ...options }) =>\n useMutationWithInvalidation(organizationRolesApi.create, {\n keysToInvalidate: [[QUERY_KEYS.TEAMS_DEPENDENCIES], [QUERY_KEYS.ROLES]],\n onSuccess: () => {\n onSuccess?.();\n },\n ...options,\n });\n\nconst useUpdateRole = ({ onSuccess, ...options }) =>\n useMutationWithInvalidation(\n ({ id, payload }) => organizationRolesApi.update(id, payload),\n {\n keysToInvalidate: [\n [QUERY_KEYS.TEAMS],\n [QUERY_KEYS.TEAMS_DEPENDENCIES],\n [QUERY_KEYS.ROLES],\n ],\n onSuccess: () => {\n onSuccess?.();\n },\n ...options,\n }\n );\n\nconst useDestroyRole = ({ onSuccess = noop, ...options }) =>\n useMutationWithInvalidation(\n ({ id, payload }) => organizationRolesApi.destroy(id, payload),\n {\n keysToInvalidate: [\n [QUERY_KEYS.TEAMS],\n [QUERY_KEYS.TEAMS_DEPENDENCIES],\n [QUERY_KEYS.ROLES],\n ],\n onSuccess: () => {\n onSuccess?.();\n },\n ...options,\n }\n );\n\nconst useBulkUpdateRoles = ({ onSuccess, ...options }) =>\n useMutationWithInvalidation(organizationRolesApi.bulkUpdate, {\n keysToInvalidate: [\n [QUERY_KEYS.TEAMS],\n [QUERY_KEYS.TEAMS_DEPENDENCIES],\n [QUERY_KEYS.ROLES],\n ],\n onSuccess: () => {\n onSuccess?.();\n },\n ...options,\n });\n\nexport {\n useBulkUpdateRoles,\n useCreateRole,\n useDestroyRole,\n useFetchRoles,\n useUpdateRole,\n useFetchGlobalRoles,\n};\n","import { is } from \"ramda\";\n\nconst transformObjectToDotNotation = (object, prefix = \"\", result = []) => {\n const errorKey = Object.keys(object).find(key => !!object[key]);\n if (!errorKey) return;\n const value = object[errorKey];\n if (!value) return;\n\n const nextKey = prefix ? `${prefix}.${errorKey}` : errorKey;\n is(Object, value)\n ? transformObjectToDotNotation(value, nextKey, result)\n : result.push(nextKey);\n\n // eslint-disable-next-line consistent-return\n return result;\n};\n\nexport const getErrorFieldName = formikErrors =>\n transformObjectToDotNotation(formikErrors)?.[0];\n","import { useEffect, useRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\n\nimport { getErrorFieldName } from \"./utils\";\n\nconst ScrollToErrorField = ({ formRef }) => {\n const { submitCount, isValid, errors } = useFormikContext();\n const isValidatedReference = useRef(false);\n\n useEffect(() => {\n isValidatedReference.current = false;\n }, [submitCount]);\n\n useEffect(() => {\n if (!formRef.current) return;\n\n if (isValidatedReference.current || isValid) return;\n\n isValidatedReference.current = true;\n const fieldErrorNames = getErrorFieldName(errors);\n if (fieldErrorNames.length <= 0) return;\n\n const errorFormElement = [...formRef.current.elements].find(\n element => element.name === fieldErrorNames\n );\n\n errorFormElement?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n }, [submitCount, errors]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return null;\n};\n\nexport default ScrollToErrorField;\n"],"names":["fetch","axios","get","concat","BASE_URL","globalRolesApi","create","payload","post","update","id","patch","destroy","data","bulkUpdate","organizationRolesApi","useFetchRoles","options","arguments","length","undefined","useQuery","_objectSpread","queryKey","QUERY_KEYS","ROLES","queryFn","select","response","organizationRoles","useFetchGlobalRoles","GLOBAL_ROLES","useCreateRole","_ref","onSuccess","_objectWithoutProperties","_excluded","useMutationWithInvalidation","keysToInvalidate","TEAMS_DEPENDENCIES","useUpdateRole","_ref2","_excluded2","_ref3","TEAMS","useDestroyRole","_ref4","_ref4$onSuccess","noop","_excluded3","_ref5","useBulkUpdateRoles","_ref6","_excluded4","transformObjectToDotNotation","object","prefix","result","errorKey","Object","keys","find","key","value","nextKey","is","push","getErrorFieldName","formikErrors","_transformObjectToDot","ScrollToErrorField","formRef","_useFormikContext","useFormikContext","submitCount","isValid","errors","isValidatedReference","useRef","useEffect","current","fieldErrorNames","errorFormElement","_toConsumableArray","elements","element","name","scrollIntoView","behavior","block"],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ 'use strict';
2
+
3
+ var injectCss = require('./inject-css-80a5faa3.js');
4
+ var defineProperty = require('./defineProperty-9b13c73c.js');
5
+ var objectWithoutProperties = require('./objectWithoutProperties-2fed2d7d.js');
6
+ var classnames = require('classnames');
7
+ var Check = require('@bigbinary/neeto-icons/Check');
8
+ var Typography = require('@bigbinary/neetoui/Typography');
9
+ var Avatar = require('@bigbinary/neetoui/Avatar');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+ var require$$0 = require('react');
12
+ var Search$1 = require('@bigbinary/neeto-icons/Search');
13
+ var Close = require('@bigbinary/neeto-icons/Close');
14
+ var Input = require('@bigbinary/neetoui/Input');
15
+
16
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
+
18
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
19
+ var Check__default = /*#__PURE__*/_interopDefaultLegacy(Check);
20
+ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
21
+ var Avatar__default = /*#__PURE__*/_interopDefaultLegacy(Avatar);
22
+ var Search__default = /*#__PURE__*/_interopDefaultLegacy(Search$1);
23
+ var Close__default = /*#__PURE__*/_interopDefaultLegacy(Close);
24
+ var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
25
+
26
+ var css = ".ntm-assign-droplist__item{border:none;flex-shrink:0;min-height:32px;outline:none}.ntm-assign-droplist__item:last-child{margin-bottom:0!important}.ntm-assign-droplist__list-wrapper{max-height:255px;overflow-y:auto}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9jb21wb25lbnRzL2Ryb3Bkb3duLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkJBSUUsV0FBQSxDQUZBLGFBQUEsQ0FEQSxlQUFBLENBRUEsWUFFRixDQUNFLHNDQUNFLHlCQUNKLENBR0EsbUNBQ0UsZ0JBQUEsQ0FDQSxlQUFGIiwic291cmNlc0NvbnRlbnQiOlsiLm50bS1hc3NpZ24tZHJvcGxpc3RfX2l0ZW0ge1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBmbGV4LXNocmluazogMDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5udG0tYXNzaWduLWRyb3BsaXN0X19saXN0LXdyYXBwZXIge1xuICBtYXgtaGVpZ2h0OiAyNTVweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbiJdfQ== */";
27
+ injectCss.n(css,{});
28
+
29
+ var CHECK_ICON_SIZE = 20;
30
+
31
+ var _excluded$3 = ["active", "memberName"];
32
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
33
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34
+ var MembersListItem = function MembersListItem(_ref) {
35
+ var active = _ref.active,
36
+ memberName = _ref.memberName,
37
+ otherProps = objectWithoutProperties._objectWithoutProperties(_ref, _excluded$3);
38
+ var buttonClassNames = classnames__default["default"]("ntm-assign-droplist__item neeto-ui-rounded mb-2 flex transform cursor-pointer select-none items-center gap-2 px-2 py-1 pr-7 text-left transition-colors", {
39
+ "neeto-ui-bg-primary-500 neeto-ui-text-white focus:neeto-ui-bg-primary-500 hover:neeto-ui-bg-primary-500": active,
40
+ "hover:neeto-ui-bg-gray-200 focus:neeto-ui-bg-gray-100": !active
41
+ });
42
+ return /*#__PURE__*/jsxRuntime.jsxs("button", _objectSpread$3(_objectSpread$3({
43
+ className: buttonClassNames
44
+ }, otherProps), {}, {
45
+ children: [memberName && /*#__PURE__*/jsxRuntime.jsx(Avatar__default["default"], {
46
+ className: "flex-shrink-0",
47
+ user: {
48
+ name: memberName
49
+ }
50
+ }), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
51
+ className: "min-w-0 break-words",
52
+ component: "span",
53
+ style: "h5",
54
+ weight: "normal",
55
+ children: memberName
56
+ }), active && /*#__PURE__*/jsxRuntime.jsx("div", {
57
+ className: "absolute right-0 top-0 flex h-full items-center pr-2",
58
+ children: /*#__PURE__*/jsxRuntime.jsx(Check__default["default"], {
59
+ size: CHECK_ICON_SIZE
60
+ })
61
+ })]
62
+ }));
63
+ };
64
+
65
+ var _excluded$2 = ["placeholder", "searchTerm", "handleClearSearchTerm"];
66
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
67
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
68
+ var Search = function Search(_ref) {
69
+ var placeholder = _ref.placeholder,
70
+ searchTerm = _ref.searchTerm,
71
+ handleClearSearchTerm = _ref.handleClearSearchTerm,
72
+ otherProps = objectWithoutProperties._objectWithoutProperties(_ref, _excluded$2);
73
+ var inputRef = require$$0.useRef(null);
74
+ var renderClose = function renderClose() {
75
+ return /*#__PURE__*/jsxRuntime.jsx(Close__default["default"], {
76
+ className: "cursor-pointer",
77
+ onClick: function onClick() {
78
+ inputRef.current.focus();
79
+ handleClearSearchTerm();
80
+ }
81
+ });
82
+ };
83
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
84
+ className: "mb-3 w-full px-3",
85
+ onClick: function onClick(e) {
86
+ return e.stopPropagation();
87
+ },
88
+ children: /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], _objectSpread$2({
89
+ autoFocus: true,
90
+ prefix: /*#__PURE__*/jsxRuntime.jsx(Search__default["default"], {}),
91
+ ref: inputRef,
92
+ suffix: renderClose(),
93
+ value: searchTerm
94
+ }, _objectSpread$2({
95
+ placeholder: placeholder
96
+ }, otherProps)))
97
+ });
98
+ };
99
+
100
+ var _excluded$1 = ["active", "teamName"];
101
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
102
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
103
+ var TeamsListItem = function TeamsListItem(_ref) {
104
+ var active = _ref.active,
105
+ teamName = _ref.teamName,
106
+ otherProps = objectWithoutProperties._objectWithoutProperties(_ref, _excluded$1);
107
+ var buttonClassNames = classnames__default["default"]("ntm-assign-droplist__item neeto-ui-rounded mb-2 flex transform cursor-pointer select-none items-center gap-2 p-2 pr-8 text-left transition-colors", {
108
+ "neeto-ui-bg-primary-500 neeto-ui-text-white focus:neeto-ui-bg-primary-500 hover:neeto-ui-bg-primary-500": active,
109
+ "hover:neeto-ui-bg-gray-200 focus:neeto-ui-bg-gray-200": !active
110
+ });
111
+ return /*#__PURE__*/jsxRuntime.jsxs("button", _objectSpread$1(_objectSpread$1({
112
+ className: buttonClassNames
113
+ }, otherProps), {}, {
114
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
115
+ className: "flex min-w-0 flex-grow flex-wrap items-center break-words",
116
+ component: "span",
117
+ style: "h5",
118
+ weight: "normal",
119
+ children: teamName
120
+ }), active && /*#__PURE__*/jsxRuntime.jsx("div", {
121
+ className: "absolute right-0 top-0 flex h-full items-center pr-2",
122
+ children: /*#__PURE__*/jsxRuntime.jsx(Check__default["default"], {
123
+ size: CHECK_ICON_SIZE
124
+ })
125
+ })]
126
+ }));
127
+ };
128
+
129
+ var _excluded = ["children"];
130
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
131
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
132
+ var AssignList = function AssignList(_ref) {
133
+ var children = _ref.children,
134
+ otherProps = objectWithoutProperties._objectWithoutProperties(_ref, _excluded);
135
+ return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({
136
+ className: "w-64 py-3"
137
+ }, otherProps), {}, {
138
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
139
+ className: "flex w-full flex-col",
140
+ children: children
141
+ })
142
+ }));
143
+ };
144
+ AssignList.Search = Search;
145
+ AssignList.MembersListItem = MembersListItem;
146
+ AssignList.TeamsListItem = TeamsListItem;
147
+
148
+ exports.AssignList = AssignList;
149
+ //# sourceMappingURL=index-7b978a0f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-7b978a0f.js","sources":["../app/javascript/src/components/Common/AssignList/constants.js","../app/javascript/src/components/Common/AssignList/MembersListItem.jsx","../app/javascript/src/components/Common/AssignList/Search.jsx","../app/javascript/src/components/Common/AssignList/TeamsListItem.jsx","../app/javascript/src/components/Common/AssignList/index.jsx"],"sourcesContent":["export const CHECK_ICON_SIZE = 20;\n","import classnames from \"classnames\";\nimport { Check } from \"neetoicons\";\nimport { Typography, Avatar } from \"neetoui\";\n\nimport { CHECK_ICON_SIZE } from \"./constants\";\n\nconst MembersListItem = ({ active, memberName, ...otherProps }) => {\n const buttonClassNames = classnames(\n \"ntm-assign-droplist__item neeto-ui-rounded mb-2 flex transform cursor-pointer select-none items-center gap-2 px-2 py-1 pr-7 text-left transition-colors\",\n {\n \"neeto-ui-bg-primary-500 neeto-ui-text-white focus:neeto-ui-bg-primary-500 hover:neeto-ui-bg-primary-500\":\n active,\n \"hover:neeto-ui-bg-gray-200 focus:neeto-ui-bg-gray-100\": !active,\n }\n );\n\n return (\n <button className={buttonClassNames} {...otherProps}>\n {memberName && (\n <Avatar className=\"flex-shrink-0\" user={{ name: memberName }} />\n )}\n <Typography\n className=\"min-w-0 break-words\"\n component=\"span\"\n style=\"h5\"\n weight=\"normal\"\n >\n {memberName}\n </Typography>\n {active && (\n <div className=\"absolute right-0 top-0 flex h-full items-center pr-2\">\n <Check size={CHECK_ICON_SIZE} />\n </div>\n )}\n </button>\n );\n};\n\nexport default MembersListItem;\n","import { useRef } from \"react\";\n\nimport { Search as NeetoUISearchIcon, Close } from \"neetoicons\";\nimport { Input } from \"neetoui\";\n\nconst Search = ({\n placeholder,\n searchTerm,\n handleClearSearchTerm,\n ...otherProps\n}) => {\n const inputRef = useRef(null);\n\n const renderClose = () => (\n <Close\n className=\"cursor-pointer\"\n onClick={() => {\n inputRef.current.focus();\n handleClearSearchTerm();\n }}\n />\n );\n\n return (\n <div className=\"mb-3 w-full px-3\" onClick={e => e.stopPropagation()}>\n <Input\n autoFocus\n prefix={<NeetoUISearchIcon />}\n ref={inputRef}\n suffix={renderClose()}\n value={searchTerm}\n {...{ placeholder, ...otherProps }}\n />\n </div>\n );\n};\n\nexport default Search;\n","import classnames from \"classnames\";\nimport { Check } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\n\nimport { CHECK_ICON_SIZE } from \"./constants\";\n\nconst TeamsListItem = ({ active, teamName, ...otherProps }) => {\n const buttonClassNames = classnames(\n \"ntm-assign-droplist__item neeto-ui-rounded mb-2 flex transform cursor-pointer select-none items-center gap-2 p-2 pr-8 text-left transition-colors\",\n {\n \"neeto-ui-bg-primary-500 neeto-ui-text-white focus:neeto-ui-bg-primary-500 hover:neeto-ui-bg-primary-500\":\n active,\n \"hover:neeto-ui-bg-gray-200 focus:neeto-ui-bg-gray-200\": !active,\n }\n );\n\n return (\n <button className={buttonClassNames} {...otherProps}>\n <Typography\n className=\"flex min-w-0 flex-grow flex-wrap items-center break-words\"\n component=\"span\"\n style=\"h5\"\n weight=\"normal\"\n >\n {teamName}\n </Typography>\n {active && (\n <div className=\"absolute right-0 top-0 flex h-full items-center pr-2\">\n <Check size={CHECK_ICON_SIZE} />\n </div>\n )}\n </button>\n );\n};\n\nexport default TeamsListItem;\n","import MembersListItem from \"./MembersListItem\";\nimport Search from \"./Search\";\nimport TeamsListItem from \"./TeamsListItem\";\n\nconst AssignList = ({ children, ...otherProps }) => (\n <div className=\"w-64 py-3\" {...otherProps}>\n <div className=\"flex w-full flex-col\">{children}</div>\n </div>\n);\n\nAssignList.Search = Search;\nAssignList.MembersListItem = MembersListItem;\nAssignList.TeamsListItem = TeamsListItem;\n\nexport default AssignList;\n"],"names":["CHECK_ICON_SIZE","MembersListItem","_ref","active","memberName","otherProps","_objectWithoutProperties","_excluded","buttonClassNames","classnames","_jsxs","_objectSpread","className","children","_jsx","Avatar","user","name","Typography","component","style","weight","Check","size","Search","placeholder","searchTerm","handleClearSearchTerm","inputRef","useRef","renderClose","Close","onClick","current","focus","e","stopPropagation","Input","autoFocus","prefix","NeetoUISearchIcon","ref","suffix","value","TeamsListItem","teamName","AssignList"],"mappings":"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"}