import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-GrlyTB2d.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./TreeMultiSelect-Dq7UxpDI.js";import{n as s,r as c,t as l}from"./treeStoryFixtures-Ci7STpiz.js";var u=t({BalancedColumns:()=>x,Basic:()=>_,FirstTwoLevelsExpanded:()=>b,MixedSelection:()=>y,OrphanProtectionColumns:()=>S,ParentCompression:()=>v,RightEdgeColumns:()=>C,__namedExportsOrder:()=>w,default:()=>g});function d({args:e,updateArgs:t}){return(0,f.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,f.jsx)(o,{...e,onChange:n=>{e.onChange(n),t({value:n})}}),(0,f.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(e.value)]})]})}var f,p,m,h,g,_,v,y,b,x,S,C,w;function T(){return(T=e((()=>{r(),a(),s(),f=n(),p=Array.from({length:66},(e,t)=>{let n=String(t+1).padStart(2,`0`),r=`D${n}`;return{id:`DIVISION:${r}`,codeKey:`DIVISION`,value:r,label:`Дивизион ${n}`,code:r,searchText:`${r} Дивизион ${n}`}}),m=i((e,t)=>(0,f.jsx)(d,{args:e,updateArgs:t})),h=i((e,t)=>(0,f.jsx)(`div`,{style:{display:`flex`,minHeight:`calc(100vh - 32px)`,alignItems:`center`,justifyContent:`flex-end`},children:(0,f.jsx)(`div`,{style:{width:260},children:(0,f.jsx)(d,{args:e,updateArgs:t})})})),g={title:`Shared/UI/TreeMultiSelect`,component:o,parameters:{atomicCanvas:!0,layout:`padded`},args:{label:`Выбор узлов`,description:`Мультивыбор с канонизацией subtree в ближайший parent.`,nodes:l,value:{},onChange:()=>{}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под полем.`,control:`text`},placeholder:{description:`Текст без выбранных узлов.`,control:`text`},nodes:{description:`Дерево доступных узлов.`,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},isLoading:{description:`Показывает загрузку дерева.`,control:`boolean`},error:{description:`Текст ошибки загрузки.`,control:`text`},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`]}}},_={render:m,args:{value:{OWNER:[`P0001`]}}},v={render:m,args:{label:`Компрессия parent`,description:`Когда выбран весь subtree, наружу может уйти только родительский узел.`,value:{REGION:[`R01`]}}},y={render:m,args:{label:`Смешанный выбор`,description:`Пример mixed frontier по соседним уровням.`,value:{BRANCH:[`B0101`],OWNER:[`P0004`]}}},b={render:m,args:{label:`Раскрыты два уровня`,description:`Уровни REGION и BRANCH раскрыты по умолчанию, остальные уровни остаются закрытыми.`,defaultExpandedCodeKeys:[`REGION`,`BRANCH`]}},x={render:m,args:{label:`Все уровни в столбцах`,description:`Popover подбирает число столбцов по количеству опций и доступному viewport.`,optionsLayout:`columns`,value:{BRANCH:[`B0101`]}}},S={render:m,args:{label:`Защита начала большой группы`,description:`Начало группы остаётся в текущем столбце при трёх свободных строках; при одной или двух переносится в новый.`,optionsLayout:`columns`,nodes:c}},C={render:h,args:{label:`Контрол у правой границы`,description:`Popover для 66 опций должен сравнить вертикальные и горизонтальные стороны и остаться внутри viewport.`,optionsLayout:`columns`,nodes:p}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
  render: renderTreeMultiSelectStory,
  args: {
    value: {
      OWNER: ["P0001"]
    }
  }
}`,..._.parameters?.docs?.source}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
  render: renderTreeMultiSelectStory,
  args: {
    label: "Компрессия parent",
    description: "Когда выбран весь subtree, наружу может уйти только родительский узел.",
    value: {
      REGION: ["R01"]
    }
  }
}`,...v.parameters?.docs?.source}}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
  render: renderTreeMultiSelectStory,
  args: {
    label: "Смешанный выбор",
    description: "Пример mixed frontier по соседним уровням.",
    value: {
      BRANCH: ["B0101"],
      OWNER: ["P0004"]
    }
  }
}`,...y.parameters?.docs?.source}}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
  render: renderTreeMultiSelectStory,
  args: {
    label: "Раскрыты два уровня",
    description: "Уровни REGION и BRANCH раскрыты по умолчанию, остальные уровни остаются закрытыми.",
    defaultExpandedCodeKeys: ["REGION", "BRANCH"]
  }
}`,...b.parameters?.docs?.source}}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
  render: renderTreeMultiSelectStory,
  args: {
    label: "Все уровни в столбцах",
    description: "Popover подбирает число столбцов по количеству опций и доступному viewport.",
    optionsLayout: "columns",
    value: {
      BRANCH: ["B0101"]
    }
  }
}`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
  render: renderTreeMultiSelectStory,
  args: {
    label: "Защита начала большой группы",
    description: "Начало группы остаётся в текущем столбце при трёх свободных строках; при одной или двух переносится в новый.",
    optionsLayout: "columns",
    nodes: orphanProtectionTreeNodes
  }
}`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
  render: renderRightEdgeTreeMultiSelectStory,
  args: {
    label: "Контрол у правой границы",
    description: "Popover для 66 опций должен сравнить вертикальные и горизонтальные стороны и остаться внутри viewport.",
    optionsLayout: "columns",
    nodes: rightEdgeTreeNodes
  }
}`,...C.parameters?.docs?.source}}},w=[`Basic`,`ParentCompression`,`MixedSelection`,`FirstTwoLevelsExpanded`,`BalancedColumns`,`OrphanProtectionColumns`,`RightEdgeColumns`]})))()}export{S as a,u as c,y as i,T as l,_ as n,v as o,b as r,C as s,x as t};