UNPKG

@knockout-js/org

Version:
283 lines (282 loc) 19.6 kB
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator"; import { _ as _object_spread } from "@swc/helpers/_/_object_spread"; import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props"; import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array"; import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator"; import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime"; import { AutoComplete, Button, Input, Space } from "antd"; import { useCallback, useEffect, useRef, useState } from "react"; import UserModal from "../user-modal"; import { UserUserType as UcenterUserUserType } from "@knockout-js/api/ucenter"; import { gid, instanceName } from "@knockout-js/api"; import { useLocale } from "../locale"; import { gql, paging, query } from "@knockout-js/ice-urql/request"; import styles from "../assets/autoComplete.module.css"; import { SearchOutlined } from "@ant-design/icons"; var // fix publish error: Property 'userType' of exported interface has or is using private name 'UserUserType' UserUserType; (function(UserUserType) { UserUserType[UserUserType["Account"] = UcenterUserUserType.Account] = "Account"; UserUserType[UserUserType["Member"] = UcenterUserUserType.Member] = "Member"; })(UserUserType || (UserUserType = {})); var userInfoQuery = gql("query orgPkgUserInfo($gid: GID!){\n node(id:$gid){\n ... on User{\n id,displayName,contact{email,mobile}\n }\n }\n}"); var userListQuery = gql("query userList($first: Int,$orderBy:UserOrder,$where:UserWhereInput){\n users(first:$first,orderBy: $orderBy,where: $where){\n totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor }\n edges{\n cursor,node{\n id,createdBy,createdAt,updatedBy,updatedAt,principalName,displayName,\n userType,creationType,registerIP,status,comments,contact{email,mobile}\n }\n }\n }\n}"); var orgUserListQuery = gql("query orgUserList($gid: GID!,$first: Int,$orderBy:UserOrder,$where:UserWhereInput){\n node(id:$gid){\n ... on Org{\n id,\n users(first:$first,orderBy: $orderBy,where: $where){\n totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor }\n edges{\n cursor,node{\n id,createdBy,createdAt,updatedBy,updatedAt,principalName,displayName,\n userType,creationType,registerIP,status,comments,contact{email,mobile}\n }\n }\n }\n }\n }\n}"); var orgRoleUserListQuery = gql("query orgRoleUserList($roleId: ID!,$first: Int,$orderBy:UserOrder,$where:UserWhereInput){\n orgRoleUsers(roleID:$roleId,first:$first,orderBy: $orderBy,where: $where){\n totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor }\n edges{\n cursor,node{\n id,createdBy,createdAt,updatedBy,updatedAt,principalName,displayName,\n userType,creationType,registerIP,status,comments,contact{email,mobile}\n }\n }\n }\n}"); var OrgSelect = function(props) { var locale = useLocale("UserSelect"), searchTimeoutFn = useRef(undefined), _useState = _sliced_to_array(useState(), 2), info = _useState[0], setInfo = _useState[1], _useState1 = _sliced_to_array(useState(false), 2), loading = _useState1[0], setLoading = _useState1[1], _useState2 = _sliced_to_array(useState(), 2), keyword = _useState2[0], setKeyword = _useState2[1], _useState3 = _sliced_to_array(useState([]), 2), options = _useState3[0], setOptions = _useState3[1], _useState4 = _sliced_to_array(useState(false), 2), open = _useState4[0], setOpen = _useState4[1]; var setValue = useCallback(function(original) { if (original) { var _props_onChange, _props; var value = props.changeValue ? original[props.changeValue] : original; setInfo(original); setKeyword(original.displayName); (_props_onChange = (_props = props).onChange) === null || _props_onChange === void 0 ? void 0 : _props_onChange.call(_props, value, original); } else { var _props_onChange1, _props1; setKeyword(undefined); setInfo(undefined); (_props_onChange1 = (_props1 = props).onChange) === null || _props_onChange1 === void 0 ? void 0 : _props_onChange1.call(_props1); } }, []); useEffect(function() { if (typeof props.value === "string") { if (props.dataSource) { var _data; var data = props.dataSource.find(function(item) { return item.id === props.value; }); setInfo(data); setKeyword((_data = data) === null || _data === void 0 ? void 0 : _data.displayName); } else { query(userInfoQuery, { gid: gid("User", props.value) }, { instanceName: instanceName.UCENTER }).then(function(result) { var _result_data_node, _result_data; if (((_result_data = result.data) === null || _result_data === void 0 ? void 0 : (_result_data_node = _result_data.node) === null || _result_data_node === void 0 ? void 0 : _result_data_node.__typename) === "User") { setInfo(result.data.node); setKeyword(result.data.node.displayName); } }); } } else { var _props_value; setInfo(props.value); setKeyword((_props_value = props.value) === null || _props_value === void 0 ? void 0 : _props_value.displayName); } }, [ props.value, props.dataSource ]); return /*#__PURE__*/ _jsxs(_Fragment, { children: [ /*#__PURE__*/ _jsxs(Space.Compact, { style: { width: "100%" }, children: [ /*#__PURE__*/ _jsx(AutoComplete, { className: styles.autoComplete, value: keyword, options: options, allowClear: !props.disabled, disabled: props.disabled, onClear: function() { setValue(); setOptions([]); }, onBlur: function() { var _info; setKeyword((_info = info) === null || _info === void 0 ? void 0 : _info.displayName); }, onSelect: function(v, option) { setValue(option.info); }, onSearch: function() { var _ref = _async_to_generator(function(keywordStr) { return _ts_generator(this, function(_state) { setKeyword(keywordStr); clearTimeout(searchTimeoutFn.current); searchTimeoutFn.current = setTimeout(/*#__PURE__*/ _async_to_generator(function() { var os, first, where, _result_data, result, _result_data_orgRoleUsers_edges, _result_data_node, _result_data1, result1, _result_data_node_users_edges, _result_data2, result2, _result_data_users_edges; return _ts_generator(this, function(_state) { switch(_state.label){ case 0: os = [], first = 15, where = _object_spread_props(_object_spread({}, props.where), { or: [ { displayNameContains: keywordStr }, { principalNameContains: keywordStr }, { hasAddressesWith: [ { emailContains: keywordStr } ] }, { hasAddressesWith: [ { mobileContains: keywordStr } ] } ] }); where.userType = props.userType; if (!keywordStr) return [ 3, 6 ]; setLoading(true); if (!props.orgRoleId) return [ 3, 2 ]; return [ 4, paging(orgRoleUserListQuery, { roleId: props.orgRoleId, first: first, where: where }, 1, { instanceName: instanceName.UCENTER }) ]; case 1: result = _state.sent(); if ((_result_data = result.data) === null || _result_data === void 0 ? void 0 : _result_data.orgRoleUsers.totalCount) { ; (_result_data_orgRoleUsers_edges = result.data.orgRoleUsers.edges) === null || _result_data_orgRoleUsers_edges === void 0 ? void 0 : _result_data_orgRoleUsers_edges.forEach(function(item) { var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { os.push({ label: item.node.displayName, value: item.node.id, info: item.node }); } }); } return [ 3, 6 ]; case 2: if (!props.orgId) return [ 3, 4 ]; return [ 4, paging(orgUserListQuery, { gid: gid("Org", props.orgId), first: first, where: where }, 1, { instanceName: instanceName.UCENTER }) ]; case 3: result1 = _state.sent(); if (((_result_data1 = result1.data) === null || _result_data1 === void 0 ? void 0 : (_result_data_node = _result_data1.node) === null || _result_data_node === void 0 ? void 0 : _result_data_node.__typename) === "Org") { ; (_result_data_node_users_edges = result1.data.node.users.edges) === null || _result_data_node_users_edges === void 0 ? void 0 : _result_data_node_users_edges.forEach(function(item) { var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { os.push({ label: item.node.displayName, value: item.node.id, info: item.node }); } }); } return [ 3, 6 ]; case 4: return [ 4, paging(userListQuery, { first: first, where: where }, 1, { instanceName: instanceName.UCENTER }) ]; case 5: result2 = _state.sent(); if ((_result_data2 = result2.data) === null || _result_data2 === void 0 ? void 0 : _result_data2.users.totalCount) { ; (_result_data_users_edges = result2.data.users.edges) === null || _result_data_users_edges === void 0 ? void 0 : _result_data_users_edges.forEach(function(item) { var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { os.push({ label: item.node.displayName, value: item.node.id, info: item.node }); } }); } _state.label = 6; case 6: setLoading(false); setOptions(os); return [ 2 ]; } }); }), 500); return [ 2 ]; }); }); return function(keywordStr) { return _ref.apply(this, arguments); }; }(), children: /*#__PURE__*/ _jsx(Input, _object_spread({ placeholder: locale.placeholder }, props.inputProps)) }), props.disabled ? props.suffix : /*#__PURE__*/ _jsx(Button, { loading: loading, icon: /*#__PURE__*/ _jsx(SearchOutlined, {}), onClick: function() { setOpen(true); } }) ] }), /*#__PURE__*/ _jsx(UserModal, { open: open, orgId: props.orgId, orgRoleId: props.orgRoleId, userType: props.userType, title: locale.title, where: props.where, modalProps: props.modalProps, proTableProps: props.proTableProps, onClose: function(selectData) { var _selectData; if ((_selectData = selectData) === null || _selectData === void 0 ? void 0 : _selectData.length) { setValue(selectData[0]); } setOpen(false); } }) ] }); }; export default OrgSelect; //# sourceMappingURL=index.js.map