@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 19.9 kB
JavaScript
(function(j,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("lodash-es"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../common/index.umd.js"],e):(j=typeof globalThis<"u"?globalThis:j||self,e(j.pagination={},j.Vue,j.LodashES,j.common))})(this,function(j,e,z,ne){"use strict";const H={},J={};function C(a){const{properties:t,title:u,ignore:s}=a,l=s&&Array.isArray(s),c=Object.keys(t).reduce((n,i)=>((!l||!s.find(p=>p===i))&&(n[i]=t[i].type==="object"&&t[i].properties?C(t[i]):z.cloneDeep(t[i].default)),n),{});if(u&&(!l||!s.find(n=>n==="id"))){const n=u.toLowerCase().replace(/-/g,"_");c.id=`${n}_${Math.random().toString().slice(2,6)}`}return c}function le(a){const{properties:t,title:u,required:s}=a;if(s&&Array.isArray(s)){const l=s.reduce((c,n)=>(c[n]=t[n].type==="object"&&t[n].properties?C(t[n]):z.cloneDeep(t[n].default),c),{});if(u&&s.find(c=>c==="id")){const c=u.toLowerCase().replace(/-/g,"_");l.id=`${c}_${Math.random().toString().slice(2,6)}`}return l}return{type:u}}function Q(a,t={},u){const s=H[a];if(s){let l=le(s);const c=J[a];return l=c?c({getSchemaByType:Q},l,t,u):l,l}return null}function oe(a,t){const u=C(t);return Object.keys(u).reduce((s,l)=>(Object.prototype.hasOwnProperty.call(a,l)&&(s[l]&&z.isPlainObject(s[l])&&z.isPlainObject(a[l]||!a[l])?Object.assign(s[l],a[l]||{}):s[l]=a[l]),s),u),u}function U(a,t){return Object.keys(a).filter(s=>a[s]!=null).reduce((s,l)=>{if(t.has(l)){const c=t.get(l);if(typeof c=="string")s[c]=a[l];else{const n=c(l,a[l],a);Object.assign(s,n)}}else s[l]=a[l];return s},{})}function se(a,t,u=new Map){const s=oe(a,t);return U(s,u)}function re(a={}){function t(o,r,d,g){if(typeof d=="number")return g[o].length===d;if(typeof d=="object"){const v=Object.keys(d)[0],y=d[v];if(v==="not")return Number(g[o].length)!==Number(y);if(v==="moreThan")return Number(g[o].length)>=Number(y);if(v==="lessThan")return Number(g[o].length)<=Number(y)}return!1}function u(o,r,d,g){return g[o]&&g[o].propertyValue&&String(g[o].propertyValue.value)===String(d)}const s=new Map([["length",t],["getProperty",u]]);Object.keys(a).reduce((o,r)=>(o.set(r,a[r]),o),s);function l(o,r){const d=o;return typeof r=="number"?[{target:d,operator:"length",param:null,value:Number(r)}]:typeof r=="boolean"?[{target:d,operator:"getProperty",param:o,value:!!r}]:typeof r=="object"?Object.keys(r).map(g=>{if(g==="length")return{target:d,operator:"length",param:null,value:r[g]};const v=g,y=r[g];return{target:d,operator:"getProperty",param:v,value:y}}):[]}function c(o){return Object.keys(o).reduce((d,g)=>{const v=l(g,o[g]);return d.push(...v),d},[])}function n(o,r){if(s.has(o.operator)){const d=s.get(o.operator);return d&&d(o.target,o.param,o.value,r)||!1}return!1}function i(o,r){return c(o).reduce((v,y)=>v&&n(y,r),!0)}function p(o,r){const d=Object.keys(o),g=d.includes("allOf"),v=d.includes("anyOf"),y=g||v,w=(y?o[y?g?"allOf":"anyOf":"allOf"]:[o]).map(O=>i(O,r));return g?!w.includes(!1):w.includes(!0)}return{parseValueSchema:p}}const ie={},ce={};re();function ue(a,t,u=new Map,s=(n,i,p,o)=>i,l={},c=n=>n){return H[t.title]=t,J[t.title]=s,ie[t.title]=l,ce[t.title]=c,(n={},i=!0)=>{if(!i)return U(n,u);const p=se(n,t,u),o=Object.keys(a).reduce((r,d)=>(r[d]=a[d].default,r),{});return Object.assign(o,p)}}function pe(a,t){return{customClass:t.class,customStyle:t.style}}const de=new Map([["appearance",pe]]),fe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/pagination.schema.json",title:"pagination",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for a pagination",type:"string"},type:{description:"The type string of pagination component",type:"string",default:"pagination"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!0},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"sting",default:""}},required:["id","type"]},ge={title:"pagination",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{editable:{description:"",title:"允许编辑",type:"boolean"},readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"},textAlign:{description:"",title:"对齐方式",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"left",name:"左对齐"},{value:"center",name:"居中"},{value:"right",name:"右对齐"}]}}}}}};function me(a,t,u){return t}const D={currentPage:{type:Number,default:1},disabled:{type:Boolean,default:!1},mode:{type:String,default:"default"},pageSize:{type:Number,default:20},totalItems:{type:Number,default:0},showGoButton:{type:Boolean,default:!1},showPageList:{type:Boolean,default:!0},showPageNumbers:{type:Boolean,default:!0},showRedirection:{type:Boolean,default:!0},pageList:{type:Array,default:[20,50,100]}},E=ue(D,fe,de,me,ge);function X(a,t,u,s){const l=e.ref("跳转至"),c=e.ref(""),n=e.ref(a.value);e.watch(n,(r,d)=>{r>=1&&r<=t.value?a.value=r:n.value=d}),e.watch(a,r=>{n.value!==r&&(n.value=r)});function i(r){n.value=r.target.valueAsNumber,s.emit("update:currentPage",n.value),s.emit("changed",{pageIndex:n.value,pageSize:u.value}),s.emit("pageIndexChanged",{pageIndex:n.value,pageSize:u.value})}function p(r){r.key==="Enter"&&(n.value=r.target.valueAsNumber,s.emit("update:currentPage",n.value),s.emit("changed",{pageIndex:n.value,pageSize:u.value}),s.emit("pageIndexChanged",{pageIndex:n.value,pageSize:u.value}))}function o(){return e.createVNode("li",{class:"page-goto-input d-flex flex-row",style:"padding-left: 10px; white-space: nowrap;"},[e.createVNode("span",{class:"pagination-message"},[l.value]),e.createVNode("input",{title:"page-index-spinner",type:"number",class:"form-control farris-gotopagenumber",value:n.value,min:1,max:t.value,style:"display: inline-block;margin-left:3px;",onBlur:r=>i(r),onKeyup:r=>p(r)},null),c.value])}return{renderGotoButton:o}}function Y(a,t,u,s,l){const c=e.computed(()=>({"page-item":!0,disabled:t.value}));function n(r){a.value=a.value<u.value?a.value+1:u.value,l.emit("update:currentPage",a.value),l.emit("changed",{pageIndex:a.value,pageSize:s.value}),l.emit("pageIndexChanged",{pageIndex:a.value,pageSize:s.value})}function i(r){a.value=u.value,l.emit("update:currentPage",a.value),l.emit("changed",{pageIndex:a.value,pageSize:s.value}),l.emit("pageIndexChanged",{pageIndex:a.value,pageSize:s.value})}function p(){return e.createVNode("li",{class:c.value},[!t.value&&e.createVNode("a",{class:"page-link",tabindex:"0",onClick:r=>n()},[e.createVNode("span",{class:"f-icon f-page-next"},null)]),t.value&&e.createVNode("span",{class:"page-link"},[e.createVNode("span",{class:"f-icon f-page-next"},null)])])}function o(){return e.createVNode("li",{class:c.value},[!t.value&&e.createVNode("a",{class:"page-link",tabindex:"0",onClick:r=>i()},[e.createVNode("span",{class:"f-icon f-page-last"},null)]),t.value&&e.createVNode("span",{class:"page-link"},[e.createVNode("span",{class:"f-icon f-page-last"},null)])])}return{renderLastPage:o,renderNextPage:p}}function Z(a,t){const u=e.ref("共"),s=e.ref("条"),l=e.computed(()=>({"pagination-message":!0,"text-truncate":!0,"d-flex":!0,"ml-auto":a.value==="right","flex-fill":a.value==="right"}));function c(){return e.createVNode("li",{class:l.value},[e.createVNode("div",{class:"text-truncate",style:"line-height: 26px"},[e.createVNode("span",{class:"pg-message-text"},[u.value]),e.createVNode("b",{class:"pg-message-total"},[t.value]),e.createVNode("span",{class:"pg-message-text"},[s.value])])])}return{renderPageInfo:c}}function K(a,t,u,s,l){const c=e.ref(!1),n=e.ref("显示"),i=e.ref("条"),p=e.computed(()=>({dropup:!0,"dropdown-right":!0,"pg-pagelist":!0,"pagelist-disabled":s.value===0,show:c.value})),o=e.computed(()=>({"dropdown-menu":!0,show:c.value})),r=m=>({"w-100":!0,"dropdown-item":!0,active:t.value===m});function d(m){c.value=!0}function g(m){c.value=!1}function v(m,w,k){const M=m*w-w+1;return Math.ceil(M/k)}function y(m,w){const k=a.value;a.value=v(a.value,t.value,w),k!==a.value&&l.emit("update:currentPage",a.value),t.value=w,c.value=!1,l.emit("update:pageSize",t.value),l.emit("changed",{pageIndex:a.value,pageSize:t.value}),l.emit("pageSizeChanged",{pageIndex:a.value,pageSize:t.value})}function N(){return e.createVNode("li",{class:"pagination-pagelist"},[e.createVNode("div",{class:p.value,onMouseenter:m=>d(),onMouseleave:m=>g()},[e.createVNode("div",{class:"pg-pagelist-info"},[e.createVNode("span",{class:"pagelist-text"},[n.value]),e.createVNode("b",{class:"cur-pagesize"},[t.value]),e.createVNode("span",{class:"pagelist-text"},[i.value]),e.createVNode("i",{class:"f-icon f-icon-dropdown"},null)]),e.createVNode("div",{class:o.value,style:"margin-bottom: -1px;"},[u.value.map(m=>e.createVNode("li",{class:r(m),onClick:w=>y(w,m)},[e.createVNode("span",null,[m])]))])])])}return{renderPageList:N}}function ee(a,t,u,s,l){const c=o=>({"page-item":!0,current:t.value===o.value,ellipsis:o.label==="...",disabled:a.disabled}),n=o=>({"f-icon":!0,"f-icon-arrow-seek-left":o.value<t.value,"f-icon-arrow-seek-right":o.value>t.value});function i(o,r){t.value=r,l.emit("update:currentPage",t.value),l.emit("changed",{pageIndex:t.value,pageSize:s.value}),l.emit("pageIndexChanged",{pageIndex:t.value,pageSize:s.value})}function p(){return u.value.map(o=>e.createVNode("li",{class:c(o)},[t.value!==o.value&&e.createVNode("a",{class:"page-link",tabindex:"0",onClick:r=>i(r,o.value)},[e.createVNode("span",{class:"page-link-label"},[o.label]),o.label==="..."&&e.createVNode("i",{class:n(o)},null)]),t.value===o.value&&e.createVNode("span",{class:"page-link"},[o.label])]))}return{renderPageNumbers:p}}function te(a,t,u,s,l){const c=e.computed(()=>({"page-item":!0,disabled:t.value}));function n(r){a.value=1,l.emit("update:currentPage",a.value),l.emit("changed",{pageIndex:a.value,pageSize:s.value}),l.emit("pageIndexChanged",{pageIndex:a.value,pageSize:s.value})}function i(r){a.value=a.value>2?a.value-1:1,l.emit("update:currentPage",a.value),l.emit("changed",{pageIndex:a.value,pageSize:s.value}),l.emit("pageIndexChanged",{pageIndex:a.value,pageSize:s.value})}function p(){return e.createVNode("li",{class:c.value},[u.value&&e.createVNode("a",{tabindex:"0",class:"page-link",onClick:r=>n()},[e.createVNode("span",{class:"f-icon f-page-first"},null)]),t.value&&e.createVNode("span",{class:"page-link"},[e.createVNode("span",{class:"f-icon f-page-first"},null)])])}function o(){return e.createVNode("li",{class:c.value},[u.value&&e.createVNode("a",{tabindex:"0",class:"page-link",onClick:r=>i()},[e.createVNode("span",{class:"f-icon f-page-pre"},null)]),t.value&&e.createVNode("span",{class:"page-link"},[e.createVNode("span",{class:"f-icon f-page-pre"},null)])])}return{renderFirstPage:p,renderPreviousPage:o}}function ae(a){const t=e.ref([]);function u(l,c,n,i){const p=Math.ceil(n/2);return l===n?i:l===1?l:n<i?i-p<c?i-n+l:p<c?c-p+l:l:l}function s(l,c,n,i){const p=[],o=Math.ceil(n/c),r=Math.ceil(i/2),d=l<=r,g=o-r<l,v=!d&&!g,y=i<o;let N=1;for(;N<=o&&N<=i;){const m=u(N,l,i,o),w=N===2&&(v||g),k=N===i-1&&(v||d),O=y&&(w||k)?"...":""+m;p.push({label:O,value:m}),N++}t.value=p}return{pages:t,updatePages:s}}const L=e.defineComponent({name:"FPagination",props:D,emits:["changed","pageIndexChanged","pageSizeChanged","update:currentPage","update:pageSize"],setup(a,t){const u=e.ref(!1),s=e.ref(a.mode),l=e.ref(""),c=e.ref(!1),n=e.ref(a.pageSize),i=e.ref(a.currentPage),p=e.ref(a.totalItems),{pages:o,updatePages:r}=ae(),d={position:"relative"},g={position:"absolute",right:"0",zIndex:1,background:"rgba(250,250,252,.6)",width:"100%",height:"100%"},v=e.computed(()=>!p.value||i.value===1),y=e.computed(()=>a.pageList),N=e.computed(()=>Math.ceil(p.value/n.value)),m=e.computed(()=>!p.value||i.value===N.value),w=e.computed(()=>a.showGoButton),k=e.computed(()=>i.value>1),O=e.computed(()=>!(c.value&&o.value.length<=1)),M=e.computed(()=>!0),T=e.computed(()=>a.showPageList),B=e.computed(()=>a.showPageNumbers),f=e.computed(()=>!0),{renderFirstPage:h,renderPreviousPage:b}=te(i,v,k,n,t),{renderLastPage:V,renderNextPage:P}=Y(i,m,N,n,t),{renderPageInfo:F}=Z(l,p),{renderPageList:R}=K(i,n,y,p,t),{renderPageNumbers:q}=ee(a,i,o,n,t),{renderGotoButton:A}=X(i,N,n,t);r(i.value,n.value,p.value,7),e.watch(()=>a.totalItems,S=>{p.value=S}),e.watch([i,n,p],()=>{r(i.value,n.value,p.value,7)}),e.watch(i,(S,$)=>{}),e.watch(n,(S,$)=>{}),e.watch(()=>a.totalItems,S=>{p.value=S,r(i.value,n.value,p.value,7)}),e.watch(()=>a.currentPage,(S,$)=>{S!==$&&(i.value=S)}),e.watch(()=>a.pageSize,(S,$)=>{S!==$&&(n.value=S)}),e.watchEffect(()=>{const S=y.value.includes(n.value);n.value=S?n.value:y.value[0],S||(t.emit("update:pageSize",n.value),t.emit("changed",{pageIndex:i.value,pageSize:n.value}),t.emit("pageSizeChanged",{pageIndex:i.value,pageSize:n.value}))})();const G=e.computed(()=>({"d-flex":!0,"flex-wrap":!0,"justify-content-end":!0,"w-100":!0,"ngx-pagination":!0,pagination:!0,responsive:u.value,"pager-viewmode-default":s.value==="default","pager-viewmode-simple":s.value==="simple"})),_=e.computed(()=>({position:"relative","justify-content":l.value==="center"?"center":"start"}));function I(){return e.createVNode(e.Fragment,null,[M.value&&F(),T.value&&R(),f.value&&h(),f.value&&b(),B.value&&q(),f.value&&P(),f.value&&V(),w.value&&A()])}function W(){return e.createVNode(e.Fragment,null,[e.createVNode("li",{class:"page-item d-flex flex-fill"},null),f.value&&h(),f.value&&b(),A(),e.createVNode("li",{class:"page-item page-separator",style:"margin-left: 10px"},[e.createVNode("span",{style:"font-size: 15px; font-weight: 200;"},[e.createTextVNode(" /")])]),e.createVNode("li",{class:"page-item page-total",style:"margin-left: 5px"},[e.createVNode("span",{style:"font-size: 16px; font-weight: 600;"},[e.createTextVNode(" "),N.value])]),f.value&&P(),f.value&&V()])}return()=>e.createVNode("div",{class:"pagination-container",style:d},[a.disabled&&e.createVNode("div",{style:g},null),O.value&&e.createVNode("ul",{role:"navigation",class:G.value,style:_.value},[s.value==="default"?I():W()])])}});function he(a,t,u){var B;const s="",l="",c=e.ref();function n(){return(t==null?void 0:t.schema.componentType)!=="frame"}function i(){return!1}function p(){return(t==null?void 0:t.schema.componentType)!=="frame"}function o(){return(t==null?void 0:t.schema.componentType)==="frame"}function r(f){if(!f||!f.value)return null;if(f.value.schema&&f.value.schema.type==="component")return f.value;const h=e.ref(f==null?void 0:f.value.parent),b=r(h);return b||null}function d(f=t){var P;const{componentInstance:h,designerItemElementRef:b}=f;if(!h||!h.value)return null;const{getCustomButtons:V}=h.value;return h.value.canMove||V&&((P=V())!=null&&P.length)?b:d(f.parent)}function g(f){return!!u}function v(){return(t==null?void 0:t.schema.label)||(t==null?void 0:t.schema.title)||(t==null?void 0:t.schema.name)}function y(){}function N(f,h){var b;!f||!h||(b=t==null?void 0:t.setupContext)==null||b.emit("dragEnd")}function m(f,h){const{componentType:b}=f;let V=Q(b,f,h);const P=b.toLowerCase().replace(/-/g,"_");return V&&!V.id&&V.type===b&&(V.id=`${P}_${Math.random().toString().slice(2,6)}`),V}function w(f){}function k(...f){}function O(){t!=null&&t.schema.contents&&t.schema.contents.map(f=>{let h=f.id;f.type==="component-ref"&&(h=f.component);const b=a.value.querySelectorAll(`#${h}-design-item`);b!=null&&b.length&&Array.from(b).map(V=>{var P;(P=V==null?void 0:V.componentInstance)!=null&&P.value.onRemoveComponent&&V.componentInstance.value.onRemoveComponent()})})}function M(){}function T(f){}return c.value={canMove:n(),canSelectParent:i(),canDelete:p(),canNested:!o(),contents:t==null?void 0:t.schema.contents,elementRef:a,parent:(B=t==null?void 0:t.parent)==null?void 0:B.componentInstance,schema:t==null?void 0:t.schema,styles:s,designerClass:l,canAccepts:g,getBelongedComponentInstance:r,getDraggableDesignItemElement:d,getDraggingDisplayText:v,getPropConfig:k,getDragScopeElement:y,onAcceptMovedChildElement:N,onChildElementMovedOut:w,addNewChildComponentSchema:m,triggerBelongedComponentToMoveWhenMoved:e.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:e.ref(!1),onRemoveComponent:O,getCustomButtons:M,onPropertyChanged:T},c}const ve=e.defineComponent({name:"FPagination",props:D,emits:["pageIndexChanged","pageSizeChanged"],setup(a,t){const u=e.ref(!1),s=e.ref(a.mode),l=e.ref(""),c=e.ref(!1),n=e.ref(a.pageSize),i=e.ref(a.currentPage),p=e.ref(a.totalItems),o=e.ref(),r=e.inject("design-item-context"),d=he(o,r);e.onMounted(()=>{o.value.componentInstance=d}),t.expose(d.value);const{pages:g,updatePages:v}=ae(),y=e.computed(()=>i.value===1),N=e.computed(()=>[20,50,100]),m=e.computed(()=>Math.ceil(p.value/n.value)),w=e.computed(()=>i.value===m.value),k=e.computed(()=>!0),O=e.computed(()=>i.value>1),M=e.computed(()=>!(c.value&&g.value.length<=1)),T=e.computed(()=>!0),B=e.computed(()=>!0),f=e.computed(()=>!0),h=e.computed(()=>!0),{renderFirstPage:b,renderPreviousPage:V}=te(i,y,O,n,t),{renderLastPage:P,renderNextPage:F}=Y(i,w,m,n,t),{renderPageInfo:R}=Z(l,p),{renderPageList:q}=K(i,n,N,p,t),{renderPageNumbers:A}=ee(a,i,g,n,t),{renderGotoButton:x}=X(i,m,n,t);v(i.value,n.value,p.value,7),e.watch([i,n],()=>{v(i.value,n.value,p.value,7)}),e.watch(i,()=>{t.emit("pageIndexChanged",i.value)}),e.watch(n,()=>{t.emit("pageSizeChanged",n.value)});const G=e.computed(()=>({"ngx-pagination":!0,pagination:!0,responsive:u.value,"pager-viewmode-default":s.value==="default","pager-viewmode-simple":s.value==="simple"})),_=e.computed(()=>({position:"relative","justify-content":l.value==="center"?"center":"start"}));function I(){return e.createVNode(e.Fragment,null,[T.value&&R(),B.value&&q(),h.value&&b(),h.value&&V(),f.value&&A(),h.value&&F(),h.value&&P(),k.value&&x()])}function W(){return e.createVNode(e.Fragment,null,[e.createVNode("li",{class:"page-item d-flex flex-fill"},null),h.value&&b(),h.value&&V(),x(),e.createVNode("li",{class:"page-item page-separator",style:"margin-left: 10px"},[e.createVNode("span",{style:"font-size: 15px; font-weight: 200;"},[e.createTextVNode(" /")])]),e.createVNode("li",{class:"page-item page-total",style:"margin-left: 5px"},[e.createVNode("span",{style:"font-size: 16px; font-weight: 600;"},[e.createTextVNode(" "),m.value])]),h.value&&F(),h.value&&P()])}return()=>e.createVNode("div",{ref:o,class:"pagination-container"},[M.value&&e.createVNode("ul",{role:"navigation",class:G.value,style:_.value},[s.value==="default"?I():W()])])}});L.register=(a,t,u)=>{a.pagination=L,t.pagination=E},L.registerDesigner=(a,t,u)=>{a.pagination=ve,t.pagination=E};const ye=ne.withInstall(L);j.FPagination=L,j.default=ye,j.paginationProps=D,j.propsResolver=E,Object.defineProperties(j,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});