@prozorro/prozorro-ui 0.0.10-beta → 0.0.12-beta

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 (160) hide show
  1. package/dist/app/assets/{Color-FRDS63T2-NkJWwZpV.js → Color-FRDS63T2-BVVRSzFu.js} +1 -1
  2. package/dist/app/assets/{Colors.stories-BYTBLsDR.js → Colors.stories-BV0C2AcY.js} +3 -3
  3. package/dist/app/assets/{DocsRenderer-LL677BLK-DT0XE5RB.js → DocsRenderer-LL677BLK-BvkMeFSH.js} +71 -71
  4. package/dist/app/assets/{Grid.stories-B3nKsUwh.js → Grid.stories-0uJYxh6v.js} +23 -2
  5. package/dist/app/assets/PzAccordion-BK8qPIGx.js +1 -0
  6. package/dist/app/assets/{PzAccordion.stories-cOAYUrCJ.js → PzAccordion.stories-CBJM1l8G.js} +2 -2
  7. package/dist/app/assets/PzAccordionTable.stories-0OZ08OCM.js +275 -0
  8. package/dist/app/assets/{PzArrayClamp.stories-Btd9xMHi.js → PzArrayClamp.stories-CVsbMoOI.js} +5 -5
  9. package/dist/app/assets/{PzBreadcrumb.stories-D54RjRCg.js → PzBreadcrumb.stories-AEkdP3Sx.js} +4 -4
  10. package/dist/app/assets/PzBtn-B9m7S5t4.js +1 -0
  11. package/dist/app/assets/{PzBtn.stories-xnSEsakq.js → PzBtn.stories-C0en9cjk.js} +2 -2
  12. package/dist/app/assets/PzCheckbox-4-y3QxIg.js +1 -0
  13. package/dist/app/assets/{PzCheckbox.stories-RN07sGno.js → PzCheckbox.stories-0AqtpX2R.js} +4 -4
  14. package/dist/app/assets/{PzCheckboxGroup.stories-KogRihCz.js → PzCheckboxGroup.stories-Bc2Q0qzm.js} +3 -3
  15. package/dist/app/assets/PzClamp-0zNrPrFL.css +1 -0
  16. package/dist/app/assets/PzClamp.stories-ClQxjI3w.js +1 -0
  17. package/dist/app/assets/PzCopyToClipboard-DYvP-lFq.css +1 -0
  18. package/dist/app/assets/PzCopyToClipboard.stories-DpySg5be.js +45 -0
  19. package/dist/app/assets/PzDate-B7IRRe08.js +1 -0
  20. package/dist/app/assets/PzDate-DzxkQx_5.css +1 -0
  21. package/dist/app/assets/PzDate.stories-BMKH61UJ.js +116 -0
  22. package/dist/app/assets/PzDateRange-DafT5WRv.css +1 -0
  23. package/dist/app/assets/PzDateRange.stories-DermFDVN.js +9 -0
  24. package/dist/app/assets/{PzDomHandler.stories-DAp97pdG.js → PzDomHandler.stories-BZmKmq7h.js} +3 -3
  25. package/dist/app/assets/{PzDropdown.stories-eClrzbYq.js → PzDropdown.stories-D21VL1Wl.js} +3 -3
  26. package/dist/app/assets/{PzFileInput.stories-Dg6-KAun.js → PzFileInput.stories-CdV-8Ur5.js} +4 -4
  27. package/dist/app/assets/{PzGrid.stories-DLm_q1Lw.js → PzGrid.stories-jBExFoH9.js} +1 -1
  28. package/dist/app/assets/PzHint-Cs9J6pTd.js +1 -0
  29. package/dist/app/assets/{PzHint.stories-C2oiTVIN.js → PzHint.stories-qTU73X-T.js} +2 -2
  30. package/dist/app/assets/{PzIcon-DTWQGv5c.js → PzIcon-4heVmbY5.js} +1 -1
  31. package/dist/app/assets/{PzIcon.stories-CT6OA9PM.js → PzIcon.stories-CHQJZBkl.js} +2 -2
  32. package/dist/app/assets/{PzImage.stories-BJL_3ef9.js → PzImage.stories-cr2I1Mv8.js} +3 -3
  33. package/dist/app/assets/{PzImageInput.stories-CTksIxMS.js → PzImageInput.stories-wOMiRK50.js} +4 -4
  34. package/dist/app/assets/{PzInfoBlockLayout.stories-BBkiY-o7.js → PzInfoBlockLayout.stories-DkIvXHsN.js} +3 -3
  35. package/dist/app/assets/PzInfoHint-DyFMEGP1.js +1 -0
  36. package/dist/app/assets/{PzInfoHint.stories-6f6FePkY.js → PzInfoHint.stories-CbQPKqr-.js} +3 -3
  37. package/dist/app/assets/{PzInput.stories-Bm_5Kj-P.js → PzInput.stories-DFL76csJ.js} +3 -3
  38. package/dist/app/assets/{PzInputDate.stories-Ccqq1p1p.js → PzInputDate.stories-DtbZSO2I.js} +3 -3
  39. package/dist/app/assets/{PzInputNumber.stories-DAQYW2cJ.js → PzInputNumber.stories-BnWkdIia.js} +3 -3
  40. package/dist/app/assets/{PzKeyValue.stories-BrV9VQaC.js → PzKeyValue.stories-D62cy2Nn.js} +4 -4
  41. package/dist/app/assets/PzLabel-BGjTUIxv.js +1 -0
  42. package/dist/app/assets/{PzLabel.stories-DvN_0fOj.js → PzLabel.stories-Bsn2on9n.js} +3 -3
  43. package/dist/app/assets/PzLink-PMftGlCf.js +1 -0
  44. package/dist/app/assets/{PzLink.stories-BnY0IvI7.js → PzLink.stories-uYyu1A1Y.js} +2 -2
  45. package/dist/app/assets/PzListNav-DRMKw6wp.css +1 -0
  46. package/dist/app/assets/PzListNav.stories-CzdiB1vJ.js +37 -0
  47. package/dist/app/assets/PzLoader-J7_Govh3.css +1 -0
  48. package/dist/app/assets/PzLoader.stories-BKbYZbCg.js +9 -0
  49. package/dist/app/assets/{PzModal.stories-Bq5YuGJo.js → PzModal.stories-D2Ix-15K.js} +3 -3
  50. package/dist/app/assets/PzMultiSelect-DeX8aBEQ.css +1 -0
  51. package/dist/app/assets/PzMultiSelect.stories-ZraFVUKD.js +453 -0
  52. package/dist/app/assets/{PzNav.stories-5KiqcPrd.js → PzNav.stories-G7KKxcZ2.js} +4 -4
  53. package/dist/app/assets/{PzNumberFormat.stories-QyheTXgc.js → PzNumberFormat.stories-Cbj23Stp.js} +2 -2
  54. package/dist/app/assets/PzPagination-DoBWX1Bo.js +1 -0
  55. package/dist/app/assets/PzPagination-k9D0Hxrx.css +1 -0
  56. package/dist/app/assets/{PzPagination-07CphuYh.css → PzPagination-ohvV8gN-.css} +1 -1
  57. package/dist/app/assets/PzPagination.stories-Cebi1pnM.js +83 -0
  58. package/dist/app/assets/{PzPriceFormat.stories-Clj4FRWT.js → PzPriceFormat.stories-BUxyBQoC.js} +2 -2
  59. package/dist/app/assets/{PzRadioGroup.stories-o8HE47Hq.js → PzRadioGroup.stories-BniR4fVs.js} +3 -3
  60. package/dist/app/assets/{PzRouterLink.stories-Dc_EnCBz.js → PzRouterLink.stories-DXaqIXWs.js} +3 -3
  61. package/dist/app/assets/{PzScrollTo.stories-4BSDyJ2p.js → PzScrollTo.stories-Ck6gWxiu.js} +2 -2
  62. package/dist/app/assets/{PzSearchResultItemLayout.stories-QRI-A0Zi.js → PzSearchResultItemLayout.stories-BUAZX2y1.js} +3 -3
  63. package/dist/app/assets/PzSelect-BwhRsTZd.css +1 -0
  64. package/dist/app/assets/PzSelect-CuDRkOrL.js +1 -0
  65. package/dist/app/assets/PzSelect-Del6HRlD.css +1 -0
  66. package/dist/app/assets/PzSelect.stories-BB855vvD.js +292 -0
  67. package/dist/app/assets/PzSkeleton-Cniu9lo6.js +1 -0
  68. package/dist/app/assets/{PzSkeleton.stories-Djp-bBqZ.js → PzSkeleton.stories-B2Am1ZYO.js} +2 -2
  69. package/dist/app/assets/PzStatus-C3v_r0Oj.js +1 -0
  70. package/dist/app/assets/{PzStatus.stories-BZ2XwRJs.js → PzStatus.stories-mQSY87YP.js} +2 -2
  71. package/dist/app/assets/PzTable-Bwa8_IhX.js +1 -0
  72. package/dist/app/assets/{PzTable.stories-C76ZN_A5.js → PzTable.stories-95TCj8y6.js} +3 -3
  73. package/dist/app/assets/{PzTabs.stories-DHf6EZU7.js → PzTabs.stories-n-w_IPjO.js} +5 -5
  74. package/dist/app/assets/PzTag-DkreR1ah.js +1 -0
  75. package/dist/app/assets/{PzTag.stories-BIrmr98f.js → PzTag.stories-B3pQ3jt7.js} +2 -2
  76. package/dist/app/assets/PzText-REfIJddB.js +1 -0
  77. package/dist/app/assets/{PzText.stories-Cr6TBVe6.js → PzText.stories-735Z3n9m.js} +8 -8
  78. package/dist/app/assets/PzTextClamp.stories-DeNGHabI.js +149 -0
  79. package/dist/app/assets/{PzTextarea.stories--ghqzz2f.js → PzTextarea.stories-CnHN5KKO.js} +3 -3
  80. package/dist/app/assets/{PzValidatorXSS.stories-zCaJ6Q__.js → PzValidatorXSS.stories-BwMdWW4N.js} +3 -3
  81. package/dist/app/assets/{Spacing-B5TnfKCB.css → Spacing-DDiZ9XB6.css} +1 -1
  82. package/dist/app/assets/{Spacing.stories-Dzeg7Tfn.js → Spacing.stories-DDQc5HL2.js} +29 -2
  83. package/dist/app/assets/Typography.stories-DvalSfqI.js +47 -0
  84. package/dist/app/assets/{WithTooltip-65CFNBJE-C0efi5Yj.js → WithTooltip-65CFNBJE-DkkeYwH0.js} +2 -2
  85. package/dist/app/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
  86. package/dist/app/assets/floating-vue-BNQ4rNf7.js +1 -0
  87. package/dist/app/assets/floating-vue-Bvgx7aQ5.js +1 -0
  88. package/dist/app/assets/{formatter-EIJCOSYU-Noau93iy.js → formatter-EIJCOSYU-DcIAKjRL.js} +1 -1
  89. package/dist/app/assets/iframe-4qk0Ss25.css +1 -0
  90. package/dist/app/assets/{iframe-Ckq2fQkL.js → iframe-BfW4-zQw.js} +141 -141
  91. package/dist/app/assets/index-02P5Hwc1.js +1 -0
  92. package/dist/app/assets/{syntaxhighlighter-OH4MV7E3-ByOORGJm.js → syntaxhighlighter-OH4MV7E3-Ceel2kqU.js} +3 -3
  93. package/dist/app/assets/text-clamp.esm-BHxuNfNm.js +1 -0
  94. package/dist/app/iframe.html +81 -76
  95. package/dist/app/index.json +1 -1
  96. package/dist/app/project.json +1 -1
  97. package/dist/app/sb-manager/globals-runtime.js +1 -1
  98. package/dist/components/Actions/PzCopyToClipboard/PzCopyToClipboard.vue.d.ts +33 -0
  99. package/dist/components/Actions/PzCopyToClipboard/index.d.ts +2 -0
  100. package/dist/components/Actions/PzCopyToClipboard/types.d.ts +17 -0
  101. package/dist/components/Actions/PzLink/configs.d.ts +1 -1
  102. package/dist/components/Display/PzClamp/PzClamp.vue.d.ts +8 -0
  103. package/dist/components/Display/PzClamp/index.d.ts +2 -0
  104. package/dist/components/Display/PzClamp/types.d.ts +7 -0
  105. package/dist/components/Display/PzDate/PzDate.vue.d.ts +5 -0
  106. package/dist/components/Display/PzDate/index.d.ts +2 -0
  107. package/dist/components/Display/PzDate/types.d.ts +5 -0
  108. package/dist/components/Display/PzDateRange/PzDateRange.vue.d.ts +9 -0
  109. package/dist/components/Display/PzDateRange/constants.d.ts +1 -0
  110. package/dist/components/Display/PzDateRange/index.d.ts +2 -0
  111. package/dist/components/Display/PzDateRange/types.d.ts +16 -0
  112. package/dist/components/Display/PzLoader/PzLoader.vue.d.ts +7 -0
  113. package/dist/components/Display/PzLoader/index.d.ts +2 -0
  114. package/dist/components/Display/PzLoader/types.d.ts +6 -0
  115. package/dist/components/Form/PzInput/PzInput.vue.d.ts +1 -1
  116. package/dist/components/Form/PzMultiSelect/PzMultiSelect.vue.d.ts +44 -0
  117. package/dist/components/Form/PzMultiSelect/constants.d.ts +1 -0
  118. package/dist/components/Form/PzMultiSelect/index.d.ts +2 -0
  119. package/dist/components/Form/PzMultiSelect/types.d.ts +22 -0
  120. package/dist/components/Form/PzSelect/PzSelect.vue.d.ts +42 -0
  121. package/dist/components/Form/PzSelect/configs.d.ts +1 -0
  122. package/dist/components/Form/PzSelect/constants.d.ts +1 -0
  123. package/dist/components/Form/PzSelect/index.d.ts +2 -0
  124. package/dist/components/Form/PzSelect/types.d.ts +22 -0
  125. package/dist/components/Form/shared/types.d.ts +7 -0
  126. package/dist/components/Navigation/PzListNav/PzListNav.vue.d.ts +15 -0
  127. package/dist/components/Navigation/PzListNav/index.d.ts +4 -0
  128. package/dist/components/Navigation/PzListNav/types.d.ts +9 -0
  129. package/dist/components/Navigation/shared/configs.d.ts +2 -0
  130. package/dist/components/Navigation/shared/constants.d.ts +8 -0
  131. package/dist/components/Popups/PzHint/PzHint.vue.d.ts +1 -1
  132. package/dist/components/Popups/PzInfoHint/PzInfoHint.vue.d.ts +1 -1
  133. package/dist/components/Popups/PzModal/PzModal.vue.d.ts +1 -1
  134. package/dist/components/Text/PzArrayClamp/PzArrayClamp.vue.d.ts +1 -1
  135. package/dist/components/Text/PzTextClamp/PzTextClamp.vue.d.ts +3 -3
  136. package/dist/index.d.ts +8 -0
  137. package/dist/package.json +1 -1
  138. package/dist/prozorro-ui.cjs +15 -15
  139. package/dist/prozorro-ui.js +8669 -7906
  140. package/dist/style.css +1 -1
  141. package/package.json +1 -1
  142. package/src/styles/_spacing.scss +30 -4
  143. package/dist/app/assets/PzAccordion-CTihyZc5.js +0 -1
  144. package/dist/app/assets/PzAccordionTable.stories-CVSn3lrC.js +0 -275
  145. package/dist/app/assets/PzBtn-Bz2NPCiD.js +0 -1
  146. package/dist/app/assets/PzCheckbox-DDIj_TyE.js +0 -1
  147. package/dist/app/assets/PzHint-BhuDfy-l.js +0 -1
  148. package/dist/app/assets/PzInfoHint-C-UyP8PR.js +0 -1
  149. package/dist/app/assets/PzLabel-jmQOAHGo.js +0 -1
  150. package/dist/app/assets/PzLink-CwtmibRx.js +0 -1
  151. package/dist/app/assets/PzPagination.stories-D_qRevIg.js +0 -83
  152. package/dist/app/assets/PzSkeleton-BMyhdGXq.js +0 -1
  153. package/dist/app/assets/PzStatus-rctea0Gb.js +0 -1
  154. package/dist/app/assets/PzTable-CzfehTN7.js +0 -1
  155. package/dist/app/assets/PzTag-DudHfisQ.js +0 -1
  156. package/dist/app/assets/PzText-BOcxbzaG.js +0 -1
  157. package/dist/app/assets/PzTextClamp.stories-CR0IRYLS.js +0 -149
  158. package/dist/app/assets/Typography.stories-GZEYS8Ny.js +0 -47
  159. package/dist/app/assets/floating-vue-D0dcONsr.js +0 -1
  160. package/dist/app/assets/iframe-B97zFSkg.css +0 -1
