@prozorro/prozorro-ui 0.0.10-beta → 0.0.11-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.
- package/dist/app/assets/{Color-FRDS63T2-NkJWwZpV.js → Color-FRDS63T2-DeJ6boVB.js} +1 -1
- package/dist/app/assets/{Colors.stories-BYTBLsDR.js → Colors.stories-GBcoNXc7.js} +3 -3
- package/dist/app/assets/{DocsRenderer-LL677BLK-DT0XE5RB.js → DocsRenderer-LL677BLK-P1omigwk.js} +71 -71
- package/dist/app/assets/{Grid.stories-B3nKsUwh.js → Grid.stories-DoLbqWtw.js} +23 -2
- package/dist/app/assets/PzAccordion-B8uG5LU8.js +1 -0
- package/dist/app/assets/{PzAccordion.stories-cOAYUrCJ.js → PzAccordion.stories-CzEbkA1U.js} +2 -2
- package/dist/app/assets/PzAccordionTable.stories-CWSrb6Rz.js +275 -0
- package/dist/app/assets/{PzArrayClamp.stories-Btd9xMHi.js → PzArrayClamp.stories-DXt6cxXy.js} +4 -4
- package/dist/app/assets/{PzBreadcrumb.stories-D54RjRCg.js → PzBreadcrumb.stories-BYy2AFV5.js} +5 -5
- package/dist/app/assets/PzBtn-lJz7FmKO.js +1 -0
- package/dist/app/assets/{PzBtn.stories-xnSEsakq.js → PzBtn.stories-u2aA2xzz.js} +2 -2
- package/dist/app/assets/PzCheckbox-xcF_sDjQ.js +1 -0
- package/dist/app/assets/{PzCheckbox.stories-RN07sGno.js → PzCheckbox.stories-DeiqBONq.js} +4 -4
- package/dist/app/assets/{PzCheckboxGroup.stories-KogRihCz.js → PzCheckboxGroup.stories-Dc1lNYrg.js} +3 -3
- package/dist/app/assets/PzClamp-0zNrPrFL.css +1 -0
- package/dist/app/assets/PzClamp.stories-ChyM4wQP.js +1 -0
- package/dist/app/assets/PzCopyToClipboard-DYvP-lFq.css +1 -0
- package/dist/app/assets/PzCopyToClipboard.stories-BvTs8-Qo.js +45 -0
- package/dist/app/assets/PzDate-DzxkQx_5.css +1 -0
- package/dist/app/assets/PzDate.stories-CbNYXli-.js +116 -0
- package/dist/app/assets/{PzDomHandler.stories-DAp97pdG.js → PzDomHandler.stories-CNFqxouB.js} +3 -3
- package/dist/app/assets/{PzDropdown.stories-eClrzbYq.js → PzDropdown.stories-BIwEAqmm.js} +3 -3
- package/dist/app/assets/{PzFileInput.stories-Dg6-KAun.js → PzFileInput.stories-B4xxW_sF.js} +4 -4
- package/dist/app/assets/{PzGrid.stories-DLm_q1Lw.js → PzGrid.stories-DIiTYcYP.js} +3 -3
- package/dist/app/assets/PzHint-Djl4-X3l.js +1 -0
- package/dist/app/assets/{PzHint.stories-C2oiTVIN.js → PzHint.stories-DqZpSfmZ.js} +2 -2
- package/dist/app/assets/{PzIcon-DTWQGv5c.js → PzIcon-BNwLASSZ.js} +1 -1
- package/dist/app/assets/{PzIcon.stories-CT6OA9PM.js → PzIcon.stories-CPbH32o0.js} +2 -2
- package/dist/app/assets/{PzImage.stories-BJL_3ef9.js → PzImage.stories-DaDmEHw0.js} +3 -3
- package/dist/app/assets/{PzImageInput.stories-CTksIxMS.js → PzImageInput.stories-CqBH8e63.js} +4 -4
- package/dist/app/assets/{PzInfoBlockLayout.stories-BBkiY-o7.js → PzInfoBlockLayout.stories-9CCtPFO-.js} +3 -3
- package/dist/app/assets/PzInfoHint-CbH3ypH1.js +1 -0
- package/dist/app/assets/{PzInfoHint.stories-6f6FePkY.js → PzInfoHint.stories-jwokRQkS.js} +3 -3
- package/dist/app/assets/{PzInput.stories-Bm_5Kj-P.js → PzInput.stories-BINq-o4I.js} +3 -3
- package/dist/app/assets/{PzInputDate.stories-Ccqq1p1p.js → PzInputDate.stories-CCdrBEY7.js} +3 -3
- package/dist/app/assets/{PzInputNumber.stories-DAQYW2cJ.js → PzInputNumber.stories-I4-WO1id.js} +3 -3
- package/dist/app/assets/{PzKeyValue.stories-BrV9VQaC.js → PzKeyValue.stories-DtyWU98t.js} +4 -4
- package/dist/app/assets/PzLabel-Coa549nk.js +1 -0
- package/dist/app/assets/{PzLabel.stories-DvN_0fOj.js → PzLabel.stories-DMxqqqgC.js} +3 -3
- package/dist/app/assets/PzLink-BlhtooDh.js +1 -0
- package/dist/app/assets/{PzLink.stories-BnY0IvI7.js → PzLink.stories-Cc_7lCaq.js} +2 -2
- package/dist/app/assets/PzListNav-DRMKw6wp.css +1 -0
- package/dist/app/assets/PzListNav.stories-BTZ7YDz-.js +37 -0
- package/dist/app/assets/PzLoader-J7_Govh3.css +1 -0
- package/dist/app/assets/PzLoader.stories-4iPgw47o.js +9 -0
- package/dist/app/assets/{PzModal.stories-Bq5YuGJo.js → PzModal.stories-COv27-JY.js} +4 -4
- package/dist/app/assets/PzMultiSelect-DeX8aBEQ.css +1 -0
- package/dist/app/assets/PzMultiSelect.stories-DqKbYF9e.js +453 -0
- package/dist/app/assets/{PzNav.stories-5KiqcPrd.js → PzNav.stories-8SxncW0m.js} +2 -2
- package/dist/app/assets/{PzNumberFormat.stories-QyheTXgc.js → PzNumberFormat.stories-CDG6_Sk8.js} +2 -2
- package/dist/app/assets/PzPagination-D9MVz0_M.js +1 -0
- package/dist/app/assets/PzPagination-k9D0Hxrx.css +1 -0
- package/dist/app/assets/{PzPagination-07CphuYh.css → PzPagination-ohvV8gN-.css} +1 -1
- package/dist/app/assets/PzPagination.stories-DNvwL2lG.js +83 -0
- package/dist/app/assets/{PzPriceFormat.stories-Clj4FRWT.js → PzPriceFormat.stories-C-p8Sb5s.js} +2 -2
- package/dist/app/assets/{PzRadioGroup.stories-o8HE47Hq.js → PzRadioGroup.stories-DC2poHLC.js} +3 -3
- package/dist/app/assets/{PzRouterLink.stories-Dc_EnCBz.js → PzRouterLink.stories-DzGN2JP5.js} +2 -2
- package/dist/app/assets/{PzScrollTo.stories-4BSDyJ2p.js → PzScrollTo.stories-Bx37NsA6.js} +2 -2
- package/dist/app/assets/{PzSearchResultItemLayout.stories-QRI-A0Zi.js → PzSearchResultItemLayout.stories-vkVys3LL.js} +3 -3
- package/dist/app/assets/PzSelect-BwhRsTZd.css +1 -0
- package/dist/app/assets/PzSelect-CrTXtlds.js +1 -0
- package/dist/app/assets/PzSelect-Del6HRlD.css +1 -0
- package/dist/app/assets/PzSelect.stories-5MWUfKeM.js +292 -0
- package/dist/app/assets/PzSkeleton-Fcc0OCQj.js +1 -0
- package/dist/app/assets/{PzSkeleton.stories-Djp-bBqZ.js → PzSkeleton.stories-q1l5sP1S.js} +2 -2
- package/dist/app/assets/PzStatus-cmEVvisl.js +1 -0
- package/dist/app/assets/{PzStatus.stories-BZ2XwRJs.js → PzStatus.stories-CkZ6lYqY.js} +2 -2
- package/dist/app/assets/PzTable-wM00v3b7.js +1 -0
- package/dist/app/assets/{PzTable.stories-C76ZN_A5.js → PzTable.stories-CGODSdZ2.js} +3 -3
- package/dist/app/assets/{PzTabs.stories-DHf6EZU7.js → PzTabs.stories-C5h0sXNa.js} +5 -5
- package/dist/app/assets/PzTag-9D_K2A9q.js +1 -0
- package/dist/app/assets/{PzTag.stories-BIrmr98f.js → PzTag.stories-E9YuXCey.js} +2 -2
- package/dist/app/assets/PzText-LkAZaPCW.js +1 -0
- package/dist/app/assets/{PzText.stories-Cr6TBVe6.js → PzText.stories-DICYEnSM.js} +8 -8
- package/dist/app/assets/PzTextClamp.stories-BveyeWba.js +149 -0
- package/dist/app/assets/{PzTextarea.stories--ghqzz2f.js → PzTextarea.stories-BtHMdHUF.js} +3 -3
- package/dist/app/assets/{PzValidatorXSS.stories-zCaJ6Q__.js → PzValidatorXSS.stories-B7ussB1u.js} +3 -3
- package/dist/app/assets/{Spacing-B5TnfKCB.css → Spacing-DDiZ9XB6.css} +1 -1
- package/dist/app/assets/{Spacing.stories-Dzeg7Tfn.js → Spacing.stories-IeHBLcii.js} +29 -2
- package/dist/app/assets/Typography.stories-DigE2FGD.js +47 -0
- package/dist/app/assets/{WithTooltip-65CFNBJE-C0efi5Yj.js → WithTooltip-65CFNBJE-CARy1qAy.js} +2 -2
- package/dist/app/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
- package/dist/app/assets/floating-vue-B4YMiR3n.js +1 -0
- package/dist/app/assets/floating-vue-BXOYXd0R.js +1 -0
- package/dist/app/assets/{formatter-EIJCOSYU-Noau93iy.js → formatter-EIJCOSYU-AVmvplX0.js} +1 -1
- package/dist/app/assets/iframe-4qk0Ss25.css +1 -0
- package/dist/app/assets/{iframe-Ckq2fQkL.js → iframe-DbWuH5mz.js} +134 -134
- package/dist/app/assets/index-LkANHSb5.js +1 -0
- package/dist/app/assets/{syntaxhighlighter-OH4MV7E3-ByOORGJm.js → syntaxhighlighter-OH4MV7E3-DKud-BAu.js} +3 -3
- package/dist/app/assets/text-clamp.esm-BLa2P3lJ.js +1 -0
- package/dist/app/iframe.html +81 -76
- package/dist/app/index.json +1 -1
- package/dist/app/project.json +1 -1
- package/dist/app/sb-manager/globals-runtime.js +1 -1
- package/dist/components/Actions/PzCopyToClipboard/PzCopyToClipboard.vue.d.ts +33 -0
- package/dist/components/Actions/PzCopyToClipboard/index.d.ts +2 -0
- package/dist/components/Actions/PzCopyToClipboard/types.d.ts +17 -0
- package/dist/components/Actions/PzLink/configs.d.ts +1 -1
- package/dist/components/Display/PzClamp/PzClamp.vue.d.ts +8 -0
- package/dist/components/Display/PzClamp/index.d.ts +2 -0
- package/dist/components/Display/PzClamp/types.d.ts +7 -0
- package/dist/components/Display/PzDate/PzDate.vue.d.ts +5 -0
- package/dist/components/Display/PzDate/index.d.ts +2 -0
- package/dist/components/Display/PzDate/types.d.ts +5 -0
- package/dist/components/Display/PzLoader/PzLoader.vue.d.ts +7 -0
- package/dist/components/Display/PzLoader/index.d.ts +2 -0
- package/dist/components/Display/PzLoader/types.d.ts +6 -0
- package/dist/components/Form/PzInput/PzInput.vue.d.ts +1 -1
- package/dist/components/Form/PzMultiSelect/PzMultiSelect.vue.d.ts +44 -0
- package/dist/components/Form/PzMultiSelect/constants.d.ts +1 -0
- package/dist/components/Form/PzMultiSelect/index.d.ts +2 -0
- package/dist/components/Form/PzMultiSelect/types.d.ts +22 -0
- package/dist/components/Form/PzSelect/PzSelect.vue.d.ts +42 -0
- package/dist/components/Form/PzSelect/configs.d.ts +1 -0
- package/dist/components/Form/PzSelect/constants.d.ts +1 -0
- package/dist/components/Form/PzSelect/index.d.ts +2 -0
- package/dist/components/Form/PzSelect/types.d.ts +22 -0
- package/dist/components/Form/shared/types.d.ts +7 -0
- package/dist/components/Navigation/PzListNav/PzListNav.vue.d.ts +15 -0
- package/dist/components/Navigation/PzListNav/index.d.ts +4 -0
- package/dist/components/Navigation/PzListNav/types.d.ts +9 -0
- package/dist/components/Navigation/shared/configs.d.ts +2 -0
- package/dist/components/Navigation/shared/constants.d.ts +8 -0
- package/dist/components/Popups/PzHint/PzHint.vue.d.ts +1 -1
- package/dist/components/Popups/PzInfoHint/PzInfoHint.vue.d.ts +1 -1
- package/dist/components/Popups/PzModal/PzModal.vue.d.ts +1 -1
- package/dist/components/Text/PzArrayClamp/PzArrayClamp.vue.d.ts +1 -1
- package/dist/components/Text/PzTextClamp/PzTextClamp.vue.d.ts +3 -3
- package/dist/index.d.ts +7 -0
- package/dist/package.json +1 -1
- package/dist/prozorro-ui.cjs +15 -15
- package/dist/prozorro-ui.js +8605 -7885
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/styles/_spacing.scss +30 -4
- package/dist/app/assets/PzAccordion-CTihyZc5.js +0 -1
- package/dist/app/assets/PzAccordionTable.stories-CVSn3lrC.js +0 -275
- package/dist/app/assets/PzBtn-Bz2NPCiD.js +0 -1
- package/dist/app/assets/PzCheckbox-DDIj_TyE.js +0 -1
- package/dist/app/assets/PzHint-BhuDfy-l.js +0 -1
- package/dist/app/assets/PzInfoHint-C-UyP8PR.js +0 -1
- package/dist/app/assets/PzLabel-jmQOAHGo.js +0 -1
- package/dist/app/assets/PzLink-CwtmibRx.js +0 -1
- package/dist/app/assets/PzPagination.stories-D_qRevIg.js +0 -83
- package/dist/app/assets/PzSkeleton-BMyhdGXq.js +0 -1
- package/dist/app/assets/PzStatus-rctea0Gb.js +0 -1
- package/dist/app/assets/PzTable-CzfehTN7.js +0 -1
- package/dist/app/assets/PzTag-DudHfisQ.js +0 -1
- package/dist/app/assets/PzText-BOcxbzaG.js +0 -1
- package/dist/app/assets/PzTextClamp.stories-CR0IRYLS.js +0 -149
- package/dist/app/assets/Typography.stories-GZEYS8Ny.js +0 -47
- package/dist/app/assets/floating-vue-D0dcONsr.js +0 -1
- package/dist/app/assets/iframe-B97zFSkg.css +0 -1
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
import{d as pe,e as V,y as P,C as T,u as g,n as L,o as q,k as i,F as de,z 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-DbWuH5mz.js";import{_ as ne}from"./PzIcon-BNwLASSZ.js";import{P as ge}from"./PzTag-9D_K2A9q.js";import{P as d}from"./PzText-LkAZaPCW.js";import{u as fe}from"./index-LkANHSb5.js";import{k as xe}from"./floating-vue-B4YMiR3n.js";import{l as $}from"./lodash-CdDiHlzQ.js";import{P as be}from"./PzLabel-Coa549nk.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 E,R,A;x.parameters={...x.parameters,docs:{...(E=x.parameters)==null?void 0:E.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
|
+
}`,...(A=(R=x.parameters)==null?void 0:R.docs)==null?void 0:A.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,
|
|
1
|
+
import{d as R,e as r,F,z as $,o,f as m,A,C as j,l as y,E as x,t as b,u as B,R as O,K as L,g as V,j as z,a1 as f}from"./iframe-DbWuH5mz.js";import{P as g}from"./PzText-LkAZaPCW.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(B(O),{key:0,to:E(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>
|
|
2
2
|
<PzNav :config='${JSON.stringify(s.config,null,2)}' />
|
|
3
3
|
</template>`,J=()=>`<template>
|
|
4
4
|
<PzNav :config="config">
|
|
@@ -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
|
|
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};
|
package/dist/app/assets/{PzNumberFormat.stories-QyheTXgc.js → PzNumberFormat.stories-CDG6_Sk8.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{P as o}from"./PzNumberFormat-D5xYsZ3A.js";import{P as a}from"./PzText-
|
|
1
|
+
import{P as o}from"./PzNumberFormat-D5xYsZ3A.js";import{P as a}from"./PzText-LkAZaPCW.js";import"./lodash-CdDiHlzQ.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iframe-DbWuH5mz.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
|
|
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,y as v,u as h,F as q,z as w,g as l,o as i,f as T,t as $}from"./iframe-DbWuH5mz.js";import{_ as V}from"./PzIcon-BNwLASSZ.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"},L=["aria-current","onClick"],O=["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,y=Math.max(c,d-e),z=Math.min(b,d+e),n=[{type:"page",page:m}];y>c&&n.push({type:"dots",side:"left"});for(let g=y;g<=z;g++)n.push({type:"page",page:g});return z<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},[v(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,L))]))),128)),s("li",null,[s("button",{type:"button",class:"pz-pagination__btn pz-pagination__btn--nav",disabled:P.value,"aria-label":"Наступна сторінка",onClick:F},[v(h(V),{name:"chevron_right",size:"24"})],8,O)])])]))}}),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}
|
|
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}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import{r as e,w as m}from"./iframe-DbWuH5mz.js";import{P as v}from"./PzText-LkAZaPCW.js";import{P as s}from"./PzPagination-D9MVz0_M.js";import"./preload-helper-C1FmrZbK.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./PzIcon-BNwLASSZ.js";const l=2,z=50,y=100,P=3,b="<\/script>",f=a=>{const t=[':model-value="currentPage"',`:total="${a.total}"`,`:per-page="${a.perPage}"`,a.radius!==l?`:radius="${a.radius}"`:null,'@update:model-value="currentPage = $event"'].filter(r=>!!r).join(`
|
|
2
|
+
`);return`<script setup lang="ts">
|
|
3
|
+
import { ref } from "vue";
|
|
4
|
+
const currentPage = ref(${a.modelValue});
|
|
5
|
+
${b}
|
|
6
|
+
|
|
7
|
+
<template>
|
|
8
|
+
<PzPagination
|
|
9
|
+
${t}
|
|
10
|
+
/>
|
|
11
|
+
</template>`},h={title:"Components/Navigation/PzPagination",component:s,parameters:{docs:{description:{component:"Use `PzPagination` for navigating paginated content. The component shows prev/next arrows, the first and last page, a window of pages around the current, and collapsing dots for large ranges."},source:{transform:(a,t)=>f(t.args??h.args)}}},args:{modelValue:1,total:1e3,perPage:10,radius:l},argTypes:{modelValue:{control:{type:"number",min:1},description:"Current active page (use with `v-model`)."},total:{control:{type:"number",min:0},description:"Total number of items."},perPage:{control:{type:"number",min:1},description:"Number of items per page."},radius:{control:{type:"number",min:1,max:5},description:"Number of page buttons shown on each side of the current page."}},render:a=>({components:{pzPagination:s,pzText:v},setup(){const t=e(a.modelValue),r=e(1),c=e(z),g=e(y),d=e(P);return m(()=>a.modelValue,u=>{t.value=u}),{args:a,page:t,pageFirst:r,pageMiddle:c,pageLast:g,pageFew:d}},template:`
|
|
12
|
+
<div class="pz-pagination-story">
|
|
13
|
+
<section class="pz-pagination-story-board">
|
|
14
|
+
<div class="pz-pagination-story-header">
|
|
15
|
+
<div>
|
|
16
|
+
<span class="pz-pagination-story-eyebrow">Component API</span>
|
|
17
|
+
<pz-text variant="h4-bold">Page navigation</pz-text>
|
|
18
|
+
</div>
|
|
19
|
+
<span class="pz-pagination-story-chip">page {{ page }} / {{ Math.ceil(args.total / args.perPage) }}</span>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<div class="pz-pagination-story-preview">
|
|
23
|
+
<div class="pz-pagination-story-current">
|
|
24
|
+
<span class="pz-pagination-story-current-label">Current page:</span>
|
|
25
|
+
<strong class="pz-pagination-story-current-value">{{ page }}</strong>
|
|
26
|
+
</div>
|
|
27
|
+
<pz-pagination
|
|
28
|
+
v-model="page"
|
|
29
|
+
:total="args.total"
|
|
30
|
+
:per-page="args.perPage"
|
|
31
|
+
:radius="args.radius"
|
|
32
|
+
/>
|
|
33
|
+
</div>
|
|
34
|
+
</section>
|
|
35
|
+
|
|
36
|
+
<section class="pz-pagination-story-gallery">
|
|
37
|
+
<div class="pz-pagination-story-header">
|
|
38
|
+
<div>
|
|
39
|
+
<span class="pz-pagination-story-eyebrow">States</span>
|
|
40
|
+
<pz-text variant="h4-bold">Page position variants</pz-text>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<div class="pz-pagination-story-grid">
|
|
45
|
+
<article class="pz-pagination-story-card">
|
|
46
|
+
<p class="pz-pagination-story-card-label">First page — right dots visible</p>
|
|
47
|
+
<div class="pz-pagination-story-current">
|
|
48
|
+
<span class="pz-pagination-story-current-label">Current page:</span>
|
|
49
|
+
<strong class="pz-pagination-story-current-value">{{ pageFirst }}</strong>
|
|
50
|
+
</div>
|
|
51
|
+
<pz-pagination v-model="pageFirst" :total="1000" :per-page="10" />
|
|
52
|
+
</article>
|
|
53
|
+
|
|
54
|
+
<article class="pz-pagination-story-card">
|
|
55
|
+
<p class="pz-pagination-story-card-label">Middle page — both dots visible</p>
|
|
56
|
+
<div class="pz-pagination-story-current">
|
|
57
|
+
<span class="pz-pagination-story-current-label">Current page:</span>
|
|
58
|
+
<strong class="pz-pagination-story-current-value">{{ pageMiddle }}</strong>
|
|
59
|
+
</div>
|
|
60
|
+
<pz-pagination v-model="pageMiddle" :total="1000" :per-page="10" />
|
|
61
|
+
</article>
|
|
62
|
+
|
|
63
|
+
<article class="pz-pagination-story-card">
|
|
64
|
+
<p class="pz-pagination-story-card-label">Last page — left dots visible</p>
|
|
65
|
+
<div class="pz-pagination-story-current">
|
|
66
|
+
<span class="pz-pagination-story-current-label">Current page:</span>
|
|
67
|
+
<strong class="pz-pagination-story-current-value">{{ pageLast }}</strong>
|
|
68
|
+
</div>
|
|
69
|
+
<pz-pagination v-model="pageLast" :total="1000" :per-page="10" />
|
|
70
|
+
</article>
|
|
71
|
+
|
|
72
|
+
<article class="pz-pagination-story-card">
|
|
73
|
+
<p class="pz-pagination-story-card-label">Few pages — no dots</p>
|
|
74
|
+
<div class="pz-pagination-story-current">
|
|
75
|
+
<span class="pz-pagination-story-current-label">Current page:</span>
|
|
76
|
+
<strong class="pz-pagination-story-current-value">{{ pageFew }}</strong>
|
|
77
|
+
</div>
|
|
78
|
+
<pz-pagination v-model="pageFew" :total="50" :per-page="10" />
|
|
79
|
+
</article>
|
|
80
|
+
</div>
|
|
81
|
+
</section>
|
|
82
|
+
</div>
|
|
83
|
+
`})},n={};var o,i,p;n.parameters={...n.parameters,docs:{...(o=n.parameters)==null?void 0:o.docs,source:{originalSource:"{}",...(p=(i=n.parameters)==null?void 0:i.docs)==null?void 0:p.source}}};const E=["Playground"];export{n as Playground,E as __namedExportsOrder,h as default};
|