import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-GrlyTB2d.js";import{n as i,t as a}from"./TreeMultiSelect-Dq7UxpDI.js";import{n as o,t as s}from"./useODataTreeData-BQfuMLsY.js";import{a as c,c as l,i as u,l as d,n as f,o as p,s as m}from"./odataStoryFixtures-BH1suo55.js";function h({label:e,description:t,disabled:n,size:r,placeholder:i,query:s,defaultQuery:c,onQuery:l,optionsLayout:u,value:d,onChange:f,odata:p,segments:m,model:h,defaultExpandedCodeKeys:v,segmentOrder:y,allowEmptyCodeKeys:b,transformNodes:x}){let S=o({odata:p,segments:m,model:h,segmentOrder:y,allowEmptyCodeKeys:b}),C=(0,g.useMemo)(()=>x?.(S.nodes,{orderedCodeKeys:S.orderedCodeKeys})??S.nodes,[x,S.nodes,S.orderedCodeKeys]);return(0,_.jsx)(a,{label:e,description:t,disabled:n||S.isLoading,size:r,placeholder:i??S.placeholder,nodes:C,value:d,onChange:f,query:s,defaultQuery:c,onQuery:l,optionsLayout:u,defaultExpandedCodeKeys:v,isLoading:S.isLoading,error:S.isError?`Ошибка загрузки`:void 0})}var g,_;function v(){return(v=e((()=>{g=n(),s(),i(),_=r(),h.__docgenInfo={description:``,methods:[],displayName:`ODataTreeMultiSelect`,props:{model:{required:!1,tsType:{name:`ODataDependentBaseProps["model"]`,raw:`ODataDependentBaseProps["model"]`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:`Переключает способ показа загруженного OData-дерева, не меняя формат value и запросов.`},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:"Ключи OData-уровней, раскрываемых после появления загруженных узлов.\nВ режиме `columns` дерево по-прежнему отображается полностью раскрытым."},segmentOrder:{required:!1,tsType:{name:`unknown`},description:`Явный порядок уровней поверх порядка, автоматически полученного из metadata-chain.`},allowEmptyCodeKeys:{required:!1,tsType:{name:`unknown`},description:`Уровни, на которых пустой код не обрывает последующие уровни дерева.`},transformNodes:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(
	nodes: readonly TreeSelectNode[],
	context: ODataTreeMultiSelectNodesTransformContext
) => readonly TreeSelectNode[]`,signature:{arguments:[{type:{name:`unknown`},name:`nodes`},{type:{name:`signature`,type:`object`,raw:`{
	/** Фактический порядок запрошенных уровней после разрешения metadata-chain. */
	orderedCodeKeys: readonly string[];
}`,signature:{properties:[{key:`orderedCodeKeys`,value:{name:`unknown`,required:!0},description:`Фактический порядок запрошенных уровней после разрешения metadata-chain.`}]}},name:`context`}],return:{name:`unknown`}}},description:`Создаёт consumer-представление поверх уже загруженного OData-дерева.