@@ -0,0 +1,453 @@
1
+ import{d as pe,e as V,z as P,D as T,u as g,n as L,o as q,k as i,F as de,A as ce,f as F,l as D,E as J,t as C,J as ue,r as o,g as f,w as me}from"./iframe-BfW4-zQw.js";import{_ as ne}from"./PzIcon-4heVmbY5.js";import{P as ge}from"./PzTag-DkreR1ah.js";import{P as d}from"./PzText-REfIJddB.js";import{u as fe}from"./index-02P5Hwc1.js";import{k as xe}from"./floating-vue-Bvgx7aQ5.js";import{l as $}from"./lodash-CdDiHlzQ.js";import{P as be}from"./PzLabel-BGjTUIxv.js";import{_ as ve}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./preload-helper-C1FmrZbK.js";import"./_commonjsHelpers-Cpj98o6Y.js";const he=6,ze=["id"],ye=["id","disabled","aria-controls","aria-expanded","aria-label"],Se={class:"pz-multi-select-trigger-text"},Oe=["id","aria-labelledby"],we={class:"pz-multi-select-options"},Ve=["for"],Pe=["id","name","checked","disabled","onChange"],Te={class:"pz-multi-select-option-text"},S=pe({name:"PzMultiSelect",__name:"PzMultiSelect",props:{name:{},options:{},modelValue:{default:()=>[]},label:{default:""},placeholder:{default:""},selectedLabel:{default:"{count} обрано"},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},width:{default:void 0}},emits:["update:modelValue"],setup(e,{emit:n}){const l=e,u=n,m=o(null),{width:ae}=fe(m),c=t=>l.modelValue.some(s=>$.isEqual(s,t)),oe=t=>{const s=c(t)?l.modelValue.filter(a=>!$.isEqual(a,t)):[...l.modelValue,t];u("update:modelValue",s)},N=f(()=>l.options.filter(t=>c(t.value))),k=f(()=>{var s;const t=l.modelValue.length;return t===0?l.placeholder:t===1?((s=N.value[0])==null?void 0:s.label)??l.placeholder:l.selectedLabel.replace("{count}",String(t))}),se=f(()=>l.label||k.value||l.placeholder||l.name),ie=f(()=>{const t=Math.round(ae.value);return t?{inlineSize:`${String(t)}px`}:{}}),O=(t,s)=>t.id??`${l.name}-multi-option-${String(s+1)}`,re=t=>({option:t,selected:c(t.value),disabled:!!t.disabled});return(t,s)=>(q(),V("div",{id:e.name,class:"pz-multi-select",style:L({width:e.width})},[P(g(be),{label:e.label,for:e.name+"-trigger",required:e.required,disabled:e.disabled},{default:T(()=>[P(g(xe),{class:"pz-multi-select-dropdown",theme:"dropdown",placement:"bottom-start",container:"#"+e.name,distance:g(he),disabled:e.disabled},{default:T(({shown:a})=>[i("button",{id:e.name+"-trigger",ref_key:"triggerRef",ref:m,type:"button",class:F(["pz-multi-select-trigger",{"is-open":a,"is-placeholder":!e.modelValue.length}]),disabled:e.disabled,"aria-controls":e.name+"-menu","aria-expanded":a?"true":"false","aria-haspopup":"listbox","aria-label":e.label?void 0:se.value},[i("span",Se,[D(t.$slots,"selected",{selectedOptions:N.value,placeholder:e.placeholder,count:e.modelValue.length},()=>[J(C(k.value),1)],!0)]),P(g(ne),{name:"expand_more",size:"20",class:"pz-multi-select-trigger-icon"})],10,ye)]),popper:T(()=>[i("div",{id:e.name+"-menu",class:"pz-multi-select-menu",style:L(ie.value),role:"group","aria-labelledby":e.name+"-trigger"},[i("div",we,[(q(!0),V(de,null,ce(l.options,(a,w)=>(q(),V("label",{key:O(a,w),for:O(a,w),class:F(["pz-multi-select-option",{"is-selected":c(a.value),"is-disabled":a.disabled}])},[i("input",{id:O(a,w),type:"checkbox",name:e.name+"-option",checked:c(a.value),disabled:a.disabled,class:"pz-multi-select-option-input",onChange:Fe=>oe(a.value)},null,40,Pe),s[0]||(s[0]=i("span",{class:"pz-multi-select-option-checkbox","aria-hidden":"true"},[i("svg",{class:"pz-multi-select-option-check",viewBox:"0 0 16 16",fill:"none"},[i("path",{d:"M3.5 8.25L6.5 11L12.5 5",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),i("span",Te,[D(t.$slots,"default",ue({ref_for:!0},re(a)),()=>[J(C(a.label),1)],!0)])],10,Ve))),128))])],12,Oe)]),_:3},8,["container","distance","disabled"])]),_:3},8,["label","for","required","disabled"])],12,ze))}}),r=ve(S,[["__scopeId","data-v-a2e139a1"]]);S.__docgenInfo=Object.assign({displayName:S.name??S.__name},{name:"PzMultiSelect",exportName:"default",displayName:"PzMultiSelect",description:"",tags:{},props:[{name:"name",required:!0,type:{name:"string"}},{name:"options",required:!0,type:{name:"Array",elements:[{name:"PzFormSelectOption"}]}},{name:"modelValue",required:!0,type:{name:"Array",elements:[{name:"PzFormSelectValue"}]},defaultValue:{func:!1,value:"() => []"}},{name:"label",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'""'}},{name:"placeholder",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'""'}},{name:"selectedLabel",required:!1,type:{name:"string"},defaultValue:{func:!1,value:'"{count} обрано"'}},{name:"disabled",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"required",required:!1,type:{name:"boolean"},defaultValue:{func:!1,value:"false"}},{name:"width",required:!1,type:{name:"string"},defaultValue:{func:!1,value:"undefined"}}],slots:[{name:"selected",scoped:!0,bindings:[{name:"selected-options",title:"binding"},{name:"placeholder",title:"binding"},{name:"count",title:"binding"}]},{name:"default",scoped:!0,bindings:[]}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Form/PzMultiSelect/PzMultiSelect.vue"]});const p=[{label:"09000000-3 - Нафтопродукти, паливо, електроенергія та інші джерела енергії",value:"09000000-3"},{label:"09100000-0 - Паливо",value:"09100000-0"},{label:"09200000-1 - Нафта, вугілля і нафтопродукти",value:"09200000-1"},{label:"09300000-2 - Електрична, теплова, сонячна та атомна енергія",value:"09300000-2"},{label:"90900000-6 - Послуги з прибирання та санітарно-гігієнічні послуги",value:"90900000-6"}],M=[{label:"Чернетка",value:"draft"},{label:"Активний тендер",value:"active"},{label:"Архів",value:"archive"},{label:"Недоступний",value:"unavailable",disabled:!0}],qe=30,Me=2,I=["Будівництво","Послуги","Транспорт","Освіта","Енергія"],Ne=Array.from({length:qe},(e,n)=>{const l=I[n%I.length];return{label:`Категорія ${String(n+1).padStart(Me,"0")} — ${l}`,value:`category-${n+1}`}}),ke=e=>`<template>
2
+ <PzMultiSelect
3
+ v-model="value"
4
+ ${[`name="${e.name}"`,e.label?`label="${e.label}"`:null,e.placeholder?`placeholder="${e.placeholder}"`:null,e.selectedLabel&&e.selectedLabel!=="{count} обрано"?`selected-label="${e.selectedLabel}"`:null,e.required?':required="true"':null,e.disabled?':disabled="true"':null].filter(l=>!!l).join(" ")}
5
+ :options="options"
6
+ />
7
+ </template>
8
+
9
+ <script setup lang="ts">
10
+ import { ref } from "vue";
11
+
12
+ const options = [
13
+ { label: "Option A", value: "a" },
14
+ { label: "Option B", value: "b" },
15
+ { label: "Option C", value: "c" },
16
+ ];
17
+
18
+ const value = ref<string[]>([]);
19
+ <\/script>`,Le={title:"Components/Form/PzMultiSelect",component:r,parameters:{docs:{description:{component:"Multi-select dropdown with checkbox rows. Toggling an option emits `update:modelValue` immediately — selection updates as the user clicks. The dropdown stays open while toggling and closes on outside click."},source:{transform:(e,n)=>ke(n.args??Le.args)}}},args:{name:"pz-multi-select-story",label:"Класифікатор",modelValue:[],options:p,placeholder:"Оберіть значення",selectedLabel:"{count} обрано",required:!1,disabled:!1,width:void 0},argTypes:{name:{control:"text",description:"Stable field name used to derive trigger and option ids."},label:{control:"text",description:"Visible label rendered above the trigger."},options:{control:!1,description:"Array of options with `label`, `value`, and optional `disabled` or `id`."},modelValue:{control:!1,description:"Array of currently selected primitive values."},placeholder:{control:"text",description:"Text shown in the trigger when no option is selected."},selectedLabel:{control:"text",description:"Template for the trigger text when 2+ options are selected. Use `{count}` placeholder."},required:{control:"boolean",description:"Adds the required indicator to the label."},disabled:{control:"boolean",description:"Disables the trigger and prevents the menu from opening."},width:{control:"text",description:"Optional explicit width applied to the component root."}},render:e=>({components:{pzMultiSelect:r,pzText:d},setup(){const n=o([...e.modelValue]),l=o(["09100000-0","09300000-2"]),u=o([]);return me(()=>e.modelValue,m=>{n.value=[...m]},{deep:!0}),{args:e,procurementOptions:p,statusOptions:M,value:n,preselected:l,filterValue:u}},template:`
20
+ <div style="display:flex;flex-direction:column;gap:32px;padding:24px;max-width:720px">
21
+ <section style="display:flex;flex-direction:column;gap:16px">
22
+ <pz-text variant="h4-bold">Playground</pz-text>
23
+ <pz-multi-select
24
+ v-model="value"
25
+ :name="args.name"
26
+ :label="args.label"
27
+ :placeholder="args.placeholder"
28
+ :options="args.options"
29
+ :selected-label="args.selectedLabel"
30
+ :required="args.required"
31
+ :disabled="args.disabled"
32
+ :width="args.width"
33
+ />
34
+ <pz-text variant="body-regular">Selected values: {{ JSON.stringify(value) }}</pz-text>
35
+ </section>
36
+
37
+ <section style="display:flex;flex-direction:column;gap:16px">
38
+ <pz-text variant="h4-bold">Pre-populated selection</pz-text>
39
+ <pz-multi-select
40
+ v-model="preselected"
41
+ name="pz-multi-select-preselected"
42
+ label="Класифікатор з обраними значеннями"
43
+ placeholder="Оберіть значення"
44
+ :options="procurementOptions"
45
+ />
46
+ <pz-text variant="body-regular">Selected values: {{ JSON.stringify(preselected) }}</pz-text>
47
+ </section>
48
+
49
+ <section style="display:flex;flex-direction:column;gap:16px">
50
+ <pz-text variant="h4-bold">Status filter (with disabled option)</pz-text>
51
+ <pz-multi-select
52
+ v-model="filterValue"
53
+ name="pz-multi-select-status"
54
+ label="Статус"
55
+ placeholder="Усі статуси"
56
+ :options="statusOptions"
57
+ />
58
+ <pz-text variant="body-regular">Selected statuses: {{ JSON.stringify(filterValue) }}</pz-text>
59
+ </section>
60
+ </div>
61
+ `})},x={parameters:{docs:{description:{story:"Default interactive story. Open the dropdown and toggle items — the model updates on each click. The dropdown stays open while selecting and closes on outside click."}}}},b={parameters:{docs:{description:{story:"Custom rendering via the `#selected` and default scoped slots. The `#selected` slot receives `{ selectedOptions, placeholder, count }` and controls the trigger content. The default slot receives `{ option, selected, disabled }` and controls each option row."}}},render:()=>({components:{pzMultiSelect:r,pzText:d,pzTag:ge,pzIcon:ne},setup(){const e=o(["09100000-0"]),n=o([]),l=o([]);return{tagsValue:e,counterValue:n,richOptionValue:l,procurementOptions:p,statusOptions:M}},template:`
62
+ <div style="display:flex;flex-direction:column;gap:32px;padding:24px;max-width:720px">
63
+ <section style="display:flex;flex-direction:column;gap:12px">
64
+ <pz-text variant="h4-bold">Trigger renders selected values as tags</pz-text>
65
+ <pz-multi-select
66
+ v-model="tagsValue"
67
+ name="pz-multi-select-slots-tags"
68
+ label="Класифікатор"
69
+ placeholder="Оберіть значення"
70
+ :options="procurementOptions"
71
+ >
72
+ <template #selected="{ selectedOptions, placeholder, count }">
73
+ <span v-if="count === 0" style="color:var(--pz-color-text-secondary)">{{ placeholder }}</span>
74
+ <span v-else style="display:inline-flex;flex-wrap:wrap;gap:6px">
75
+ <pz-tag v-for="opt in selectedOptions" :key="String(opt.value)" variant="blue">
76
+ {{ opt.value }}
77
+ </pz-tag>
78
+ </span>
79
+ </template>
80
+ </pz-multi-select>
81
+ <pz-text variant="body-regular">Selected: {{ JSON.stringify(tagsValue) }}</pz-text>
82
+ </section>
83
+
84
+ <section style="display:flex;flex-direction:column;gap:12px">
85
+ <pz-text variant="h4-bold">Custom counter trigger</pz-text>
86
+ <pz-multi-select
87
+ v-model="counterValue"
88
+ name="pz-multi-select-slots-counter"
89
+ label="Статус"
90
+ placeholder="Усі статуси"
91
+ :options="statusOptions"
92
+ >
93
+ <template #selected="{ selectedOptions, placeholder, count }">
94
+ <span v-if="count === 0">{{ placeholder }}</span>
95
+ <span v-else-if="count === 1" style="font-weight:600">{{ selectedOptions[0]?.label }}</span>
96
+ <span v-else style="font-weight:600">Обрано {{ count }} зі {{ statusOptions.length }}</span>
97
+ </template>
98
+ </pz-multi-select>
99
+ <pz-text variant="body-regular">Selected: {{ JSON.stringify(counterValue) }}</pz-text>
100
+ </section>
101
+
102
+ <section style="display:flex;flex-direction:column;gap:12px">
103
+ <pz-text variant="h4-bold">Rich option rows (default slot)</pz-text>
104
+ <pz-multi-select
105
+ v-model="richOptionValue"
106
+ name="pz-multi-select-slots-options"
107
+ label="Класифікатор"
108
+ placeholder="Оберіть значення"
109
+ :options="procurementOptions"
110
+ >
111
+ <template #default="{ option, selected }">
112
+ <span style="flex:1">{{ option.label }}</span>
113
+ <pz-icon v-if="selected" name="check" size="16" />
114
+ </template>
115
+ </pz-multi-select>
116
+ <pz-text variant="body-regular">Selected: {{ JSON.stringify(richOptionValue) }}</pz-text>
117
+ </section>
118
+ </div>
119
+ `})},v={parameters:{docs:{description:{story:"Required field with a visible label indicator. Use the `required` prop together with `label` to integrate with form validation flows."}}},render:()=>({components:{pzMultiSelect:r,pzText:d},setup(){return{value:o([]),procurementOptions:p}},template:`
120
+ <div style="display:flex;flex-direction:column;gap:16px;padding:24px;max-width:480px">
121
+ <pz-multi-select
122
+ v-model="value"
123
+ name="pz-multi-select-required"
124
+ label="Класифікатор"
125
+ placeholder="Оберіть значення"
126
+ :options="procurementOptions"
127
+ required
128
+ />
129
+ <pz-text variant="body-regular">
130
+ Selected: {{ value.length === 0 ? "—" : JSON.stringify(value) }}
131
+ </pz-text>
132
+ </div>
133
+ `})},h={parameters:{docs:{description:{story:"Disabled state with a pre-populated selection. The trigger renders the selected count but cannot be opened or modified."}}},render:()=>({components:{pzMultiSelect:r,pzText:d},setup(){const e=o([]),n=o(["09100000-0","09300000-2"]);return{empty:e,preselected:n,procurementOptions:p}},template:`
134
+ <div style="display:flex;flex-direction:column;gap:24px;padding:24px;max-width:480px">
135
+ <section style="display:flex;flex-direction:column;gap:8px">
136
+ <pz-text variant="body-semibold">Disabled, no selection</pz-text>
137
+ <pz-multi-select
138
+ v-model="empty"
139
+ name="pz-multi-select-disabled-empty"
140
+ label="Класифікатор"
141
+ placeholder="Оберіть значення"
142
+ :options="procurementOptions"
143
+ disabled
144
+ />
145
+ </section>
146
+
147
+ <section style="display:flex;flex-direction:column;gap:8px">
148
+ <pz-text variant="body-semibold">Disabled, with pre-selected values</pz-text>
149
+ <pz-multi-select
150
+ v-model="preselected"
151
+ name="pz-multi-select-disabled-preselected"
152
+ label="Класифікатор"
153
+ :options="procurementOptions"
154
+ disabled
155
+ />
156
+ </section>
157
+ </div>
158
+ `})},z={parameters:{docs:{description:{story:"Long option list demonstrating the scrollable dropdown body. The options container caps its height and scrolls vertically while the trigger and surrounding chrome remain fixed."}}},render:()=>({components:{pzMultiSelect:r,pzText:d},setup(){return{value:o(["category-3","category-12"]),longOptions:Ne}},template:`
159
+ <div style="display:flex;flex-direction:column;gap:16px;padding:24px;max-width:480px">
160
+ <pz-multi-select
161
+ v-model="value"
162
+ name="pz-multi-select-long-list"
163
+ label="Категорії"
164
+ placeholder="Оберіть категорії"
165
+ :options="longOptions"
166
+ />
167
+ <pz-text variant="body-regular">Selected: {{ JSON.stringify(value) }}</pz-text>
168
+ </div>
169
+ `})},y={parameters:{docs:{description:{story:"Realistic page-level filter row combining several PzMultiSelect controls in a horizontal layout. Each control updates its own model independently."}}},render:()=>({components:{pzMultiSelect:r,pzText:d},setup(){const e=o(["active"]),n=o([]);return{statuses:e,categories:n,statusOptions:M,procurementOptions:p}},template:`
170
+ <div style="display:flex;flex-direction:column;gap:16px;padding:24px">
171
+ <pz-text variant="h4-bold">Filter by</pz-text>
172
+ <div style="display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:760px">
173
+ <pz-multi-select
174
+ v-model="statuses"
175
+ name="pz-multi-select-filter-status"
176
+ label="Статус"
177
+ placeholder="Усі статуси"
178
+ :options="statusOptions"
179
+ />
180
+ <pz-multi-select
181
+ v-model="categories"
182
+ name="pz-multi-select-filter-category"
183
+ label="Класифікатор"
184
+ placeholder="Усі категорії"
185
+ :options="procurementOptions"
186
+ />
187
+ </div>
188
+ <pz-text variant="body-regular">
189
+ Active filters — statuses: {{ JSON.stringify(statuses) }}, categories: {{ JSON.stringify(categories) }}
190
+ </pz-text>
191
+ </div>
192
+ `})};var A,E,R;x.parameters={...x.parameters,docs:{...(A=x.parameters)==null?void 0:A.docs,source:{originalSource:`{
193
+ parameters: {
194
+ docs: {
195
+ description: {
196
+ story: "Default interactive story. Open the dropdown and toggle items — the model updates on each click. The dropdown stays open while selecting and closes on outside click."
197
+ }
198
+ }
199
+ }
200
+ }`,...(R=(E=x.parameters)==null?void 0:E.docs)==null?void 0:R.source}}};var _,B,W;b.parameters={...b.parameters,docs:{...(_=b.parameters)==null?void 0:_.docs,source:{originalSource:`{
201
+ parameters: {
202
+ docs: {
203
+ description: {
204
+ story: "Custom rendering via the \`#selected\` and default scoped slots. The \`#selected\` slot receives \`{ selectedOptions, placeholder, count }\` and controls the trigger content. The default slot receives \`{ option, selected, disabled }\` and controls each option row."
205
+ }
206
+ }
207
+ },
208
+ render: () => ({
209
+ components: {
210
+ pzMultiSelect: PzMultiSelect,
211
+ pzText: PzText,
212
+ pzTag: PzTag,
213
+ pzIcon: PzIcon
214
+ },
215
+ setup() {
216
+ const tagsValue = ref<PzFormSelectValue[]>(["09100000-0"]);
217
+ const counterValue = ref<PzFormSelectValue[]>([]);
218
+ const richOptionValue = ref<PzFormSelectValue[]>([]);
219
+ return {
220
+ tagsValue,
221
+ counterValue,
222
+ richOptionValue,
223
+ procurementOptions,
224
+ statusOptions
225
+ };
226
+ },
227
+ template: \`
228
+ <div style="display:flex;flex-direction:column;gap:32px;padding:24px;max-width:720px">
229
+ <section style="display:flex;flex-direction:column;gap:12px">
230
+ <pz-text variant="h4-bold">Trigger renders selected values as tags</pz-text>
231
+ <pz-multi-select
232
+ v-model="tagsValue"
233
+ name="pz-multi-select-slots-tags"
234
+ label="Класифікатор"
235
+ placeholder="Оберіть значення"
236
+ :options="procurementOptions"
237
+ >
238
+ <template #selected="{ selectedOptions, placeholder, count }">
239
+ <span v-if="count === 0" style="color:var(--pz-color-text-secondary)">{{ placeholder }}</span>
240
+ <span v-else style="display:inline-flex;flex-wrap:wrap;gap:6px">
241
+ <pz-tag v-for="opt in selectedOptions" :key="String(opt.value)" variant="blue">
242
+ {{ opt.value }}
243
+ </pz-tag>
244
+ </span>
245
+ </template>
246
+ </pz-multi-select>
247
+ <pz-text variant="body-regular">Selected: {{ JSON.stringify(tagsValue) }}</pz-text>
248
+ </section>
249
+
250
+ <section style="display:flex;flex-direction:column;gap:12px">
251
+ <pz-text variant="h4-bold">Custom counter trigger</pz-text>
252
+ <pz-multi-select
253
+ v-model="counterValue"
254
+ name="pz-multi-select-slots-counter"
255
+ label="Статус"
256
+ placeholder="Усі статуси"
257
+ :options="statusOptions"
258
+ >
259
+ <template #selected="{ selectedOptions, placeholder, count }">
260
+ <span v-if="count === 0">{{ placeholder }}</span>
261
+ <span v-else-if="count === 1" style="font-weight:600">{{ selectedOptions[0]?.label }}</span>
262
+ <span v-else style="font-weight:600">Обрано {{ count }} зі {{ statusOptions.length }}</span>
263
+ </template>
264
+ </pz-multi-select>
265
+ <pz-text variant="body-regular">Selected: {{ JSON.stringify(counterValue) }}</pz-text>
266
+ </section>
267
+
268
+ <section style="display:flex;flex-direction:column;gap:12px">
269
+ <pz-text variant="h4-bold">Rich option rows (default slot)</pz-text>
270
+ <pz-multi-select
271
+ v-model="richOptionValue"
272
+ name="pz-multi-select-slots-options"
273
+ label="Класифікатор"
274
+ placeholder="Оберіть значення"
275
+ :options="procurementOptions"
276
+ >
277
+ <template #default="{ option, selected }">
278
+ <span style="flex:1">{{ option.label }}</span>
279
+ <pz-icon v-if="selected" name="check" size="16" />
280
+ </template>
281
+ </pz-multi-select>
282
+ <pz-text variant="body-regular">Selected: {{ JSON.stringify(richOptionValue) }}</pz-text>
283
+ </section>
284
+ </div>
285
+ \`
286
+ })
287
+ }`,...(W=(B=b.parameters)==null?void 0:B.docs)==null?void 0:W.source}}};var U,j,G;v.parameters={...v.parameters,docs:{...(U=v.parameters)==null?void 0:U.docs,source:{originalSource:`{
288
+ parameters: {
289
+ docs: {
290
+ description: {
291
+ story: "Required field with a visible label indicator. Use the \`required\` prop together with \`label\` to integrate with form validation flows."
292
+ }
293
+ }
294
+ },
295
+ render: () => ({
296
+ components: {
297
+ pzMultiSelect: PzMultiSelect,
298
+ pzText: PzText
299
+ },
300
+ setup() {
301
+ const value = ref<PzFormSelectValue[]>([]);
302
+ return {
303
+ value,
304
+ procurementOptions
305
+ };
306
+ },
307
+ template: \`
308
+ <div style="display:flex;flex-direction:column;gap:16px;padding:24px;max-width:480px">
309
+ <pz-multi-select
310
+ v-model="value"
311
+ name="pz-multi-select-required"
312
+ label="Класифікатор"
313
+ placeholder="Оберіть значення"
314
+ :options="procurementOptions"
315
+ required
316
+ />
317
+ <pz-text variant="body-regular">
318
+ Selected: {{ value.length === 0 ? "—" : JSON.stringify(value) }}
319
+ </pz-text>
320
+ </div>
321
+ \`
322
+ })
323
+ }`,...(G=(j=v.parameters)==null?void 0:j.docs)==null?void 0:G.source}}};var X,Z,H;h.parameters={...h.parameters,docs:{...(X=h.parameters)==null?void 0:X.docs,source:{originalSource:`{
324
+ parameters: {
325
+ docs: {
326
+ description: {
327
+ story: "Disabled state with a pre-populated selection. The trigger renders the selected count but cannot be opened or modified."
328
+ }
329
+ }
330
+ },
331
+ render: () => ({
332
+ components: {
333
+ pzMultiSelect: PzMultiSelect,
334
+ pzText: PzText
335
+ },
336
+ setup() {
337
+ const empty = ref<PzFormSelectValue[]>([]);
338
+ const preselected = ref<PzFormSelectValue[]>(["09100000-0", "09300000-2"]);
339
+ return {
340
+ empty,
341
+ preselected,
342
+ procurementOptions
343
+ };
344
+ },
345
+ template: \`
346
+ <div style="display:flex;flex-direction:column;gap:24px;padding:24px;max-width:480px">
347
+ <section style="display:flex;flex-direction:column;gap:8px">
348
+ <pz-text variant="body-semibold">Disabled, no selection</pz-text>
349
+ <pz-multi-select
350
+ v-model="empty"
351
+ name="pz-multi-select-disabled-empty"
352
+ label="Класифікатор"
353
+ placeholder="Оберіть значення"
354
+ :options="procurementOptions"
355
+ disabled
356
+ />
357
+ </section>
358
+
359
+ <section style="display:flex;flex-direction:column;gap:8px">
360
+ <pz-text variant="body-semibold">Disabled, with pre-selected values</pz-text>
361
+ <pz-multi-select
362
+ v-model="preselected"
363
+ name="pz-multi-select-disabled-preselected"
364
+ label="Класифікатор"
365
+ :options="procurementOptions"
366
+ disabled
367
+ />
368
+ </section>
369
+ </div>
370
+ \`
371
+ })
372
+ }`,...(H=(Z=h.parameters)==null?void 0:Z.docs)==null?void 0:H.source}}};var K,Q,Y;z.parameters={...z.parameters,docs:{...(K=z.parameters)==null?void 0:K.docs,source:{originalSource:`{
373
+ parameters: {
374
+ docs: {
375
+ description: {
376
+ story: "Long option list demonstrating the scrollable dropdown body. The options container caps its height and scrolls vertically while the trigger and surrounding chrome remain fixed."
377
+ }
378
+ }
379
+ },
380
+ render: () => ({
381
+ components: {
382
+ pzMultiSelect: PzMultiSelect,
383
+ pzText: PzText
384
+ },
385
+ setup() {
386
+ const value = ref<PzFormSelectValue[]>(["category-3", "category-12"]);
387
+ return {
388
+ value,
389
+ longOptions
390
+ };
391
+ },
392
+ template: \`
393
+ <div style="display:flex;flex-direction:column;gap:16px;padding:24px;max-width:480px">
394
+ <pz-multi-select
395
+ v-model="value"
396
+ name="pz-multi-select-long-list"
397
+ label="Категорії"
398
+ placeholder="Оберіть категорії"
399
+ :options="longOptions"
400
+ />
401
+ <pz-text variant="body-regular">Selected: {{ JSON.stringify(value) }}</pz-text>
402
+ </div>
403
+ \`
404
+ })
405
+ }`,...(Y=(Q=z.parameters)==null?void 0:Q.docs)==null?void 0:Y.source}}};var ee,te,le;y.parameters={...y.parameters,docs:{...(ee=y.parameters)==null?void 0:ee.docs,source:{originalSource:`{
406
+ parameters: {
407
+ docs: {
408
+ description: {
409
+ story: "Realistic page-level filter row combining several PzMultiSelect controls in a horizontal layout. Each control updates its own model independently."
410
+ }
411
+ }
412
+ },
413
+ render: () => ({
414
+ components: {
415
+ pzMultiSelect: PzMultiSelect,
416
+ pzText: PzText
417
+ },
418
+ setup() {
419
+ const statuses = ref<PzFormSelectValue[]>(["active"]);
420
+ const categories = ref<PzFormSelectValue[]>([]);
421
+ return {
422
+ statuses,
423
+ categories,
424
+ statusOptions,
425
+ procurementOptions
426
+ };
427
+ },
428
+ template: \`
429
+ <div style="display:flex;flex-direction:column;gap:16px;padding:24px">
430
+ <pz-text variant="h4-bold">Filter by</pz-text>
431
+ <div style="display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:760px">
432
+ <pz-multi-select
433
+ v-model="statuses"
434
+ name="pz-multi-select-filter-status"
435
+ label="Статус"
436
+ placeholder="Усі статуси"
437
+ :options="statusOptions"
438
+ />
439
+ <pz-multi-select
440
+ v-model="categories"
441
+ name="pz-multi-select-filter-category"
442
+ label="Класифікатор"
443
+ placeholder="Усі категорії"
444
+ :options="procurementOptions"
445
+ />
446
+ </div>
447
+ <pz-text variant="body-regular">
448
+ Active filters — statuses: {{ JSON.stringify(statuses) }}, categories: {{ JSON.stringify(categories) }}
449
+ </pz-text>
450
+ </div>
451
+ \`
452
+ })
453
+ }`,...(le=(te=y.parameters)==null?void 0:te.docs)==null?void 0:le.source}}};const Ue=["Playground","WithSlots","Required","Disabled","LongList","InFilterRow"];export{h as Disabled,y as InFilterRow,z as LongList,x as Playground,v as Required,b as WithSlots,Ue as __namedExportsOrder,Le as default};
@@ -1,4 +1,4 @@
1
- import{d as R,e as r,F,s as $,o,f as m,i as B,j,l as y,u as x,t as b,y as A,R as O,B as L,g as V,h as z,S as f}from"./iframe-Ckq2fQkL.js";import{_ as W,P as g}from"./PzText-BOcxbzaG.js";import"./preload-helper-C1FmrZbK.js";const Q={class:"pz-nav"},l=R({name:"PzNav",__name:"PzNav",props:{config:{}},setup(s){const t=L(),h=s,d=a=>{const[n=""]=a.split("#");return n?n.startsWith("/")?n:`/${n}`:"/"},q=a=>a.startsWith("#")?a:d(a),E=V(()=>!h.config.some(a=>d(a.path)===t.path)),u=a=>d(a.path)===t.path||E.value&&!!a.isDefault;return(a,n)=>(o(),r("ul",Q,[(o(!0),r(F,null,$(h.config,(e,M)=>(o(),r("li",{key:`${e.path}-${M}`,class:m(["pz-nav__item",[{disabled:e.disabled},{active:u(e)}]])},[e.disabled?(o(),r("span",{key:1,class:m(["pz-nav__text",{active:u(e)}])},[y(a.$slots,"view",{data:e},()=>[x(b(e.text),1)],!0)],2)):(o(),B(A(O),{key:0,to:q(e.path),class:m(["pz-nav__text",{active:u(e)}])},{default:j(()=>[y(a.$slots,"view",{data:e},()=>[x(b(e.text),1)],!0)]),_:2},1032,["to","class"]))],2))),128))]))}}),v=W(l,[["__scopeId","data-v-5d1c69f0"]]);l.__docgenInfo=Object.assign({displayName:l.name??l.__name},{name:"PzNav",exportName:"default",displayName:"PzNav",description:"",tags:{},props:[{name:"config",required:!0,type:{name:"Array",elements:[{name:"PzNavItem"}]}}],slots:[{name:"view",scoped:!0,bindings:[{name:"data",title:"binding"}]}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Navigation/PzNav/PzNav.vue"]});const N=[{path:"/market/procedures",text:"Закупівлі",isDefault:!0},{path:"/market/contracts",text:"Договори"},{path:"/market/plans",text:"Плани"},{path:"/market/selection",text:"Відбори"},{path:"/market/products",text:"Товари"}],U=[{path:"/tender/details",text:"Деталі закупівлі",isDefault:!0},{path:"/tender/questions",text:"Питання та вимоги (0)"},{path:"/tender/complaints",text:"Скарги (0)"},{path:"/tender/monitoring",text:"Моніторинг (0)",disabled:!0}],G=[{path:"/archive/overview",text:"Overview",isDefault:!0},{path:"/archive/history",text:"History",disabled:!0},{path:"/archive/files",text:"Files"}],H=s=>`<template>
1
+ import{d as R,e as r,F,A as $,o,f as m,B as A,D as B,l as y,E as x,t as b,u as j,R as O,K as L,g as V,j as z,a1 as f}from"./iframe-BfW4-zQw.js";import{P as g}from"./PzText-REfIJddB.js";import{_ as W}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./preload-helper-C1FmrZbK.js";const Q={class:"pz-nav"},l=R({name:"PzNav",__name:"PzNav",props:{config:{}},setup(s){const t=L(),h=s,d=a=>{const[n=""]=a.split("#");return n?n.startsWith("/")?n:`/${n}`:"/"},E=a=>a.startsWith("#")?a:d(a),q=V(()=>!h.config.some(a=>d(a.path)===t.path)),u=a=>d(a.path)===t.path||q.value&&!!a.isDefault;return(a,n)=>(o(),r("ul",Q,[(o(!0),r(F,null,$(h.config,(e,M)=>(o(),r("li",{key:`${e.path}-${M}`,class:m(["pz-nav__item",[{disabled:e.disabled},{active:u(e)}]])},[e.disabled?(o(),r("span",{key:1,class:m(["pz-nav__text",{active:u(e)}])},[y(a.$slots,"view",{data:e},()=>[x(b(e.text),1)],!0)],2)):(o(),A(j(O),{key:0,to:E(e.path),class:m(["pz-nav__text",{active:u(e)}])},{default:B(()=>[y(a.$slots,"view",{data:e},()=>[x(b(e.text),1)],!0)]),_:2},1032,["to","class"]))],2))),128))]))}}),v=W(l,[["__scopeId","data-v-5d1c69f0"]]);l.__docgenInfo=Object.assign({displayName:l.name??l.__name},{name:"PzNav",exportName:"default",displayName:"PzNav",description:"",tags:{},props:[{name:"config",required:!0,type:{name:"Array",elements:[{name:"PzNavItem"}]}}],slots:[{name:"view",scoped:!0,bindings:[{name:"data",title:"binding"}]}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Navigation/PzNav/PzNav.vue"]});const N=[{path:"/market/procedures",text:"Закупівлі",isDefault:!0},{path:"/market/contracts",text:"Договори"},{path:"/market/plans",text:"Плани"},{path:"/market/selection",text:"Відбори"},{path:"/market/products",text:"Товари"}],U=[{path:"/tender/details",text:"Деталі закупівлі",isDefault:!0},{path:"/tender/questions",text:"Питання та вимоги (0)"},{path:"/tender/complaints",text:"Скарги (0)"},{path:"/tender/monitoring",text:"Моніторинг (0)",disabled:!0}],G=[{path:"/archive/overview",text:"Overview",isDefault:!0},{path:"/archive/history",text:"History",disabled:!0},{path:"/archive/files",text:"Files"}],H=s=>`<template>
2
2
  <PzNav :config='${JSON.stringify(s.config,null,2)}' />
3
3
  </template>`,J=()=>`<template>
4
4
  <PzNav :config="config">
@@ -96,7 +96,7 @@ import{d as R,e as r,F,s as $,o,f as m,i as B,j,l as y,u as x,t as b,y as A,R as
96
96
  </div>
97
97
  </section>
98
98
  </div>
99
- `})};var w,P,k;i.parameters={...i.parameters,docs:{...(w=i.parameters)==null?void 0:w.docs,source:{originalSource:"{}",...(k=(P=i.parameters)==null?void 0:P.docs)==null?void 0:k.source}}};var _,S,D;c.parameters={...c.parameters,docs:{...(_=c.parameters)==null?void 0:_.docs,source:{originalSource:`{
99
+ `})};var w,P,k;i.parameters={...i.parameters,docs:{...(w=i.parameters)==null?void 0:w.docs,source:{originalSource:"{}",...(k=(P=i.parameters)==null?void 0:P.docs)==null?void 0:k.source}}};var _,D,S;c.parameters={...c.parameters,docs:{...(_=c.parameters)==null?void 0:_.docs,source:{originalSource:`{
100
100
  args: {
101
101
  config: archiveNavItems
102
102
  },
@@ -132,7 +132,7 @@ import{d as R,e as r,F,s as $,o,f as m,i as B,j,l as y,u as x,t as b,y as A,R as
132
132
  </div>
133
133
  \`
134
134
  })
135
- }`,...(D=(S=c.parameters)==null?void 0:S.docs)==null?void 0:D.source}}};var I,T,C;p.parameters={...p.parameters,docs:{...(I=p.parameters)==null?void 0:I.docs,source:{originalSource:`{
135
+ }`,...(S=(D=c.parameters)==null?void 0:D.docs)==null?void 0:S.source}}};var I,T,C;p.parameters={...p.parameters,docs:{...(I=p.parameters)==null?void 0:I.docs,source:{originalSource:`{
136
136
  parameters: {
137
137
  docs: {
138
138
  source: {
@@ -194,4 +194,4 @@ import{d as R,e as r,F,s as $,o,f as m,i as B,j,l as y,u as x,t as b,y as A,R as
194
194
  </div>
195
195
  \`
196
196
  })
197
- }`,...(C=(T=p.parameters)==null?void 0:T.docs)==null?void 0:C.source}}};const aa=["Playground","DefaultFallback","CustomItemView"];export{p as CustomItemView,c as DefaultFallback,i as Playground,aa as __namedExportsOrder,K as default};
197
+ }`,...(C=(T=p.parameters)==null?void 0:T.docs)==null?void 0:C.source}}};const ta=["Playground","DefaultFallback","CustomItemView"];export{p as CustomItemView,c as DefaultFallback,i as Playground,ta as __namedExportsOrder,K as default};
@@ -1,4 +1,4 @@
1
- import{P as o}from"./PzNumberFormat-D5xYsZ3A.js";import{P as a}from"./PzText-BOcxbzaG.js";import"./lodash-CdDiHlzQ.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iframe-Ckq2fQkL.js";import"./preload-helper-C1FmrZbK.js";const c={title:"Utilities/PzNumberFormat",parameters:{docs:{description:{component:"The `PzNumberFormat` utility is used to format numbers consistently, adding division for thousands and handling decimals."}}}},e={render:()=>({components:{pzText:a},setup(){return{examples:[{value:1234567,description:"Millions without decimals"},{value:1234567891e-3,precision:2,description:"Millions with 2 decimals precision"},{value:"54321.1",description:"String input with 1 decimal"},{value:0,description:"Zero"},{value:"-",description:"Invalid/empty dash"},{value:null,description:"Null value"}].map(n=>({...n,result:new o(n.value,n.precision).number}))}},template:`
1
+ import{P as o}from"./PzNumberFormat-D5xYsZ3A.js";import{P as a}from"./PzText-REfIJddB.js";import"./lodash-CdDiHlzQ.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iframe-BfW4-zQw.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const x={title:"Utilities/PzNumberFormat",parameters:{docs:{description:{component:"The `PzNumberFormat` utility is used to format numbers consistently, adding division for thousands and handling decimals."}}}},e={render:()=>({components:{pzText:a},setup(){return{examples:[{value:1234567,description:"Millions without decimals"},{value:1234567891e-3,precision:2,description:"Millions with 2 decimals precision"},{value:"54321.1",description:"String input with 1 decimal"},{value:0,description:"Zero"},{value:"-",description:"Invalid/empty dash"},{value:null,description:"Null value"}].map(n=>({...n,result:new o(n.value,n.precision).number}))}},template:`
2
2
  <div>
3
3
  <pz-text variant="h4-semibold">PzNumberFormat Usage</pz-text>
4
4
  <ul style="margin-top: 16px; padding-left: 20px;">
@@ -54,4 +54,4 @@ import{P as o}from"./PzNumberFormat-D5xYsZ3A.js";import{P as a}from"./PzText-BOc
54
54
  </div>
55
55
  \`
56
56
  })
57
- }`,...(r=(i=e.parameters)==null?void 0:i.docs)==null?void 0:r.source}}};const x=["Usage"];export{e as Usage,x as __namedExportsOrder,c as default};
57
+ }`,...(r=(i=e.parameters)==null?void 0:i.docs)==null?void 0:r.source}}};const v=["Usage"];export{e as Usage,v as __namedExportsOrder,x as default};
@@ -0,0 +1 @@
1
+ import{d as I,e as o,k as s,z as y,u as h,F as q,A as w,g as l,o as i,f as T,t as $}from"./iframe-BfW4-zQw.js";import{_ as V}from"./PzIcon-4heVmbY5.js";import{_ as B}from"./_plugin-vue_export-helper-DlAUqK2U.js";const E={class:"pz-pagination","aria-label":"Pagination"},M={class:"pz-pagination__list"},S=["disabled"],j={key:0,class:"pz-pagination__dots","aria-hidden":"true"},A=["aria-current","onClick"],L=["disabled"],m=1,r=I({name:"PzPagination",__name:"PzPagination",props:{modelValue:{},total:{},perPage:{},radius:{default:2}},emits:["update:modelValue"],setup(p,{emit:k}){const a=p,u=k,_=l(()=>Math.ceil(a.total/a.perPage)),f=l(()=>a.modelValue<=1),P=l(()=>a.modelValue>=_.value),N=l(()=>{const t=_.value;if(t<=0)return[];if(t===1)return[{type:"page",page:m}];const d=a.modelValue,e=a.radius,c=m+1,b=t-1,z=Math.max(c,d-e),v=Math.min(b,d+e),n=[{type:"page",page:m}];z>c&&n.push({type:"dots",side:"left"});for(let g=z;g<=v;g++)n.push({type:"page",page:g});return v<b&&n.push({type:"dots",side:"right"}),n.push({type:"page",page:t}),n}),x=t=>{t!==a.modelValue&&u("update:modelValue",t)},C=()=>{f.value||u("update:modelValue",a.modelValue-1)},F=()=>{P.value||u("update:modelValue",a.modelValue+1)};return(t,d)=>(i(),o("nav",E,[s("ul",M,[s("li",null,[s("button",{type:"button",class:"pz-pagination__btn pz-pagination__btn--nav",disabled:f.value,"aria-label":"Попередня сторінка",onClick:C},[y(h(V),{name:"chevron_left",size:"24"})],8,S)]),(i(!0),o(q,null,w(N.value,e=>(i(),o("li",{key:e.type==="page"?`p-${e.page}`:`d-${e.side}`,class:"pz-pagination__item"},[e.type==="dots"?(i(),o("span",j," … ")):(i(),o("button",{key:1,type:"button",class:T(["pz-pagination__btn",{"pz-pagination__btn--active":e.page===p.modelValue}]),"aria-current":e.page===p.modelValue?"page":void 0,onClick:c=>x(e.page)},$(e.page),11,A))]))),128)),s("li",null,[s("button",{type:"button",class:"pz-pagination__btn pz-pagination__btn--nav",disabled:P.value,"aria-label":"Наступна сторінка",onClick:F},[y(h(V),{name:"chevron_right",size:"24"})],8,L)])])]))}}),R=B(r,[["__scopeId","data-v-9513ae82"]]);r.__docgenInfo=Object.assign({displayName:r.name??r.__name},{name:"PzPagination",exportName:"default",displayName:"PzPagination",description:"",tags:{},props:[{name:"modelValue",required:!0,type:{name:"number"}},{name:"total",required:!0,type:{name:"number"}},{name:"perPage",required:!0,type:{name:"number"}},{name:"radius",required:!1,type:{name:"number"},defaultValue:{func:!1,value:"2"}}],sourceFiles:["/builds/Web-Projects/client-services/prozorro-ui/src/components/Navigation/PzPagination/PzPagination.vue"]});export{R as P};
@@ -0,0 +1 @@
1
+ .pz-pagination__list[data-v-9513ae82]{display:flex;align-items:center;gap:var(--pz-space-4);list-style:none;margin:0;padding:0}.pz-pagination__item[data-v-9513ae82]{display:flex}.pz-pagination__btn[data-v-9513ae82]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:2px;background:transparent;color:var(--pz-color-text-primary);cursor:pointer;transition:color .16s ease,background-color .16s ease,border-color .16s ease;font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5}.pz-pagination__btn[data-v-9513ae82]:hover:not(:disabled){background-color:var(--pz-color-grey-20);border-color:var(--pz-color-tag-blue);color:var(--pz-color-text-link-hover)}.pz-pagination__btn--active[data-v-9513ae82]{border-color:var(--pz-color-tag-blue)}.pz-pagination__btn--nav[data-v-9513ae82]{color:var(--pz-color-text-primary)}.pz-pagination__btn--nav[data-v-9513ae82]:disabled{opacity:.35;cursor:default}.pz-pagination__dots[data-v-9513ae82]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--pz-color-text-secondary);font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5}
@@ -1 +1 @@
1
- .pz-pagination-story{display:grid;gap:var(--pz-space-24)}.pz-pagination-story-board,.pz-pagination-story-gallery{display:grid;gap:var(--pz-space-16);padding:var(--pz-space-24);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent);border-radius:var(--pz-space-24);background:radial-gradient(circle at top right,color-mix(in srgb,var(--pz-color-blue-50) 8%,transparent),transparent 34%),linear-gradient(180deg,color-mix(in srgb,var(--pz-color-white) 98%,transparent),color-mix(in srgb,var(--pz-color-grey-20) 90%,var(--pz-color-white)));box-shadow:0 18px 48px color-mix(in srgb,var(--pz-color-black-90) 7%,transparent),inset 0 1px color-mix(in srgb,var(--pz-color-white) 96%,transparent)}.pz-pagination-story-header{display:flex;align-items:start;justify-content:space-between;gap:var(--pz-space-16)}.pz-pagination-story-eyebrow,.pz-pagination-story-chip{display:inline-flex;align-items:center;width:fit-content;padding:var(--pz-space-8) var(--pz-space-16);border-radius:999px;background:color-mix(in srgb,var(--pz-color-blue-10) 92%,var(--pz-color-white));color:var(--pz-color-text-link-hover);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.pz-pagination-story-preview{display:grid;padding:var(--pz-space-24);border:1px dashed color-mix(in srgb,var(--pz-color-grey-40) 70%,transparent);border-radius:var(--pz-space-20);background:linear-gradient(color-mix(in srgb,var(--pz-color-blue-50) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--pz-color-blue-50) 4%,transparent) 1px,transparent 1px);background-size:28px 28px}.pz-pagination-story-grid{display:grid;gap:var(--pz-space-16)}.pz-pagination-story-card{display:grid;gap:var(--pz-space-8);padding:var(--pz-space-20);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 74%,transparent);border-radius:var(--pz-space-20);background:color-mix(in srgb,var(--pz-color-white) 94%,transparent);box-shadow:0 12px 32px color-mix(in srgb,var(--pz-color-black-90) 5%,transparent)}.pz-pagination-story-card-label{margin:0;color:var(--pz-color-text-secondary);font-size:var(--pz-font-size-12);font-weight:400;line-height:1.5}.pz-pagination-story-current{display:flex;align-items:center;gap:var(--pz-space-8);padding:var(--pz-space-4) var(--pz-space-8);border-radius:4px;background:color-mix(in srgb,var(--pz-color-blue-10) 80%,transparent);width:fit-content}.pz-pagination-story-current-label{color:var(--pz-color-text-secondary);font-size:var(--pz-font-size-12);font-weight:400;line-height:1.5}.pz-pagination-story-current-value{color:var(--pz-color-text-link);font-size:var(--pz-font-size-12);font-weight:700;line-height:1.5}.pz-pagination__list[data-v-9513ae82]{display:flex;align-items:center;gap:var(--pz-space-4);list-style:none;margin:0;padding:0}.pz-pagination__item[data-v-9513ae82]{display:flex}.pz-pagination__btn[data-v-9513ae82]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:2px;background:transparent;color:var(--pz-color-text-primary);cursor:pointer;transition:color .16s ease,background-color .16s ease,border-color .16s ease;font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5}.pz-pagination__btn[data-v-9513ae82]:hover:not(:disabled){background-color:var(--pz-color-grey-20);border-color:var(--pz-color-tag-blue);color:var(--pz-color-text-link-hover)}.pz-pagination__btn--active[data-v-9513ae82]{border-color:var(--pz-color-tag-blue)}.pz-pagination__btn--nav[data-v-9513ae82]{color:var(--pz-color-text-primary)}.pz-pagination__btn--nav[data-v-9513ae82]:disabled{opacity:.35;cursor:default}.pz-pagination__dots[data-v-9513ae82]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--pz-color-text-secondary);font-size:var(--pz-font-size-14);font-weight:400;line-height:1.5}
1
+ .pz-pagination-story{display:grid;gap:var(--pz-space-24)}.pz-pagination-story-board,.pz-pagination-story-gallery{display:grid;gap:var(--pz-space-16);padding:var(--pz-space-24);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 72%,transparent);border-radius:var(--pz-space-24);background:radial-gradient(circle at top right,color-mix(in srgb,var(--pz-color-blue-50) 8%,transparent),transparent 34%),linear-gradient(180deg,color-mix(in srgb,var(--pz-color-white) 98%,transparent),color-mix(in srgb,var(--pz-color-grey-20) 90%,var(--pz-color-white)));box-shadow:0 18px 48px color-mix(in srgb,var(--pz-color-black-90) 7%,transparent),inset 0 1px color-mix(in srgb,var(--pz-color-white) 96%,transparent)}.pz-pagination-story-header{display:flex;align-items:start;justify-content:space-between;gap:var(--pz-space-16)}.pz-pagination-story-eyebrow,.pz-pagination-story-chip{display:inline-flex;align-items:center;width:fit-content;padding:var(--pz-space-8) var(--pz-space-16);border-radius:999px;background:color-mix(in srgb,var(--pz-color-blue-10) 92%,var(--pz-color-white));color:var(--pz-color-text-link-hover);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.pz-pagination-story-preview{display:grid;padding:var(--pz-space-24);border:1px dashed color-mix(in srgb,var(--pz-color-grey-40) 70%,transparent);border-radius:var(--pz-space-20);background:linear-gradient(color-mix(in srgb,var(--pz-color-blue-50) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--pz-color-blue-50) 4%,transparent) 1px,transparent 1px);background-size:28px 28px}.pz-pagination-story-grid{display:grid;gap:var(--pz-space-16)}.pz-pagination-story-card{display:grid;gap:var(--pz-space-8);padding:var(--pz-space-20);border:1px solid color-mix(in srgb,var(--pz-color-grey-30) 74%,transparent);border-radius:var(--pz-space-20);background:color-mix(in srgb,var(--pz-color-white) 94%,transparent);box-shadow:0 12px 32px color-mix(in srgb,var(--pz-color-black-90) 5%,transparent)}.pz-pagination-story-card-label{margin:0;color:var(--pz-color-text-secondary);font-size:var(--pz-font-size-12);font-weight:400;line-height:1.5}.pz-pagination-story-current{display:flex;align-items:center;gap:var(--pz-space-8);padding:var(--pz-space-4) var(--pz-space-8);border-radius:4px;background:color-mix(in srgb,var(--pz-color-blue-10) 80%,transparent);width:fit-content}.pz-pagination-story-current-label{color:var(--pz-color-text-secondary);font-size:var(--pz-font-size-12);font-weight:400;line-height:1.5}.pz-pagination-story-current-value{color:var(--pz-color-text-link);font-size:var(--pz-font-size-12);font-weight:700;line-height:1.5}