@weavix/tracker-components 0.1.5 → 0.1.6

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 (41) hide show
  1. package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.d.ts +6 -2
  2. package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.js +5 -0
  3. package/build/cjs/components/MetaEntitiesSelect/MetaEntitiesSelect.js.map +1 -1
  4. package/build/cjs/components/MetaEntitiesSelect/README.md +5 -0
  5. package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js +8 -2
  6. package/build/cjs/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js.map +1 -1
  7. package/build/cjs/components/QueueSelect/QueueSelect.d.ts +1 -1
  8. package/build/cjs/components/QueueSelect/QueueSelect.js +5 -5
  9. package/build/cjs/components/QueueSelect/QueueSelect.js.map +1 -1
  10. package/build/cjs/components/QueueSelect/README.md +4 -6
  11. package/build/cjs/components/Select/MultiSelect.js.map +1 -1
  12. package/build/cjs/components/Select/hooks/useAutocomplete.d.ts +1 -1
  13. package/build/cjs/components/Select/hooks/useAutocomplete.js +23 -22
  14. package/build/cjs/components/Select/hooks/useAutocomplete.js.map +1 -1
  15. package/build/cjs/hooks/useUpdateEffect.d.ts +2 -0
  16. package/build/cjs/hooks/useUpdateEffect.js +26 -0
  17. package/build/cjs/hooks/useUpdateEffect.js.map +1 -0
  18. package/build/cjs/utils/cancellablePromise.d.ts +7 -0
  19. package/build/cjs/utils/cancellablePromise.js +27 -0
  20. package/build/cjs/utils/cancellablePromise.js.map +1 -0
  21. package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.d.ts +6 -2
  22. package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.js +4 -0
  23. package/build/esm/components/MetaEntitiesSelect/MetaEntitiesSelect.js.map +1 -1
  24. package/build/esm/components/MetaEntitiesSelect/README.md +5 -0
  25. package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js +7 -2
  26. package/build/esm/components/MetaEntitiesSelect/utils/getMetaEntityDisplay.js.map +1 -1
  27. package/build/esm/components/QueueSelect/QueueSelect.d.ts +1 -1
  28. package/build/esm/components/QueueSelect/QueueSelect.js +4 -4
  29. package/build/esm/components/QueueSelect/QueueSelect.js.map +1 -1
  30. package/build/esm/components/QueueSelect/README.md +4 -6
  31. package/build/esm/components/Select/MultiSelect.js.map +1 -1
  32. package/build/esm/components/Select/hooks/useAutocomplete.d.ts +1 -1
  33. package/build/esm/components/Select/hooks/useAutocomplete.js +23 -22
  34. package/build/esm/components/Select/hooks/useAutocomplete.js.map +1 -1
  35. package/build/esm/hooks/useUpdateEffect.d.ts +2 -0
  36. package/build/esm/hooks/useUpdateEffect.js +20 -0
  37. package/build/esm/hooks/useUpdateEffect.js.map +1 -0
  38. package/build/esm/utils/cancellablePromise.d.ts +7 -0
  39. package/build/esm/utils/cancellablePromise.js +20 -0
  40. package/build/esm/utils/cancellablePromise.js.map +1 -0
  41. package/package.json +3 -6
@@ -1,10 +1,14 @@
1
1
  import type { FC } from 'react';
2
+ import React from 'react';
2
3
  import type { MetaEntityV2 } from '@weavix/tracker-api-types';
3
4
  import type { EntitiesSuggestProps } from './components/EntitiesSuggest/EntitiesSuggest';
4
5
  type EntitiesSuggestPropsToOmit = 'getItemId' | 'getSuggestTextFromClickedItem' | 'renderItem';
