@farris/ui-vue 1.2.9 → 1.3.0
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/components/accordion/index.esm.js +63 -63
- package/components/accordion/index.umd.cjs +1 -1
- package/components/avatar/index.esm.js +402 -323
- package/components/avatar/index.umd.cjs +1 -1
- package/components/button-edit/index.css +1 -1
- package/components/button-edit/index.esm.js +98 -96
- package/components/button-edit/index.umd.cjs +1 -1
- package/components/calendar/index.esm.js +66 -66
- package/components/calendar/index.umd.cjs +1 -1
- package/components/capsule/index.esm.js +118 -118
- package/components/capsule/index.umd.cjs +1 -1
- package/components/checkbox/index.esm.js +539 -460
- package/components/checkbox/index.umd.cjs +1 -1
- package/components/color-picker/index.esm.js +135 -135
- package/components/color-picker/index.umd.cjs +2 -2
- package/components/combo-list/index.css +1 -0
- package/components/combo-list/index.esm.js +1007 -312
- package/components/combo-list/index.umd.cjs +1 -1
- package/components/combo-tree/index.esm.js +97 -97
- package/components/combo-tree/index.umd.cjs +1 -1
- package/components/common/index.esm.js +778 -700
- package/components/common/index.umd.cjs +1 -1
- package/components/component/index.esm.js +472 -329
- package/components/component/index.umd.cjs +1 -1
- package/components/condition/index.css +1 -0
- package/components/condition/index.esm.js +2231 -1055
- package/components/condition/index.umd.cjs +1 -1
- package/components/content-container/index.esm.js +79 -79
- package/components/content-container/index.umd.cjs +1 -1
- package/components/data-grid/index.css +1 -1
- package/components/data-grid/index.esm.js +6408 -5034
- package/components/data-grid/index.umd.cjs +1 -1
- package/components/data-view/index.css +1 -0
- package/components/data-view/index.esm.js +4762 -3511
- package/components/data-view/index.umd.cjs +1 -1
- package/components/date-picker/index.css +1 -1
- package/components/date-picker/index.esm.js +3442 -2742
- package/components/date-picker/index.umd.cjs +1 -1
- package/components/designer-outline/index.esm.js +14 -13
- package/components/designer-outline/index.umd.cjs +1 -1
- package/components/dropdown/index.esm.js +73 -73
- package/components/dropdown/index.umd.cjs +2 -2
- package/components/dynamic-form/index.css +1 -0
- package/components/dynamic-form/index.esm.js +2597 -1141
- package/components/dynamic-form/index.umd.cjs +1 -1
- package/components/dynamic-resolver/index.esm.js +114 -71
- package/components/dynamic-resolver/index.umd.cjs +1 -1
- package/components/dynamic-view/index.esm.js +303 -290
- package/components/dynamic-view/index.umd.cjs +1 -1
- package/components/events-editor/index.esm.js +171 -171
- package/components/events-editor/index.umd.cjs +1 -1
- package/components/expression-editor/index.esm.js +65 -65
- package/components/expression-editor/index.umd.cjs +1 -1
- package/components/external-container/index.css +1 -1
- package/components/external-container/index.esm.js +3075 -2586
- package/components/external-container/index.umd.cjs +1 -1
- package/components/field-selector/index.css +1 -1
- package/components/field-selector/index.esm.js +5272 -8511
- package/components/field-selector/index.umd.cjs +1 -1
- package/components/filter-bar/index.css +1 -1
- package/components/filter-bar/index.esm.js +1726 -1822
- package/components/filter-bar/index.umd.cjs +1 -1
- package/components/image-cropper/index.esm.js +126 -126
- package/components/image-cropper/index.umd.cjs +1 -1
- package/components/input-group/index.esm.js +620 -540
- package/components/input-group/index.umd.cjs +1 -1
- package/components/layout/index.esm.js +88 -88
- package/components/layout/index.umd.cjs +1 -1
- package/components/list-nav/index.esm.js +71 -71
- package/components/list-nav/index.umd.cjs +1 -1
- package/components/list-view/index.css +1 -1
- package/components/list-view/index.esm.js +3582 -2356
- package/components/list-view/index.umd.cjs +1 -1
- package/components/lookup/index.css +1 -1
- package/components/lookup/index.esm.js +10752 -8972
- package/components/lookup/index.umd.cjs +1 -1
- package/components/mapping-editor/index.css +1 -1
- package/components/mapping-editor/index.esm.js +5601 -5329
- package/components/mapping-editor/index.umd.cjs +1 -1
- package/components/message-box/index.css +1 -1
- package/components/message-box/index.esm.js +511 -471
- package/components/message-box/index.umd.cjs +1 -1
- package/components/modal/index.css +1 -1
- package/components/modal/index.esm.js +438 -398
- package/components/modal/index.umd.cjs +1 -1
- package/components/nav/index.esm.js +535 -452
- package/components/nav/index.umd.cjs +2 -2
- package/components/notify/index.esm.js +59 -53
- package/components/notify/index.umd.cjs +1 -1
- package/components/number-range/index.esm.js +556 -477
- package/components/number-range/index.umd.cjs +1 -1
- package/components/number-spinner/index.esm.js +504 -425
- package/components/number-spinner/index.umd.cjs +1 -1
- package/components/order/index.css +1 -1
- package/components/order/index.esm.js +1833 -1054
- package/components/order/index.umd.cjs +1 -1
- package/components/page-footer/index.esm.js +100 -100
- package/components/page-footer/index.umd.cjs +1 -1
- package/components/page-header/index.esm.js +899 -870
- package/components/page-header/index.umd.cjs +1 -1
- package/components/pagination/index.esm.js +576 -487
- package/components/pagination/index.umd.cjs +1 -1
- package/components/popover/index.esm.js +71 -70
- package/components/popover/index.umd.cjs +1 -1
- package/components/progress/index.esm.js +73 -73
- package/components/progress/index.umd.cjs +2 -2
- package/components/property-editor/index.css +1 -1
- package/components/property-editor/index.esm.js +1916 -1220
- package/components/property-editor/index.umd.cjs +3 -3
- package/components/property-panel/index.esm.js +783 -886
- package/components/property-panel/index.umd.cjs +1 -1
- package/components/query-solution/index.css +1 -1
- package/components/query-solution/index.esm.js +3632 -2556
- package/components/query-solution/index.umd.cjs +1 -1
- package/components/radio-button/index.esm.js +72 -72
- package/components/radio-button/index.umd.cjs +1 -1
- package/components/radio-group/index.esm.js +484 -405
- package/components/radio-group/index.umd.cjs +1 -1
- package/components/rate/index.esm.js +152 -152
- package/components/rate/index.umd.cjs +1 -1
- package/components/response-layout/index.esm.js +73 -73
- package/components/response-layout/index.umd.cjs +1 -1
- package/components/response-layout-editor/index.css +1 -1
- package/components/response-layout-editor/index.esm.js +1081 -1043
- package/components/response-layout-editor/index.umd.cjs +1 -1
- package/components/response-toolbar/index.esm.js +753 -738
- package/components/response-toolbar/index.umd.cjs +1 -1
- package/components/schema-selector/index.css +1 -1
- package/components/schema-selector/index.esm.js +4418 -4177
- package/components/schema-selector/index.umd.cjs +2 -2
- package/components/search-box/index.esm.js +119 -119
- package/components/search-box/index.umd.cjs +1 -1
- package/components/section/index.esm.js +92 -91
- package/components/section/index.umd.cjs +1 -1
- package/components/smoke-detector/index.esm.js +59 -59
- package/components/smoke-detector/index.umd.cjs +1 -1
- package/components/splitter/index.esm.js +103 -103
- package/components/splitter/index.umd.cjs +1 -1
- package/components/step/index.esm.js +85 -85
- package/components/step/index.umd.cjs +1 -1
- package/components/switch/index.esm.js +457 -378
- package/components/switch/index.umd.cjs +1 -1
- package/components/tabs/index.css +1 -1
- package/components/tabs/index.esm.js +1696 -1617
- package/components/tabs/index.umd.cjs +1 -1
- package/components/tags/index.esm.js +53 -53
- package/components/tags/index.umd.cjs +1 -1
- package/components/text/index.esm.js +268 -268
- package/components/text/index.umd.cjs +1 -1
- package/components/textarea/index.esm.js +420 -341
- package/components/textarea/index.umd.cjs +1 -1
- package/components/time-picker/index.css +1 -1
- package/components/time-picker/index.esm.js +1062 -981
- package/components/time-picker/index.umd.cjs +1 -1
- package/components/transfer/index.css +1 -1
- package/components/transfer/index.esm.js +381 -379
- package/components/transfer/index.umd.cjs +1 -1
- package/components/tree-grid/index.css +1 -1
- package/components/tree-grid/index.esm.js +5252 -9560
- package/components/tree-grid/index.umd.cjs +1 -1
- package/components/tree-view/index.css +1 -0
- package/components/tree-view/index.esm.js +3920 -2692
- package/components/tree-view/index.umd.cjs +1 -1
- package/components/uploader/index.esm.js +373 -367
- package/components/uploader/index.umd.cjs +2 -2
- package/components/verify-detail/index.esm.js +92 -92
- package/components/verify-detail/index.umd.cjs +1 -1
- package/components/video/index.esm.js +597 -417
- package/components/video/index.umd.cjs +1 -1
- package/components/weather/index.esm.js +251 -251
- package/components/weather/index.umd.cjs +4 -4
- package/farris.all.esm.js +17125 -16176
- package/farris.all.umd.cjs +8 -8
- package/index.css +1 -1
- package/package.json +1 -1
- package/types/capsule/src/capsule.props.d.ts +2 -2
- package/types/combo-list/src/components/list-container.component.d.ts +0 -3
- package/types/combo-list/src/components/list-container.props.d.ts +0 -4
- package/types/common/index.d.ts +1 -0
- package/types/common/types.d.ts +1 -1
- package/types/common/utils/encrypt.d.ts +2 -0
- package/types/component/src/component.props.d.ts +7 -0
- package/types/component/src/designer/use-designer-rules.d.ts +1 -1
- package/types/component/src/property-config/component.property-config.d.ts +9 -0
- package/types/components.d.ts +1 -0
- package/types/data-grid/index.d.ts +5 -2
- package/types/data-grid/src/data-grid.component.d.ts +2 -1
- package/types/data-grid/src/data-grid.props.d.ts +1 -0
- package/types/data-view/composition/types.d.ts +18 -1
- package/types/data-view/composition/visualization/use-virtual-scroll.d.ts +0 -15
- package/types/designer-canvas/src/composition/dg-control.d.ts +5 -0
- package/types/designer-canvas/src/composition/types.d.ts +1 -1
- package/types/dynamic-form/src/composition/use-response-form-layout-setting.d.ts +2 -0
- package/types/dynamic-form/src/designer/response-form-layout-setting.component.d.ts +8 -0
- package/types/dynamic-form/src/designer/response-form-layout-setting.props.d.ts +4 -0
- package/types/dynamic-form/src/designer/use-designer-rules.d.ts +2 -2
- package/types/dynamic-form/src/property-config/form.property-config.d.ts +9 -0
- package/types/dynamic-form/src/schema/schema-mapper.d.ts +1 -0
- package/types/dynamic-form/src/schema/schema-resolver.d.ts +1 -0
- package/types/dynamic-form/src/types.d.ts +12 -1
- package/types/dynamic-resolver/index.d.ts +1 -0
- package/types/dynamic-resolver/src/event-handler-resolver.d.ts +4 -0
- package/types/dynamic-resolver/src/types.d.ts +9 -0
- package/types/dynamic-view/index.d.ts +1 -0
- package/types/dynamic-view/src/event-dispatcher.d.ts +1 -1
- package/types/index.d.ts +2 -0
- package/types/lookup/src/components/favorite/lookup-favorite.component.d.ts +29 -0
- package/types/lookup/src/components/favorite/lookup-favorite.props.d.ts +15 -0
- package/types/lookup/src/components/modal-container.component.d.ts +25 -0
- package/types/lookup/src/components/modal-container.props.d.ts +29 -0
- package/types/lookup/src/composition/types.d.ts +8 -0
- package/types/lookup/src/composition/use-check-props.d.ts +9 -2
- package/types/lookup/src/composition/use-dialog.d.ts +5 -1
- package/types/lookup/src/composition/use-favorite.d.ts +12 -0
- package/types/lookup/src/composition/use-http.d.ts +9 -5
- package/types/lookup/src/composition/use-input-change.d.ts +3 -0
- package/types/lookup/src/composition/use-user-data.d.ts +24 -0
- package/types/lookup/src/property-config/lookup.property-config.d.ts +6 -4
- package/types/mapping-editor/src/mapping-editor.component.d.ts +3 -0
- package/types/mapping-editor/src/mapping-editor.props.d.ts +0 -1
- package/types/modal/src/composition/use-draggable.d.ts +2 -1
- package/types/modal/src/composition/use-shortcut.d.ts +6 -0
- package/types/modal/src/modal.component.d.ts +3 -0
- package/types/modal/src/modal.props.d.ts +4 -0
- package/types/page-header/src/page-header.props.d.ts +1 -0
- package/types/property-panel/src/composition/entity/base-property.d.ts +8 -0
- package/types/property-panel/src/composition/entity/input-base-property.d.ts +20 -1
- package/types/response-layout-editor/src/composition/converter/use-response-layout-editor-setting.d.ts +2 -0
- package/types/response-layout-editor/src/type.d.ts +21 -0
- package/types/tabs/src/tabs.props.d.ts +1 -0
- package/types/tree-grid/index.d.ts +8 -2
- package/types/tree-grid/src/tree-grid.component.d.ts +3 -1
- package/types/data-grid/src/designer/use-group-column.d.ts +0 -20
- package/types/modal/src/composition/use-esc.d.ts +0 -1
- package/types/response-layout-editor/src/composition/converter/response-layout-editor.converter.d.ts +0 -3
- package/types/response-layout-editor/src/composition/converter/use-convert-property-value.d.ts +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(h,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es"),require("../dynamic-resolver/index.umd.js"),require("../tags/index.umd.js"),require("../popover/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../dynamic-resolver/index.umd.js","../tags/index.umd.js","../popover/index.umd.js","../designer-canvas/index.umd.js","../common/index.umd.js"],n):(h=typeof globalThis<"u"?globalThis:h||self,n(h["button-edit"]={},h.Vue,h.LodashES,h.dynamicResolver,h.FTags,h.FPopover,h.designerCanvas,h.common))})(this,function(h,n,S,L,D,A,$,G){"use strict";const q={},W={};function I(e){const{properties:t,title:u,ignore:a}=e,o=a&&Array.isArray(a),r=Object.keys(t).reduce((d,s)=>((!o||!a.find(b=>b==s))&&(d[s]=t[s].type==="object"&&t[s].properties?I(t[s]):S.cloneDeep(t[s].default)),d),{});return(!o||!a.find(d=>d=="id"))&&(r.id=`${u}-${Date.now()}`),r}function H(e,t){const u=I(t);return Object.keys(e).reduce((a,o)=>(a[o]&&typeof a[o]=="object"?Object.assign(a[o],e[o]):a[o]=e[o],a),u),u}function _(e,t){return Object.keys(e).filter(a=>e[a]!=null).reduce((a,o)=>{if(t.has(o)){const r=t.get(o);if(typeof r=="string")a[r]=e[o];else{const d=r(o,e[o],e);Object.assign(a,d)}}else a[o]=e[o];return a},{})}function U(e,t,u=new Map){const a=H(e,t);return _(a,u)}function X(e={}){function t(l,c,i,f){if(typeof i=="number")return f[l].length===i;if(typeof i=="object"){const m=Object.keys(i)[0],g=i[m];if(m==="not")return Number(f[l].length)!==Number(g);if(m==="moreThan")return Number(f[l].length)>=Number(g);if(m==="lessThan")return Number(f[l].length)<=Number(g)}return!1}function u(l,c,i,f){return f[l]&&f[l].propertyValue&&String(f[l].propertyValue.value)===String(i)}const a=new Map([["length",t],["getProperty",u]]);Object.keys(e).reduce((l,c)=>(l.set(c,e[c]),l),a);function o(l,c){const i=l;return typeof c=="number"?[{target:i,operator:"length",param:null,value:Number(c)}]:typeof c=="boolean"?[{target:i,operator:"getProperty",param:l,value:!!c}]:typeof c=="object"?Object.keys(c).map(f=>{if(f==="length")return{target:i,operator:"length",param:null,value:c[f]};const m=f,g=c[f];return{target:i,operator:"getProperty",param:m,value:g}}):[]}function r(l){return Object.keys(l).reduce((i,f)=>{const m=o(f,l[f]);return i.push(...m),i},[])}function d(l,c){if(a.has(l.operator)){const i=a.get(l.operator);return i&&i(l.target,l.param,l.value,c)||!1}return!1}function s(l,c){return r(l).reduce((m,g)=>m&&d(g,c),!0)}function b(l,c){const i=Object.keys(l),f=i.includes("allOf"),m=i.includes("anyOf"),g=f||m,C=(g?l[g?f?"allOf":"anyOf":"allOf"]:[l]).map(O=>s(O,c));return f?!C.includes(!1):C.includes(!0)}return{parseValueSchema:b}}const z={},J={};X();function Q(e,t,u=new Map,a=(d,s,b)=>s,o={},r=d=>d){return q[t.title]=t,W[t.title]=a,z[t.title]=o,J[t.title]=r,(d={})=>{const s=U(d,t,u),b=Object.keys(e).reduce((l,c)=>(l[c]=e[c].default,l),{});return Object.assign(b,s)}}const Y=new Map([["appearance",L.resolveAppearance]]);function Z(e,t,u){return t}const K={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/button-edit.schema.json",title:"button-edit",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"button-edit"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},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},require:{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:""},autoComplete:{description:"",type:"boolean",default:!1},buttonContent:{description:"",type:"string",default:""},enableClear:{description:"",type:"boolean",default:!0},inputType:{description:"",type:"string",enum:["text","tag"],default:"text"},multiSelect:{description:"",type:"boolean",default:!1},popup:{description:"",type:"object",properties:{footerButtons:{type:"array",default:[]},height:{type:"number",default:600},dataMapping:{type:"object"},contents:{type:"array",default:[]},showMaxButton:{type:"boolean",default:!0},showCloseButton:{type:"boolean",default:!0},showFooter:{type:"boolean",default:!0},title:{type:"string",default:""},width:{type:"number",default:800}}},separator:{type:"string",default:","},showButtonWhenDisabled:{description:"",type:"boolean",default:!1},wrapText:{type:"boolean",default:!1},onClear:{description:"",type:"string",default:""}},required:["id","type"]},ee={title:"buttonEdit",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:"右对齐"}]}}}}}},k={id:String,buttonContent:{type:String,default:'<i class="f-icon f-icon-lookup"></i>'},buttonBehavior:{type:String,default:"Popup"},autoComplete:{type:Boolean,default:!1},customClass:{type:String,default:""},disable:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},enableClear:{type:Boolean,default:!1},modelValue:{type:String,default:""},readonly:{type:Boolean,default:!1},showButtonWhenDisabled:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!1},inputType:{type:String,default:"text"},forcePlaceholder:{type:Boolean,default:!1},placeholder:{type:String,default:""},minLength:Number,maxLength:Number,tabIndex:Number,popupHost:{type:Object},popupRightBoundary:{type:Object},popupOffsetX:{type:Object},popupOnInput:{type:Boolean,default:!1},popupOnFocus:{type:Boolean,default:!1},popupMinWidth:{type:Number,default:160},modalOptions:{type:Object,default:{}},wrapText:{type:Boolean,default:!1},multiSelect:{type:Boolean,default:!1},separator:{type:String,default:","},textAlign:{type:String,default:"left"},beforeClickButton:{type:Function,default:null},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},beforeOpen:{type:Function,default:null}},M=Q(k,K,Y,Z,ee),te={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},ne=n.defineComponent({name:"FOverlay",props:te,emits:["click"],setup(e,t){const u=n.ref(e.popupContentPosition),a=n.ref(e.host),o=n.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function r(s){t.emit("click"),s.preventDefault(),s.stopPropagation()}n.computed(()=>{const s=a.value;if(s){const b=s.getBoundingClientRect(),{left:l,top:c,height:i}=b;return{left:l,top:c+i}}return u.value});const d=n.computed(()=>({}));return()=>n.createVNode(n.Teleport,{to:"body"},{default:()=>{var s,b;return[n.createVNode("div",{class:"overlay-container",onClick:l=>r(l),style:o.value},[n.createVNode("div",{style:d.value},[(b=(s=t.slots).default)==null?void 0:b.call(s)])])]}})}});function oe(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function ae(e){const t=document.createElement("div");t.style.display="contents";let u;const a=e.onClickCallback||(()=>{}),o=()=>{a(),u&&u.unmount()};return u=n.createApp({setup(){n.onUnmounted(()=>{document.body.removeChild(t)});const r=oe(e);return()=>n.createVNode(ne,{"popup-content-position":e.popupPosition,host:e.host,onClick:o,backgroundColor:e.backgroundColor},{default:()=>[r&&r()]})}}),document.body.appendChild(t),u.mount(t),u}class ue{static show(t){return ae(t)}}const le=Symbol("FModalService");function R(e,t){function u(){const a=e.beforeOpen||e.beforeClickButton||null;let o=Promise.resolve(!0);if(a){const r=a(t.value);if(typeof r>"u")return o;typeof r=="boolean"?o=Promise.resolve(r):o=r}return o}return{judgeCanOpen:u}}function N(e,t,u,a,o){const r=n.ref(e.buttonBehavior),d=n.ref(e.popupOnInput),s=n.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:b}=R(e,o),l=n.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),c=n.inject(le,null),i=n.ref();async function f(y){if(await b()&&l.value){const x=!!t.slots.default;if(r.value==="Modal"){const C=e.modalOptions,v=c==null?void 0:c.open({...C,render:()=>t.slots.default&&t.slots.default()});i.value=v==null?void 0:v.modalRef}r.value==="Overlay"&&ue.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>t.slots.default&&t.slots.default()}),x&&r.value==="Popup"&&a.togglePopup(!0),x&&d.value&&a.hidePopup(),t.emit("clickButton",{origin:y,value:e.modelValue})}}function m(y){t.emit("mouseEnterIcon",y)}function g(y){t.emit("mouseLeaveIcon",y)}return{buttonGroupClass:s,onClickButton:f,onMouseEnterButton:m,onMouseLeaveButton:g,modalRef:i}}function re(e,t,u,a,o,r){const d=n.ref(!1),s=n.computed(()=>e.enableClear&&!e.readonly&&!e.disable),{changeTextBoxValue:b}=r;function l(m){d.value=m}n.watch(o,()=>{l(!!o.value)});function c(m){const g=!e.readonly&&!e.disable&&e.editable,y=!e.editable;m.stopPropagation(),(g||y)&&(b("",!1),l(!d.value),t.emit("clear"))}function i(m){if(s.value){if(!u.value){l(!1);return}!e.disable&&!e.readonly&&l(!0)}}function f(m){s.value&&l(!1)}return{enableClearButton:s,showClearButton:d,onClearValue:c,onMouseEnterTextBox:i,onMouseLeaveTextBox:f}}function ie(e,t,u,a,o){const r=n.computed(()=>e.popupOnInput),d=n.computed(()=>e.popupOnFocus),{shouldPopupContent:s}=o,b=n.computed(()=>e.enableTitle?u.value:""),l=n.computed(()=>(e.disable||e.readonly)&&!e.forcePlaceholder?"":e.placeholder),c=n.computed(()=>e.readonly||!e.editable),i=n.ref(!1),f=n.computed(()=>!e.disable&&i.value),m=n.computed(()=>({"text-left":e.textAlign==="left","text-center":e.textAlign==="center","text-right":e.textAlign==="right","form-control":!0,"f-utils-fill":!0})),g=n.computed(()=>({"input-group":!0,"f-state-disable":e.disable,"f-state-editable":e.editable&&!e.disable&&!e.readonly,"f-state-readonly":e.readonly&&!e.disable,"f-state-focus":f.value}));function y(p,B=!0){u.value!==p&&(u.value=p,B&&t.emit("change",p),t.emit("update:modelValue",p))}function x(p){s.value=!1,y(p,!0)}n.watch(()=>e.modelValue,p=>{u.value=p});function C(p){i.value=!1,t.emit("blur",p),p.stopPropagation()}function v(p){t.emit("click",p)}function O(p){e.disable||(i.value=!0,c.value||(t.emit("focus",p),d.value&&!s.value&&o.popup()))}function w(p){t.emit("input",p.target.value);const B=p.target.value;a.value=B,u.value!==B&&y(B,!0),r.value&&!s.value&&o.popup()}function P(p){p.target.tagName!=="INPUT"&&p.preventDefault(),p.stopPropagation()}function j(p){t.emit("keydown",p)}function V(p){p.key==="Enter"&&(r.value||d.value)&&o.hidePopup(),t.emit("keyup",p)}function E(p){const B=p.target.value;p.stopPropagation(),y(B)}return{hasFocusedTextBox:f,isTextBoxReadonly:c,textBoxClass:m,textBoxPlaceholder:l,textBoxTitle:b,inputGroupClass:g,changeTextBoxValue:y,commitValue:x,onBlurTextBox:C,onClickTextBox:v,onFocusTextBox:O,onInput:w,onKeyDownTextBox:j,onKeyUpTextBox:V,onMouseDownTextBox:P,onTextBoxValueChange:E}}function F(e,t,u,a){const o=n.ref(),r=n.ref(!1),{judgeCanOpen:d}=R(e,a);function s(){const i=o.value;i&&i.show(u.value)}async function b(i=!1){if(!!t.slots.default){if(!i&&!r.value&&!await d())return;r.value=!r.value,await n.nextTick(),s()}}async function l(i=!1){if(!!t.slots.default){if(!i&&!await d())return;r.value=!0,await n.nextTick(),s()}}function c(){r.value=!1}return{hidePopup:c,popup:l,shouldPopupContent:r,togglePopup:b,popoverRef:o}}function se(e,t,u){const a=n.ref(),{isTextBoxReadonly:o,textBoxClass:r,textBoxPlaceholder:d,textBoxTitle:s,onBlurTextBox:b,onClickTextBox:l,onFocusTextBox:c,onInput:i,onKeyDownTextBox:f,onKeyUpTextBox:m,onMouseDownTextBox:g,onTextBoxValueChange:y}=u;return n.onMounted(()=>{var x,C;e.selectOnCreated&&((x=a.value)==null||x.select()),e.focusOnCreated&&((C=a.value)==null||C.focus())}),()=>n.createVNode("input",{ref:a,name:"input-group-value",autocomplete:e.autoComplete?"on":"off",class:r.value,disabled:e.disable,maxlength:e.maxLength,minlength:e.minLength,placeholder:d.value,readonly:o.value,tabindex:e.tabIndex,title:s.value,type:e.inputType,value:t.value,onBlur:b,onChange:y,onClick:l,onFocus:c,onInput:i,onKeydown:f,onKeyup:m,onMousedown:g},null)}function ce(e,t,u){const a=n.ref(e.separator),{changeTextBoxValue:o}=u,r=n.computed(()=>t.value?t.value.split(a.value).map(s=>({name:s,selectable:!0})):[]);function d(s){o(s.map(b=>b.name).join(a.value),!0)}return()=>n.createVNode(D,{id:`${e.id}-tag-editor`,class:"form-control",data:r.value,showClose:!0,showInput:!0,onChange:d},null)}function de(e,t,u,a){const{buttonGroupClass:o,onClickButton:r,onMouseEnterButton:d,onMouseLeaveButton:s}=u,{enableClearButton:b,showClearButton:l,onClearValue:c}=a,i=n.ref();return{renderButtonGroup:()=>n.createVNode("div",{id:`${e.id}-button-group`,class:o.value},[b.value&&n.withDirectives(n.createVNode("span",{class:"input-group-text input-group-clear",onClick:c},[n.createVNode("i",{class:"f-icon modal_close"},null)]),[[n.vShow,l.value]]),t.slots.buttonContent?n.createVNode("span",{class:"input-group-text input-group-append-button",onClick:r,onMouseenter:d,onMouseleave:s},[t.slots.buttonContent()]):e.buttonContent?n.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:i,onClick:r,onMouseenter:d,onMouseleave:s},null):null]),buttonHandleElement:i}}function pe(e,t,u){const a=n.ref(e.popupMinWidth),{hidePopup:o,popoverRef:r}=u;return()=>n.createVNode(A,{id:`${e.id}-popover`,ref:r,visible:!0,placement:"bottom-left",host:e.popupHost,"keep-width-with-reference":!0,fitContent:!0,"right-boundary":e.popupRightBoundary,minWidth:a.value,offsetX:e.popupOffsetX,onHidden:o},{default:()=>{var d,s;return[(s=(d=t.slots).default)==null?void 0:s.call(d)]}})}const T=n.defineComponent({name:"FButtonEdit",props:k,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue"],setup(e,t){const u=n.ref(),a=n.ref(e.customClass),o=n.ref(e.modelValue),r=F(e,t,u,o),{shouldPopupContent:d,hidePopup:s,togglePopup:b}=r,l=N(e,t,u,r,o),c=n.ref(""),i=ie(e,t,o,c,r),{hasFocusedTextBox:f,commitValue:m,inputGroupClass:g}=i,y=re(e,t,o,f,c,i),{onMouseEnterTextBox:x,onMouseLeaveTextBox:C}=y,v=n.computed(()=>{const p={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return a.value&&a.value.split(" ").reduce((B,ge)=>(B[ge]=!0,B),p),p});function O(){return e.multiSelect&&e.inputType==="tag"?ce(e,o,i):se(e,o,i)}let w=O();n.watch([()=>e.multiSelect,()=>e.inputType],()=>{w=O()});const{renderButtonGroup:P,buttonHandleElement:j}=de(e,t,l,y),V=pe(e,t,r),E={commitValue:m,elementRef:u,hidePopup:s,shouldPopupContent:d,togglePopup:b,openDialog:()=>{j.value&&e.buttonBehavior==="Modal"&&j.value.click()},getModal:()=>{var p;return e.buttonBehavior==="Modal"?(p=l.modalRef.value)==null?void 0:p.value:null}};return n.onMounted(()=>{u.value.componentInstance=E,window.onresize=()=>{document.body.click()}}),t.expose(E),()=>n.createVNode(n.Fragment,null,[n.createVNode("div",n.mergeProps(t.attrs,{ref:u,class:v.value,id:e.id}),[n.createVNode("div",{id:`${e.id}-input-group`,class:g.value,onMouseenter:x,onMouseleave:C},[w(),P()])]),d.value&&V()])}});function fe(e,t,u){const{buttonGroupClass:a}=u,o=n.ref();return{renderButtonGroup:()=>n.createVNode("div",{id:`${e.id}-button-group`,class:a.value},[t.slots.buttonContent?n.createVNode("span",{class:"input-group-text input-group-append-button"},[t.slots.buttonContent()]):e.buttonContent?n.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:o},null):null]),buttonHandleElement:o}}const me=n.defineComponent({name:"FButtonEdit",props:k,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue"],setup(e,t){const u=n.ref(),a=n.inject("design-item-context"),o=$.useDesignerComponent(u,a),r=n.ref(e.customClass),d=n.ref(e.modelValue),s=F(e,t,u,d),b=N(e,t,u,s,d),l=n.ref(),c=n.computed(()=>({"f-cmp-inputgroup":!0,"input-group":!0,"f-state-disable":!0,"f-state-editable":!1,"f-state-readonly":!0}));n.onMounted(()=>{u.value.componentInstance=o}),t.expose(o.value);const i=n.computed(()=>{const m={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return r.value&&r.value.split(" ").reduce((g,y)=>(g[y]=!0,g),m),m}),{renderButtonGroup:f}=fe(e,t,b);return()=>n.createVNode("div",n.mergeProps(t.attrs,{ref:u,class:i.value,id:e.id}),[n.createVNode("div",{class:c.value},[n.createVNode("input",{ref:l,class:"form-control",readonly:!0,placeholder:e.placeholder},null),f()])])}});T.register=(e,t,u,a)=>{e["button-edit"]=T,t["button-edit"]=M},T.registerDesigner=(e,t,u)=>{e["button-edit"]=me,t["button-edit"]=M};const be=G.withInstall(T);h.FButtonEdit=T,h.buttonEditProps=k,h.default=be,h.propsResolver=M,Object.defineProperties(h,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(h,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("vue"),require("lodash-es"),require("../dynamic-resolver/index.umd.js"),require("../tags/index.umd.js"),require("../popover/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../dynamic-resolver/index.umd.js","../tags/index.umd.js","../popover/index.umd.js","../designer-canvas/index.umd.js","../common/index.umd.js"],n):(h=typeof globalThis<"u"?globalThis:h||self,n(h["button-edit"]={},h.Vue,h.LodashES,h.dynamicResolver,h.FTags,h.FPopover,h.designerCanvas,h.common))})(this,function(h,n,P,L,D,A,$,G){"use strict";const q={},W={};function R(e){const{properties:t,title:u,ignore:a}=e,o=a&&Array.isArray(a),i=Object.keys(t).reduce((d,s)=>((!o||!a.find(b=>b==s))&&(d[s]=t[s].type==="object"&&t[s].properties?R(t[s]):P.cloneDeep(t[s].default)),d),{});return(!o||!a.find(d=>d=="id"))&&(i.id=`${u}-${Date.now()}`),i}function H(e,t){const u=R(t);return Object.keys(e).reduce((a,o)=>(a[o]&&P.isPlainObject(a[o])&&P.isPlainObject(e[o])?Object.assign(a[o],e[o]):a[o]=e[o],a),u),u}function _(e,t){return Object.keys(e).filter(a=>e[a]!=null).reduce((a,o)=>{if(t.has(o)){const i=t.get(o);if(typeof i=="string")a[i]=e[o];else{const d=i(o,e[o],e);Object.assign(a,d)}}else a[o]=e[o];return a},{})}function U(e,t,u=new Map){const a=H(e,t);return _(a,u)}function X(e={}){function t(l,c,r,f){if(typeof r=="number")return f[l].length===r;if(typeof r=="object"){const m=Object.keys(r)[0],g=r[m];if(m==="not")return Number(f[l].length)!==Number(g);if(m==="moreThan")return Number(f[l].length)>=Number(g);if(m==="lessThan")return Number(f[l].length)<=Number(g)}return!1}function u(l,c,r,f){return f[l]&&f[l].propertyValue&&String(f[l].propertyValue.value)===String(r)}const a=new Map([["length",t],["getProperty",u]]);Object.keys(e).reduce((l,c)=>(l.set(c,e[c]),l),a);function o(l,c){const r=l;return typeof c=="number"?[{target:r,operator:"length",param:null,value:Number(c)}]:typeof c=="boolean"?[{target:r,operator:"getProperty",param:l,value:!!c}]:typeof c=="object"?Object.keys(c).map(f=>{if(f==="length")return{target:r,operator:"length",param:null,value:c[f]};const m=f,g=c[f];return{target:r,operator:"getProperty",param:m,value:g}}):[]}function i(l){return Object.keys(l).reduce((r,f)=>{const m=o(f,l[f]);return r.push(...m),r},[])}function d(l,c){if(a.has(l.operator)){const r=a.get(l.operator);return r&&r(l.target,l.param,l.value,c)||!1}return!1}function s(l,c){return i(l).reduce((m,g)=>m&&d(g,c),!0)}function b(l,c){const r=Object.keys(l),f=r.includes("allOf"),m=r.includes("anyOf"),g=f||m,C=(g?l[g?f?"allOf":"anyOf":"allOf"]:[l]).map(v=>s(v,c));return f?!C.includes(!1):C.includes(!0)}return{parseValueSchema:b}}const z={},J={};X();function Q(e,t,u=new Map,a=(d,s,b)=>s,o={},i=d=>d){return q[t.title]=t,W[t.title]=a,z[t.title]=o,J[t.title]=i,(d={})=>{const s=U(d,t,u),b=Object.keys(e).reduce((l,c)=>(l[c]=e[c].default,l),{});return Object.assign(b,s)}}const Y=new Map([["appearance",L.resolveAppearance]]);function Z(e,t,u){return t}const K={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/button-edit.schema.json",title:"button-edit",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"button-edit"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},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},require:{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:""},autoComplete:{description:"",type:"boolean",default:!1},buttonContent:{description:"",type:"string",default:""},enableClear:{description:"",type:"boolean",default:!0},inputType:{description:"",type:"string",enum:["text","tag"],default:"text"},multiSelect:{description:"",type:"boolean",default:!1},popup:{description:"",type:"object",properties:{footerButtons:{type:"array",default:[]},height:{type:"number",default:600},dataMapping:{type:"object"},contents:{type:"array",default:[]},showMaxButton:{type:"boolean",default:!0},showCloseButton:{type:"boolean",default:!0},showFooter:{type:"boolean",default:!0},title:{type:"string",default:""},width:{type:"number",default:800}}},separator:{type:"string",default:","},showButtonWhenDisabled:{description:"",type:"boolean",default:!1},wrapText:{type:"boolean",default:!1},onClear:{description:"",type:"string",default:""}},required:["id","type"]},ee={title:"buttonEdit",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:"右对齐"}]}}}}}},k={id:String,buttonContent:{type:String,default:'<i class="f-icon f-icon-lookup"></i>'},buttonBehavior:{type:String,default:"Popup"},autoComplete:{type:Boolean,default:!1},customClass:{type:String,default:""},disable:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},enableClear:{type:Boolean,default:!1},modelValue:{type:String,default:""},readonly:{type:Boolean,default:!1},showButtonWhenDisabled:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!1},inputType:{type:String,default:"text"},forcePlaceholder:{type:Boolean,default:!1},placeholder:{type:String,default:""},minLength:Number,maxLength:Number,tabIndex:Number,popupHost:{type:Object},popupRightBoundary:{type:Object},popupOffsetX:{type:Object},popupOnInput:{type:Boolean,default:!1},popupOnFocus:{type:Boolean,default:!1},popupMinWidth:{type:Number,default:160},modalOptions:{type:Object,default:{}},wrapText:{type:Boolean,default:!1},multiSelect:{type:Boolean,default:!1},separator:{type:String,default:","},textAlign:{type:String,default:"left"},beforeClickButton:{type:Function,default:null},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},beforeOpen:{type:Function,default:null},updateOn:{type:String,default:"change"}},M=Q(k,K,Y,Z,ee),te={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},ne=n.defineComponent({name:"FOverlay",props:te,emits:["click"],setup(e,t){const u=n.ref(e.popupContentPosition),a=n.ref(e.host),o=n.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function i(s){t.emit("click"),s.preventDefault(),s.stopPropagation()}n.computed(()=>{const s=a.value;if(s){const b=s.getBoundingClientRect(),{left:l,top:c,height:r}=b;return{left:l,top:c+r}}return u.value});const d=n.computed(()=>({}));return()=>n.createVNode(n.Teleport,{to:"body"},{default:()=>{var s,b;return[n.createVNode("div",{class:"overlay-container",onClick:l=>i(l),style:o.value},[n.createVNode("div",{style:d.value},[(b=(s=t.slots).default)==null?void 0:b.call(s)])])]}})}});function oe(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function ae(e){const t=document.createElement("div");t.style.display="contents";let u;const a=e.onClickCallback||(()=>{}),o=()=>{a(),u&&u.unmount()};return u=n.createApp({setup(){n.onUnmounted(()=>{document.body.removeChild(t)});const i=oe(e);return()=>n.createVNode(ne,{"popup-content-position":e.popupPosition,host:e.host,onClick:o,backgroundColor:e.backgroundColor},{default:()=>[i&&i()]})}}),document.body.appendChild(t),u.mount(t),u}class ue{static show(t){return ae(t)}}const le=Symbol("FModalService");function N(e,t){function u(){const a=e.beforeOpen||e.beforeClickButton||null;let o=Promise.resolve(!0);if(a){const i=a(t.value);if(typeof i>"u")return o;typeof i=="boolean"?o=Promise.resolve(i):o=i}return o}return{judgeCanOpen:u}}function F(e,t,u,a,o){const i=n.ref(e.buttonBehavior),d=n.ref(e.popupOnInput),s=n.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:b}=N(e,o),l=n.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),c=n.inject(le,null),r=n.ref();async function f(y){if(await b()&&l.value){const x=!!t.slots.default;if(i.value==="Modal"){const C=e.modalOptions,O=c==null?void 0:c.open({...C,render:()=>t.slots.default&&t.slots.default()});r.value=O==null?void 0:O.modalRef}i.value==="Overlay"&&ue.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>t.slots.default&&t.slots.default()}),x&&i.value==="Popup"&&a.togglePopup(!0),x&&d.value&&a.hidePopup(),t.emit("clickButton",{origin:y,value:e.modelValue})}}function m(y){t.emit("mouseEnterIcon",y)}function g(y){t.emit("mouseLeaveIcon",y)}return{buttonGroupClass:s,onClickButton:f,onMouseEnterButton:m,onMouseLeaveButton:g,modalRef:r}}function ie(e,t,u,a,o,i){const d=n.ref(!1),s=n.computed(()=>e.enableClear&&!e.readonly&&!e.disable),{changeTextBoxValue:b}=i;function l(m){d.value=m}n.watch(o,()=>{l(!!o.value)});function c(m){const g=!e.readonly&&!e.disable&&e.editable,y=!e.editable;m.stopPropagation(),(g||y)&&(b("",!1),l(!d.value),t.emit("clear"))}function r(m){if(s.value){if(!u.value){l(!1);return}!e.disable&&!e.readonly&&l(!0)}}function f(m){s.value&&l(!1)}return{enableClearButton:s,showClearButton:d,onClearValue:c,onMouseEnterTextBox:r,onMouseLeaveTextBox:f}}function re(e,t,u,a,o){const i=n.computed(()=>e.popupOnInput),d=n.computed(()=>e.popupOnFocus),{shouldPopupContent:s}=o,b=n.computed(()=>e.enableTitle?u.value:""),l=n.computed(()=>(e.disable||e.readonly)&&!e.forcePlaceholder?"":e.placeholder),c=n.computed(()=>e.readonly||!e.editable),r=n.ref(!1),f=n.computed(()=>!e.disable&&r.value),m=n.computed(()=>({"text-left":e.textAlign==="left","text-center":e.textAlign==="center","text-right":e.textAlign==="right","form-control":!0,"f-utils-fill":!0})),g=n.computed(()=>({"input-group":!0,"f-state-disable":e.disable,"f-state-editable":e.editable&&!e.disable&&!e.readonly,"f-state-readonly":e.readonly&&!e.disable,"f-state-focus":f.value}));function y(p,B=!0){u.value!==p&&(u.value=p,B&&(t.emit("change",p),t.emit("update:modelValue",p)))}function x(p){s.value=!1,y(p,!0)}n.watch(()=>e.modelValue,p=>{u.value=p});function C(p){r.value=!1,t.emit("blur",p),p.stopPropagation()}function O(p){t.emit("click",p)}function v(p){e.disable||(r.value=!0,c.value||(t.emit("focus",p),d.value&&!s.value&&o.popup()))}function w(p){t.emit("input",p.target.value);const B=p.target.value;a.value=B,u.value!==B&&y(B,e.updateOn==="change"),i.value&&!s.value&&o.popup()}function V(p){p.target.tagName!=="INPUT"&&p.preventDefault(),p.stopPropagation()}function j(p){t.emit("keydown",p)}function I(p){p.key==="Enter"&&(i.value||d.value)&&o.hidePopup(),t.emit("keyup",p)}function E(p){const B=p.target.value;p.stopPropagation(),y(B)}return{hasFocusedTextBox:f,isTextBoxReadonly:c,textBoxClass:m,textBoxPlaceholder:l,textBoxTitle:b,inputGroupClass:g,changeTextBoxValue:y,commitValue:x,onBlurTextBox:C,onClickTextBox:O,onFocusTextBox:v,onInput:w,onKeyDownTextBox:j,onKeyUpTextBox:I,onMouseDownTextBox:V,onTextBoxValueChange:E}}function S(e,t,u,a){const o=n.ref(),i=n.ref(!1),{judgeCanOpen:d}=N(e,a);function s(){const r=o.value;r&&r.show(u.value)}async function b(r=!1){if(!!t.slots.default){if(!r&&!i.value&&!await d())return;i.value=!i.value,await n.nextTick(),s()}}async function l(r=!1){if(!!t.slots.default){if(!r&&!await d())return;i.value=!0,await n.nextTick(),s()}}function c(){i.value=!1}return{hidePopup:c,popup:l,shouldPopupContent:i,togglePopup:b,popoverRef:o}}function se(e,t,u){const a=n.ref(),{isTextBoxReadonly:o,textBoxClass:i,textBoxPlaceholder:d,textBoxTitle:s,onBlurTextBox:b,onClickTextBox:l,onFocusTextBox:c,onInput:r,onKeyDownTextBox:f,onKeyUpTextBox:m,onMouseDownTextBox:g,onTextBoxValueChange:y}=u;return n.onMounted(()=>{var x,C;e.selectOnCreated&&((x=a.value)==null||x.select()),e.focusOnCreated&&((C=a.value)==null||C.focus())}),()=>n.createVNode("input",{ref:a,name:"input-group-value",autocomplete:e.autoComplete?"on":"off",class:i.value,disabled:e.disable,maxlength:e.maxLength,minlength:e.minLength,placeholder:d.value,readonly:o.value,tabindex:e.tabIndex,title:s.value,type:e.inputType,value:t.value,onBlur:b,onChange:y,onClick:l,onFocus:c,onInput:r,onKeydown:f,onKeyup:m,onMousedown:g},null)}function ce(e,t,u){const a=n.ref(e.separator),{changeTextBoxValue:o}=u,i=n.computed(()=>t.value?t.value.split(a.value).map(s=>({name:s,selectable:!0})):[]);function d(s){o(s.map(b=>b.name).join(a.value),!0)}return()=>n.createVNode(D,{id:`${e.id}-tag-editor`,class:"form-control",data:i.value,showClose:!0,showInput:!0,onChange:d},null)}function de(e,t,u,a){const{buttonGroupClass:o,onClickButton:i,onMouseEnterButton:d,onMouseLeaveButton:s}=u,{enableClearButton:b,showClearButton:l,onClearValue:c}=a,r=n.ref();return{renderButtonGroup:()=>n.createVNode("div",{id:`${e.id}-button-group`,class:o.value},[b.value&&n.withDirectives(n.createVNode("span",{class:"input-group-text input-group-clear",onClick:c},[n.createVNode("i",{class:"f-icon modal_close"},null)]),[[n.vShow,l.value]]),t.slots.buttonContent?n.createVNode("span",{class:"input-group-text input-group-append-button",onClick:i,onMouseenter:d,onMouseleave:s},[t.slots.buttonContent()]):e.buttonContent?n.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:r,onClick:i,onMouseenter:d,onMouseleave:s},null):null]),buttonHandleElement:r}}function pe(e,t,u){const a=n.ref(e.popupMinWidth),{hidePopup:o,popoverRef:i}=u;return()=>n.createVNode(A,{id:`${e.id}-popover`,ref:i,visible:!0,placement:"bottom-left",host:e.popupHost,"keep-width-with-reference":!0,fitContent:!0,"right-boundary":e.popupRightBoundary,minWidth:a.value,offsetX:e.popupOffsetX,onHidden:o},{default:()=>{var d,s;return[(s=(d=t.slots).default)==null?void 0:s.call(d)]}})}const T=n.defineComponent({name:"FButtonEdit",props:k,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue"],setup(e,t){const u=n.ref(),a=n.ref(e.customClass),o=n.ref(e.modelValue),i=S(e,t,u,o),{shouldPopupContent:d,hidePopup:s,togglePopup:b}=i,l=F(e,t,u,i,o),c=n.ref(""),r=re(e,t,o,c,i),{hasFocusedTextBox:f,commitValue:m,inputGroupClass:g}=r,y=ie(e,t,o,f,c,r),{onMouseEnterTextBox:x,onMouseLeaveTextBox:C}=y,O=n.computed(()=>{const p={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return a.value&&a.value.split(" ").reduce((B,ge)=>(B[ge]=!0,B),p),p});function v(){return e.multiSelect&&e.inputType==="tag"?ce(e,o,r):se(e,o,r)}let w=v();n.watch([()=>e.multiSelect,()=>e.inputType],()=>{w=v()});const{renderButtonGroup:V,buttonHandleElement:j}=de(e,t,l,y),I=pe(e,t,i),E={commitValue:m,elementRef:u,hidePopup:s,shouldPopupContent:d,togglePopup:b,openDialog:()=>{j.value&&e.buttonBehavior==="Modal"&&j.value.click()},getModal:()=>{var p;return e.buttonBehavior==="Modal"?(p=l.modalRef.value)==null?void 0:p.value:null}};return n.onMounted(()=>{u.value.componentInstance=E,window.onresize=()=>{document.body.click()}}),t.expose(E),()=>n.createVNode(n.Fragment,null,[n.createVNode("div",n.mergeProps(t.attrs,{ref:u,class:O.value,id:e.id}),[n.createVNode("div",{id:`${e.id}-input-group`,class:g.value,onMouseenter:x,onMouseleave:C},[w(),V()])]),d.value&&I()])}});function fe(e,t,u){const{buttonGroupClass:a}=u,o=n.ref();return{renderButtonGroup:()=>n.createVNode("div",{id:`${e.id}-button-group`,class:a.value},[t.slots.buttonContent?n.createVNode("span",{class:"input-group-text input-group-append-button"},[t.slots.buttonContent()]):e.buttonContent?n.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:o},null):null]),buttonHandleElement:o}}const me=n.defineComponent({name:"FButtonEdit",props:k,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue"],setup(e,t){const u=n.ref(),a=n.inject("design-item-context"),o=$.useDesignerComponent(u,a),i=n.ref(e.customClass),d=n.ref(e.modelValue),s=S(e,t,u,d),b=F(e,t,u,s,d),l=n.ref(),c=n.computed(()=>({"f-cmp-inputgroup":!0,"input-group":!0,"f-state-disable":!0,"f-state-editable":!1,"f-state-readonly":!0}));n.onMounted(()=>{u.value.componentInstance=o}),t.expose(o.value);const r=n.computed(()=>{const m={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return i.value&&i.value.split(" ").reduce((g,y)=>(g[y]=!0,g),m),m}),{renderButtonGroup:f}=fe(e,t,b);return()=>n.createVNode("div",n.mergeProps(t.attrs,{ref:u,class:r.value,id:e.id}),[n.createVNode("div",{class:c.value},[n.createVNode("input",{ref:l,class:"form-control",readonly:!0,placeholder:e.placeholder},null),f()])])}});T.register=(e,t,u,a)=>{e["button-edit"]=T,t["button-edit"]=M},T.registerDesigner=(e,t,u)=>{e["button-edit"]=me,t["button-edit"]=M};const be=G.withInstall(T);h.FButtonEdit=T,h.buttonEditProps=k,h.default=be,h.propsResolver=M,Object.defineProperties(h,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { defineComponent as B, ref as T, watch as $, computed as W, createVNode as c, onMounted as U, inject as
|
|
2
|
-
import { cloneDeep as
|
|
3
|
-
const
|
|
1
|
+
import { defineComponent as B, ref as T, watch as $, computed as W, createVNode as c, onMounted as U, inject as se } from "vue";
|
|
2
|
+
import { isPlainObject as K, cloneDeep as ce } from "lodash-es";
|
|
3
|
+
const ee = {}, ne = {};
|
|
4
4
|
function Q(e) {
|
|
5
|
-
const { properties: t, title: d, ignore: h } = e, y = h && Array.isArray(h), i = Object.keys(t).reduce((o, s) => ((!y || !h.find((k) => k == s)) && (o[s] = t[s].type === "object" && t[s].properties ? Q(t[s]) :
|
|
5
|
+
const { properties: t, title: d, ignore: h } = e, y = h && Array.isArray(h), i = Object.keys(t).reduce((o, s) => ((!y || !h.find((k) => k == s)) && (o[s] = t[s].type === "object" && t[s].properties ? Q(t[s]) : ce(t[s].default)), o), {});
|
|
6
6
|
return (!y || !h.find((o) => o == "id")) && (i.id = `${d}-${Date.now()}`), i;
|
|
7
7
|
}
|
|
8
8
|
function z(e, t = {}, d) {
|
|
9
|
-
const h =
|
|
9
|
+
const h = ee[e];
|
|
10
10
|
if (h) {
|
|
11
11
|
let y = Q(h);
|
|
12
|
-
const i =
|
|
12
|
+
const i = ne[e];
|
|
13
13
|
return y = i ? i({ getSchemaByType: z }, y, t, d) : y, y;
|
|
14
14
|
}
|
|
15
15
|
return null;
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function le(e, t) {
|
|
18
18
|
const d = Q(t);
|
|
19
|
-
return Object.keys(e).reduce((h, y) => (h[y] &&
|
|
19
|
+
return Object.keys(e).reduce((h, y) => (h[y] && K(h[y]) && K(e[y]) ? Object.assign(h[y], e[y]) : h[y] = e[y], h), d), d;
|
|
20
20
|
}
|
|
21
|
-
function
|
|
21
|
+
function ue(e, t) {
|
|
22
22
|
return Object.keys(e).filter((h) => e[h] != null).reduce((h, y) => {
|
|
23
23
|
if (t.has(y)) {
|
|
24
24
|
const i = t.get(y);
|
|
@@ -33,11 +33,11 @@ function le(e, t) {
|
|
|
33
33
|
return h;
|
|
34
34
|
}, {});
|
|
35
35
|
}
|
|
36
|
-
function
|
|
37
|
-
const h =
|
|
38
|
-
return
|
|
36
|
+
function ie(e, t, d = /* @__PURE__ */ new Map()) {
|
|
37
|
+
const h = le(e, t);
|
|
38
|
+
return ue(h, d);
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function de(e = {}) {
|
|
41
41
|
function t(n, m, g, M) {
|
|
42
42
|
if (typeof g == "number")
|
|
43
43
|
return M[n].length === g;
|
|
@@ -91,24 +91,24 @@ function ie(e = {}) {
|
|
|
91
91
|
}
|
|
92
92
|
return { parseValueSchema: k };
|
|
93
93
|
}
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
function
|
|
97
|
-
return
|
|
98
|
-
const s =
|
|
94
|
+
const ye = {}, ve = {};
|
|
95
|
+
de();
|
|
96
|
+
function fe(e, t, d = /* @__PURE__ */ new Map(), h = (o, s, k) => s, y = {}, i = (o) => o) {
|
|
97
|
+
return ee[t.title] = t, ne[t.title] = h, ye[t.title] = y, ve[t.title] = i, (o = {}) => {
|
|
98
|
+
const s = ie(o, t, d), k = Object.keys(e).reduce((n, m) => (n[m] = e[m].default, n), {});
|
|
99
99
|
return Object.assign(k, s);
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
|
-
function
|
|
102
|
+
function he(e, t) {
|
|
103
103
|
return { customClass: t.class, customStyle: t.style };
|
|
104
104
|
}
|
|
105
|
-
const
|
|
106
|
-
["appearance",
|
|
105
|
+
const me = /* @__PURE__ */ new Map([
|
|
106
|
+
["appearance", he]
|
|
107
107
|
]);
|
|
108
|
-
function
|
|
108
|
+
function pe(e, t, d) {
|
|
109
109
|
return t;
|
|
110
110
|
}
|
|
111
|
-
const
|
|
111
|
+
const we = "https://json-schema.org/draft/2020-12/schema", ge = "https://farris-design.gitee.io/calendar.schema.json", ke = "calendar", De = "A Farris Input Component", be = "object", Me = {
|
|
112
112
|
id: {
|
|
113
113
|
description: "The unique identifier for calendar",
|
|
114
114
|
type: "string"
|
|
@@ -131,18 +131,18 @@ const pe = "https://json-schema.org/draft/2020-12/schema", we = "https://farris-
|
|
|
131
131
|
},
|
|
132
132
|
default: {}
|
|
133
133
|
}
|
|
134
|
-
},
|
|
134
|
+
}, Te = [
|
|
135
135
|
"id",
|
|
136
136
|
"type"
|
|
137
|
-
],
|
|
138
|
-
$schema:
|
|
139
|
-
$id:
|
|
140
|
-
title:
|
|
141
|
-
description:
|
|
142
|
-
type:
|
|
143
|
-
properties:
|
|
144
|
-
required:
|
|
145
|
-
},
|
|
137
|
+
], Ce = {
|
|
138
|
+
$schema: we,
|
|
139
|
+
$id: ge,
|
|
140
|
+
title: ke,
|
|
141
|
+
description: De,
|
|
142
|
+
type: be,
|
|
143
|
+
properties: Me,
|
|
144
|
+
required: Te
|
|
145
|
+
}, Ve = "calendar", Pe = "A Farris Component", Ne = "object", Oe = {
|
|
146
146
|
basic: {
|
|
147
147
|
description: "Basic Infomation",
|
|
148
148
|
title: "基本信息",
|
|
@@ -164,15 +164,15 @@ const pe = "https://json-schema.org/draft/2020-12/schema", we = "https://farris-
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
|
-
},
|
|
168
|
-
title:
|
|
169
|
-
description:
|
|
170
|
-
type:
|
|
171
|
-
categories:
|
|
167
|
+
}, We = {
|
|
168
|
+
title: Ve,
|
|
169
|
+
description: Pe,
|
|
170
|
+
type: Ne,
|
|
171
|
+
categories: Oe
|
|
172
172
|
}, X = {
|
|
173
173
|
events: { Type: Array, default: [] },
|
|
174
174
|
firstDayOfTheWeek: { type: String, default: "Sun." }
|
|
175
|
-
},
|
|
175
|
+
}, te = fe(X, Ce, me, pe, We), F = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
176
176
|
var E = /* @__PURE__ */ ((e) => (e[e.previous = 1] = "previous", e[e.current = 2] = "current", e[e.next = 3] = "next", e))(E || {});
|
|
177
177
|
function J() {
|
|
178
178
|
function e() {
|
|
@@ -238,7 +238,7 @@ function J() {
|
|
|
238
238
|
}
|
|
239
239
|
return { emptyDate: e, getDate: t, getDate2: d, getDayNumber: h, getEpocTime: o, getNearDate: s, getWeekdayIndex: y, getTimeInMilliseconds: i, getToday: k };
|
|
240
240
|
}
|
|
241
|
-
function
|
|
241
|
+
function Se() {
|
|
242
242
|
function e(i, o) {
|
|
243
243
|
return new Date(o, i, 0).getDate();
|
|
244
244
|
}
|
|
@@ -263,8 +263,8 @@ function We() {
|
|
|
263
263
|
}
|
|
264
264
|
return { daysInMonth: e, daysInPreMonth: d, getNextMonth: h, getPreviousMonth: y };
|
|
265
265
|
}
|
|
266
|
-
function
|
|
267
|
-
const { getToday: e, getDayNumber: t } = J(), { daysInMonth: d, daysInPreMonth: h, getNextMonth: y, getPreviousMonth: i } =
|
|
266
|
+
function ae() {
|
|
267
|
+
const { getToday: e, getDayNumber: t } = J(), { daysInMonth: d, daysInPreMonth: h, getNextMonth: y, getPreviousMonth: i } = Se();
|
|
268
268
|
function o(f) {
|
|
269
269
|
const D = F.indexOf(f);
|
|
270
270
|
return D > 0 ? 7 - D : 0;
|
|
@@ -430,7 +430,7 @@ const Z = {
|
|
|
430
430
|
10: "Oct",
|
|
431
431
|
11: "Nov",
|
|
432
432
|
12: "Dec"
|
|
433
|
-
},
|
|
433
|
+
}, Ae = {
|
|
434
434
|
activeView: { Type: Number, default: 3 },
|
|
435
435
|
title: { Type: String, default: "" },
|
|
436
436
|
dailyViewTitle: { Type: String, default: "Day" },
|
|
@@ -438,7 +438,7 @@ const Z = {
|
|
|
438
438
|
monthlyViewTitle: { Type: String, default: "Month" }
|
|
439
439
|
}, G = /* @__PURE__ */ B({
|
|
440
440
|
name: "FCalendarHeader",
|
|
441
|
-
props:
|
|
441
|
+
props: Ae,
|
|
442
442
|
emits: ["ViewChange", "Previous", "Next", "ResetToToday"],
|
|
443
443
|
setup(e, t) {
|
|
444
444
|
const d = T(e.title), h = T(e.dailyViewTitle), y = T(e.weeklyViewTitle), i = T(e.monthlyViewTitle), o = 2, s = 62, k = T(e.activeView), n = T("Today");
|
|
@@ -506,7 +506,7 @@ const Z = {
|
|
|
506
506
|
style: m.value
|
|
507
507
|
}, [g.value])])]);
|
|
508
508
|
}
|
|
509
|
-
}),
|
|
509
|
+
}), je = {
|
|
510
510
|
dates: { Type: Array, default: [] },
|
|
511
511
|
daysInWeek: { Type: Array, default: F },
|
|
512
512
|
enableKeyboadNavigate: { Type: Boolean, default: !0 },
|
|
@@ -515,7 +515,7 @@ const Z = {
|
|
|
515
515
|
activeDay: { Type: Object, default: null }
|
|
516
516
|
};
|
|
517
517
|
var q = /* @__PURE__ */ ((e) => (e[e.enter = 13] = "enter", e[e.esc = 27] = "esc", e[e.space = 32] = "space", e[e.leftArrow = 37] = "leftArrow", e[e.upArrow = 38] = "upArrow", e[e.rightArrow = 39] = "rightArrow", e[e.downArrow = 40] = "downArrow", e[e.tab = 9] = "tab", e[e.shift = 16] = "shift", e))(q || {});
|
|
518
|
-
function
|
|
518
|
+
function Ee() {
|
|
519
519
|
function e(t) {
|
|
520
520
|
const d = t.key || t.keyCode;
|
|
521
521
|
return d === "Enter" || d === 13 ? 13 : d === "Escape" || d === 27 ? 27 : d === " " || d === 32 ? 32 : d === "ArrowLeft" || d === 37 ? 37 : d === "ArrowUp" || d === 38 ? 38 : d === "ArrowRight" || d === 39 ? 39 : d === "ArrowDown" || d === 40 ? 40 : d === "Tab" || d === 9 ? 9 : d === "Shift" || d === 16 ? 16 : -1;
|
|
@@ -524,7 +524,7 @@ function je() {
|
|
|
524
524
|
}
|
|
525
525
|
const _ = /* @__PURE__ */ B({
|
|
526
526
|
name: "FCalendarMonthView",
|
|
527
|
-
props:
|
|
527
|
+
props: je,
|
|
528
528
|
emits: ["click", "keyDown"],
|
|
529
529
|
setup(e, t) {
|
|
530
530
|
const d = T(e.daysInWeek), h = T(e.enableKeyboadNavigate), y = T(e.enableMarkCurrent), i = T(e.activeDay), o = T(e.events), {
|
|
@@ -532,7 +532,7 @@ const _ = /* @__PURE__ */ B({
|
|
|
532
532
|
sameDay: k
|
|
533
533
|
} = x(), {
|
|
534
534
|
getKeyCodeFromEvent: n
|
|
535
|
-
} =
|
|
535
|
+
} = Ee();
|
|
536
536
|
function m(u, a) {
|
|
537
537
|
return u.forEach((r) => {
|
|
538
538
|
r.days.forEach((p) => {
|
|
@@ -600,14 +600,14 @@ const _ = /* @__PURE__ */ B({
|
|
|
600
600
|
class: "f-calendar-month-view-event-item"
|
|
601
601
|
}, [b.title]))]))]))])])]);
|
|
602
602
|
}
|
|
603
|
-
}),
|
|
603
|
+
}), $e = {
|
|
604
604
|
daysInWeek: { Type: Array, default: F },
|
|
605
605
|
enableMarkCurrent: { Type: Boolean, default: !0 },
|
|
606
606
|
events: { Type: Array, default: [] },
|
|
607
607
|
week: { Type: Object, default: { days: [], weekNumber: 0, year: 0 } }
|
|
608
608
|
}, Y = /* @__PURE__ */ B({
|
|
609
609
|
name: "FCalendarWeekView",
|
|
610
|
-
props:
|
|
610
|
+
props: $e,
|
|
611
611
|
emits: [],
|
|
612
612
|
setup(e) {
|
|
613
613
|
const t = T(), d = T(), h = T(e.daysInWeek), y = T(e.week), i = T(e.enableMarkCurrent), o = T(e.events), s = T([]), {
|
|
@@ -730,14 +730,14 @@ const _ = /* @__PURE__ */ B({
|
|
|
730
730
|
ref: t
|
|
731
731
|
}, [l(), u()])]);
|
|
732
732
|
}
|
|
733
|
-
}),
|
|
733
|
+
}), Ie = {
|
|
734
734
|
day: { Type: Object, default: {} },
|
|
735
735
|
dayInWeek: { Type: String, default: "" },
|
|
736
736
|
enableMarkCurrent: { Type: Boolean, default: !0 },
|
|
737
737
|
events: { Type: Array, default: [] }
|
|
738
738
|
}, L = /* @__PURE__ */ B({
|
|
739
739
|
name: "FCalendarDayView",
|
|
740
|
-
props:
|
|
740
|
+
props: Ie,
|
|
741
741
|
emits: [],
|
|
742
742
|
setup(e) {
|
|
743
743
|
const t = T(), d = T(), h = T(e.dayInWeek), y = T(e.day), i = T(e.enableMarkCurrent), o = T(e.events), s = T([]), {
|
|
@@ -880,7 +880,7 @@ const _ = /* @__PURE__ */ B({
|
|
|
880
880
|
getDayInNextWeek: l,
|
|
881
881
|
getDayInPreviousMonth: v,
|
|
882
882
|
getDayInNextMonth: f
|
|
883
|
-
} =
|
|
883
|
+
} = ae(), D = W(() => `${Z[o.value.month || 1]} ${o.value.year}`), u = W(() => k(o.value.month || 1, o.value.year || 1, h.value)), a = W(() => n(o.value.day || 1, o.value.month || 1, o.value.year || 1, h.value)), r = W(() => a.value.days.find((P) => t(P.date, o.value)) || a.value.days[1]), p = W(() => {
|
|
884
884
|
const P = a.value.days.findIndex((j) => t(j.date, o.value)), H = P > -1 ? P : 1;
|
|
885
885
|
return F[H];
|
|
886
886
|
}), b = W(() => s.value === 3), w = W(() => s.value === 2), C = W(() => s.value === 1);
|
|
@@ -923,7 +923,7 @@ const _ = /* @__PURE__ */ B({
|
|
|
923
923
|
}, null)])]);
|
|
924
924
|
}
|
|
925
925
|
});
|
|
926
|
-
function
|
|
926
|
+
function Be(e, t, d) {
|
|
927
927
|
var b;
|
|
928
928
|
function h() {
|
|
929
929
|
}
|
|
@@ -1005,7 +1005,7 @@ function Ie(e, t, d) {
|
|
|
1005
1005
|
triggerBelongedComponentToDeleteWhenDeleted: T(!1)
|
|
1006
1006
|
}, o;
|
|
1007
1007
|
}
|
|
1008
|
-
const
|
|
1008
|
+
const Fe = /* @__PURE__ */ B({
|
|
1009
1009
|
name: "FCalendarDesign",
|
|
1010
1010
|
props: X,
|
|
1011
1011
|
emits: [],
|
|
@@ -1018,7 +1018,7 @@ const Be = /* @__PURE__ */ B({
|
|
|
1018
1018
|
year: o.year || 1,
|
|
1019
1019
|
month: o.month || 1,
|
|
1020
1020
|
day: o.day || 1
|
|
1021
|
-
}), k = T(3), n = T(), m =
|
|
1021
|
+
}), k = T(3), n = T(), m = se("design-item-context"), g = Be(n, m);
|
|
1022
1022
|
U(() => {
|
|
1023
1023
|
n.value.componentInstance = g;
|
|
1024
1024
|
}), t.expose(g.value);
|
|
@@ -1031,9 +1031,9 @@ const Be = /* @__PURE__ */ B({
|
|
|
1031
1031
|
getDayInNextWeek: u,
|
|
1032
1032
|
getDayInPreviousMonth: a,
|
|
1033
1033
|
getDayInNextMonth: r
|
|
1034
|
-
} =
|
|
1035
|
-
const N = w.value.days.findIndex((
|
|
1036
|
-
return F[
|
|
1034
|
+
} = ae(), p = W(() => `${Z[s.value.month || 1]} ${s.value.year}`), b = W(() => M(s.value.month || 1, s.value.year || 1, y.value)), w = W(() => l(s.value.day || 1, s.value.month || 1, s.value.year || 1, y.value)), C = W(() => w.value.days.find((N) => d(N.date, s.value)) || w.value.days[1]), V = W(() => {
|
|
1035
|
+
const N = w.value.days.findIndex((oe) => d(oe.date, s.value)), re = N > -1 ? N : 1;
|
|
1036
|
+
return F[re];
|
|
1037
1037
|
}), O = W(() => k.value === 3), S = W(() => k.value === 2), A = W(() => k.value === 1);
|
|
1038
1038
|
function P(N) {
|
|
1039
1039
|
k.value = N;
|
|
@@ -1079,10 +1079,10 @@ I.install = (e) => {
|
|
|
1079
1079
|
e.component(I.name, I).component(L.name, L).component(G.name, G).component(_.name, _).component(Y.name, Y);
|
|
1080
1080
|
};
|
|
1081
1081
|
I.register = (e, t, d, h) => {
|
|
1082
|
-
e.calendar = I, t.calendar =
|
|
1082
|
+
e.calendar = I, t.calendar = te;
|
|
1083
1083
|
};
|
|
1084
1084
|
I.registerDesigner = (e, t, d) => {
|
|
1085
|
-
e.calendar =
|
|
1085
|
+
e.calendar = Fe, t.calendar = te;
|
|
1086
1086
|
};
|
|
1087
1087
|
export {
|
|
1088
1088
|
I as FCalendar,
|
|
@@ -1092,12 +1092,12 @@ export {
|
|
|
1092
1092
|
Y as FCalendarWeekView,
|
|
1093
1093
|
E as MonthTag,
|
|
1094
1094
|
X as calendarProps,
|
|
1095
|
-
|
|
1095
|
+
Ie as dayViewProps,
|
|
1096
1096
|
I as default,
|
|
1097
1097
|
Z as defaultNameOfMonths,
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1098
|
+
Ae as headerProps,
|
|
1099
|
+
je as monthViewProps,
|
|
1100
|
+
te as propsResolver,
|
|
1101
1101
|
F as weekDays,
|
|
1102
|
-
|
|
1102
|
+
$e as weekViewProps
|
|
1103
1103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(P,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es"],e):(P=typeof globalThis<"u"?globalThis:P||self,e(P.calendar={},P.Vue,P.LodashES))})(this,function(P,e,ae){"use strict";const Q={},X={};function z(t){const{properties:a,title:d,ignore:m}=t,f=m&&Array.isArray(m),u=Object.keys(a).reduce((c,s)=>((!f||!m.find(V=>V==s))&&(c[s]=a[s].type==="object"&&a[s].properties?z(a[s]):ae.cloneDeep(a[s].default)),c),{});return(!f||!m.find(c=>c=="id"))&&(u.id=`${d}-${Date.now()}`),u}function x(t,a={},d){const m=Q[t];if(m){let f=z(m);const u=X[t];return f=u?u({getSchemaByType:x},f,a,d):f,f}return null}function re(t,a){const d=z(a);return Object.keys(t).reduce((m,f)=>(m[f]&&typeof m[f]=="object"?Object.assign(m[f],t[f]):m[f]=t[f],m),d),d}function oe(t,a){return Object.keys(t).filter(m=>t[m]!=null).reduce((m,f)=>{if(a.has(f)){const u=a.get(f);if(typeof u=="string")m[u]=t[f];else{const c=u(f,t[f],t);Object.assign(m,c)}}else m[f]=t[f];return m},{})}function ce(t,a,d=new Map){const m=re(t,a);return oe(m,d)}function se(t={}){function a(n,p,g,D){if(typeof g=="number")return D[n].length===g;if(typeof g=="object"){const l=Object.keys(g)[0],y=g[l];if(l==="not")return Number(D[n].length)!==Number(y);if(l==="moreThan")return Number(D[n].length)>=Number(y);if(l==="lessThan")return Number(D[n].length)<=Number(y)}return!1}function d(n,p,g,D){return D[n]&&D[n].propertyValue&&String(D[n].propertyValue.value)===String(g)}const m=new Map([["length",a],["getProperty",d]]);Object.keys(t).reduce((n,p)=>(n.set(p,t[p]),n),m);function f(n,p){const g=n;return typeof p=="number"?[{target:g,operator:"length",param:null,value:Number(p)}]:typeof p=="boolean"?[{target:g,operator:"getProperty",param:n,value:!!p}]:typeof p=="object"?Object.keys(p).map(D=>{if(D==="length")return{target:g,operator:"length",param:null,value:p[D]};const l=D,y=p[D];return{target:g,operator:"getProperty",param:l,value:y}}):[]}function u(n){return Object.keys(n).reduce((g,D)=>{const l=f(D,n[D]);return g.push(...l),g},[])}function c(n,p){if(m.has(n.operator)){const g=m.get(n.operator);return g&&g(n.target,n.param,n.value,p)||!1}return!1}function s(n,p){return u(n).reduce((l,y)=>l&&c(y,p),!0)}function V(n,p){const g=Object.keys(n),D=g.includes("allOf"),l=g.includes("anyOf"),y=D||l,i=(y?n[y?D?"allOf":"anyOf":"allOf"]:[n]).map(o=>s(o,p));return D?!i.includes(!1):i.includes(!0)}return{parseValueSchema:V}}const le={},ie={};se();function ue(t,a,d=new Map,m=(c,s,V)=>s,f={},u=c=>c){return Q[a.title]=a,X[a.title]=m,le[a.title]=f,ie[a.title]=u,(c={})=>{const s=ce(c,a,d),V=Object.keys(t).reduce((n,p)=>(n[p]=t[p].default,n),{});return Object.assign(V,s)}}function de(t,a){return{customClass:a.class,customStyle:a.style}}const fe=new Map([["appearance",de]]);function ye(t,a,d){return a}const he={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/calendar.schema.json",title:"calendar",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for calendar",type:"string"},type:{description:"The type string of calendar",type:"string",default:"calendar"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}}},required:["id","type"]},me={title:"calendar",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:[]}}}}}},_={events:{Type:Array,default:[]},firstDayOfTheWeek:{type:String,default:"Sun."}},U=ue(_,he,fe,ye,me),$=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var A=(t=>(t[t.previous=1]="previous",t[t.current=2]="current",t[t.next=3]="next",t))(A||{});function G(){function t(){return{year:0,month:0,day:0}}function a(n){return new Date(n.year||0,n.month?n.month-1:0,n.day||0,n.hour?n.hour:0,n.minute?n.minute:0,n.second?n.second:0,0)}function d(n){const p=new Date;return n.year||(n.year=p.getFullYear()),n.month||(n.month=p.getMonth()+1),n.day||(n.day=1),new Date(n.year,n.month-1,n.day,n.hour?n.hour:0,n.minute?n.minute:0,n.second?n.second:0,0)}function m(n){return new Date(n.year||1,(n.month||1)-1,n.day,n.hour?n.hour:0,n.minute?n.minute:0,n.second?n.second:0,0).getDay()}function f(n){return $.indexOf(n)}function u(n){return a(n).getTime()}function c(n){return Math.round(u(n)/1e3)}function s(n,p,g){const D=u(p),l=u(g),y=u(n);return l-y>y-D?p:g}function V(){const n=new Date;return{year:n.getFullYear(),month:n.getMonth()+1,day:n.getDate(),hour:n.getHours(),minute:n.getMinutes(),second:n.getSeconds()}}return{emptyDate:t,getDate:a,getDate2:d,getDayNumber:m,getEpocTime:c,getNearDate:s,getWeekdayIndex:f,getTimeInMilliseconds:u,getToday:V}}function pe(){function t(u,c){return new Date(c,u,0).getDate()}function a(u,c,s){return new Date(u,c-1,s,0,0,0,0)}function d(u,c){const s=a(c,u,1);return s.setMonth(s.getMonth()-1),t(s.getMonth()+1,s.getFullYear())}function m(u,c){const s={year:u===12?c+1:c},V=u===12?1:u+1;return s.month=V,s}function f(u,c){const s={year:u===1?c-1:c},V=u===1?12:u-1;return s.month=V,s}return{daysInMonth:t,daysInPreMonth:d,getNextMonth:m,getPreviousMonth:f}}function Z(){const{getToday:t,getDayNumber:a}=G(),{daysInMonth:d,daysInPreMonth:m,getNextMonth:f,getPreviousMonth:u}=pe();function c(h){const k=$.indexOf(h);return k>0?7-k:0}function s(h){const{day:k,month:i,year:r}=h;if(k===void 0||i===void 0||r===void 0)throw new Error("invalided date.");const o=k===1,v=o?m(i,r):k-1,N=o?i-1:i,w=N<1,M=w?12:N;return{year:w?r-1:r,month:M,day:v}}function V(h){const{day:k,month:i,year:r}=h;if(k===void 0||i===void 0||r===void 0)throw new Error("invalided date.");const o=d(i,r),v=k===o,N=v?1:k+1,w=v?i+1:i,M=w>12,b=M?1:w;return{year:M?r+1:r,month:b,day:N}}function n(h){const k=u(h.month||1,h.year||1),i=d(k.month||1,k.year||1);return{day:(h.day||1)<=i?h.day:i,month:k.month,year:k.year}}function p(h){const k=f(h.month||1,h.year||1),i=d(k.month||1,k.year||1);return{day:(h.day||1)<=i?h.day:i,month:k.month,year:k.year}}function g(h){const i=(h.day||1)-7,r=i<1,o=r?d(h.month||1,h.year||1)+i:i,v=r?u(h.month||1,h.year||1):h;return{day:o,month:v.month,year:v.year}}function D(h){const i=(h.day||1)+7,r=d(h.month||1,h.year||1),o=i>r,v=o?i-r:i,N=o?f(h.month||1,h.year||1):h;return{day:v,month:N.month,year:N.year}}function l(h,k,i,r){const o={day:h,month:k,year:i},N=c(r)===0?1:0,w=a(o)+N,M=t();let b=s(o);const O=[];for(let j=w-1;j>=1;j--){const H=b.month!==o.month?A.previous:A.current,C=b.month===k&&b.day===M.day&&b.month===M.month&&b.year===M.year;O.push({date:b,monthTag:H,isCurrent:C}),j>1&&(b=s(b))}let W=V(o);const S=[];for(let j=w+1;j<=7;j++){const H=b.month!==o.month?A.next:A.current,C=W.day===M.day&&W.month===M.month&&W.year===M.year;S.push({date:W,monthTag:H,isCurrent:C}),j<7&&(W=V(W))}const T=h===M.day&&k===M.month&&i===M.year;return{days:[...O.reverse(),{date:o,monthTag:A.current,isCurrent:T},...S],weekNumber:0,year:i}}function y(h,k,i){const r=[],o=d(h,k);for(let v=1;v<=o;v+=7){const N=l(v,h,k,i);r.push(N)}return r}return{getMonthlyCalendar:y,getWeeklyCalendar:l,getPreviousDay:s,getNextDay:V,getDayInPreviousWeek:g,getDayInNextWeek:D,getDayInPreviousMonth:n,getDayInNextMonth:p}}function F(){const{getTimeInMilliseconds:t}=G();function a(l){return l&&l.year!==0&&l.month!==0&&l.day!==0}function d(l){return l&&l.year!==0&&l.month!==0}function m(l){return l&&l.year!==0}function f(l,y){return t(l)<t(y)}function u(l,y){return t(l)<=t(y)}function c(l,y){return t(l)===t(y)}function s(l,y){const h=t(y);return t(l.from)===h||t(l.to)===h}function V(l,y){return!y||!a(y.to)||!a(y.from)?!1:u(y.from,l)&&u(l,y.to)}function n(l,y){return a(y)&&t(l)>=t(y)}function p(l,y){return a(y)&&t(l)<=t(y)}function g(l,y){return t({year:l.year,month:l.month,day:l.day})===t({year:y.year,month:y.month,day:y.day})}function D(l,y){return t({hour:l.hour,minute:l.minute,second:l.second})===t({hour:y.hour,minute:y.minute,second:y.second})}return{isDateEarlier:f,equal:c,inPeriod:V,isPoint:s,equalOrEarlier:u,isInitializedDate:a,isInitializedMonth:d,isInitializedYear:m,isMonthDisabledByDisableSince:n,isMonthDisabledByDisableUntil:p,sameTime:D,sameDay:g}}const L={1:"Jan",2:"Feb",3:"Mar",4:"Apr",5:"May",6:"Jun",7:"Jul",8:"Aug",9:"Sep",10:"Oct",11:"Nov",12:"Dec"},K={activeView:{Type:Number,default:3},title:{Type:String,default:""},dailyViewTitle:{Type:String,default:"Day"},weeklyViewTitle:{Type:String,default:"Week"},monthlyViewTitle:{Type:String,default:"Month"}},I=e.defineComponent({name:"FCalendarHeader",props:K,emits:["ViewChange","Previous","Next","ResetToToday"],setup(t,a){const d=e.ref(t.title),m=e.ref(t.dailyViewTitle),f=e.ref(t.weeklyViewTitle),u=e.ref(t.monthlyViewTitle),c=2,s=62,V=e.ref(t.activeView),n=e.ref("Today");e.watch(()=>t.title,()=>{d.value=t.title});const p=e.computed(()=>({top:`${c}px`,left:`${V.value*(c+1)+(V.value-1)*(s+1)}px`})),g=e.computed(()=>V.value===1?m.value:V.value===2?f.value:u.value);function D(){V.value=1,a.emit("ViewChange",1)}function l(){V.value=2,a.emit("ViewChange",2)}function y(){V.value=3,a.emit("ViewChange",3)}function h(){a.emit("Previous",V.value)}function k(){a.emit("Next",V.value)}function i(){a.emit("ResetToToday")}return()=>e.createVNode("div",{class:"f-calendar-header"},[e.createVNode("div",{class:"f-calendar-title"},[d.value]),e.createVNode("div",{class:"f-calendar-navigator"},[e.createVNode("div",{class:"f-calendar-navigator-today btn btn-default",onClick:()=>i()},[n.value]),e.createVNode("div",{class:"f-calendar-navigator-button-group"},[e.createVNode("div",{class:"f-calendar-navigator-previous btn btn-default",onClick:()=>h()},[e.createVNode("i",{class:"f-icon f-icon-arrow-chevron-left"},null)]),e.createVNode("div",{class:"f-calendar-navigator-next btn btn-default",onClick:()=>k()},[e.createVNode("i",{class:"f-icon f-icon-arrow-chevron-right"},null)])])]),e.createVNode("div",{class:"f-calendar-view-switch"},[e.createVNode("div",{class:"f-calendar-view-switch-panel"},[e.createVNode("span",{class:"f-calendar-view-switch-daily",onClick:r=>D()},[m.value]),e.createVNode("span",{class:"f-calendar-view-switch-weekly",onClick:r=>l()},[f.value]),e.createVNode("span",{class:"f-calendar-view-switch-monthly",onClick:r=>y()},[u.value])]),e.createVNode("div",{class:"f-calendar-view-switch-active-view",style:p.value},[g.value])])])}}),ee={dates:{Type:Array,default:[]},daysInWeek:{Type:Array,default:$},enableKeyboadNavigate:{Type:Boolean,default:!0},enableMarkCurrent:{Type:Boolean,default:!0},events:{Type:Array,default:[]},activeDay:{Type:Object,default:null}};var Y=(t=>(t[t.enter=13]="enter",t[t.esc=27]="esc",t[t.space=32]="space",t[t.leftArrow=37]="leftArrow",t[t.upArrow=38]="upArrow",t[t.rightArrow=39]="rightArrow",t[t.downArrow=40]="downArrow",t[t.tab=9]="tab",t[t.shift=16]="shift",t))(Y||{});function ve(){function t(a){const d=a.key||a.keyCode;return d==="Enter"||d===13?13:d==="Escape"||d===27?27:d===" "||d===32?32:d==="ArrowLeft"||d===37?37:d==="ArrowUp"||d===38?38:d==="ArrowRight"||d===39?39:d==="ArrowDown"||d===40?40:d==="Tab"||d===9?9:d==="Shift"||d===16?16:-1}return{getKeyCodeFromEvent:t}}const B=e.defineComponent({name:"FCalendarMonthView",props:ee,emits:["click","keyDown"],setup(t,a){const d=e.ref(t.daysInWeek),m=e.ref(t.enableKeyboadNavigate),f=e.ref(t.enableMarkCurrent),u=e.ref(t.activeDay),c=e.ref(t.events),{equal:s,sameDay:V}=F(),{getKeyCodeFromEvent:n}=ve();function p(i,r){return i.forEach(o=>{o.days.forEach(v=>{const N=r.filter(w=>V(w.starts,v.date));N&&N.length&&(v.events=[...N])})}),i}const g=e.ref(p(t.dates,c.value));e.watch(()=>t.dates,()=>{g.value=p(t.dates,c.value)}),e.watch(()=>t.activeDay,()=>{u.value=t.activeDay}),e.watch(()=>t.events,()=>{c.value=t.events});function D(i){return!!u.value&&s({year:u.value.year,month:u.value.month,day:u.value.day},i)}const l=(i,r,o)=>{const N={"f-datepicker-no-currmonth":i.monthTag===A.previous||i.monthTag===A.next},w=`d_${r}_${o}`;return N[w]=!0,N},y=i=>{const r=i.monthTag===A.current&&D(i.date),o=i.isCurrent&&f.value;return{"f-calendar-month-view-date":!0,"f-calendar-month-view-selected":r,"f-calendar-month-view-current":o}};function h(i,r){i.stopPropagation(),a.emit("click",r.date)}function k(i,r){const o=n(i);o!==Y.tab&&(i.preventDefault(),o===Y.enter||o===Y.space?h(i,r):m.value&&a.emit("keyDown",r.date))}return()=>e.createVNode("div",{class:"f-calendar-month-view"},[e.createVNode("table",{class:"f-datepicker-table",cellpadding:"0"},[e.createVNode("thead",null,[e.createVNode("tr",null,[d.value&&d.value.map(i=>e.createVNode("th",{scope:"col",style:"padding: 4px 4px 8px"},[i]))])]),e.createVNode("tbody",null,[g.value&&g.value.map((i,r)=>e.createVNode("tr",null,[i.days&&i.days.map((o,v)=>e.createVNode("td",{id:`d_${r}_${v}`,tabindex:"0",class:l(o,r,v),onClick:N=>h(N,o),onKeydown:N=>k(N,o)},[e.createVNode("div",{class:"f-calendar-month-view-title"},[e.createVNode("div",{class:y(o)},[o.date.day]),e.createVNode("div",{class:"f-calendar-month-view-date-month"},[o.date.day===1?L[o.date.month||1]:""])]),o.events&&o.events.length&&o.events.map(N=>e.createVNode("div",{class:"f-calendar-month-view-event-item"},[N.title]))]))]))])])])}}),te={daysInWeek:{Type:Array,default:$},enableMarkCurrent:{Type:Boolean,default:!0},events:{Type:Array,default:[]},week:{Type:Object,default:{days:[],weekNumber:0,year:0}}},R=e.defineComponent({name:"FCalendarWeekView",props:te,emits:[],setup(t){const a=e.ref(),d=e.ref(),m=e.ref(t.daysInWeek),f=e.ref(t.week),u=e.ref(t.enableMarkCurrent),c=e.ref(t.events),s=e.ref([]),{equal:V}=F();function n(r){return f.value.days.map(v=>{const N={year:v.date.year,month:v.date.month,day:v.date.day,hour:r.hour,minute:r.minute,second:r.second},w=c.value.filter(M=>V(M.starts,N));return{day:N,events:w}})}function p(){const r=[];for(let o=0;o<24;o++){const v={hour:o,minute:0,second:0},N={hour:o,minute:30,second:0},w=n(v),M=n(N);r.push({time:v,events:w,title:o>0?`${o}:00`:"",part:"upper"}),r.push({time:N,events:M,title:`${o}:30`,part:"lower"})}s.value=r}p(),e.watch(()=>t.week,()=>{f.value=t.week,p()}),e.watch(()=>t.events,()=>{c.value=t.events,p()});const g=r=>({"f-calendar-week-view-date":!0,"f-calendar-week-view-current":r.isCurrent&&u.value});function D(){return e.createVNode("div",{class:"f-calendar-week-view-header"},[e.createVNode("div",{class:"f-calendar-week-view-header-corner"},null),e.createVNode("div",{class:"f-calendar-week-view-header-primary"},[e.createVNode("div",{class:"f-calendar-week-view-header-columns"},[m.value.map((r,o)=>e.createVNode("div",{class:"f-calendar-week-view-header-cell"},[e.createVNode("div",{class:g(f.value.days[o])},[f.value.days[o].date.day]),e.createVNode("span",null,[r])]))])])])}function l(){return e.createVNode("div",{class:"f-calendar-week-view-content-side"},[e.createVNode("div",{class:"f-calendar-side"},[s.value.map(r=>e.createVNode("div",{class:"f-calendar-side-row"},[e.createVNode("div",{class:"f-calendar-side-row-number"},[r.part==="upper"?r.title:""])]))])])}function y(r){return{"f-calendar-week-view-item":!0,"f-calendar-week-view-item-upper":r.part==="upper","f-calendar-week-view-item-lower":r.part==="lower"}}function h(r){const b=(r.starts.hour||0)+(r.starts.minute||0)/60;return{height:`${44*((r.ends.hour||0)+(r.ends.minute||0)/60-b)-2-2-1-1}px`}}function k(){return s.value.map(r=>e.createVNode("div",{class:y(r)},[r.events.map(o=>e.createVNode("div",{class:"f-calendar-week-view-item-cell"},[o.events.length>0&&o.events.map(v=>e.createVNode("div",{class:"f-calendar-event",style:h(v)},[v.title]))]))]))}function i(){return e.createVNode("div",{ref:d,class:"f-calendar-content-primary"},[e.createVNode("div",{class:"f-calendar-content-data"},[k()])])}return e.onMounted(()=>{a.value&&a.value.scrollTo(0,250)}),()=>e.createVNode("div",{class:"f-calendar-week-view"},[D(),e.createVNode("div",{class:"f-calendar-week-view-content",ref:a},[l(),i()])])}}),ne={day:{Type:Object,default:{}},dayInWeek:{Type:String,default:""},enableMarkCurrent:{Type:Boolean,default:!0},events:{Type:Array,default:[]}},q=e.defineComponent({name:"FCalendarDayView",props:ne,emits:[],setup(t){const a=e.ref(),d=e.ref(),m=e.ref(t.dayInWeek),f=e.ref(t.day),u=e.ref(t.enableMarkCurrent),c=e.ref(t.events),s=e.ref([]),{equal:V}=F();function n(r){const o={year:f.value.date.year,month:f.value.date.month,day:f.value.date.day,hour:r.hour,minute:r.minute,second:r.second},v=c.value.filter(N=>V(N.starts,o));return[{day:o,events:v}]}function p(){const r=[];for(let o=0;o<24;o++){const v={hour:o,minute:0,second:0},N={hour:o,minute:30,second:0},w=n(v),M=n(N);r.push({time:v,events:w,title:o>0?`${o}:00`:"",part:"upper"}),r.push({time:N,events:M,title:`${o}:30`,part:"lower"})}s.value=r}p(),e.watch(()=>t.day,()=>{f.value=t.day,p()}),e.watch(()=>t.events,()=>{c.value=t.events,p()});const g=r=>({"f-calendar-day-view-date":!0,"f-calendar-day-view-current":r.isCurrent&&u.value});function D(){return e.createVNode("div",{class:"f-calendar-day-view-header"},[e.createVNode("div",{class:"f-calendar-day-view-header-corner"},null),e.createVNode("div",{class:"f-calendar-day-view-header-primary"},[e.createVNode("div",{class:"f-calendar-day-view-header-columns"},[e.createVNode("div",{class:"f-calendar-day-view-header-cell"},[e.createVNode("div",{class:g(f.value)},[f.value.date.day]),e.createVNode("span",null,[m.value])])])])])}function l(){return e.createVNode("div",{class:"f-calendar-day-view-content-side"},[e.createVNode("div",{class:"f-calendar-side"},[s.value.map(r=>e.createVNode("div",{class:"f-calendar-side-row"},[e.createVNode("div",{class:"f-calendar-side-row-number"},[r.part==="upper"?r.title:""])]))])])}function y(r){return{"f-calendar-day-view-item":!0,"f-calendar-day-view-item-upper":r.part==="upper","f-calendar-day-view-item-lower":r.part==="lower"}}function h(r){const b=(r.starts.hour||0)+(r.starts.minute||0)/60;return{height:`${44*((r.ends.hour||0)+(r.ends.minute||0)/60-b)-2-2-1-1}px`}}function k(){return s.value.map(r=>e.createVNode("div",{class:y(r)},[r.events.map(o=>e.createVNode("div",{class:"f-calendar-day-view-item-cell"},[o.events.length>0&&o.events.map(v=>e.createVNode("div",{class:"f-calendar-event",style:h(v)},[v.title]))]))]))}function i(){return e.createVNode("div",{ref:d,class:"f-calendar-content-primary"},[e.createVNode("div",{class:"f-calendar-content-data"},[k()])])}return e.onMounted(()=>{a.value&&a.value.scrollTo(0,250)}),()=>e.createVNode("div",{class:"f-calendar-day-view"},[D(),e.createVNode("div",{class:"f-calendar-day-view-content",ref:a},[l(),i()])])}}),E=e.defineComponent({name:"FCalendar",props:_,emits:[],setup(t){const{sameDay:a}=F(),{getToday:d}=G(),m=e.ref(t.firstDayOfTheWeek),f=e.ref(t.events),u=d(),c=e.ref({year:u.year||1,month:u.month||1,day:u.day||1}),s=e.ref(3),{getMonthlyCalendar:V,getWeeklyCalendar:n,getPreviousDay:p,getNextDay:g,getDayInPreviousWeek:D,getDayInNextWeek:l,getDayInPreviousMonth:y,getDayInNextMonth:h}=Z(),k=e.computed(()=>`${L[c.value.month||1]} ${c.value.year}`),i=e.computed(()=>V(c.value.month||1,c.value.year||1,m.value)),r=e.computed(()=>n(c.value.day||1,c.value.month||1,c.value.year||1,m.value)),o=e.computed(()=>r.value.days.find(T=>a(T.date,c.value))||r.value.days[1]),v=e.computed(()=>{const T=r.value.days.findIndex(j=>a(j.date,c.value)),J=T>-1?T:1;return $[J]}),N=e.computed(()=>s.value===3),w=e.computed(()=>s.value===2),M=e.computed(()=>s.value===1);function b(T){s.value=T}function O(T){T===1&&(c.value=p(c.value)),T===2&&(c.value=D(c.value)),T===3&&(c.value=y(c.value))}function W(T){T===1&&(c.value=g(c.value)),T===2&&(c.value=l(c.value)),T===3&&(c.value=h(c.value))}function S(){c.value={year:u.year||1,month:u.month||1,day:u.day||1}}return()=>e.createVNode("div",{class:"f-calendar"},[e.createVNode(I,{activeView:s.value,title:k.value,onViewChange:T=>b(T),onPrevious:T=>O(T),onNext:T=>W(T),onResetToToday:()=>S()},null),e.createVNode("div",null,[M.value&&e.createVNode(q,{day:o.value,dayInWeek:v.value,events:f.value},null),w.value&&e.createVNode(R,{week:r.value,events:f.value},null),N.value&&e.createVNode(B,{activeDay:c.value,dates:i.value,events:f.value},null)])])}});function we(t,a,d){var N;function m(){}const f="",u="",c=e.ref();function s(){return(a==null?void 0:a.schema.componentType)!=="frame"}function V(){return!1}function n(){return(a==null?void 0:a.schema.componentType)!=="frame"}function p(){return(a==null?void 0:a.schema.componentType)==="frame"}function g(w){if(!w||!w.value)return null;if(w.value.schema&&w.value.schema.type==="component")return w.value;const M=e.ref(w==null?void 0:w.value.parent),b=g(M);return b||null}function D(w=a){const{componentInstance:M,designerItemElementRef:b}=w;return!M||!M.value?null:M.value.canMove?b:D(w.parent)}function l(w){return!!d}function y(){return(a==null?void 0:a.schema.label)||(a==null?void 0:a.schema.title)||(a==null?void 0:a.schema.name)}function h(){}function k(w,M){}function i(w,M){const{componentType:b}=w;let O=x(b,w,M);const W=b.toLowerCase().replace("-","_");return O&&!O.id&&O.type===b&&(O.id=`${W}_${Math.random().toString().slice(2,6)}`),O}function r(w,M){const b=String(w.getAttribute("data-controltype")),O=w.getAttribute("data-feature"),W=O?JSON.parse(O):{};W.parentComponentInstance=c.value;let S=x(b,W);const T=b.toLowerCase().replace("-","_");return S&&!S.id&&S.type===b&&(S.id=`${T}_${Math.random().toString().slice(2,6)}`),S}function o(w){}function v(...w){}return c.value={canMove:s(),canSelectParent:V(),canDelete:n(),canNested:!p(),contents:a==null?void 0:a.schema.contents,elementRef:t,parent:(N=a==null?void 0:a.parent)==null?void 0:N.componentInstance,schema:a==null?void 0:a.schema,styles:f,designerClass:u,canAccepts:l,getBelongedComponentInstance:g,getDraggableDesignItemElement:D,getDraggingDisplayText:y,getPropConfig:v,getDragScopeElement:h,onAcceptMovedChildElement:k,onAcceptNewChildElement:r,onChildElementMovedOut:o,addNewChildComponentSchema:i,updateDragAndDropRules:m,triggerBelongedComponentToMoveWhenMoved:e.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:e.ref(!1)},c}const ge=e.defineComponent({name:"FCalendarDesign",props:_,emits:[],setup(t,a){const{sameDay:d}=F(),{getToday:m}=G(),f=e.ref(t.firstDayOfTheWeek),u=e.ref(t.events),c=m(),s=e.ref({year:c.year||1,month:c.month||1,day:c.day||1}),V=e.ref(3),n=e.ref(),p=e.inject("design-item-context"),g=we(n,p);e.onMounted(()=>{n.value.componentInstance=g}),a.expose(g.value);const{getMonthlyCalendar:D,getWeeklyCalendar:l,getPreviousDay:y,getNextDay:h,getDayInPreviousWeek:k,getDayInNextWeek:i,getDayInPreviousMonth:r,getDayInNextMonth:o}=Z(),v=e.computed(()=>`${L[s.value.month||1]} ${s.value.year}`),N=e.computed(()=>D(s.value.month||1,s.value.year||1,f.value)),w=e.computed(()=>l(s.value.day||1,s.value.month||1,s.value.year||1,f.value)),M=e.computed(()=>w.value.days.find(C=>d(C.date,s.value))||w.value.days[1]),b=e.computed(()=>{const C=w.value.days.findIndex(ke=>d(ke.date,s.value)),Ve=C>-1?C:1;return $[Ve]}),O=e.computed(()=>V.value===3),W=e.computed(()=>V.value===2),S=e.computed(()=>V.value===1);function T(C){V.value=C}function J(C){C===1&&(s.value=y(s.value)),C===2&&(s.value=k(s.value)),C===3&&(s.value=r(s.value))}function j(C){C===1&&(s.value=h(s.value)),C===2&&(s.value=i(s.value)),C===3&&(s.value=o(s.value))}function H(){s.value={year:c.year||1,month:c.month||1,day:c.day||1}}return()=>e.createVNode("div",{ref:n,class:"f-calendar"},[e.createVNode(I,{activeView:V.value,title:v.value,onViewChange:C=>T(C),onPrevious:C=>J(C),onNext:C=>j(C),onResetToToday:()=>H()},null),e.createVNode("div",null,[S.value&&e.createVNode(q,{day:M.value,dayInWeek:b.value,events:u.value},null),W.value&&e.createVNode(R,{week:w.value,events:u.value},null),O.value&&e.createVNode(B,{activeDay:s.value,dates:N.value,events:u.value},null)])])}});E.install=t=>{t.component(E.name,E).component(q.name,q).component(I.name,I).component(B.name,B).component(R.name,R)},E.register=(t,a,d,m)=>{t.calendar=E,a.calendar=U},E.registerDesigner=(t,a,d)=>{t.calendar=ge,a.calendar=U},P.FCalendar=E,P.FCalendarDayView=q,P.FCalendarHeader=I,P.FCalendarMonthView=B,P.FCalendarWeekView=R,P.MonthTag=A,P.calendarProps=_,P.dayViewProps=ne,P.default=E,P.defaultNameOfMonths=L,P.headerProps=K,P.monthViewProps=ee,P.propsResolver=U,P.weekDays=$,P.weekViewProps=te,Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(P,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es"],e):(P=typeof globalThis<"u"?globalThis:P||self,e(P.calendar={},P.Vue,P.LodashES))})(this,function(P,e,z){"use strict";const X={},Z={};function x(t){const{properties:a,title:d,ignore:m}=t,f=m&&Array.isArray(m),u=Object.keys(a).reduce((c,s)=>((!f||!m.find(V=>V==s))&&(c[s]=a[s].type==="object"&&a[s].properties?x(a[s]):z.cloneDeep(a[s].default)),c),{});return(!f||!m.find(c=>c=="id"))&&(u.id=`${d}-${Date.now()}`),u}function U(t,a={},d){const m=X[t];if(m){let f=x(m);const u=Z[t];return f=u?u({getSchemaByType:U},f,a,d):f,f}return null}function re(t,a){const d=x(a);return Object.keys(t).reduce((m,f)=>(m[f]&&z.isPlainObject(m[f])&&z.isPlainObject(t[f])?Object.assign(m[f],t[f]):m[f]=t[f],m),d),d}function oe(t,a){return Object.keys(t).filter(m=>t[m]!=null).reduce((m,f)=>{if(a.has(f)){const u=a.get(f);if(typeof u=="string")m[u]=t[f];else{const c=u(f,t[f],t);Object.assign(m,c)}}else m[f]=t[f];return m},{})}function ce(t,a,d=new Map){const m=re(t,a);return oe(m,d)}function se(t={}){function a(n,p,g,D){if(typeof g=="number")return D[n].length===g;if(typeof g=="object"){const l=Object.keys(g)[0],y=g[l];if(l==="not")return Number(D[n].length)!==Number(y);if(l==="moreThan")return Number(D[n].length)>=Number(y);if(l==="lessThan")return Number(D[n].length)<=Number(y)}return!1}function d(n,p,g,D){return D[n]&&D[n].propertyValue&&String(D[n].propertyValue.value)===String(g)}const m=new Map([["length",a],["getProperty",d]]);Object.keys(t).reduce((n,p)=>(n.set(p,t[p]),n),m);function f(n,p){const g=n;return typeof p=="number"?[{target:g,operator:"length",param:null,value:Number(p)}]:typeof p=="boolean"?[{target:g,operator:"getProperty",param:n,value:!!p}]:typeof p=="object"?Object.keys(p).map(D=>{if(D==="length")return{target:g,operator:"length",param:null,value:p[D]};const l=D,y=p[D];return{target:g,operator:"getProperty",param:l,value:y}}):[]}function u(n){return Object.keys(n).reduce((g,D)=>{const l=f(D,n[D]);return g.push(...l),g},[])}function c(n,p){if(m.has(n.operator)){const g=m.get(n.operator);return g&&g(n.target,n.param,n.value,p)||!1}return!1}function s(n,p){return u(n).reduce((l,y)=>l&&c(y,p),!0)}function V(n,p){const g=Object.keys(n),D=g.includes("allOf"),l=g.includes("anyOf"),y=D||l,i=(y?n[y?D?"allOf":"anyOf":"allOf"]:[n]).map(o=>s(o,p));return D?!i.includes(!1):i.includes(!0)}return{parseValueSchema:V}}const le={},ie={};se();function ue(t,a,d=new Map,m=(c,s,V)=>s,f={},u=c=>c){return X[a.title]=a,Z[a.title]=m,le[a.title]=f,ie[a.title]=u,(c={})=>{const s=ce(c,a,d),V=Object.keys(t).reduce((n,p)=>(n[p]=t[p].default,n),{});return Object.assign(V,s)}}function de(t,a){return{customClass:a.class,customStyle:a.style}}const fe=new Map([["appearance",de]]);function ye(t,a,d){return a}const he={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/calendar.schema.json",title:"calendar",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for calendar",type:"string"},type:{description:"The type string of calendar",type:"string",default:"calendar"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}}},required:["id","type"]},me={title:"calendar",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:[]}}}}}},_={events:{Type:Array,default:[]},firstDayOfTheWeek:{type:String,default:"Sun."}},Q=ue(_,he,fe,ye,me),E=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var A=(t=>(t[t.previous=1]="previous",t[t.current=2]="current",t[t.next=3]="next",t))(A||{});function G(){function t(){return{year:0,month:0,day:0}}function a(n){return new Date(n.year||0,n.month?n.month-1:0,n.day||0,n.hour?n.hour:0,n.minute?n.minute:0,n.second?n.second:0,0)}function d(n){const p=new Date;return n.year||(n.year=p.getFullYear()),n.month||(n.month=p.getMonth()+1),n.day||(n.day=1),new Date(n.year,n.month-1,n.day,n.hour?n.hour:0,n.minute?n.minute:0,n.second?n.second:0,0)}function m(n){return new Date(n.year||1,(n.month||1)-1,n.day,n.hour?n.hour:0,n.minute?n.minute:0,n.second?n.second:0,0).getDay()}function f(n){return E.indexOf(n)}function u(n){return a(n).getTime()}function c(n){return Math.round(u(n)/1e3)}function s(n,p,g){const D=u(p),l=u(g),y=u(n);return l-y>y-D?p:g}function V(){const n=new Date;return{year:n.getFullYear(),month:n.getMonth()+1,day:n.getDate(),hour:n.getHours(),minute:n.getMinutes(),second:n.getSeconds()}}return{emptyDate:t,getDate:a,getDate2:d,getDayNumber:m,getEpocTime:c,getNearDate:s,getWeekdayIndex:f,getTimeInMilliseconds:u,getToday:V}}function pe(){function t(u,c){return new Date(c,u,0).getDate()}function a(u,c,s){return new Date(u,c-1,s,0,0,0,0)}function d(u,c){const s=a(c,u,1);return s.setMonth(s.getMonth()-1),t(s.getMonth()+1,s.getFullYear())}function m(u,c){const s={year:u===12?c+1:c},V=u===12?1:u+1;return s.month=V,s}function f(u,c){const s={year:u===1?c-1:c},V=u===1?12:u-1;return s.month=V,s}return{daysInMonth:t,daysInPreMonth:d,getNextMonth:m,getPreviousMonth:f}}function K(){const{getToday:t,getDayNumber:a}=G(),{daysInMonth:d,daysInPreMonth:m,getNextMonth:f,getPreviousMonth:u}=pe();function c(h){const k=E.indexOf(h);return k>0?7-k:0}function s(h){const{day:k,month:i,year:r}=h;if(k===void 0||i===void 0||r===void 0)throw new Error("invalided date.");const o=k===1,v=o?m(i,r):k-1,N=o?i-1:i,w=N<1,M=w?12:N;return{year:w?r-1:r,month:M,day:v}}function V(h){const{day:k,month:i,year:r}=h;if(k===void 0||i===void 0||r===void 0)throw new Error("invalided date.");const o=d(i,r),v=k===o,N=v?1:k+1,w=v?i+1:i,M=w>12,b=M?1:w;return{year:M?r+1:r,month:b,day:N}}function n(h){const k=u(h.month||1,h.year||1),i=d(k.month||1,k.year||1);return{day:(h.day||1)<=i?h.day:i,month:k.month,year:k.year}}function p(h){const k=f(h.month||1,h.year||1),i=d(k.month||1,k.year||1);return{day:(h.day||1)<=i?h.day:i,month:k.month,year:k.year}}function g(h){const i=(h.day||1)-7,r=i<1,o=r?d(h.month||1,h.year||1)+i:i,v=r?u(h.month||1,h.year||1):h;return{day:o,month:v.month,year:v.year}}function D(h){const i=(h.day||1)+7,r=d(h.month||1,h.year||1),o=i>r,v=o?i-r:i,N=o?f(h.month||1,h.year||1):h;return{day:v,month:N.month,year:N.year}}function l(h,k,i,r){const o={day:h,month:k,year:i},N=c(r)===0?1:0,w=a(o)+N,M=t();let b=s(o);const O=[];for(let j=w-1;j>=1;j--){const H=b.month!==o.month?A.previous:A.current,C=b.month===k&&b.day===M.day&&b.month===M.month&&b.year===M.year;O.push({date:b,monthTag:H,isCurrent:C}),j>1&&(b=s(b))}let W=V(o);const S=[];for(let j=w+1;j<=7;j++){const H=b.month!==o.month?A.next:A.current,C=W.day===M.day&&W.month===M.month&&W.year===M.year;S.push({date:W,monthTag:H,isCurrent:C}),j<7&&(W=V(W))}const T=h===M.day&&k===M.month&&i===M.year;return{days:[...O.reverse(),{date:o,monthTag:A.current,isCurrent:T},...S],weekNumber:0,year:i}}function y(h,k,i){const r=[],o=d(h,k);for(let v=1;v<=o;v+=7){const N=l(v,h,k,i);r.push(N)}return r}return{getMonthlyCalendar:y,getWeeklyCalendar:l,getPreviousDay:s,getNextDay:V,getDayInPreviousWeek:g,getDayInNextWeek:D,getDayInPreviousMonth:n,getDayInNextMonth:p}}function F(){const{getTimeInMilliseconds:t}=G();function a(l){return l&&l.year!==0&&l.month!==0&&l.day!==0}function d(l){return l&&l.year!==0&&l.month!==0}function m(l){return l&&l.year!==0}function f(l,y){return t(l)<t(y)}function u(l,y){return t(l)<=t(y)}function c(l,y){return t(l)===t(y)}function s(l,y){const h=t(y);return t(l.from)===h||t(l.to)===h}function V(l,y){return!y||!a(y.to)||!a(y.from)?!1:u(y.from,l)&&u(l,y.to)}function n(l,y){return a(y)&&t(l)>=t(y)}function p(l,y){return a(y)&&t(l)<=t(y)}function g(l,y){return t({year:l.year,month:l.month,day:l.day})===t({year:y.year,month:y.month,day:y.day})}function D(l,y){return t({hour:l.hour,minute:l.minute,second:l.second})===t({hour:y.hour,minute:y.minute,second:y.second})}return{isDateEarlier:f,equal:c,inPeriod:V,isPoint:s,equalOrEarlier:u,isInitializedDate:a,isInitializedMonth:d,isInitializedYear:m,isMonthDisabledByDisableSince:n,isMonthDisabledByDisableUntil:p,sameTime:D,sameDay:g}}const L={1:"Jan",2:"Feb",3:"Mar",4:"Apr",5:"May",6:"Jun",7:"Jul",8:"Aug",9:"Sep",10:"Oct",11:"Nov",12:"Dec"},ee={activeView:{Type:Number,default:3},title:{Type:String,default:""},dailyViewTitle:{Type:String,default:"Day"},weeklyViewTitle:{Type:String,default:"Week"},monthlyViewTitle:{Type:String,default:"Month"}},I=e.defineComponent({name:"FCalendarHeader",props:ee,emits:["ViewChange","Previous","Next","ResetToToday"],setup(t,a){const d=e.ref(t.title),m=e.ref(t.dailyViewTitle),f=e.ref(t.weeklyViewTitle),u=e.ref(t.monthlyViewTitle),c=2,s=62,V=e.ref(t.activeView),n=e.ref("Today");e.watch(()=>t.title,()=>{d.value=t.title});const p=e.computed(()=>({top:`${c}px`,left:`${V.value*(c+1)+(V.value-1)*(s+1)}px`})),g=e.computed(()=>V.value===1?m.value:V.value===2?f.value:u.value);function D(){V.value=1,a.emit("ViewChange",1)}function l(){V.value=2,a.emit("ViewChange",2)}function y(){V.value=3,a.emit("ViewChange",3)}function h(){a.emit("Previous",V.value)}function k(){a.emit("Next",V.value)}function i(){a.emit("ResetToToday")}return()=>e.createVNode("div",{class:"f-calendar-header"},[e.createVNode("div",{class:"f-calendar-title"},[d.value]),e.createVNode("div",{class:"f-calendar-navigator"},[e.createVNode("div",{class:"f-calendar-navigator-today btn btn-default",onClick:()=>i()},[n.value]),e.createVNode("div",{class:"f-calendar-navigator-button-group"},[e.createVNode("div",{class:"f-calendar-navigator-previous btn btn-default",onClick:()=>h()},[e.createVNode("i",{class:"f-icon f-icon-arrow-chevron-left"},null)]),e.createVNode("div",{class:"f-calendar-navigator-next btn btn-default",onClick:()=>k()},[e.createVNode("i",{class:"f-icon f-icon-arrow-chevron-right"},null)])])]),e.createVNode("div",{class:"f-calendar-view-switch"},[e.createVNode("div",{class:"f-calendar-view-switch-panel"},[e.createVNode("span",{class:"f-calendar-view-switch-daily",onClick:r=>D()},[m.value]),e.createVNode("span",{class:"f-calendar-view-switch-weekly",onClick:r=>l()},[f.value]),e.createVNode("span",{class:"f-calendar-view-switch-monthly",onClick:r=>y()},[u.value])]),e.createVNode("div",{class:"f-calendar-view-switch-active-view",style:p.value},[g.value])])])}}),te={dates:{Type:Array,default:[]},daysInWeek:{Type:Array,default:E},enableKeyboadNavigate:{Type:Boolean,default:!0},enableMarkCurrent:{Type:Boolean,default:!0},events:{Type:Array,default:[]},activeDay:{Type:Object,default:null}};var Y=(t=>(t[t.enter=13]="enter",t[t.esc=27]="esc",t[t.space=32]="space",t[t.leftArrow=37]="leftArrow",t[t.upArrow=38]="upArrow",t[t.rightArrow=39]="rightArrow",t[t.downArrow=40]="downArrow",t[t.tab=9]="tab",t[t.shift=16]="shift",t))(Y||{});function ve(){function t(a){const d=a.key||a.keyCode;return d==="Enter"||d===13?13:d==="Escape"||d===27?27:d===" "||d===32?32:d==="ArrowLeft"||d===37?37:d==="ArrowUp"||d===38?38:d==="ArrowRight"||d===39?39:d==="ArrowDown"||d===40?40:d==="Tab"||d===9?9:d==="Shift"||d===16?16:-1}return{getKeyCodeFromEvent:t}}const B=e.defineComponent({name:"FCalendarMonthView",props:te,emits:["click","keyDown"],setup(t,a){const d=e.ref(t.daysInWeek),m=e.ref(t.enableKeyboadNavigate),f=e.ref(t.enableMarkCurrent),u=e.ref(t.activeDay),c=e.ref(t.events),{equal:s,sameDay:V}=F(),{getKeyCodeFromEvent:n}=ve();function p(i,r){return i.forEach(o=>{o.days.forEach(v=>{const N=r.filter(w=>V(w.starts,v.date));N&&N.length&&(v.events=[...N])})}),i}const g=e.ref(p(t.dates,c.value));e.watch(()=>t.dates,()=>{g.value=p(t.dates,c.value)}),e.watch(()=>t.activeDay,()=>{u.value=t.activeDay}),e.watch(()=>t.events,()=>{c.value=t.events});function D(i){return!!u.value&&s({year:u.value.year,month:u.value.month,day:u.value.day},i)}const l=(i,r,o)=>{const N={"f-datepicker-no-currmonth":i.monthTag===A.previous||i.monthTag===A.next},w=`d_${r}_${o}`;return N[w]=!0,N},y=i=>{const r=i.monthTag===A.current&&D(i.date),o=i.isCurrent&&f.value;return{"f-calendar-month-view-date":!0,"f-calendar-month-view-selected":r,"f-calendar-month-view-current":o}};function h(i,r){i.stopPropagation(),a.emit("click",r.date)}function k(i,r){const o=n(i);o!==Y.tab&&(i.preventDefault(),o===Y.enter||o===Y.space?h(i,r):m.value&&a.emit("keyDown",r.date))}return()=>e.createVNode("div",{class:"f-calendar-month-view"},[e.createVNode("table",{class:"f-datepicker-table",cellpadding:"0"},[e.createVNode("thead",null,[e.createVNode("tr",null,[d.value&&d.value.map(i=>e.createVNode("th",{scope:"col",style:"padding: 4px 4px 8px"},[i]))])]),e.createVNode("tbody",null,[g.value&&g.value.map((i,r)=>e.createVNode("tr",null,[i.days&&i.days.map((o,v)=>e.createVNode("td",{id:`d_${r}_${v}`,tabindex:"0",class:l(o,r,v),onClick:N=>h(N,o),onKeydown:N=>k(N,o)},[e.createVNode("div",{class:"f-calendar-month-view-title"},[e.createVNode("div",{class:y(o)},[o.date.day]),e.createVNode("div",{class:"f-calendar-month-view-date-month"},[o.date.day===1?L[o.date.month||1]:""])]),o.events&&o.events.length&&o.events.map(N=>e.createVNode("div",{class:"f-calendar-month-view-event-item"},[N.title]))]))]))])])])}}),ne={daysInWeek:{Type:Array,default:E},enableMarkCurrent:{Type:Boolean,default:!0},events:{Type:Array,default:[]},week:{Type:Object,default:{days:[],weekNumber:0,year:0}}},R=e.defineComponent({name:"FCalendarWeekView",props:ne,emits:[],setup(t){const a=e.ref(),d=e.ref(),m=e.ref(t.daysInWeek),f=e.ref(t.week),u=e.ref(t.enableMarkCurrent),c=e.ref(t.events),s=e.ref([]),{equal:V}=F();function n(r){return f.value.days.map(v=>{const N={year:v.date.year,month:v.date.month,day:v.date.day,hour:r.hour,minute:r.minute,second:r.second},w=c.value.filter(M=>V(M.starts,N));return{day:N,events:w}})}function p(){const r=[];for(let o=0;o<24;o++){const v={hour:o,minute:0,second:0},N={hour:o,minute:30,second:0},w=n(v),M=n(N);r.push({time:v,events:w,title:o>0?`${o}:00`:"",part:"upper"}),r.push({time:N,events:M,title:`${o}:30`,part:"lower"})}s.value=r}p(),e.watch(()=>t.week,()=>{f.value=t.week,p()}),e.watch(()=>t.events,()=>{c.value=t.events,p()});const g=r=>({"f-calendar-week-view-date":!0,"f-calendar-week-view-current":r.isCurrent&&u.value});function D(){return e.createVNode("div",{class:"f-calendar-week-view-header"},[e.createVNode("div",{class:"f-calendar-week-view-header-corner"},null),e.createVNode("div",{class:"f-calendar-week-view-header-primary"},[e.createVNode("div",{class:"f-calendar-week-view-header-columns"},[m.value.map((r,o)=>e.createVNode("div",{class:"f-calendar-week-view-header-cell"},[e.createVNode("div",{class:g(f.value.days[o])},[f.value.days[o].date.day]),e.createVNode("span",null,[r])]))])])])}function l(){return e.createVNode("div",{class:"f-calendar-week-view-content-side"},[e.createVNode("div",{class:"f-calendar-side"},[s.value.map(r=>e.createVNode("div",{class:"f-calendar-side-row"},[e.createVNode("div",{class:"f-calendar-side-row-number"},[r.part==="upper"?r.title:""])]))])])}function y(r){return{"f-calendar-week-view-item":!0,"f-calendar-week-view-item-upper":r.part==="upper","f-calendar-week-view-item-lower":r.part==="lower"}}function h(r){const b=(r.starts.hour||0)+(r.starts.minute||0)/60;return{height:`${44*((r.ends.hour||0)+(r.ends.minute||0)/60-b)-2-2-1-1}px`}}function k(){return s.value.map(r=>e.createVNode("div",{class:y(r)},[r.events.map(o=>e.createVNode("div",{class:"f-calendar-week-view-item-cell"},[o.events.length>0&&o.events.map(v=>e.createVNode("div",{class:"f-calendar-event",style:h(v)},[v.title]))]))]))}function i(){return e.createVNode("div",{ref:d,class:"f-calendar-content-primary"},[e.createVNode("div",{class:"f-calendar-content-data"},[k()])])}return e.onMounted(()=>{a.value&&a.value.scrollTo(0,250)}),()=>e.createVNode("div",{class:"f-calendar-week-view"},[D(),e.createVNode("div",{class:"f-calendar-week-view-content",ref:a},[l(),i()])])}}),ae={day:{Type:Object,default:{}},dayInWeek:{Type:String,default:""},enableMarkCurrent:{Type:Boolean,default:!0},events:{Type:Array,default:[]}},q=e.defineComponent({name:"FCalendarDayView",props:ae,emits:[],setup(t){const a=e.ref(),d=e.ref(),m=e.ref(t.dayInWeek),f=e.ref(t.day),u=e.ref(t.enableMarkCurrent),c=e.ref(t.events),s=e.ref([]),{equal:V}=F();function n(r){const o={year:f.value.date.year,month:f.value.date.month,day:f.value.date.day,hour:r.hour,minute:r.minute,second:r.second},v=c.value.filter(N=>V(N.starts,o));return[{day:o,events:v}]}function p(){const r=[];for(let o=0;o<24;o++){const v={hour:o,minute:0,second:0},N={hour:o,minute:30,second:0},w=n(v),M=n(N);r.push({time:v,events:w,title:o>0?`${o}:00`:"",part:"upper"}),r.push({time:N,events:M,title:`${o}:30`,part:"lower"})}s.value=r}p(),e.watch(()=>t.day,()=>{f.value=t.day,p()}),e.watch(()=>t.events,()=>{c.value=t.events,p()});const g=r=>({"f-calendar-day-view-date":!0,"f-calendar-day-view-current":r.isCurrent&&u.value});function D(){return e.createVNode("div",{class:"f-calendar-day-view-header"},[e.createVNode("div",{class:"f-calendar-day-view-header-corner"},null),e.createVNode("div",{class:"f-calendar-day-view-header-primary"},[e.createVNode("div",{class:"f-calendar-day-view-header-columns"},[e.createVNode("div",{class:"f-calendar-day-view-header-cell"},[e.createVNode("div",{class:g(f.value)},[f.value.date.day]),e.createVNode("span",null,[m.value])])])])])}function l(){return e.createVNode("div",{class:"f-calendar-day-view-content-side"},[e.createVNode("div",{class:"f-calendar-side"},[s.value.map(r=>e.createVNode("div",{class:"f-calendar-side-row"},[e.createVNode("div",{class:"f-calendar-side-row-number"},[r.part==="upper"?r.title:""])]))])])}function y(r){return{"f-calendar-day-view-item":!0,"f-calendar-day-view-item-upper":r.part==="upper","f-calendar-day-view-item-lower":r.part==="lower"}}function h(r){const b=(r.starts.hour||0)+(r.starts.minute||0)/60;return{height:`${44*((r.ends.hour||0)+(r.ends.minute||0)/60-b)-2-2-1-1}px`}}function k(){return s.value.map(r=>e.createVNode("div",{class:y(r)},[r.events.map(o=>e.createVNode("div",{class:"f-calendar-day-view-item-cell"},[o.events.length>0&&o.events.map(v=>e.createVNode("div",{class:"f-calendar-event",style:h(v)},[v.title]))]))]))}function i(){return e.createVNode("div",{ref:d,class:"f-calendar-content-primary"},[e.createVNode("div",{class:"f-calendar-content-data"},[k()])])}return e.onMounted(()=>{a.value&&a.value.scrollTo(0,250)}),()=>e.createVNode("div",{class:"f-calendar-day-view"},[D(),e.createVNode("div",{class:"f-calendar-day-view-content",ref:a},[l(),i()])])}}),$=e.defineComponent({name:"FCalendar",props:_,emits:[],setup(t){const{sameDay:a}=F(),{getToday:d}=G(),m=e.ref(t.firstDayOfTheWeek),f=e.ref(t.events),u=d(),c=e.ref({year:u.year||1,month:u.month||1,day:u.day||1}),s=e.ref(3),{getMonthlyCalendar:V,getWeeklyCalendar:n,getPreviousDay:p,getNextDay:g,getDayInPreviousWeek:D,getDayInNextWeek:l,getDayInPreviousMonth:y,getDayInNextMonth:h}=K(),k=e.computed(()=>`${L[c.value.month||1]} ${c.value.year}`),i=e.computed(()=>V(c.value.month||1,c.value.year||1,m.value)),r=e.computed(()=>n(c.value.day||1,c.value.month||1,c.value.year||1,m.value)),o=e.computed(()=>r.value.days.find(T=>a(T.date,c.value))||r.value.days[1]),v=e.computed(()=>{const T=r.value.days.findIndex(j=>a(j.date,c.value)),J=T>-1?T:1;return E[J]}),N=e.computed(()=>s.value===3),w=e.computed(()=>s.value===2),M=e.computed(()=>s.value===1);function b(T){s.value=T}function O(T){T===1&&(c.value=p(c.value)),T===2&&(c.value=D(c.value)),T===3&&(c.value=y(c.value))}function W(T){T===1&&(c.value=g(c.value)),T===2&&(c.value=l(c.value)),T===3&&(c.value=h(c.value))}function S(){c.value={year:u.year||1,month:u.month||1,day:u.day||1}}return()=>e.createVNode("div",{class:"f-calendar"},[e.createVNode(I,{activeView:s.value,title:k.value,onViewChange:T=>b(T),onPrevious:T=>O(T),onNext:T=>W(T),onResetToToday:()=>S()},null),e.createVNode("div",null,[M.value&&e.createVNode(q,{day:o.value,dayInWeek:v.value,events:f.value},null),w.value&&e.createVNode(R,{week:r.value,events:f.value},null),N.value&&e.createVNode(B,{activeDay:c.value,dates:i.value,events:f.value},null)])])}});function we(t,a,d){var N;function m(){}const f="",u="",c=e.ref();function s(){return(a==null?void 0:a.schema.componentType)!=="frame"}function V(){return!1}function n(){return(a==null?void 0:a.schema.componentType)!=="frame"}function p(){return(a==null?void 0:a.schema.componentType)==="frame"}function g(w){if(!w||!w.value)return null;if(w.value.schema&&w.value.schema.type==="component")return w.value;const M=e.ref(w==null?void 0:w.value.parent),b=g(M);return b||null}function D(w=a){const{componentInstance:M,designerItemElementRef:b}=w;return!M||!M.value?null:M.value.canMove?b:D(w.parent)}function l(w){return!!d}function y(){return(a==null?void 0:a.schema.label)||(a==null?void 0:a.schema.title)||(a==null?void 0:a.schema.name)}function h(){}function k(w,M){}function i(w,M){const{componentType:b}=w;let O=U(b,w,M);const W=b.toLowerCase().replace("-","_");return O&&!O.id&&O.type===b&&(O.id=`${W}_${Math.random().toString().slice(2,6)}`),O}function r(w,M){const b=String(w.getAttribute("data-controltype")),O=w.getAttribute("data-feature"),W=O?JSON.parse(O):{};W.parentComponentInstance=c.value;let S=U(b,W);const T=b.toLowerCase().replace("-","_");return S&&!S.id&&S.type===b&&(S.id=`${T}_${Math.random().toString().slice(2,6)}`),S}function o(w){}function v(...w){}return c.value={canMove:s(),canSelectParent:V(),canDelete:n(),canNested:!p(),contents:a==null?void 0:a.schema.contents,elementRef:t,parent:(N=a==null?void 0:a.parent)==null?void 0:N.componentInstance,schema:a==null?void 0:a.schema,styles:f,designerClass:u,canAccepts:l,getBelongedComponentInstance:g,getDraggableDesignItemElement:D,getDraggingDisplayText:y,getPropConfig:v,getDragScopeElement:h,onAcceptMovedChildElement:k,onAcceptNewChildElement:r,onChildElementMovedOut:o,addNewChildComponentSchema:i,updateDragAndDropRules:m,triggerBelongedComponentToMoveWhenMoved:e.ref(!1),triggerBelongedComponentToDeleteWhenDeleted:e.ref(!1)},c}const ge=e.defineComponent({name:"FCalendarDesign",props:_,emits:[],setup(t,a){const{sameDay:d}=F(),{getToday:m}=G(),f=e.ref(t.firstDayOfTheWeek),u=e.ref(t.events),c=m(),s=e.ref({year:c.year||1,month:c.month||1,day:c.day||1}),V=e.ref(3),n=e.ref(),p=e.inject("design-item-context"),g=we(n,p);e.onMounted(()=>{n.value.componentInstance=g}),a.expose(g.value);const{getMonthlyCalendar:D,getWeeklyCalendar:l,getPreviousDay:y,getNextDay:h,getDayInPreviousWeek:k,getDayInNextWeek:i,getDayInPreviousMonth:r,getDayInNextMonth:o}=K(),v=e.computed(()=>`${L[s.value.month||1]} ${s.value.year}`),N=e.computed(()=>D(s.value.month||1,s.value.year||1,f.value)),w=e.computed(()=>l(s.value.day||1,s.value.month||1,s.value.year||1,f.value)),M=e.computed(()=>w.value.days.find(C=>d(C.date,s.value))||w.value.days[1]),b=e.computed(()=>{const C=w.value.days.findIndex(ke=>d(ke.date,s.value)),Ve=C>-1?C:1;return E[Ve]}),O=e.computed(()=>V.value===3),W=e.computed(()=>V.value===2),S=e.computed(()=>V.value===1);function T(C){V.value=C}function J(C){C===1&&(s.value=y(s.value)),C===2&&(s.value=k(s.value)),C===3&&(s.value=r(s.value))}function j(C){C===1&&(s.value=h(s.value)),C===2&&(s.value=i(s.value)),C===3&&(s.value=o(s.value))}function H(){s.value={year:c.year||1,month:c.month||1,day:c.day||1}}return()=>e.createVNode("div",{ref:n,class:"f-calendar"},[e.createVNode(I,{activeView:V.value,title:v.value,onViewChange:C=>T(C),onPrevious:C=>J(C),onNext:C=>j(C),onResetToToday:()=>H()},null),e.createVNode("div",null,[S.value&&e.createVNode(q,{day:M.value,dayInWeek:b.value,events:u.value},null),W.value&&e.createVNode(R,{week:w.value,events:u.value},null),O.value&&e.createVNode(B,{activeDay:s.value,dates:N.value,events:u.value},null)])])}});$.install=t=>{t.component($.name,$).component(q.name,q).component(I.name,I).component(B.name,B).component(R.name,R)},$.register=(t,a,d,m)=>{t.calendar=$,a.calendar=Q},$.registerDesigner=(t,a,d)=>{t.calendar=ge,a.calendar=Q},P.FCalendar=$,P.FCalendarDayView=q,P.FCalendarHeader=I,P.FCalendarMonthView=B,P.FCalendarWeekView=R,P.MonthTag=A,P.calendarProps=_,P.dayViewProps=ae,P.default=$,P.defaultNameOfMonths=L,P.headerProps=ee,P.monthViewProps=te,P.propsResolver=Q,P.weekDays=E,P.weekViewProps=ne,Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|