import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-GmIo3IOR.js";import{n as a,t as o}from"./ODataSelect-Bo0yPtod.js";import{a as s,i as c,n as l,r as u,s as d,t as f}from"./odataStoryFixtures-qHROzCso.js";var p=e({BasicDivision:()=>y,CollectionError:()=>E,HideCode:()=>b,LinkedFilters:()=>C,LoadingState:()=>w,MetadataError:()=>T,SelectTextValue:()=>x,StaticDependency:()=>S,__namedExportsOrder:()=>D,default:()=>v});function m({initialValue:e,odata:t=l,model:n=f,segment:r=u,dependencies:i,label:a=`OData Select`,description:s}){let[c,d]=(0,g.useState)(e);return(0,_.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,_.jsx)(o,{label:a,description:s,odata:t,model:n,segment:r,value:c,dependencies:i,onChange:d}),(0,_.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,c||`пусто`]})]})}function h(){let[e,t]=(0,g.useState)(s.region),[n,r]=(0,g.useState)(s.branch),[i,a]=(0,g.useState)(s.team),[c,u]=(0,g.useState)(s.owner),d=e?{REGION:[e]}:void 0,p=e&&n?{REGION:[e],BRANCH:[n]}:d,m=e&&n&&i?{REGION:[e],BRANCH:[n],TEAM:[i]}:p;return(0,_.jsxs)(`div`,{style:{display:`grid`,gap:16,maxWidth:720},children:[(0,_.jsx)(o,{label:`Регион`,description:`Первый фильтр в цепочке. Меняет доступный набор подразделений.`,odata:l,model:{...f,codeKey:`REGION`},segment:{placeholder:`Регион`},value:e,onChange:e=>{t(e),r(void 0),a(void 0),u(void 0)}}),(0,_.jsx)(o,{label:`Подразделение`,description:`Второй фильтр зависит от выбранного региона.`,odata:l,model:{...f,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:d,value:n,onChange:e=>{r(e),a(void 0),u(void 0)}}),(0,_.jsx)(o,{label:`Команда`,description:`Третий фильтр зависит от сочетания региона и подразделения.`,odata:l,model:{...f,codeKey:`TEAM`},segment:{placeholder:`Команда`},dependencies:p,value:i,onChange:e=>{a(e),u(void 0)}}),(0,_.jsx)(o,{label:`Ответственный`,description:`Последний фильтр показывает leaf-узлы для выбранного пути.`,odata:l,model:{...f,codeKey:`OWNER`},segment:{placeholder:`Ответственный`},dependencies:m,value:c,onChange:u}),(0,_.jsxs)(`div`,{style:{display:`grid`,gap:4,fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[(0,_.jsxs)(`div`,{children:[`Регион: `,e||`пусто`]}),(0,_.jsxs)(`div`,{children:[`Подразделение: `,n||`пусто`]}),(0,_.jsxs)(`div`,{children:[`Команда: `,i||`пусто`]}),(0,_.jsxs)(`div`,{children:[`Ответственный: `,c||`пусто`]})]})]})}var g,_,v,y,b,x,S,C,w,T,E,D,O=n((()=>{g=t(r(),1),a(),c(),_=i(),v={title:`Shared/UI/ODataSelect`,component:o,decorators:[d],parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`Регион`,description:`Пример OData Select на основе конфигурации ui control.`,odata:l,model:f,segment:u,value:void 0,onChange:()=>{}},argTypes:{onChange:{control:!1},value:{control:!1},dependencies:{control:!1}}},y={name:`Базовый регион`,render:()=>(0,_.jsx)(m,{label:`Регион`,description:`Базовая настройка single-select для выбора кода REGION.`,model:{...f,codeKey:`REGION`},segment:{placeholder:`Регион`},initialValue:s.region})},b={name:`Скрытый код`,render:()=>(0,_.jsx)(m,{label:`Подразделение`,description:`Код скрыт и в выпадающем списке, и в выбранном значении.`,model:{...f,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`,hideCode:!0},initialValue:s.branch})},x={name:`Выбор текста вместо кода`,render:()=>(0,_.jsx)(m,{label:`Регион по тексту`,description:`Снаружи хранится текстовое значение, а не код.`,model:{...f,codeKey:`REGION`},segment:{placeholder:`Регион`,selectText:!0},initialValue:s.regionText})},S={name:`Зависимость от региона`,render:()=>(0,_.jsx)(m,{label:`Подразделение c зависимостью`,description:`Фильтрация подразделений по уже выбранному региону через props.dependencies.`,model:{...f,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:{REGION:[s.region]},initialValue:s.branch})},C={name:`Связанная цепочка фильтров`,render:()=>(0,_.jsx)(h,{})},w={name:`Состояние загрузки`,parameters:{odataMockMode:`loading`},render:()=>(0,_.jsx)(m,{label:`Команда`,description:`Mock с задержкой ответа, чтобы проверить loading-state.`,model:{...f,codeKey:`TEAM`},segment:{placeholder:`Команда`}})},T={name:`Ошибка metadata`,parameters:{odataMockMode:`metadataError`},render:()=>(0,_.jsx)(m,{label:`Регион`,description:`Сервис возвращает ошибку metadata.`,model:{...f,codeKey:`REGION`},segment:{placeholder:`Регион`}})},E={name:`Ошибка коллекции`,parameters:{odataMockMode:`collectionError`},render:()=>(0,_.jsx)(m,{label:`Ответственный`,description:`Metadata доступна, но загрузка коллекции завершается ошибкой.`,model:{...f,codeKey:`OWNER`},segment:{placeholder:`Ответственный`}})},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
  name: "Базовый регион",
  render: () => <StatefulODataSelect label="Регион" description="Базовая настройка single-select для выбора кода REGION." model={{
    ...baseModel,
    codeKey: "REGION"
  }} segment={{
    placeholder: "Регион"
  }} initialValue={storyValues.region} />
}`,...y.parameters?.docs?.source}}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
  name: "Скрытый код",
  render: () => <StatefulODataSelect label="Подразделение" description="Код скрыт и в выпадающем списке, и в выбранном значении." model={{
    ...baseModel,
    codeKey: "BRANCH"
  }} segment={{
    placeholder: "Подразделение",
    hideCode: true
  }} initialValue={storyValues.branch} />
}`,...b.parameters?.docs?.source}}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
  name: "Выбор текста вместо кода",
  render: () => <StatefulODataSelect label="Регион по тексту" description="Снаружи хранится текстовое значение, а не код." model={{
    ...baseModel,
    codeKey: "REGION"
  }} segment={{
    placeholder: "Регион",
    selectText: true
  }} initialValue={storyValues.regionText} />
}`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
  name: "Зависимость от региона",
  render: () => <StatefulODataSelect label="Подразделение c зависимостью" description="Фильтрация подразделений по уже выбранному региону через props.dependencies." model={{
    ...baseModel,
    codeKey: "BRANCH"
  }} segment={{
    placeholder: "Подразделение"
  }} dependencies={{
    REGION: [storyValues.region]
  }} initialValue={storyValues.branch} />
}`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
  name: "Связанная цепочка фильтров",
  render: () => <LinkedFiltersDemo />
}`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
  name: "Состояние загрузки",
  parameters: {
    odataMockMode: "loading"
  },
  render: () => <StatefulODataSelect label="Команда" description="Mock с задержкой ответа, чтобы проверить loading-state." model={{
    ...baseModel,
    codeKey: "TEAM"
  }} segment={{
    placeholder: "Команда"
  }} />
}`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
  name: "Ошибка metadata",
  parameters: {
    odataMockMode: "metadataError"
  },
  render: () => <StatefulODataSelect label="Регион" description="Сервис возвращает ошибку metadata." model={{
    ...baseModel,
    codeKey: "REGION"
  }} segment={{
    placeholder: "Регион"
  }} />
}`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
  name: "Ошибка коллекции",
  parameters: {
    odataMockMode: "collectionError"
  },
  render: () => <StatefulODataSelect label="Ответственный" description="Metadata доступна, но загрузка коллекции завершается ошибкой." model={{
    ...baseModel,
    codeKey: "OWNER"
  }} segment={{
    placeholder: "Ответственный"
  }} />
}`,...E.parameters?.docs?.source}}},D=[`BasicDivision`,`HideCode`,`SelectTextValue`,`StaticDependency`,`LinkedFilters`,`LoadingState`,`MetadataError`,`CollectionError`]}));O();export{y as BasicDivision,E as CollectionError,b as HideCode,C as LinkedFilters,w as LoadingState,T as MetadataError,x as SelectTextValue,S as StaticDependency,D as __namedExportsOrder,v as default,O as n,p as t};