5
- export type MetaEntitiesSelectProps = Omit<EntitiesSuggestProps<MetaEntityV2>, EntitiesSuggestPropsToOmit> & {
6
+ type LegacyMetaEntity = MetaEntityV2 & {
7
+ fields: Record<string, Record<string, unknown>>;
8
+ };
9
+ export type MetaEntitiesSelectProps<Entity extends MetaEntityV2 = LegacyMetaEntity> = Omit<EntitiesSuggestProps<Entity>, EntitiesSuggestPropsToOmit> & {
6
10
  className?: string;
7
11
  itemClassName?: string;
8
12
  };
9
- export declare const MetaEntitiesSelect: FC<MetaEntitiesSelectProps>;
13
+ export declare const MetaEntitiesSelect: (<Entity extends MetaEntityV2>(props: MetaEntitiesSelectProps<Entity>) => React.ReactElement) & FC<MetaEntitiesSelectProps>;
10
14
  export {};
@@ -21,6 +21,11 @@ var _jsxRuntime = require("react/jsx-runtime");
21
21
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
22
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
23
23
  var _excluded = ["className", "itemClassName", "placeholder", "text", "onTextChange"];
24
+
25
+ // Preserve the default callback contract from tracker-api-types 0.0.3.
26
+ // New callers can infer the wider 0.0.6 entity type from their data.
27
+
28
+ // Keep FC last so ComponentProps and existing wrappers retain the legacy default.
24
29
  var MetaEntitiesSelect = exports.MetaEntitiesSelect = function MetaEntitiesSelect(_ref) {
25
30
  var className = _ref.className,
26
31
  itemClassName = _ref.itemClassName,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_Icon","_useLocalizedString2","_MetaEntitiesSelect","_EntitiesSuggest","_EntitiesSuggestItem","_i18n","_getMetaEntityDisplay","_getMetaEntityId","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","MetaEntitiesSelect","exports","_ref","className","itemClassName","placeholder","initialText","text","onTextChange","suggestProps","_objectWithoutProperties","_excluded","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","_useState","useState","_useState2","_slicedToArray","setText","handleTextChange","useCallback","value","renderItem","entity","entityName","getMetaEntityDisplay","_jsx","EntitiesSuggestItem","id","name","cnMetaEntitiesSelect","icon","MetaEntityIcon","EntitiesSuggest","_objectSpread","getItemsOnMount","showItemsOnNoText","getItemId","getMetaEntityId","getSuggestTextFromClickedItem"],"sources":["MetaEntitiesSelect.tsx"],"sourcesContent":["import type {FC} from 'react';\nimport React, {useCallback, useState} from 'react';\n\nimport {getConfig} from '@gravity-ui/uikit';\nimport type {MetaEntityV2} from '@weavix/tracker-api-types';\n\nimport {MetaEntityIcon} from '~/src/components/Icon/';\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport {cnMetaEntitiesSelect} from './MetaEntitiesSelect.classname';\nimport {EntitiesSuggest} from './components/EntitiesSuggest/EntitiesSuggest';\nimport type {EntitiesSuggestProps} from './components/EntitiesSuggest/EntitiesSuggest';\nimport {EntitiesSuggestItem} from './components/EntitiesSuggestItem/EntitiesSuggestItem';\nimport {defaultMessages} from './i18n';\nimport {getMetaEntityDisplay} from './utils/getMetaEntityDisplay';\nimport {getMetaEntityId} from './utils/getMetaEntityId';\n\ntype EntitiesSuggestPropsToOmit = 'getItemId' | 'getSuggestTextFromClickedItem' | 'renderItem';\n\nexport type MetaEntitiesSelectProps = Omit<\n EntitiesSuggestProps<MetaEntityV2>,\n EntitiesSuggestPropsToOmit\n> & {\n className?: string;\n itemClassName?: string;\n};\n\nexport const MetaEntitiesSelect: FC<MetaEntitiesSelectProps> = ({\n className,\n itemClassName,\n placeholder,\n text: initialText,\n onTextChange,\n ...suggestProps\n}) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const [text, setText] = useState(initialText ?? '');\n const handleTextChange = useCallback(\n (value: string) => {\n setText(value);\n onTextChange?.(value);\n },\n [setText, onTextChange],\n );\n\n const renderItem = useCallback(\n (entity: MetaEntityV2) => {\n const entityName = getMetaEntityDisplay(entity);\n return (\n <EntitiesSuggestItem\n key={entity.id}\n id={entity.id}\n name={entityName}\n className={cnMetaEntitiesSelect('item', itemClassName)}\n icon={<MetaEntityIcon entity={entity} />}\n />\n );\n },\n [itemClassName],\n );\n\n return (\n <EntitiesSuggest<MetaEntityV2>\n {...suggestProps}\n className={cnMetaEntitiesSelect(null, className)}\n renderItem={renderItem}\n placeholder={placeholder ?? t('placeholder')}\n getItemsOnMount\n showItemsOnNoText\n getItemId={getMetaEntityId}\n getSuggestTextFromClickedItem={getMetaEntityDisplay}\n text={text}\n onTextChange={handleTextChange}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_Icon","_useLocalizedString2","_MetaEntitiesSelect","_EntitiesSuggest","_EntitiesSuggestItem","_i18n","_getMetaEntityDisplay","_getMetaEntityId","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","MetaEntitiesSelect","exports","_ref","className","itemClassName","placeholder","initialText","text","onTextChange","suggestProps","_objectWithoutProperties","_excluded","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","_useState","useState","_useState2","_slicedToArray","setText","handleTextChange","useCallback","value","renderItem","entity","entityName","getMetaEntityDisplay","_jsx","EntitiesSuggestItem","id","name","cnMetaEntitiesSelect","icon","MetaEntityIcon","EntitiesSuggest","_objectSpread","getItemsOnMount","showItemsOnNoText","getItemId","getMetaEntityId","getSuggestTextFromClickedItem"],"sources":["MetaEntitiesSelect.tsx"],"sourcesContent":["import type {FC} from 'react';\nimport React, {useCallback, useState} from 'react';\n\nimport {getConfig} from '@gravity-ui/uikit';\nimport type {MetaEntityV2} from '@weavix/tracker-api-types';\n\nimport {MetaEntityIcon} from '~/src/components/Icon/';\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport {cnMetaEntitiesSelect} from './MetaEntitiesSelect.classname';\nimport {EntitiesSuggest} from './components/EntitiesSuggest/EntitiesSuggest';\nimport type {EntitiesSuggestProps} from './components/EntitiesSuggest/EntitiesSuggest';\nimport {EntitiesSuggestItem} from './components/EntitiesSuggestItem/EntitiesSuggestItem';\nimport {defaultMessages} from './i18n';\nimport {getMetaEntityDisplay} from './utils/getMetaEntityDisplay';\nimport {getMetaEntityId} from './utils/getMetaEntityId';\n\ntype EntitiesSuggestPropsToOmit = 'getItemId' | 'getSuggestTextFromClickedItem' | 'renderItem';\n\n// Preserve the default callback contract from tracker-api-types 0.0.3.\n// New callers can infer the wider 0.0.6 entity type from their data.\ntype LegacyMetaEntity = MetaEntityV2 & {fields: Record<string, Record<string, unknown>>};\n\nexport type MetaEntitiesSelectProps<Entity extends MetaEntityV2 = LegacyMetaEntity> = Omit<\n EntitiesSuggestProps<Entity>,\n EntitiesSuggestPropsToOmit\n> & {\n className?: string;\n itemClassName?: string;\n};\n\n// Keep FC last so ComponentProps and existing wrappers retain the legacy default.\nexport const MetaEntitiesSelect: (<Entity extends MetaEntityV2>(\n props: MetaEntitiesSelectProps<Entity>,\n) => React.ReactElement) &\n FC<MetaEntitiesSelectProps> = <Entity extends MetaEntityV2>({\n className,\n itemClassName,\n placeholder,\n text: initialText,\n onTextChange,\n ...suggestProps\n}: MetaEntitiesSelectProps<Entity>) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n const [text, setText] = useState(initialText ?? '');\n const handleTextChange = useCallback(\n (value: string) => {\n setText(value);\n onTextChange?.(value);\n },\n [setText, onTextChange],\n );\n\n const renderItem = useCallback(\n (entity: Entity) => {\n const entityName = getMetaEntityDisplay(entity);\n return (\n <EntitiesSuggestItem\n key={entity.id}\n id={entity.id}\n name={entityName}\n className={cnMetaEntitiesSelect('item', itemClassName)}\n icon={<MetaEntityIcon entity={entity} />}\n />\n );\n },\n [itemClassName],\n );\n\n return (\n <EntitiesSuggest<Entity>\n {...suggestProps}\n className={cnMetaEntitiesSelect(null, className)}\n renderItem={renderItem}\n placeholder={placeholder ?? t('placeholder')}\n getItemsOnMount\n showItemsOnNoText\n getItemId={getMetaEntityId}\n getSuggestTextFromClickedItem={getMetaEntityDisplay}\n text={text}\n onTextChange={handleTextChange}\n />\n );\n};\n"],"mappings":";;;;;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AAEA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AAEA,IAAAM,oBAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAR,OAAA;AACA,IAAAS,gBAAA,GAAAT,OAAA;AAKA,IAAAU,WAAA,GAAAV,OAAA;AAAA,SAAAD,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAkB,uBAAAnB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;;;AADA;AACA;;AAWA;AACO,IAAMoB,kBAGkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,SAHrBA,kBAGkBA,CAAAE,IAAA,EAOQ;EAAA,IANnCC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IACbC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IACLC,WAAW,GAAAJ,IAAA,CAAjBK,IAAI;IACJC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACTC,YAAY,OAAAC,iCAAA,EAAAR,IAAA,EAAAS,SAAA;EAEf,IAAMC,MAAM,GAAG,IAAAC,gBAAS,EAAC,CAAC;EAC1B,IAAAC,mBAAA,GAAY,IAAAC,uCAAkB,EAACC,qBAAe,EAAEJ,MAAM,CAACK,IAAI,CAAC;IAArDpC,CAAC,GAAAiC,mBAAA,CAADjC,CAAC;EACR,IAAAqC,SAAA,GAAwB,IAAAC,eAAQ,EAACb,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,EAAE,CAAC;IAAAc,UAAA,OAAAC,uBAAA,EAAAH,SAAA;IAA5CX,IAAI,GAAAa,UAAA;IAAEE,OAAO,GAAAF,UAAA;EACpB,IAAMG,gBAAgB,GAAG,IAAAC,kBAAW,EAChC,UAACC,KAAa,EAAK;IACfH,OAAO,CAACG,KAAK,CAAC;IACdjB,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAGiB,KAAK,CAAC;EACzB,CAAC,EACD,CAACH,OAAO,EAAEd,YAAY,CAC1B,CAAC;EAED,IAAMkB,UAAU,GAAG,IAAAF,kBAAW,EAC1B,UAACG,MAAc,EAAK;IAChB,IAAMC,UAAU,GAAG,IAAAC,0CAAoB,EAACF,MAAM,CAAC;IAC/C,oBACI,IAAAG,eAAA,EAACC,wCAAmB;MAEhBC,EAAE,EAAEL,MAAM,CAACK,EAAG;MACdC,IAAI,EAAEL,UAAW;MACjBzB,SAAS,EAAE,IAAA+B,wCAAoB,EAAC,MAAM,EAAE9B,aAAa,CAAE;MACvD+B,IAAI,eAAE,IAAAL,eAAA,EAACM,oBAAc;QAACT,MAAM,EAAEA;MAAO,CAAE;IAAE,GAJpCA,MAAM,CAACK,EAKf,CAAC;EAEV,CAAC,EACD,CAAC5B,aAAa,CAClB,CAAC;EAED,oBACI,IAAA0B,eAAA,EAACO,gCAAe,MAAAC,sBAAA,MAAAA,sBAAA,MACR7B,YAAY;IAChBN,SAAS,EAAE,IAAA+B,wCAAoB,EAAC,IAAI,EAAE/B,SAAS,CAAE;IACjDuB,UAAU,EAAEA,UAAW;IACvBrB,WAAW,EAAEA,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAIxB,CAAC,CAAC,aAAa,CAAE;IAC7C0D,eAAe;IACfC,iBAAiB;IACjBC,SAAS,EAAEC,gCAAgB;IAC3BC,6BAA6B,EAAEd,0CAAqB;IACpDtB,IAAI,EAAEA,IAAK;IACXC,YAAY,EAAEe;EAAiB,EAClC,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -76,6 +76,11 @@ import type {MetaEntityV2} from '@weavix/tracker-api-types';
76
76
 
77
77
  ## Types
78
78
 
79
+ `MetaEntitiesSelect` infers the entity type from your data and keeps it in selection callbacks.
80
+ `MetaEntitiesSelectProps<Entity>` also accepts an explicit entity type; its default preserves the
81
+ object-valued fields contract from API types 0.0.3. Use `MetaEntitiesSelectProps<MetaEntityV2>`
82
+ for the wider fields in API types 0.0.6.
83
+
79
84
  ```ts
80
85
  // From @weavix/tracker-api-types
81
86
  type MetaEntityV2 = {
@@ -4,8 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getMetaEntityDisplay = getMetaEntityDisplay;
7
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
9
  function getMetaEntityDisplay(metaEntity) {
8
- var _metaEntity$fields, _metaEntity$fields2, _metaEntity$fields$su, _metaEntity$fields3;
9
- return typeof ((_metaEntity$fields = metaEntity.fields) === null || _metaEntity$fields === void 0 ? void 0 : _metaEntity$fields.summary) === 'string' ? (_metaEntity$fields2 = metaEntity.fields) === null || _metaEntity$fields2 === void 0 ? void 0 : _metaEntity$fields2.summary : String((_metaEntity$fields$su = (_metaEntity$fields3 = metaEntity.fields) === null || _metaEntity$fields3 === void 0 || (_metaEntity$fields3 = _metaEntity$fields3.summary) === null || _metaEntity$fields3 === void 0 ? void 0 : _metaEntity$fields3.value) !== null && _metaEntity$fields$su !== void 0 ? _metaEntity$fields$su : metaEntity.id);
10
+ var _metaEntity$fields, _ref;
11
+ var summary = (_metaEntity$fields = metaEntity.fields) === null || _metaEntity$fields === void 0 ? void 0 : _metaEntity$fields.summary;
12
+ if (typeof summary === 'string') {
13
+ return summary;
14
+ }
15
+ return String((_ref = summary && (0, _typeof2.default)(summary) === 'object' && 'value' in summary ? summary.value : undefined) !== null && _ref !== void 0 ? _ref : metaEntity.id);
10
16
  }
11
17
  // #sourceMappingURL=getMetaEntityDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getMetaEntityDisplay","metaEntity","_metaEntity$fields","_metaEntity$fields2","_metaEntity$fields$su","_metaEntity$fields3","fields","summary","String","value","id"],"sources":["getMetaEntityDisplay.ts"],"sourcesContent":["import type {MetaEntityV2} from '@weavix/tracker-api-types';\n\nexport function getMetaEntityDisplay(metaEntity: MetaEntityV2) {\n return typeof metaEntity.fields?.summary === 'string'\n ? metaEntity.fields?.summary\n : String(metaEntity.fields?.summary?.value ?? metaEntity.id);\n}\n"],"mappings":";;;;;;AAEO,SAASA,oBAAoBA,CAACC,UAAwB,EAAE;EAAA,IAAAC,kBAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,mBAAA;EAC3D,OAAO,SAAAH,kBAAA,GAAOD,UAAU,CAACK,MAAM,cAAAJ,kBAAA,uBAAjBA,kBAAA,CAAmBK,OAAO,MAAK,QAAQ,IAAAJ,mBAAA,GAC/CF,UAAU,CAACK,MAAM,cAAAH,mBAAA,uBAAjBA,mBAAA,CAAmBI,OAAO,GAC1BC,MAAM,EAAAJ,qBAAA,IAAAC,mBAAA,GAACJ,UAAU,CAACK,MAAM,cAAAD,mBAAA,gBAAAA,mBAAA,GAAjBA,mBAAA,CAAmBE,OAAO,cAAAF,mBAAA,uBAA1BA,mBAAA,CAA4BI,KAAK,cAAAL,qBAAA,cAAAA,qBAAA,GAAIH,UAAU,CAACS,EAAE,CAAC;AACpE","ignoreList":[]}
1
+ {"version":3,"names":["getMetaEntityDisplay","metaEntity","_metaEntity$fields","_ref","summary","fields","String","_typeof","value","undefined","id"],"sources":["getMetaEntityDisplay.ts"],"sourcesContent":["import type {MetaEntityV2} from '@weavix/tracker-api-types';\n\nexport function getMetaEntityDisplay(metaEntity: MetaEntityV2) {\n const summary = metaEntity.fields?.summary;\n if (typeof summary === 'string') {\n return summary;\n }\n return String(\n (summary && typeof summary === 'object' && 'value' in summary\n ? summary.value\n : undefined) ?? metaEntity.id,\n );\n}\n"],"mappings":";;;;;;;;AAEO,SAASA,oBAAoBA,CAACC,UAAwB,EAAE;EAAA,IAAAC,kBAAA,EAAAC,IAAA;EAC3D,IAAMC,OAAO,IAAAF,kBAAA,GAAGD,UAAU,CAACI,MAAM,cAAAH,kBAAA,uBAAjBA,kBAAA,CAAmBE,OAAO;EAC1C,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC7B,OAAOA,OAAO;EAClB;EACA,OAAOE,MAAM,EAAAH,IAAA,GACRC,OAAO,IAAI,IAAAG,gBAAA,EAAOH,OAAO,MAAK,QAAQ,IAAI,OAAO,IAAIA,OAAO,GACvDA,OAAO,CAACI,KAAK,GACbC,SAAS,cAAAN,IAAA,cAAAA,IAAA,GAAKF,UAAU,CAACS,EACnC,CAAC;AACL","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
- import { CancellablePromise } from '@gravity-ui/sdk';
3
2
  import type { AutocompleteProps } from '~/src/components/Select/Autocomplete';
3
+ import type { CancellablePromise } from '../../utils/cancellablePromise';
4
4
  import type { QueueInfo } from './types';
5
5
  import './QueueSelect.scss';
6
6
  export type QueueSelectProps = {
@@ -22,13 +22,13 @@ require("core-js/modules/es.iterator.some.js");
22
22
  require("core-js/modules/es.object.to-string.js");
23
23
  require("core-js/modules/es.promise.js");
24
24
  var _react = _interopRequireWildcard(require("react"));
25
- var _sdk = require("@gravity-ui/sdk");
26
25
  var _uikit = require("@gravity-ui/uikit");
27
- var _reactUse = require("react-use");
28
26
  var _Autocomplete = require("./../Select/Autocomplete");
29
27
  var _useAutocomplete2 = require("./../Select/hooks/useAutocomplete");
30
28
  var _useAutoFocus = require("./../../hooks/useAutoFocus");
31
29
  var _useLocalizedString2 = require("./../../hooks/useLocalizedString");
30
+ var _useUpdateEffect = require("./../../hooks/useUpdateEffect");
31
+ var _cancellablePromise = require("../../utils/cancellablePromise");
32
32
  var _QueueSelect = require("./QueueSelect.classname");
33
33
  var _i18n = require("./i18n");
34
34
  var _filterQueues = require("./utils/filterQueues");
@@ -117,10 +117,10 @@ var QueueSelect = exports.QueueSelect = function QueueSelect(_ref) {
117
117
  }, [onChange, queues, defaultQueue, initialEmpty]);
118
118
  var getQueues = (0, _react.useCallback)(function (searchText) {
119
119
  if (!onSearch) {
120
- return new _sdk.CancellablePromise(Promise.resolve([]), function () {});
120
+ return (0, _cancellablePromise.cancellablePromise)(Promise.resolve([]), function () {});
121
121
  }
122
122
  var innerPromise = onSearch(searchText);
123
- return new _sdk.CancellablePromise(innerPromise.then(function (results) {
123
+ return (0, _cancellablePromise.cancellablePromise)(innerPromise.then(function (results) {
124
124
  return (0, _filterQueues.filterQueues)(results, hideQueues);
125
125
  }), function () {
126
126
  var _cancel, _ref2;
@@ -152,7 +152,7 @@ var QueueSelect = exports.QueueSelect = function QueueSelect(_ref) {
152
152
  return (0, _mapQueueToSelectItem.mapQueueToSelectItem)(queueItem, (queueItem === null || queueItem === void 0 ? void 0 : queueItem.key) === (queue === null || queue === void 0 || (_queue$data = queue.data) === null || _queue$data === void 0 ? void 0 : _queue$data.key));
153
153
  });
154
154
  }, [defaultQueue, filteredQueues, queue === null || queue === void 0 || (_queue$data2 = queue.data) === null || _queue$data2 === void 0 ? void 0 : _queue$data2.key, queues]);
155
- (0, _reactUse.useUpdateEffect)(function () {
155
+ (0, _useUpdateEffect.useUpdateEffect)(function () {
156
156
  var _queue$data3;
157
157
  if (!initialEmpty && defaultQueue !== undefined && defaultQueue.key !== (queue === null || queue === void 0 || (_queue$data3 = queue.data) === null || _queue$data3 === void 0 ? void 0 : _queue$data3.key)) {
158
158
  setQueue((0, _mapQueueToSelectItem.mapQueueToSelectItem)(defaultQueue, true));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_sdk","_uikit","_reactUse","_Autocomplete","_useAutocomplete2","_useAutoFocus","_useLocalizedString2","_QueueSelect","_i18n","_filterQueues","_mapQueueToSelectItem","_normalizeQueue","_renderDisplayValue","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","QueueSelect","exports","_ref","_queues$find","_queue$data2","propsDefaultQueue","defaultQueue","propsQueues","queues","withoutSuggest","onChange","className","controlClassName","hideQueues","_ref$initialEmpty","initialEmpty","_ref$withBorder","withBorder","_ref$size","size","popupWidth","error","id","_ref$withValueIcon","withValueIcon","withArrow","placeholder","disablePortal","confirmUpdate","onSelectClick","renderFilter","_ref$loading","loading","onSearch","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","_useState3","_useState4","delayedIsOpen","setDelayedIsOpen","popupContainerRef","useRef","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","handleOpenChange","useCallback","value","requestAnimationFrame","fixedDefaultQueue","useMemo","normalizeQueue","fixedQueues","undefined","map","queue","filterQueue","key","filterQueues","useEffect","Array","isArray","length","getQueues","searchText","CancellablePromise","Promise","resolve","innerPromise","then","results","_cancel","_ref2","cancel","handleDisplayRender","renderDisplayValue","_useAutocomplete","useAutocomplete","filteredQueues","filteredItems","handleFilterChange","loadingQueues","isLoading","_useState5","mapQueueToSelectItem","find","item","_useState6","setQueue","items","queuesItems","_toConsumableArray","some","q","unshift","filter","Boolean","queueItem","_queue$data","data","useUpdateEffect","_queue$data3","handleSelectUpdate","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","queueOption","_queueOption$data","_queueOption$data2","selectedQueue","confirmResult","wrap","_context","prev","next","showDefaultCreationForm","enableCloneMoveForAll","sent","success","abrupt","stop","_x","apply","arguments","useAutoFocus","containerRef","elementSelector","shouldFocus","renderPopup","_ref4","renderList","_jsxs","cnQueueSelect","ref","children","_jsx","Autocomplete","filterPlaceholder","popupClassName","options","onFilterChange","onUpdate","loadingItems","getOptionHeight","controlProps","title","open","onOpenChange","disableTooltip","name"],"sources":["QueueSelect.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport {CancellablePromise} from '@gravity-ui/sdk';\nimport type {SelectOption} from '@gravity-ui/uikit';\nimport {getConfig} from '@gravity-ui/uikit';\nimport {useUpdateEffect} from 'react-use';\n\nimport type {AutocompleteProps} from '~/src/components/Select/Autocomplete';\nimport {Autocomplete} from '~/src/components/Select/Autocomplete';\nimport {useAutocomplete} from '~/src/components/Select/hooks/useAutocomplete';\nimport {useAutoFocus} from '~/src/hooks/useAutoFocus';\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport {cnQueueSelect} from './QueueSelect.classname';\nimport {defaultMessages} from './i18n';\nimport type {QueueInfo} from './types';\nimport {filterQueues} from './utils/filterQueues';\nimport {mapQueueToSelectItem} from './utils/mapQueueToSelectItem';\nimport {normalizeQueue} from './utils/normalizeQueue';\nimport {renderDisplayValue} from './utils/renderDisplayValue';\n\nimport './QueueSelect.scss';\n\nexport type QueueSelectProps = {\n queues?: QueueInfo[] | string[];\n defaultQueue?: QueueInfo | string;\n loading?: boolean;\n hideQueues?: ReadonlySet<string>;\n onSearch?:\n | ((text: string) => CancellablePromise<QueueInfo[]>)\n | ((text: string) => Promise<QueueInfo[]>);\n onChange?: (queue: QueueInfo) => void;\n onSelectClick?: () => void;\n initialEmpty?: boolean;\n withoutSuggest?: boolean;\n withValueIcon?: boolean;\n confirmUpdate?: () => Promise<{success: boolean}>;\n className?: string;\n withBorder?: boolean;\n size?: AutocompleteProps['size'];\n popupWidth?: AutocompleteProps['popupWidth'];\n error?: AutocompleteProps['error'];\n id?: AutocompleteProps['id'];\n withArrow?: AutocompleteProps['withArrow'];\n placeholder?: AutocompleteProps['placeholder'];\n renderFilter?: AutocompleteProps['renderFilter'];\n controlClassName?: AutocompleteProps['controlClassName'];\n disablePortal?: boolean;\n};\n\nexport const QueueSelect = ({\n defaultQueue: propsDefaultQueue,\n queues: propsQueues,\n withoutSuggest,\n onChange,\n className,\n controlClassName,\n hideQueues,\n initialEmpty = false,\n withBorder = false,\n size = 'm',\n popupWidth,\n error,\n id,\n withValueIcon = false,\n withArrow,\n placeholder,\n disablePortal,\n confirmUpdate,\n onSelectClick,\n renderFilter,\n loading = false,\n onSearch,\n}: QueueSelectProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [delayedIsOpen, setDelayedIsOpen] = useState(false);\n const popupContainerRef = useRef<HTMLDivElement>(null);\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n\n const handleOpenChange = useCallback(\n (value: boolean) => {\n if (value) {\n onSelectClick?.();\n }\n setIsOpen(value);\n requestAnimationFrame(() => {\n setDelayedIsOpen(value);\n });\n },\n [onSelectClick],\n );\n\n const fixedDefaultQueue: QueueInfo | undefined = useMemo(\n () => normalizeQueue(propsDefaultQueue),\n [propsDefaultQueue],\n );\n\n const fixedQueues: QueueInfo[] | undefined = useMemo(() => {\n if (!propsQueues) {\n return undefined;\n }\n return propsQueues.map((queue: QueueInfo | string) => normalizeQueue(queue)!);\n }, [propsQueues]);\n\n const filterQueue = useCallback(\n <TQueue extends QueueInfo | undefined>(queue: TQueue) => {\n if (hideQueues === undefined || queue === undefined) {\n return queue;\n }\n return (hideQueues.has(queue.key) ? undefined : queue) as TQueue;\n },\n [hideQueues],\n );\n\n const queues = useMemo(\n () => filterQueues(fixedQueues || [], hideQueues),\n [fixedQueues, hideQueues],\n );\n\n const defaultQueue =\n filterQueue(fixedDefaultQueue) || filterQueue(fixedQueues?.[0]) || filterQueue(queues[0]);\n\n useEffect(() => {\n if (!initialEmpty && Array.isArray(queues) && queues.length > 0) {\n onChange?.(defaultQueue ?? queues[0]!);\n }\n }, [onChange, queues, defaultQueue, initialEmpty]);\n\n const getQueues = useCallback(\n (searchText: string): CancellablePromise<QueueInfo[]> => {\n if (!onSearch) {\n return new CancellablePromise(Promise.resolve([]), () => {});\n }\n const innerPromise = onSearch(searchText);\n return new CancellablePromise(\n innerPromise.then((results) => filterQueues(results, hideQueues)),\n () => (innerPromise as CancellablePromise<QueueInfo[]>).cancel?.(),\n );\n },\n [onSearch, hideQueues],\n );\n\n const handleDisplayRender = useCallback(\n (value: SelectOption<QueueInfo>[]) =>\n renderDisplayValue(value, withValueIcon, placeholder, size),\n [placeholder, withValueIcon, size],\n );\n\n const {\n filteredItems: filteredQueues,\n handleFilterChange,\n isLoading: loadingQueues,\n } = useAutocomplete<QueueInfo[]>(getQueues);\n\n const [queue, setQueue] = useState<SelectOption<QueueInfo> | undefined>(\n initialEmpty || !defaultQueue\n ? undefined\n : mapQueueToSelectItem(\n queues.find((item) => item.key === defaultQueue.key) ?? defaultQueue,\n true,\n ),\n );\n\n const items = useMemo(() => {\n const queuesItems = filteredQueues ?? (queues.length ? [...queues] : [defaultQueue]);\n\n if (!filteredQueues && !queuesItems.some((q) => q?.key === defaultQueue?.key)) {\n queuesItems.unshift(defaultQueue);\n }\n\n return queuesItems\n .filter(Boolean)\n .map((queueItem) =>\n mapQueueToSelectItem(queueItem, queueItem?.key === queue?.data?.key),\n ) as SelectOption<QueueInfo>[];\n }, [defaultQueue, filteredQueues, queue?.data?.key, queues]);\n\n useUpdateEffect(() => {\n if (!initialEmpty && defaultQueue !== undefined && defaultQueue.key !== queue?.data?.key) {\n setQueue(mapQueueToSelectItem(defaultQueue, true));\n onChange?.(defaultQueue);\n }\n }, [defaultQueue, initialEmpty]);\n\n const handleSelectUpdate = useCallback(\n async (queueOption: SelectOption<QueueInfo>) => {\n const selectedQueue = {\n key: queueOption.value,\n showDefaultCreationForm: queueOption.data?.showDefaultCreationForm,\n enableCloneMoveForAll: queueOption.data?.enableCloneMoveForAll,\n };\n\n if (confirmUpdate) {\n const confirmResult = await confirmUpdate();\n if (!confirmResult.success) return;\n }\n\n onChange?.(selectedQueue);\n setQueue(mapQueueToSelectItem(queueOption.data, true));\n },\n [confirmUpdate, onChange],\n );\n\n useAutoFocus({\n containerRef: popupContainerRef,\n elementSelector: 'input',\n shouldFocus: delayedIsOpen,\n });\n\n const renderPopup = useCallback<NonNullable<AutocompleteProps['renderPopup']>>(\n ({renderList, renderFilter}) => (\n <div className={cnQueueSelect('popup-content')} ref={popupContainerRef}>\n {renderFilter()}\n {renderList()}\n </div>\n ),\n [],\n );\n\n return (\n <div className={cnQueueSelect({'with-border': withBorder, loading}, className)}>\n <Autocomplete\n disablePortal={disablePortal}\n filterPlaceholder={t('filter-placeholder')}\n className={cnQueueSelect('control')}\n popupClassName={cnQueueSelect('popup')}\n controlClassName={cnQueueSelect('control-block', controlClassName)}\n id={id}\n size={size}\n options={items}\n onFilterChange={withoutSuggest ? undefined : handleFilterChange}\n onUpdate={handleSelectUpdate}\n value={queue}\n loading={loading}\n loadingItems={loadingQueues}\n popupWidth={popupWidth}\n getOptionHeight={() => 48}\n error={error}\n withArrow={withArrow}\n placeholder={placeholder}\n renderFilter={renderFilter}\n controlProps={{'aria-label': t('select-queue')}}\n title={t('queue')}\n renderDisplayValue={handleDisplayRender}\n open={isOpen}\n onOpenChange={handleOpenChange}\n disableTooltip\n name=\"queue-input\"\n renderPopup={renderPopup}\n />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_Autocomplete","_useAutocomplete2","_useAutoFocus","_useLocalizedString2","_useUpdateEffect","_cancellablePromise","_QueueSelect","_i18n","_filterQueues","_mapQueueToSelectItem","_normalizeQueue","_renderDisplayValue","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","QueueSelect","exports","_ref","_queues$find","_queue$data2","propsDefaultQueue","defaultQueue","propsQueues","queues","withoutSuggest","onChange","className","controlClassName","hideQueues","_ref$initialEmpty","initialEmpty","_ref$withBorder","withBorder","_ref$size","size","popupWidth","error","id","_ref$withValueIcon","withValueIcon","withArrow","placeholder","disablePortal","confirmUpdate","onSelectClick","renderFilter","_ref$loading","loading","onSearch","_useState","useState","_useState2","_slicedToArray","isOpen","setIsOpen","_useState3","_useState4","delayedIsOpen","setDelayedIsOpen","popupContainerRef","useRef","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","handleOpenChange","useCallback","value","requestAnimationFrame","fixedDefaultQueue","useMemo","normalizeQueue","fixedQueues","undefined","map","queue","filterQueue","key","filterQueues","useEffect","Array","isArray","length","getQueues","searchText","cancellablePromise","Promise","resolve","innerPromise","then","results","_cancel","_ref2","cancel","handleDisplayRender","renderDisplayValue","_useAutocomplete","useAutocomplete","filteredQueues","filteredItems","handleFilterChange","loadingQueues","isLoading","_useState5","mapQueueToSelectItem","find","item","_useState6","setQueue","items","queuesItems","_toConsumableArray","some","q","unshift","filter","Boolean","queueItem","_queue$data","data","useUpdateEffect","_queue$data3","handleSelectUpdate","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","queueOption","_queueOption$data","_queueOption$data2","selectedQueue","confirmResult","wrap","_context","prev","next","showDefaultCreationForm","enableCloneMoveForAll","sent","success","abrupt","stop","_x","apply","arguments","useAutoFocus","containerRef","elementSelector","shouldFocus","renderPopup","_ref4","renderList","_jsxs","cnQueueSelect","ref","children","_jsx","Autocomplete","filterPlaceholder","popupClassName","options","onFilterChange","onUpdate","loadingItems","getOptionHeight","controlProps","title","open","onOpenChange","disableTooltip","name"],"sources":["QueueSelect.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport type {SelectOption} from '@gravity-ui/uikit';\nimport {getConfig} from '@gravity-ui/uikit';\n\nimport type {AutocompleteProps} from '~/src/components/Select/Autocomplete';\nimport {Autocomplete} from '~/src/components/Select/Autocomplete';\nimport {useAutocomplete} from '~/src/components/Select/hooks/useAutocomplete';\nimport {useAutoFocus} from '~/src/hooks/useAutoFocus';\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\nimport {useUpdateEffect} from '~/src/hooks/useUpdateEffect';\n\nimport type {CancellablePromise} from '../../utils/cancellablePromise';\nimport {cancellablePromise} from '../../utils/cancellablePromise';\n\nimport {cnQueueSelect} from './QueueSelect.classname';\nimport {defaultMessages} from './i18n';\nimport type {QueueInfo} from './types';\nimport {filterQueues} from './utils/filterQueues';\nimport {mapQueueToSelectItem} from './utils/mapQueueToSelectItem';\nimport {normalizeQueue} from './utils/normalizeQueue';\nimport {renderDisplayValue} from './utils/renderDisplayValue';\n\nimport './QueueSelect.scss';\n\nexport type QueueSelectProps = {\n queues?: QueueInfo[] | string[];\n defaultQueue?: QueueInfo | string;\n loading?: boolean;\n hideQueues?: ReadonlySet<string>;\n onSearch?:\n | ((text: string) => CancellablePromise<QueueInfo[]>)\n | ((text: string) => Promise<QueueInfo[]>);\n onChange?: (queue: QueueInfo) => void;\n onSelectClick?: () => void;\n initialEmpty?: boolean;\n withoutSuggest?: boolean;\n withValueIcon?: boolean;\n confirmUpdate?: () => Promise<{success: boolean}>;\n className?: string;\n withBorder?: boolean;\n size?: AutocompleteProps['size'];\n popupWidth?: AutocompleteProps['popupWidth'];\n error?: AutocompleteProps['error'];\n id?: AutocompleteProps['id'];\n withArrow?: AutocompleteProps['withArrow'];\n placeholder?: AutocompleteProps['placeholder'];\n renderFilter?: AutocompleteProps['renderFilter'];\n controlClassName?: AutocompleteProps['controlClassName'];\n disablePortal?: boolean;\n};\n\nexport const QueueSelect = ({\n defaultQueue: propsDefaultQueue,\n queues: propsQueues,\n withoutSuggest,\n onChange,\n className,\n controlClassName,\n hideQueues,\n initialEmpty = false,\n withBorder = false,\n size = 'm',\n popupWidth,\n error,\n id,\n withValueIcon = false,\n withArrow,\n placeholder,\n disablePortal,\n confirmUpdate,\n onSelectClick,\n renderFilter,\n loading = false,\n onSearch,\n}: QueueSelectProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [delayedIsOpen, setDelayedIsOpen] = useState(false);\n const popupContainerRef = useRef<HTMLDivElement>(null);\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n\n const handleOpenChange = useCallback(\n (value: boolean) => {\n if (value) {\n onSelectClick?.();\n }\n setIsOpen(value);\n requestAnimationFrame(() => {\n setDelayedIsOpen(value);\n });\n },\n [onSelectClick],\n );\n\n const fixedDefaultQueue: QueueInfo | undefined = useMemo(\n () => normalizeQueue(propsDefaultQueue),\n [propsDefaultQueue],\n );\n\n const fixedQueues: QueueInfo[] | undefined = useMemo(() => {\n if (!propsQueues) {\n return undefined;\n }\n return propsQueues.map((queue: QueueInfo | string) => normalizeQueue(queue)!);\n }, [propsQueues]);\n\n const filterQueue = useCallback(\n <TQueue extends QueueInfo | undefined>(queue: TQueue) => {\n if (hideQueues === undefined || queue === undefined) {\n return queue;\n }\n return (hideQueues.has(queue.key) ? undefined : queue) as TQueue;\n },\n [hideQueues],\n );\n\n const queues = useMemo(\n () => filterQueues(fixedQueues || [], hideQueues),\n [fixedQueues, hideQueues],\n );\n\n const defaultQueue =\n filterQueue(fixedDefaultQueue) || filterQueue(fixedQueues?.[0]) || filterQueue(queues[0]);\n\n useEffect(() => {\n if (!initialEmpty && Array.isArray(queues) && queues.length > 0) {\n onChange?.(defaultQueue ?? queues[0]!);\n }\n }, [onChange, queues, defaultQueue, initialEmpty]);\n\n const getQueues = useCallback(\n (searchText: string): CancellablePromise<QueueInfo[]> => {\n if (!onSearch) {\n return cancellablePromise(Promise.resolve([]), () => {});\n }\n const innerPromise = onSearch(searchText);\n return cancellablePromise(\n innerPromise.then((results) => filterQueues(results, hideQueues)),\n () => (innerPromise as CancellablePromise<QueueInfo[]>).cancel?.(),\n );\n },\n [onSearch, hideQueues],\n );\n\n const handleDisplayRender = useCallback(\n (value: SelectOption<QueueInfo>[]) =>\n renderDisplayValue(value, withValueIcon, placeholder, size),\n [placeholder, withValueIcon, size],\n );\n\n const {\n filteredItems: filteredQueues,\n handleFilterChange,\n isLoading: loadingQueues,\n } = useAutocomplete<QueueInfo[]>(getQueues);\n\n const [queue, setQueue] = useState<SelectOption<QueueInfo> | undefined>(\n initialEmpty || !defaultQueue\n ? undefined\n : mapQueueToSelectItem(\n queues.find((item) => item.key === defaultQueue.key) ?? defaultQueue,\n true,\n ),\n );\n\n const items = useMemo(() => {\n const queuesItems = filteredQueues ?? (queues.length ? [...queues] : [defaultQueue]);\n\n if (!filteredQueues && !queuesItems.some((q) => q?.key === defaultQueue?.key)) {\n queuesItems.unshift(defaultQueue);\n }\n\n return queuesItems\n .filter(Boolean)\n .map((queueItem) =>\n mapQueueToSelectItem(queueItem, queueItem?.key === queue?.data?.key),\n ) as SelectOption<QueueInfo>[];\n }, [defaultQueue, filteredQueues, queue?.data?.key, queues]);\n\n useUpdateEffect(() => {\n if (!initialEmpty && defaultQueue !== undefined && defaultQueue.key !== queue?.data?.key) {\n setQueue(mapQueueToSelectItem(defaultQueue, true));\n onChange?.(defaultQueue);\n }\n }, [defaultQueue, initialEmpty]);\n\n const handleSelectUpdate = useCallback(\n async (queueOption: SelectOption<QueueInfo>) => {\n const selectedQueue = {\n key: queueOption.value,\n showDefaultCreationForm: queueOption.data?.showDefaultCreationForm,\n enableCloneMoveForAll: queueOption.data?.enableCloneMoveForAll,\n };\n\n if (confirmUpdate) {\n const confirmResult = await confirmUpdate();\n if (!confirmResult.success) return;\n }\n\n onChange?.(selectedQueue);\n setQueue(mapQueueToSelectItem(queueOption.data, true));\n },\n [confirmUpdate, onChange],\n );\n\n useAutoFocus({\n containerRef: popupContainerRef,\n elementSelector: 'input',\n shouldFocus: delayedIsOpen,\n });\n\n const renderPopup = useCallback<NonNullable<AutocompleteProps['renderPopup']>>(\n ({renderList, renderFilter}) => (\n <div className={cnQueueSelect('popup-content')} ref={popupContainerRef}>\n {renderFilter()}\n {renderList()}\n </div>\n ),\n [],\n );\n\n return (\n <div className={cnQueueSelect({'with-border': withBorder, loading}, className)}>\n <Autocomplete\n disablePortal={disablePortal}\n filterPlaceholder={t('filter-placeholder')}\n className={cnQueueSelect('control')}\n popupClassName={cnQueueSelect('popup')}\n controlClassName={cnQueueSelect('control-block', controlClassName)}\n id={id}\n size={size}\n options={items}\n onFilterChange={withoutSuggest ? undefined : handleFilterChange}\n onUpdate={handleSelectUpdate}\n value={queue}\n loading={loading}\n loadingItems={loadingQueues}\n popupWidth={popupWidth}\n getOptionHeight={() => 48}\n error={error}\n withArrow={withArrow}\n placeholder={placeholder}\n renderFilter={renderFilter}\n controlProps={{'aria-label': t('select-queue')}}\n title={t('queue')}\n renderDisplayValue={handleDisplayRender}\n open={isOpen}\n onOpenChange={handleOpenChange}\n disableTooltip\n name=\"queue-input\"\n renderPopup={renderPopup}\n />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -53,9 +53,10 @@ const queues: QueueInfo[] = [
53
53
  /**
54
54
  * Async callback invoked when the user types in the search filter.
55
55
  * Should return a promise resolving to a list of matching QueueInfo objects.
56
+ * An optional cancel method aborts superseded requests (SDK promises are supported).
56
57
  * When provided, the component fetches suggestions on each filter change.
57
58
  */
58
- onSearch?: (text: string) => Promise<QueueInfo[]> | CancellablePromise<QueueInfo[]>;
59
+ onSearch?: (text: string) => Promise<QueueInfo[]> & {cancel?: () => void};
59
60
 
60
61
  /**
61
62
  * Callback fired when the selected queue changes.
@@ -216,7 +217,6 @@ The example below loads queues once on mount (Flow 1) and switches to the sugges
216
217
 
217
218
  ```tsx
218
219
  import React, {useEffect, useState} from 'react';
219
- import {CancellablePromise} from '@gravity-ui/sdk';
220
220
  import {QueueSelect} from '@weavix/tracker-components';
221
221
  import type {QueueInfo} from '@weavix/tracker-components';
222
222
 
@@ -238,12 +238,10 @@ export const QueueSelectWithApi: React.FC<Props> = ({trackerApi, onChange}) => {
238
238
  }, [trackerApi]);
239
239
 
240
240
  // Flow 2 — suggest queues when the user types
241
- const handleSearch = (text: string): CancellablePromise<QueueInfo[]> => {
242
- const promise = trackerApi.v3
241
+ const handleSearch = (text: string): Promise<QueueInfo[]> => {
242
+ return trackerApi.v3
243
243
  .get['/queues/_suggest']({queryParams: {input: text, fields: []}})
244
244
  .then((result) => result.data);
245
-
246
- return new CancellablePromise(promise, () => {});
247
245
  };
248
246
 
249
247
  return (
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_icons","_uikit","_useLocalizedString2","_Select","_i18n","_filterOption","_getValueOption","_isGroupOption","_renderOption","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","MultiSelect","exports","forwardRef","_ref","ref","id","loading","loadingItems","disabled","providedRenderControl","renderControl","className","options","value","width","size","name","placeholder","popupClassName","_ref$renderOption","renderOption","providedRenderOption","renderSelectedOption","renderDisplayValue","controlProps","controlClassName","_ref$withArrow","withArrow","title","icon","validationState","selectSize","_ref$chevronView","chevronView","open","filterable","disablePortal","providedFilterOption","filterOption","providedRenderFilter","renderFilter","autoFocus","filterPlaceholder","withSpecialNoOptions","onOpenChange","disableTooltip","props","_objectWithoutProperties","_excluded","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","inputRef","useRef","useCallback","renderControlProps","triggerProps","hasError","_jsx","cnSelect","children","ActionTooltip","placement","_jsxs","Button","_objectSpread","view","error","platform","Loader","Icon","data","ChevronRight","ChevronDown","valueOptions","length","_iterator","_createForOfIteratorHelper","_step","s","done","valueItem","valueOption","getValueOption","push","err","empty","Boolean","_Fragment","map","item","index","Fragment","text","content","renderPopup","_ref2","renderList","_ref3","_props$defaultValue$l","_props$defaultValue","inputProps","hasDefaultValue","defaultValue","role","TextInput","controlRef","optionsWithLoading","useMemo","Text","color","variant","withGroups","some","isGroupOption","useEffect","timer","current","setTimeout","_inputRef$current","focus","preventScroll","clearTimeout","CommonSelect","multiple","displayName"],"sources":["MultiSelect.tsx"],"sourcesContent":["import type {ReactNode, Ref} from 'react';\nimport React, {Fragment, forwardRef, useCallback, useEffect, useMemo, useRef} from 'react';\n\nimport {ChevronDown, ChevronRight} from '@gravity-ui/icons';\nimport type {\n ButtonButtonProps,\n SelectProps as CommonSelectProps,\n SelectOption,\n} from '@gravity-ui/uikit';\nimport {\n ActionTooltip,\n Button,\n Select as CommonSelect,\n Icon,\n Loader,\n Text,\n TextInput,\n getConfig,\n} from '@gravity-ui/uikit';\n\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport {cnSelect} from './Select.classname';\nimport {defaultMessages} from './i18n';\nimport {filterOption} from './utils/filterOption';\nimport {getValueOption} from './utils/getValueOption';\nimport {isGroupOption} from './utils/isGroupOption';\nimport {renderOption} from './utils/renderOption';\n\nimport './Select.scss';\n\nexport type MultiSelectProps = CommonSelectProps & {\n id?: string;\n loading?: boolean;\n loadingItems?: boolean;\n controlProps?: ButtonButtonProps;\n withArrow?: boolean;\n title?: string;\n icon?: ReactNode;\n selectSize?: CommonSelectProps['size'];\n renderDisplayValue?: (value: SelectOption[]) => ReactNode;\n chevronView?: 'desktop' | 'touch';\n autoFocus?: boolean;\n withSpecialNoOptions?: boolean;\n disablePortal?: boolean;\n disableTooltip?: boolean;\n filterOption?: (option: SelectOption, filter: string) => boolean;\n};\n\nexport const MultiSelect: React.ForwardRefExoticComponent<\n MultiSelectProps & React.RefAttributes<HTMLButtonElement>\n> = forwardRef<HTMLButtonElement, MultiSelectProps>(\n (\n {\n id,\n loading,\n loadingItems,\n disabled,\n renderControl: providedRenderControl,\n className,\n options,\n value,\n width,\n size,\n name,\n placeholder,\n popupClassName,\n renderOption: providedRenderOption = renderOption,\n renderSelectedOption,\n renderDisplayValue,\n controlProps,\n controlClassName,\n withArrow = true,\n title,\n icon,\n validationState,\n selectSize,\n chevronView = 'desktop',\n open,\n filterable,\n disablePortal,\n filterOption: providedFilterOption,\n renderFilter: providedRenderFilter,\n autoFocus,\n filterPlaceholder,\n withSpecialNoOptions,\n onOpenChange,\n disableTooltip,\n ...props\n },\n ref,\n ) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const renderControl = useCallback<NonNullable<CommonSelectProps['renderControl']>>(\n (renderControlProps, config) => {\n const {triggerProps, ref, open} = renderControlProps;\n const hasError = validationState === 'invalid';\n\n if (loading) {\n return (\n <div\n ref={ref as Ref<HTMLDivElement>}\n className={cnSelect('button-wrapper')}\n >\n <ActionTooltip\n title={title ?? ''}\n disabled={disableTooltip || !title}\n placement=\"bottom\"\n >\n <Button\n view=\"outlined\"\n size={size}\n disabled\n width=\"max\"\n name={name}\n className={cnSelect(\n 'button',\n {\n loading: true,\n error: hasError,\n platform: 'desktop',\n },\n controlClassName,\n )}\n {...controlProps}\n id={id}\n >\n <Loader className={cnSelect('loader')} />\n {withArrow && (\n <Icon\n data={\n chevronView === 'touch' ? ChevronRight : ChevronDown\n }\n />\n )}\n </Button>\n </ActionTooltip>\n </div>\n );\n }\n\n if (providedRenderControl) {\n return providedRenderControl(renderControlProps, config);\n }\n\n const valueOptions: SelectOption[] = [];\n\n if (value && value.length) {\n for (const valueItem of value) {\n const valueOption = getValueOption(options ?? [], valueItem);\n\n if (valueOption) {\n valueOptions.push(valueOption);\n }\n }\n }\n\n return (\n <div ref={ref as Ref<HTMLDivElement>} className={cnSelect('button-wrapper')}>\n <ActionTooltip\n title={title ?? ''}\n disabled={disableTooltip || !title}\n placement=\"bottom\"\n >\n <Button\n view=\"outlined\"\n size={size}\n {...triggerProps}\n name={name}\n aria-haspopup=\"listbox\"\n width=\"max\"\n disabled={disabled}\n className={cnSelect(\n 'button',\n {\n empty: valueOptions.length === 0,\n 'with-icon': Boolean(icon),\n error: hasError,\n platform: 'desktop',\n },\n controlClassName,\n )}\n {...controlProps}\n id={id}\n >\n {icon}\n {renderDisplayValue ? (\n renderDisplayValue(valueOptions)\n ) : (\n <>\n {valueOptions.length === 0 && (placeholder || '—')}\n {valueOptions.map((item, index) => (\n <Fragment key={item.value}>\n {renderSelectedOption\n ? renderSelectedOption(item, index)\n : item.text || item.content}\n {index < valueOptions.length - 1 && ', '}\n </Fragment>\n ))}\n </>\n )}\n {withArrow && (\n <Icon\n size={chevronView === 'touch' ? 24 : 16}\n data={chevronView === 'touch' ? ChevronRight : ChevronDown}\n className={cnSelect('chevron', {\n open,\n })}\n />\n )}\n </Button>\n </ActionTooltip>\n </div>\n );\n },\n [\n validationState,\n loading,\n providedRenderControl,\n value,\n title,\n disableTooltip,\n id,\n size,\n name,\n disabled,\n icon,\n controlClassName,\n controlProps,\n renderDisplayValue,\n placeholder,\n withArrow,\n chevronView,\n options,\n renderSelectedOption,\n ],\n );\n\n const renderPopup = useCallback<NonNullable<CommonSelectProps['renderPopup']>>(\n ({renderFilter, renderList}) => (\n <>\n {renderFilter()}\n {renderList()}\n </>\n ),\n [],\n );\n\n const renderFilter = useCallback<NonNullable<CommonSelectProps['renderFilter']>>(\n ({inputProps}) => {\n const hasDefaultValue = (props.defaultValue?.length ?? 0) > 0;\n\n const controlProps = {\n role: 'combobox',\n 'aria-activedescendant': inputProps['aria-activedescendant'],\n 'aria-controls': inputProps['aria-controls'],\n 'aria-label': inputProps['aria-label'],\n };\n\n return (\n <TextInput\n autoFocus={autoFocus && !hasDefaultValue}\n className={cnSelect('filter')}\n {...inputProps}\n controlProps={controlProps}\n controlRef={inputRef}\n size={selectSize}\n name={name}\n />\n );\n },\n [autoFocus, props.defaultValue, selectSize, name],\n );\n\n const optionsWithLoading = useMemo(() => {\n if (!loadingItems) {\n if (!options?.length) {\n return [\n {\n value: '',\n disabled: true,\n content: withSpecialNoOptions ? (\n <div className={cnSelect('no-options')}>\n <Text color=\"primary\" variant=\"subheader-3\">\n {t('no-options-title')}\n </Text>\n <Text variant=\"body-2\">{t('no-options-description')}</Text>\n </div>\n ) : (\n <div className={cnSelect('no-options')}>{t('no-options')}</div>\n ),\n },\n ];\n }\n\n return options;\n }\n\n return [\n {\n value: '',\n disabled: true,\n content: (\n <div className={cnSelect('items-loader')}>\n <Loader size=\"m\" />\n </div>\n ),\n },\n ];\n }, [loadingItems, options, t, withSpecialNoOptions]);\n\n const withGroups = options?.some(isGroupOption);\n\n useEffect(() => {\n let timer: NodeJS.Timeout | undefined;\n\n if (open && inputRef.current) {\n timer = setTimeout(() => inputRef.current?.focus({preventScroll: true}), 0);\n }\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- inputRef.current must be in list\n }, [open && inputRef.current]);\n\n return (\n <CommonSelect\n disablePortal={disablePortal}\n disabled={disabled || loading}\n options={optionsWithLoading}\n value={value}\n renderControl={renderControl}\n multiple\n renderOption={\n loadingItems || !options?.length ? renderOption : providedRenderOption\n }\n ref={ref}\n filterPlaceholder={filterPlaceholder ?? t('search')}\n popupClassName={cnSelect(\n 'popup',\n {\n 'with-groups': withGroups,\n filterable,\n },\n popupClassName,\n )}\n filterOption={providedFilterOption ?? filterOption}\n width={width}\n className={cnSelect(null, className)}\n size={size}\n validationState={validationState}\n renderPopup={renderPopup}\n open={open}\n renderFilter={providedRenderFilter ?? renderFilter}\n filterable={filterable}\n onOpenChange={onOpenChange}\n {...props}\n />\n );\n },\n);\n\nMultiSelect.displayName = 'MultiSelect';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_icons","_uikit","_useLocalizedString2","_Select","_i18n","_filterOption","_getValueOption","_isGroupOption","_renderOption","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","MultiSelect","exports","forwardRef","_ref","ref","id","loading","loadingItems","disabled","providedRenderControl","renderControl","className","options","value","width","size","name","placeholder","popupClassName","_ref$renderOption","renderOption","providedRenderOption","renderSelectedOption","renderDisplayValue","controlProps","controlClassName","_ref$withArrow","withArrow","title","icon","validationState","selectSize","_ref$chevronView","chevronView","open","filterable","disablePortal","providedFilterOption","filterOption","providedRenderFilter","renderFilter","autoFocus","filterPlaceholder","withSpecialNoOptions","onOpenChange","disableTooltip","props","_objectWithoutProperties","_excluded","config","getConfig","_useLocalizedString","useLocalizedString","defaultMessages","lang","inputRef","useRef","useCallback","renderControlProps","triggerProps","hasError","_jsx","cnSelect","children","ActionTooltip","placement","_jsxs","Button","_objectSpread","view","error","platform","Loader","Icon","data","ChevronRight","ChevronDown","valueOptions","length","_iterator","_createForOfIteratorHelper","_step","s","done","valueItem","valueOption","getValueOption","push","err","empty","Boolean","_Fragment","map","item","index","Fragment","text","content","renderPopup","_ref2","renderList","_ref3","_props$defaultValue$l","_props$defaultValue","inputProps","hasDefaultValue","defaultValue","role","TextInput","controlRef","optionsWithLoading","useMemo","Text","color","variant","withGroups","some","isGroupOption","useEffect","timer","current","setTimeout","_inputRef$current","focus","preventScroll","clearTimeout","CommonSelect","multiple","displayName"],"sources":["MultiSelect.tsx"],"sourcesContent":["import type {ReactNode, Ref} from 'react';\nimport React, {Fragment, forwardRef, useCallback, useEffect, useMemo, useRef} from 'react';\n\nimport {ChevronDown, ChevronRight} from '@gravity-ui/icons';\nimport type {\n ButtonButtonProps,\n SelectProps as CommonSelectProps,\n SelectOption,\n} from '@gravity-ui/uikit';\nimport {\n ActionTooltip,\n Button,\n Select as CommonSelect,\n Icon,\n Loader,\n Text,\n TextInput,\n getConfig,\n} from '@gravity-ui/uikit';\n\nimport {useLocalizedString} from '~/src/hooks/useLocalizedString';\n\nimport {cnSelect} from './Select.classname';\nimport {defaultMessages} from './i18n';\nimport {filterOption} from './utils/filterOption';\nimport {getValueOption} from './utils/getValueOption';\nimport {isGroupOption} from './utils/isGroupOption';\nimport {renderOption} from './utils/renderOption';\n\nimport './Select.scss';\n\nexport type MultiSelectProps = CommonSelectProps & {\n id?: string;\n loading?: boolean;\n loadingItems?: boolean;\n controlProps?: ButtonButtonProps;\n withArrow?: boolean;\n title?: string;\n icon?: ReactNode;\n selectSize?: CommonSelectProps['size'];\n renderDisplayValue?: (value: SelectOption[]) => ReactNode;\n chevronView?: 'desktop' | 'touch';\n autoFocus?: boolean;\n withSpecialNoOptions?: boolean;\n disablePortal?: boolean;\n disableTooltip?: boolean;\n filterOption?: (option: SelectOption, filter: string) => boolean;\n};\n\nexport const MultiSelect: React.ForwardRefExoticComponent<\n MultiSelectProps & React.RefAttributes<HTMLButtonElement>\n> = forwardRef<HTMLButtonElement, MultiSelectProps>(\n (\n {\n id,\n loading,\n loadingItems,\n disabled,\n renderControl: providedRenderControl,\n className,\n options,\n value,\n width,\n size,\n name,\n placeholder,\n popupClassName,\n renderOption: providedRenderOption = renderOption,\n renderSelectedOption,\n renderDisplayValue,\n controlProps,\n controlClassName,\n withArrow = true,\n title,\n icon,\n validationState,\n selectSize,\n chevronView = 'desktop',\n open,\n filterable,\n disablePortal,\n filterOption: providedFilterOption,\n renderFilter: providedRenderFilter,\n autoFocus,\n filterPlaceholder,\n withSpecialNoOptions,\n onOpenChange,\n disableTooltip,\n ...props\n },\n ref,\n ) => {\n const config = getConfig();\n const {t} = useLocalizedString(defaultMessages, config.lang);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const renderControl = useCallback<NonNullable<CommonSelectProps['renderControl']>>(\n (renderControlProps, config) => {\n const {triggerProps, ref, open} = renderControlProps;\n const hasError = validationState === 'invalid';\n\n if (loading) {\n return (\n <div\n ref={ref as Ref<HTMLDivElement>}\n className={cnSelect('button-wrapper')}\n >\n <ActionTooltip\n title={title ?? ''}\n disabled={disableTooltip || !title}\n placement=\"bottom\"\n >\n <Button\n view=\"outlined\"\n size={size}\n disabled\n width=\"max\"\n name={name}\n className={cnSelect(\n 'button',\n {\n loading: true,\n error: hasError,\n platform: 'desktop',\n },\n controlClassName,\n )}\n {...controlProps}\n id={id}\n >\n <Loader className={cnSelect('loader')} />\n {withArrow && (\n <Icon\n data={\n chevronView === 'touch' ? ChevronRight : ChevronDown\n }\n />\n )}\n </Button>\n </ActionTooltip>\n </div>\n );\n }\n\n if (providedRenderControl) {\n return providedRenderControl(renderControlProps, config);\n }\n\n const valueOptions: SelectOption[] = [];\n\n if (value && value.length) {\n for (const valueItem of value) {\n const valueOption = getValueOption(options ?? [], valueItem);\n\n if (valueOption) {\n valueOptions.push(valueOption);\n }\n }\n }\n\n return (\n <div ref={ref as Ref<HTMLDivElement>} className={cnSelect('button-wrapper')}>\n <ActionTooltip\n title={title ?? ''}\n disabled={disableTooltip || !title}\n placement=\"bottom\"\n >\n <Button\n view=\"outlined\"\n size={size}\n {...triggerProps}\n name={name}\n aria-haspopup=\"listbox\"\n width=\"max\"\n disabled={disabled}\n className={cnSelect(\n 'button',\n {\n empty: valueOptions.length === 0,\n 'with-icon': Boolean(icon),\n error: hasError,\n platform: 'desktop',\n },\n controlClassName,\n )}\n {...controlProps}\n id={id}\n >\n {icon}\n {renderDisplayValue ? (\n renderDisplayValue(valueOptions)\n ) : (\n <>\n {valueOptions.length === 0 && (placeholder || '—')}\n {valueOptions.map((item, index) => (\n <Fragment key={item.value}>\n {renderSelectedOption\n ? renderSelectedOption(item, index)\n : item.text || item.content}\n {index < valueOptions.length - 1 && ', '}\n </Fragment>\n ))}\n </>\n )}\n {withArrow && (\n <Icon\n size={chevronView === 'touch' ? 24 : 16}\n data={chevronView === 'touch' ? ChevronRight : ChevronDown}\n className={cnSelect('chevron', {\n open,\n })}\n />\n )}\n </Button>\n </ActionTooltip>\n </div>\n );\n },\n [\n validationState,\n loading,\n providedRenderControl,\n value,\n title,\n disableTooltip,\n id,\n size,\n name,\n disabled,\n icon,\n controlClassName,\n controlProps,\n renderDisplayValue,\n placeholder,\n withArrow,\n chevronView,\n options,\n renderSelectedOption,\n ],\n );\n\n const renderPopup = useCallback<NonNullable<CommonSelectProps['renderPopup']>>(\n ({renderFilter, renderList}) => (\n <>\n {renderFilter()}\n {renderList()}\n </>\n ),\n [],\n );\n\n const renderFilter = useCallback<NonNullable<CommonSelectProps['renderFilter']>>(\n ({inputProps}) => {\n const hasDefaultValue = (props.defaultValue?.length ?? 0) > 0;\n\n const controlProps = {\n role: 'combobox',\n 'aria-activedescendant': inputProps['aria-activedescendant'],\n 'aria-controls': inputProps['aria-controls'],\n 'aria-label': inputProps['aria-label'],\n };\n\n return (\n <TextInput\n autoFocus={autoFocus && !hasDefaultValue}\n className={cnSelect('filter')}\n {...inputProps}\n controlProps={controlProps}\n controlRef={inputRef}\n size={selectSize}\n name={name}\n />\n );\n },\n [autoFocus, props.defaultValue, selectSize, name],\n );\n\n const optionsWithLoading = useMemo(() => {\n if (!loadingItems) {\n if (!options?.length) {\n return [\n {\n value: '',\n disabled: true,\n content: withSpecialNoOptions ? (\n <div className={cnSelect('no-options')}>\n <Text color=\"primary\" variant=\"subheader-3\">\n {t('no-options-title')}\n </Text>\n <Text variant=\"body-2\">{t('no-options-description')}</Text>\n </div>\n ) : (\n <div className={cnSelect('no-options')}>{t('no-options')}</div>\n ),\n },\n ];\n }\n\n return options;\n }\n\n return [\n {\n value: '',\n disabled: true,\n content: (\n <div className={cnSelect('items-loader')}>\n <Loader size=\"m\" />\n </div>\n ),\n },\n ];\n }, [loadingItems, options, t, withSpecialNoOptions]);\n\n const withGroups = options?.some(isGroupOption);\n\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n if (open && inputRef.current) {\n timer = setTimeout(() => inputRef.current?.focus({preventScroll: true}), 0);\n }\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- inputRef.current must be in list\n }, [open && inputRef.current]);\n\n return (\n <CommonSelect\n disablePortal={disablePortal}\n disabled={disabled || loading}\n options={optionsWithLoading}\n value={value}\n renderControl={renderControl}\n multiple\n renderOption={\n loadingItems || !options?.length ? renderOption : providedRenderOption\n }\n ref={ref}\n filterPlaceholder={filterPlaceholder ?? t('search')}\n popupClassName={cnSelect(\n 'popup',\n {\n 'with-groups': withGroups,\n filterable,\n },\n popupClassName,\n )}\n filterOption={providedFilterOption ?? filterOption}\n width={width}\n className={cnSelect(null, className)}\n size={size}\n validationState={validationState}\n renderPopup={renderPopup}\n open={open}\n renderFilter={providedRenderFilter ?? renderFilter}\n filterable={filterable}\n onOpenChange={onOpenChange}\n {...props}\n />\n );\n },\n);\n\nMultiSelect.displayName = 'MultiSelect';\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { CancellablePromise } from '@gravity-ui/sdk';
1
+ import type { CancellablePromise } from '../../../utils/cancellablePromise';
2
2
  export declare function useAutocomplete<T>(getData: (search: string) => CancellablePromise<T>, searchDelay?: number, useBoostedValues?: boolean): {
3
3
  filteredItems: T | undefined;
4
4
  resetFilteredItems: () => void;
@@ -10,7 +10,6 @@ require("core-js/modules/es.promise.js");
10
10
  require("core-js/modules/es.promise.finally.js");
11
11
  var _react = require("react");
12
12
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
13
- var _reactUse = require("react-use");
14
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
14
  function useAutocomplete(getData) {
16
15
  var searchDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 300;
@@ -31,42 +30,44 @@ function useAutocomplete(getData) {
31
30
  var searchDebounced = (0, _react.useMemo)(function () {
32
31
  return (0, _debounce.default)(function (search) {
33
32
  setSearchText(search);
34
- searchRequestRef.current = getData(search).then(function (items) {
35
- setFilteredItems(items);
33
+ var request = getData(search).then(function (items) {
34
+ if (searchRequestRef.current === request) {
35
+ setFilteredItems(items);
36
+ }
36
37
  })["catch"](function (error) {
37
- if (!error.isCancelled) {
38
+ if (searchRequestRef.current === request && !(error !== null && error !== void 0 && error.isCancelled)) {
38
39
  console.error(error);
39
40
  }
40
41
  })["finally"](function () {
41
- setIsLoading(false);
42
+ if (searchRequestRef.current === request) {
43
+ setIsLoading(false);
44
+ }
42
45
  });
46
+ searchRequestRef.current = request;
43
47
  }, searchDelay);
44
48
  }, [getData, searchDelay]);
49
+ var cancelSearch = (0, _react.useCallback)(function () {
50
+ var request = searchRequestRef.current;
51
+ searchRequestRef.current = undefined;
52
+ request === null || request === void 0 || request.cancel();
53
+ searchDebounced.cancel();
54
+ }, [searchDebounced]);
45
55
  (0, _react.useEffect)(function () {
56
+ setIsLoading(false);
46
57
  if (useBoostedValues) {
47
58
  setIsLoading(true);
48
59
  searchDebounced('');
49
60
  }
50
- }, [useBoostedValues, searchDebounced]);
51
- (0, _reactUse.useUnmount)(function () {
52
- if (searchRequestRef !== null && searchRequestRef !== void 0 && searchRequestRef.current && 'cancel' in searchRequestRef.current) {
53
- searchRequestRef.current.cancel();
54
- }
55
- searchDebounced === null || searchDebounced === void 0 || searchDebounced.cancel();
56
- });
61
+ // Also dispose the old debounce/request when getData or searchDelay changes.
62
+ return cancelSearch;
63
+ }, [useBoostedValues, searchDebounced, cancelSearch]);
57
64
  var resetFilteredItems = (0, _react.useCallback)(function () {
58
- if (searchRequestRef.current && 'cancel' in searchRequestRef.current) {
59
- searchRequestRef.current.cancel();
60
- }
61
- searchDebounced.cancel();
65
+ cancelSearch();
62
66
  setFilteredItems(undefined);
63
67
  setIsLoading(false);
64
- }, [searchDebounced]);
68
+ }, [cancelSearch]);
65
69
  var handleFilterChange = (0, _react.useCallback)(function (search, force) {
66
- if (searchRequestRef.current && 'cancel' in searchRequestRef.current) {
67
- searchRequestRef.current.cancel();
68
- }
69
- searchDebounced.cancel();
70
+ cancelSearch();
70
71
  if (!search && !useBoostedValues && !force) {
71
72
  setSearchText('');
72
73
  resetFilteredItems();
@@ -74,7 +75,7 @@ function useAutocomplete(getData) {
74
75
  }
75
76
  setIsLoading(true);
76
77
  searchDebounced(search);
77
- }, [resetFilteredItems, searchDebounced, useBoostedValues]);
78
+ }, [cancelSearch, resetFilteredItems, searchDebounced, useBoostedValues]);
78
79
  var emitFilterChange = (0, _react.useCallback)(function () {
79
80
  handleFilterChange(searchText, true);
80
81
  }, [handleFilterChange, searchText]);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_debounce","_interopRequireDefault","_reactUse","e","__esModule","default","useAutocomplete","getData","searchDelay","arguments","length","undefined","useBoostedValues","_useState","useState","_useState2","_slicedToArray","filteredItems","setFilteredItems","_useState3","_useState4","isLoading","setIsLoading","_useState5","_useState6","searchText","setSearchText","searchRequestRef","useRef","searchDebounced","useMemo","debounce","search","current","then","items","error","isCancelled","console","useEffect","useUnmount","cancel","resetFilteredItems","useCallback","handleFilterChange","force","emitFilterChange"],"sources":["useAutocomplete.ts"],"sourcesContent":["import {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport type {CancellablePromise} from '@gravity-ui/sdk';\nimport debounce from 'lodash/debounce';\nimport {useUnmount} from 'react-use';\n\nexport function useAutocomplete<T>(\n getData: (search: string) => CancellablePromise<T>,\n searchDelay = 300,\n useBoostedValues = false,\n) {\n const [filteredItems, setFilteredItems] = useState<T | undefined>();\n const [isLoading, setIsLoading] = useState(false);\n const [searchText, setSearchText] = useState('');\n const searchRequestRef = useRef<CancellablePromise<T[]>>();\n\n const searchDebounced = useMemo(\n () =>\n debounce((search: string) => {\n setSearchText(search);\n searchRequestRef.current = getData(search)\n .then((items) => {\n setFilteredItems(items);\n })\n .catch((error) => {\n if (!error.isCancelled) {\n console.error(error);\n }\n })\n .finally(() => {\n setIsLoading(false);\n }) as unknown as CancellablePromise<T[]>;\n }, searchDelay),\n [getData, searchDelay],\n );\n\n useEffect(() => {\n if (useBoostedValues) {\n setIsLoading(true);\n searchDebounced('');\n }\n }, [useBoostedValues, searchDebounced]);\n\n useUnmount(() => {\n if (searchRequestRef?.current && 'cancel' in searchRequestRef.current) {\n searchRequestRef.current.cancel();\n }\n\n searchDebounced?.cancel();\n });\n\n const resetFilteredItems = useCallback(() => {\n if (searchRequestRef.current && 'cancel' in searchRequestRef.current) {\n searchRequestRef.current.cancel();\n }\n\n searchDebounced.cancel();\n setFilteredItems(undefined);\n setIsLoading(false);\n }, [searchDebounced]);\n\n const handleFilterChange = useCallback(\n (search: string, force?: boolean) => {\n if (searchRequestRef.current && 'cancel' in searchRequestRef.current) {\n searchRequestRef.current.cancel();\n }\n\n searchDebounced.cancel();\n\n if (!search && !useBoostedValues && !force) {\n setSearchText('');\n resetFilteredItems();\n\n return;\n }\n\n setIsLoading(true);\n searchDebounced(search);\n },\n [resetFilteredItems, searchDebounced, useBoostedValues],\n );\n\n const emitFilterChange = useCallback(() => {\n handleFilterChange(searchText, true);\n }, [handleFilterChange, searchText]);\n\n return {\n filteredItems,\n resetFilteredItems,\n handleFilterChange,\n isLoading,\n searchText,\n emitFilterChange,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_debounce","_interopRequireDefault","e","__esModule","default","useAutocomplete","getData","searchDelay","arguments","length","undefined","useBoostedValues","_useState","useState","_useState2","_slicedToArray","filteredItems","setFilteredItems","_useState3","_useState4","isLoading","setIsLoading","_useState5","_useState6","searchText","setSearchText","searchRequestRef","useRef","searchDebounced","useMemo","debounce","search","request","then","items","current","error","isCancelled","console","cancelSearch","useCallback","cancel","useEffect","resetFilteredItems","handleFilterChange","force","emitFilterChange"],"sources":["useAutocomplete.ts"],"sourcesContent":["import {useCallback, useEffect, useMemo, useRef, useState} from 'react';\n\nimport debounce from 'lodash/debounce';\n\nimport type {CancellablePromise} from '../../../utils/cancellablePromise';\n\nexport function useAutocomplete<T>(\n getData: (search: string) => CancellablePromise<T>,\n searchDelay = 300,\n useBoostedValues = false,\n) {\n const [filteredItems, setFilteredItems] = useState<T | undefined>();\n const [isLoading, setIsLoading] = useState(false);\n const [searchText, setSearchText] = useState('');\n const searchRequestRef = useRef<CancellablePromise<void>>();\n\n const searchDebounced = useMemo(\n () =>\n debounce((search: string) => {\n setSearchText(search);\n const request = getData(search)\n .then((items) => {\n if (searchRequestRef.current === request) {\n setFilteredItems(items);\n }\n })\n .catch((error) => {\n if (searchRequestRef.current === request && !error?.isCancelled) {\n console.error(error);\n }\n })\n .finally(() => {\n if (searchRequestRef.current === request) {\n setIsLoading(false);\n }\n });\n searchRequestRef.current = request;\n }, searchDelay),\n [getData, searchDelay],\n );\n\n const cancelSearch = useCallback(() => {\n const request = searchRequestRef.current;\n searchRequestRef.current = undefined;\n request?.cancel();\n searchDebounced.cancel();\n }, [searchDebounced]);\n\n useEffect(() => {\n setIsLoading(false);\n if (useBoostedValues) {\n setIsLoading(true);\n searchDebounced('');\n }\n // Also dispose the old debounce/request when getData or searchDelay changes.\n return cancelSearch;\n }, [useBoostedValues, searchDebounced, cancelSearch]);\n\n const resetFilteredItems = useCallback(() => {\n cancelSearch();\n setFilteredItems(undefined);\n setIsLoading(false);\n }, [cancelSearch]);\n\n const handleFilterChange = useCallback(\n (search: string, force?: boolean) => {\n cancelSearch();\n\n if (!search && !useBoostedValues && !force) {\n setSearchText('');\n resetFilteredItems();\n\n return;\n }\n\n setIsLoading(true);\n searchDebounced(search);\n },\n [cancelSearch, resetFilteredItems, searchDebounced, useBoostedValues],\n );\n\n const emitFilterChange = useCallback(() => {\n handleFilterChange(searchText, true);\n }, [handleFilterChange, searchText]);\n\n return {\n filteredItems,\n resetFilteredItems,\n handleFilterChange,\n isLoading,\n searchText,\n emitFilterChange,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import type { DependencyList, EffectCallback } from 'react';
2
+ export declare function useUpdateEffect(effect: EffectCallback, deps: DependencyList): void;