UNPKG

@knockout-js/org

Version:
218 lines (217 loc) 13.2 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, Input } from "antd"; import { useCallback, useEffect, useState } from "react"; import OrgModal from "../org-modal"; import { OrderDirection, OrgKind as UcenterOrgKind, OrgOrderField } 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"; var // fix publish error: Property 'kind' of exported interface has or is using private name 'OrgKind'. OrgKind; (function(OrgKind) { OrgKind[OrgKind["Org"] = UcenterOrgKind.Org] = "Org"; OrgKind[OrgKind["Root"] = UcenterOrgKind.Root] = "Root"; })(OrgKind || (OrgKind = {})); var orgInfoQuery = gql("query orgPkgOrgInfo($gid: GID!){\n node(id:$gid){\n ... on Org{\n id,name,code,kind\n }\n }\n}"); var appOrgListQuery = gql("query appOrgList($gid: GID!,$first: Int,$orderBy:OrgOrder,$where:OrgWhereInput){\n node(id:$gid){\n ... on App{\n id,\n orgs(first:$first,orderBy: $orderBy,where: $where){\n totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor }\n edges{\n cursor,node{\n id,ownerID,parentID,kind,profile,\n domain,code,name,countryCode,timezone,\n owner { id,displayName }\n }\n }\n }\n }\n }\n}"); var orgListQuery = gql("query orgList($first: Int,$orderBy:OrgOrder,$where:OrgWhereInput){\n organizations(first:$first,orderBy: $orderBy,where: $where){\n totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor }\n edges{\n cursor,node{\n id,ownerID,parentID,kind,profile,\n domain,code,name,countryCode,timezone,\n owner { id,displayName }\n }\n }\n }\n}"); var searchTimeoutFn = undefined; var OrgSelect = function(props) { var locale = useLocale("OrgSelect"), _useState = _sliced_to_array(useState(), 2), info = _useState[0], setInfo = _useState[1], _useState1 = _sliced_to_array(useState(), 2), keyword = _useState1[0], setKeyword = _useState1[1], _useState2 = _sliced_to_array(useState([]), 2), options = _useState2[0], setOptions = _useState2[1], _useState3 = _sliced_to_array(useState(false), 2), open = _useState3[0], setOpen = _useState3[1]; var setValue = useCallback(function(original) { if (original) { var _props_onChange, _props; var value = props.changeValue ? original[props.changeValue] : original; setInfo(original); setKeyword(original.name); (_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.name); } else { query(orgInfoQuery, { gid: gid("Org", 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) === "Org") { setInfo(result.data.node); setKeyword(result.data.node.name); } }); } } else { var _props_value; setInfo(props.value); setKeyword((_props_value = props.value) === null || _props_value === void 0 ? void 0 : _props_value.name); } }, [ props.value, props.dataSource ]); return /*#__PURE__*/ _jsxs(_Fragment, { 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.name); }, 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); searchTimeoutFn = setTimeout(/*#__PURE__*/ _async_to_generator(function() { var os, first, where, orderBy, _result_data_node, _result_data, result, _result_data_node_orgs_edges, _result_data1, result1, _result_data_organizations_edges; return _ts_generator(this, function(_state) { switch(_state.label){ case 0: os = [], first = 15, where = { nameContains: keywordStr }, orderBy = { direction: OrderDirection.Asc, field: OrgOrderField.DisplaySort }; if (!keywordStr) return [ 3, 4 ]; if (!props.appId) return [ 3, 2 ]; return [ 4, paging(appOrgListQuery, { gid: gid("App", props.appId), first: first, where: where, orderBy: orderBy }, 1, { instanceName: instanceName.UCENTER }) ]; case 1: result = _state.sent(); 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) === "App") { ; (_result_data_node_orgs_edges = result.data.node.orgs.edges) === null || _result_data_node_orgs_edges === void 0 ? void 0 : _result_data_node_orgs_edges.forEach(function(item) { var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { os.push({ label: item.node.name, value: item.node.id, info: item.node }); } }); } return [ 3, 4 ]; case 2: return [ 4, paging(orgListQuery, { first: first, where: where, orderBy: orderBy }, 1, { instanceName: instanceName.UCENTER }) ]; case 3: result1 = _state.sent(); if ((_result_data1 = result1.data) === null || _result_data1 === void 0 ? void 0 : _result_data1.organizations.totalCount) { ; (_result_data_organizations_edges = result1.data.organizations.edges) === null || _result_data_organizations_edges === void 0 ? void 0 : _result_data_organizations_edges.forEach(function(item) { var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { os.push({ label: item.node.name, value: item.node.id, info: item.node }); } }); } _state.label = 4; case 4: setOptions(os); return [ 2 ]; } }); }), 500); return [ 2 ]; }); }); return function(keywordStr) { return _ref.apply(this, arguments); }; }(), children: /*#__PURE__*/ _jsx(Input.Search, _object_spread_props(_object_spread({ placeholder: locale.placeholder }, props.searchProps), { onSearch: function() { setOpen(true); } })) }), /*#__PURE__*/ _jsx(OrgModal, { open: open, orgId: props.orgId, appId: props.appId, kind: props.kind, title: locale.title, 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