Преобразование не меняет Query cache и transport-запрос. Callback должен
оставаться чистым и возвращать новые узлы, не мутируя входное дерево.`}},composes:[`Omit`]}})))()}var y=t({BalancedColumns:()=>O,Basic:()=>T,ErrorState:()=>j,LargeRootGroupsColumns:()=>k,LoadingState:()=>A,MixedSelection:()=>D,ParentCompression:()=>E,__namedExportsOrder:()=>M,default:()=>w});function b(e){let[,t]=S();return(0,x.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,x.jsx)(h,{...e,onChange:n=>{e.onChange(n),t({value:n})}}),(0,x.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(e.value)]})]})}var x,S,C,w,T,E,D,O,k,A,j,M;function N(){return(N=e((()=>{u(),v(),x=r(),{useArgs:S}=__STORYBOOK_MODULE_PREVIEW_API__,C={REGION:l.REGION,OWNER:l.OWNER},w={title:`Shared/UI/ODataTreeMultiSelect`,component:h,decorators:[d],beforeEach:c,parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`OData дерево`,description:`Multi-select поверх одной OData-цепочки.`,odata:f,segments:l,value:{},onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},placeholder:{description:`Текст без выбранных узлов.`,control:`text`},odata:{description:`Конфигурация OData-источника.`,control:!1},segments:{description:`Конфигурация уровней OData-дерева.`,control:!1},model:{description:`Опциональная модель OData-коллекции.`,control:!1},value:{description:`Контролируемое отображение выбранных узлов по codeKey.`,control:!1},onChange:{description:`Вызывается при commit набора узлов.`,control:!1},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},optionsLayout:{description:`Способ показа: дерево или адаптивные колонки.`,control:`inline-radio`,options:[`tree`,`columns`]},defaultExpandedCodeKeys:{description:`Ключи уровней, раскрываемых после загрузки.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},T={render:function(e){return(0,x.jsx)(b,{...e})},args:{value:{OWNER:[m.owner]}}},E={render:function(e){return(0,x.jsx)(b,{...e})},args:{label:`Компрессия subtree`,description:`Пример, когда наружу уходит узел верхнего уровня вместо полного списка потомков.`,value:{REGION:[m.region]}}},D={render:function(e){return(0,x.jsx)(b,{...e})},args:{label:`Смешанный выбор`,description:`Смешанный frontier по соседним уровням в OData-дереве.`,value:{BRANCH:[m.branch],OWNER:[m.ownerAlt]}}},O={render:function(e){return(0,x.jsx)(b,{...e})},args:{label:`OData tree в столбцах`,description:`Режим columns открывает все уровни независимо от пустой настройки defaultExpandedCodeKeys.`,optionsLayout:`columns`,defaultExpandedCodeKeys:[],value:{BRANCH:[m.branch]}}},k={render:function(e){return(0,x.jsx)(b,{...e})},args:{label:`Крупные OData-группы`,description:`Сокращённая цепочка REGION → OWNER создаёт несколько root-групп для проверки порога из трёх строк.`,optionsLayout:`columns`,segments:C}},A={parameters:{odataMockMode:`loading`},render:function(e){return(0,x.jsx)(b,{...e})},args:{odata:p.loading,description:`Сценарий загрузки дерева.`}},j={parameters:{odataMockMode:`metadataError`},render:function(e){return(0,x.jsx)(b,{...e})},args:{odata:p.metadataError,description:`Сценарий ошибки metadata дерева.`}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    return <ODataTreeMultiSelectStoryCanvas {...args} />;
  },
  args: {
    value: {
      OWNER: [storyValues.owner]
    }
  }
}`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    return <ODataTreeMultiSelectStoryCanvas {...args} />;
  },
  args: {
    label: "Компрессия subtree",
    description: "Пример, когда наружу уходит узел верхнего уровня вместо полного списка потомков.",
    value: {
      REGION: [storyValues.region]
    }
  }
}`,...E.parameters?.docs?.source}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    return <ODataTreeMultiSelectStoryCanvas {...args} />;
  },
  args: {
    label: "Смешанный выбор",
    description: "Смешанный frontier по соседним уровням в OData-дереве.",
    value: {
      BRANCH: [storyValues.branch],
      OWNER: [storyValues.ownerAlt]
    }
  }
}`,...D.parameters?.docs?.source}}},O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    return <ODataTreeMultiSelectStoryCanvas {...args} />;
  },
  args: {
    label: "OData tree в столбцах",
    description: "Режим columns открывает все уровни независимо от пустой настройки defaultExpandedCodeKeys.",
    optionsLayout: "columns",
    defaultExpandedCodeKeys: [],
    value: {
      BRANCH: [storyValues.branch]
    }
  }
}`,...O.parameters?.docs?.source}}},k.parameters={...k.parameters,docs:{...k.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    return <ODataTreeMultiSelectStoryCanvas {...args} />;
  },
  args: {
    label: "Крупные OData-группы",
    description: "Сокращённая цепочка REGION → OWNER создаёт несколько root-групп для проверки порога из трёх строк.",
    optionsLayout: "columns",
    segments: largeRootGroupSegments
  }
}`,...k.parameters?.docs?.source}}},A.parameters={...A.parameters,docs:{...A.parameters?.docs,source:{originalSource:`{
  parameters: {
    odataMockMode: "loading"
  },
  render: function Render(args) {
    return <ODataTreeMultiSelectStoryCanvas {...args} />;
  },
  args: {
    odata: odataStoryOData.loading,
    description: "Сценарий загрузки дерева."
  }
}`,...A.parameters?.docs?.source}}},j.parameters={...j.parameters,docs:{...j.parameters?.docs,source:{originalSource:`{
  parameters: {
    odataMockMode: "metadataError"
  },
  render: function Render(args) {
    return <ODataTreeMultiSelectStoryCanvas {...args} />;
  },
  args: {
    odata: odataStoryOData.metadataError,
    description: "Сценарий ошибки metadata дерева."
  }
}`,...j.parameters?.docs?.source}}},M=[`Basic`,`ParentCompression`,`MixedSelection`,`BalancedColumns`,`LargeRootGroupsColumns`,`LoadingState`,`ErrorState`]})))()}export{A as a,E as c,k as i,N as l,T as n,D as o,j as r,y as s,O as t};