UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1,361 lines 1.89 MB
var Jv = Object.defineProperty; var Xv = (e, t, n) => t in e ? Jv(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n; var q = (e, t, n) => Xv(e, typeof t != "symbol" ? t + "" : t, n); import { computed as V, defineComponent as ce, ref as C, watch as _, createVNode as r, provide as Gt, inject as Fe, onMounted as Ve, Fragment as at, createTextVNode as we, nextTick as it, Teleport as Ja, createApp as Do, onUnmounted as Ht, onBeforeMount as Oo, watchEffect as ir, Transition as Pi, shallowRef as si, render as Dr, h as Zv, cloneVNode as eg, mergeProps as Qt, withDirectives as Ot, vShow as Sa, onUpdated as tg, onBeforeUnmount as Ad, withModifiers as qt, vModelText as Fa, toRef as ng, reactive as ot, resolveDirective as zn, isVNode as Wn, Comment as Vd, getCurrentInstance as rr, resolveComponent as Zn, toRefs as Sl, toRaw as ag, vModelCheckbox as Rs, vModelSelect as og } from "vue"; import { isImageUrl as lg, urlPrependBasePath as po, isBase64ImageUrl as ig, getCustomClass as st, getCustomStyle as on, withInstall as Ct, isMobilePhone as Lt, FormSchemaEntityField$Type as Po, FormSchemaEntityFieldType$Type as il, EVENT_PROPERTY_TAB_IDS as ma, getMaxZIndex as hl, useGuid as wn, resolveField as Zt, useDateFormat as qn, useResizeObserver as Xr, CHECKBOX_CONTEXT as $s, useCheck as js, radioCheckboxCommonProps as Ld, useTouchMomentum as rg, useTouch as sg, useCommonUtils as Pa, useBem as gn, useFarrisConfig as ug, useThirdComponent as Nd, FormSchemaEntityFieldTypeName as dl, formatTime as cg, getDateObject as ba, isLeapYear as dg, compareDate as Mi, getDaysInMonth as fg, useTextBox as Rd, useClear as $d, encrypt as pg, useNumberFormat as jd, useDelayedRef as mg, RADIOGROUP_CONTEXT as Hd, useReqAnimationFrame as hg, getTimeObject as Or, formatObjecTime as vg } from "../common/index.esm.js"; import { resolveAppearance as ht, createPropsResolver as Ke, getPropsResolverGenerator as Sn, getSchemaByTypeForDesigner as gg, schemaResolverMap as yg, propertyEffectMap as bg, propertyConfigSchemaMap as Cg, schemaMap as wg, getSchemaByType as vl, resolveToolbar as zd, createPageHeaderEventHandlerResolver as Wd, createEventsResolver as qd, createFormBindingResolver as Sg } from "../dynamic-resolver/index.esm.js"; import { LocaleService as ze } from "../locale/index.esm.js"; import { FNotifyService as Ma, F_NOTIFY_SERVICE_TOKEN as xl } from "../notify/index.esm.js"; import { useDesignerComponent as Xt, DgControl as Ee, canvasChanged as ui, refreshCanvas as xg, useDragulaCommonRule as Ud, UseTemplateDragAndDropRules as Yd, setPositionOfButtonGroup as Gd } from "../designer-canvas/index.esm.js"; import { isPlainObject as yc, cloneDeep as ft, debounce as Ia, isFunction as Ar, isUndefined as $n, mergeWith as Ii, merge as gl, isNil as Tg, isNaN as kg, flatten as Qd, get as ja, isEmpty as Fg } from "lodash-es"; import _d from "../color-picker/index.esm.js"; import Ei, { FTouchComboListContainer as Kd, useDataSource as Pg, FComboListContainer as Mg, FComboList as Ao } from "../combo-list/index.esm.js"; import Jd, { useNumber as Ig, useFormat as Eg, useSpinner as Bg, useTextBox as Dg, getSpinnerRender as Og, getNumberTextBoxRender as Ag, FNumberSpinner as ci, useNumberLocales as Vg } from "../number-spinner/index.esm.js"; import Xd, { FButton as Bi } from "../button/index.esm.js"; import Xa from "../popover/index.esm.js"; import { BaseControlProperty as Zd, InputBaseProperty as Hs, ExpressionProperty as Lg, FormBindingType as Zo, SchemaDOMMapping as Ng } from "../property-panel/index.esm.js"; import Rg, { FieldSelectorRepositoryToken as di } from "../field-selector/index.esm.js"; import "../collection-property-editor/index.esm.js/src/use-button-items.designer"; import $g from "../tags/index.esm.js"; import { useInputExpand as zs } from "../common/index.esm.js/text-box/use-input-expand"; import Ws from "../drawer/index.esm.js"; import { useFilter as Tl, useIdentify as kl, useHierarchy as Fl, useGroupData as qs, useDataView as Pl, useSelection as Ml, usePagination as Us, useRow as Il, useEdit as El, useVisualDataBound as Bl, useVisualDataCell as Dl, useVisualDataRow as Ol, useVisualGroupRow as ef, useVisualSummaryRow as tf, useVisualData as Al, useSidebar as sr, useColumn as Vl, useVirtualScroll as Ll, getHierarchyRow as nf, useLoading as af, useSelectHierarchyItem as Ys, useDataViewContainerStyle as ur, useCommandColumn as of, useSettingColumn as lf, useSort as rf, useGroupColumn as Gs, useCellPosition as cr, useFitColumn as Qs, useFilterHistory as sf, useColumnFilter as uf, useDragColumn as cf, getColumnHeader as df, getSidebar as _s, getDisableMask as ff, getHorizontalScrollbar as Ks, getVerticalScrollbar as Js, getEmpty as Xs, getPagination as pf, getSummary as mf, ColumnSettingSolution as hf, COMMAND_COLUMN_DATA_TYPE as da, SETTING_COLUMN_DATA_TYPE as fa, SETTING_COLUMN_FIELD as jg, COMMAND_COLUMN_FIELD as Hg, CellMode as vf, useScreen as gf, useCellContentStyle as zg, getFilterPanel as Wg, getGroupPanel as qg, useAdapt as Ug, useNavigation as Yg } from "../data-view/index.esm.js"; import yf, { FCheckbox as Zs } from "../checkbox/index.esm.js"; import Ea, { FButtonEdit as Nl } from "../button-edit/index.esm.js"; import bf from "../list-view/index.esm.js"; import Dt from "bignumber.js"; import eu from "../../designer/button-edit/index.esm.js"; import Wa from "../tree-view/index.esm.js"; import Cf, { FInputGroup as Di } from "../input-group/index.esm.js"; import { useResizeObserver as tu } from "@vueuse/core"; import Gg from "../binding-selector/index.esm.js"; import Qg from "../accordion/index.esm.js"; import _g from "../../designer/avatar/index.esm.js"; import Kg from "../../designer/approval-logs/index.esm.js"; import Jg from "../button-group/index.esm.js"; import Xg from "../calendar/index.esm.js"; import Zg from "../../designer/capsule/index.esm.js"; import bc from "../../designer/checkbox/index.esm.js"; import Cc from "../../designer/checkbox-group/index.esm.js"; import ey from "../content-container/index.esm.js"; import ty from "../../designer/data-grid/index.esm.js"; import ny from "../../designer/date-picker/index.esm.js"; import ay from "../dropdown/index.esm.js"; import oy from "../../designer/dynamic-form/index.esm.js"; import ly from "../external-container/index.esm.js"; import iy from "../filter-bar/index.esm.js"; import ry from "../image-cropper/index.esm.js"; import sy from "../../designer/input-group/index.esm.js"; import nu, { FLayout as uy, FLayoutPane as Mo } from "../layout/index.esm.js"; import cy from "../list-nav/index.esm.js"; import dy from "../../designer/list-view/index.esm.js"; import wf from "../lookup/index.esm.js"; import fy from "../language-textbox/index.esm.js"; import py from "../../designer/nav/index.esm.js"; import my from "../../designer/number-spinner/index.esm.js"; import hy from "../number-range/index.esm.js"; import vy from "../order/index.esm.js"; import gy from "../page-header/index.esm.js"; import yy from "../page-footer/index.esm.js"; import Sf from "../pagination/index.esm.js"; import by from "../progress/index.esm.js"; import Cy, { useCondition as wy, useSolutionUtils as xf } from "../query-solution/index.esm.js"; import Sy from "../../designer/radio-group/index.esm.js"; import xy from "../../designer/rate/index.esm.js"; import Ty, { commonToolbarItemDesignProps as ky } from "../../designer/response-toolbar/index.esm.js"; import Fy from "../response-layout/index.esm.js"; import Py from "../../designer/response-layout-editor/index.esm.js"; import My from "../search-box/index.esm.js"; import Iy from "../../designer/section/index.esm.js"; import Ey from "../smoke-detector/index.esm.js"; import By from "../splitter/index.esm.js"; import Tf from "../step/index.esm.js"; import Dy from "../../designer/switch/index.esm.js"; import Oy from "../../designer/tabs/index.esm.js"; import Ay from "../../designer/tags/index.esm.js"; import Vy from "../text/index.esm.js"; import Ly from "../../designer/time-picker/index.esm.js"; import Ny from "../transfer/index.esm.js"; import Ry from "../uploader/index.esm.js"; import $y from "../verify-detail/index.esm.js"; import jy from "../component/index.esm.js"; import Hy from "../video/index.esm.js"; import zy from "../../designer/textarea/index.esm.js"; import Wy from "../../designer/tree-grid/index.esm.js"; import qy from "../fieldset/index.esm.js"; import Uy from "../../designer/drawer/index.esm.js"; import Yy from "../html-template/index.esm.js"; import Gy from "../image/index.esm.js"; import Qy from "../comment/index.esm.js"; import _y from "../../designer/wizard/index.esm.js"; import { loadRegister as Ky, useComponentManager as Jy, useEntityState as Xy, useDynamicViewUtils as Zy, componentMap as Vr, resolverMap as eb, componentPropsConverter as tb } from "../dynamic-view/index.esm.js"; import Zr from "../section/index.esm.js"; import nb from "../combo-tree/index.esm.js"; import ab from "../events-editor/index.esm.js"; import ob from "../mapping-editor/index.esm.js"; import lb from "../schema-selector/index.esm.js"; import kf, { EditorType as ib } from "../event-parameter/index.esm.js"; import rb from "../filter-condition-editor/index.esm.js"; import sb from "../sort-condition-editor/index.esm.js"; import ub from "../menu-lookup/index.esm.js"; import cb from "../json-editor/index.esm.js"; import db from "../property-editor/index.esm.js"; import fb, { FExpressionTextbox as pb } from "../expression-editor/index.esm.js"; import mb from "../code-editor/index.esm.js"; import hb from "../collection-property-editor/index.esm.js"; import vb from "../../designer/modal/index.esm.js"; import gb from "../tooltip/index.esm.js"; import yb, { FTreeGrid as au } from "../tree-grid/index.esm.js"; import bb, { FDynamicForm as Cb, FDynamicFormLabel as wb, FDynamicFormGroup as Oi, useTypeResolver as Ff } from "../dynamic-form/index.esm.js"; import Sb, { FTimePickerTimeView as wc, convertToDate as xb, FTouchTimePickerTimeView as Tb } from "../time-picker/index.esm.js"; import es from "../date-picker/index.esm.js"; import ou from "../capsule/index.esm.js"; import { createI18n as kb, useI18n as Fb } from "vue-i18n"; import { useConditionValue as Pb, useConditionUtils as lu, FConditionFields as Sc, FConditionFieldsDesign as xc, CompareType as tt } from "../condition/index.esm.js"; import Mb, { radioGroupProps as Ib, FRadioGroup as Eb } from "../radio-group/index.esm.js"; import { DgControl as Bb } from "../designer-canvas/index.esm.js/"; import { F_MODAL_SERVICE_TOKEN as iu } from "../modal/index.esm.js"; import Db, { FDataGrid as Rl } from "../data-grid/index.esm.js"; import { FSwitch as Ob } from "../switch/index.esm.js"; import { FDatePicker as Tc } from "../components/index.esm.js"; import { FCheckboxGroup as Ab } from "../checkbox-group/index.esm.js"; import { SearchRelation as Vb, SearchComparisonOperator as Lb } from "../field-search-box/index.esm.js"; import Vo from "../scroll-list/index.esm.js"; import ru from "../response-toolbar/index.esm.js"; import Nb, { FLoadingService as Rb } from "../loading/index.esm.js"; import { FMessageBoxService as $b } from "../message-box/index.esm.js"; import jb, { FTabPage as Hb } from "../tabs/index.esm.js"; import zb from "../textarea/index.esm.js"; const Wb = { title: "批量编辑", width: 500, height: 400, showCloseButton: !0, showMaxButton: !0, fields: [], rows: 0, enableDictPicking: !1 }, qb = { fields: { type: Array, default: null }, lookupHttpService: { type: Object, default: null }, enableDictPicking: { type: Boolean, default: !1 } }; function Ub(e, t, n) { return t; } function Yb(e, t) { return t ? typeof t == "string" ? { imageType: t.split(",") } : { imageType: t } : { imageType: [] }; } const Gb = /* @__PURE__ */ new Map([ ["appearance", ht], ["imageType", Yb] ]), Qb = "https://json-schema.org/draft/2020-12/schema", _b = "https://farris-design.gitee.io/avatar.schema.json", Kb = "avatar", Jb = "A Farris Component", Xb = "object", Zb = { id: { description: "The unique identifier for avatar", type: "string" }, type: { description: "The type string of avatar", type: "string", default: "avatar" }, appearance: { description: "", type: "object", properties: { class: { type: "string" }, style: { type: "string" } }, default: {} }, binding: { description: "", type: "object", default: {} }, disabled: { type: "boolean", default: !1 }, avatarWidth: { description: "", type: "number", default: 100 }, title: { description: "", type: "string" }, avatarHeight: { description: "", type: "number", default: 100 }, readonly: { description: "", type: "boolean", default: !1 }, cover: { description: "", type: "string" }, visible: { description: "", type: "boolean", default: !0 }, required: { description: "", type: "boolean", default: !1 }, shape: { description: "", type: "string", default: "circle" }, maxSize: { description: "允许头像上传的大小,单位MB", type: "number", default: 2 }, imageType: { description: "支持的头像类型", type: "array", default: [] }, onImageChange: { description: "", type: "string" } }, eC = [ "id", "type" ], tC = [ "id", "appearance", "binding", "visible" ], nC = { onImageChange: "头像变化后事件" }, aC = { $schema: Qb, $id: _b, title: Kb, description: Jb, type: Xb, properties: Zb, required: eC, ignore: tC, events: nC }, Pf = { /** 组件自定义样式 */ customClass: { type: String, default: "" }, customStyle: { type: String, default: "" }, /** * 头像宽度 */ avatarWidth: { type: Number, default: 100 }, /** * 头像高度 */ avatarHeight: { type: Number, default: 100 }, /** * 组件标识 */ cover: { type: String }, /** * 只读 */ readonly: { type: Boolean, default: !1 }, visible: { type: Boolean, default: !0 }, required: { type: Boolean, default: !1 }, /** * 头像形状 */ shape: { type: String, default: "circle" }, /** * 允许头像上传大小, 单位MB */ maxSize: { type: Number, default: 2 }, /** * 组件值 */ modelValue: { type: String, default: "" }, /** * 头像标题 */ title: { type: String, default: "" }, /** * 支持的头像类型 */ imageType: { type: Array, default: [] } }; Ke(Pf, aC, Gb, Ub); function oC(e, t, n, a) { const o = ["webp", "png", "svg", "gif", "jpg", "jpeg", "bmp"]; function l(c) { return c ? "data:image/jpeg;base64," + c : ""; } const i = V(() => { var u; if (!e.imageType || !e.imageType.length) return o.map((p) => `.${p}`).join(","); const c = (u = e.imageType) == null ? void 0 : u.map((p) => `.${p}`); return !c || !c.length ? "image/*" : c.join(","); }), s = V(() => { const c = a.value; return c ? lg(c) ? po(c) : ig(c) ? c : l(c) : ""; }), d = V(() => e.readonly ? "" : e.title); function f() { e.readonly || n && n.value && n.value.click(); } return { acceptTypes: i, imageSource: s, imageTitle: d, onClickImage: f }; } function lC(e, t, n, a, o) { const l = new Ma(); function i(c) { a.value = c; } function s(c) { return new Promise((p, h) => { const m = new FileReader(); m.readAsDataURL(c), m.onload = () => { p({ state: "done", content: m.result }); }, m.onerror = function() { h({ state: "error", content: m.result }); }; }); } function d(c) { const u = { size: c.size, name: c.name, type: c.type, lastModified: String(c.lastModified) }; s(c).then((p) => { p.state === "done" && (i(p.content), u.state = p.state, u.base64 = p.content, t.emit("update:modelValue", u.base64), t.emit("imageChange", u)), o.value = !1; }).catch((p) => { o.value = !1; const h = ze.getLocaleValue("avatar.uploadError"); l.error({ message: h, position: "top-center" }); }); } function f(c) { if (e.readonly) return; const u = c.target, p = u.files; if (!p || !p[0]) return; const h = e.maxSize <= 0 ? 2 : e.maxSize, m = p[0].name || "", v = m.lastIndexOf("."), b = v > 0 ? m.substring(v).toLowerCase() : "", g = p[0].size / 1024 / 1024 < h; if (n.value && n.value.split(",").indexOf(b) < 0) { const y = ze.getLocaleValue("avatar.typeError"); l.error({ message: y, position: "top-center" }), u.value = ""; return; } if (!g) { const y = ze.getLocaleValue("avatar.sizeError") + h + "MB!"; l.error({ message: y, position: "top-center" }), u.value = ""; return; } o.value = !0, d(p[0]), u.value = ""; } return { onFileChange: f }; } const iC = /* @__PURE__ */ ce({ name: "FAvatar", props: Pf, emits: ["imageChange", "update:modelValue"], setup(e, t) { const n = C(), a = "data:image/jpeg;base64,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", o = "data:image/jpeg;base64,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", l = V(() => { const m = { "f-avatar": !0, "f-avatar-readonly": e.readonly, "f-avatar-circle": e.shape === "circle", "f-avatar-square": e.shape === "square" }; return st(m, e.customClass); }), i = V(() => { const m = { width: (e.avatarWidth > 0 ? e.avatarWidth : 100) + "px", height: (e.avatarHeight > 0 ? e.avatarHeight : 100) + "px" }; return on(m, e.customStyle); }), s = C(!1), d = C(e.modelValue || e.cover || a), { acceptTypes: f, imageSource: c, onClickImage: u } = oC(e, t, n, d), { onFileChange: p } = lC(e, t, f, d, s); _(() => e.modelValue, (m) => { d.value = m || e.cover || a; }); function h() { d.value = o; } return () => e.visible ? r("div", { class: l.value, style: i.value, onClick: u }, [s.value && r("div", { class: "f-avatar-upload-loading" }, [r("div", { class: "loading-inner" }, [ze.getLocaleValue("avatar.loading")])]), r("img", { title: e.title, class: "f-avatar-image", src: c.value, onError: h }, null), !e.readonly && r("div", { class: "f-avatar-icon" }, [r("span", { class: "f-icon f-icon-camera" }, null)]), !e.readonly && r("input", { ref: n, name: "file-input", type: "file", class: "f-avatar-upload", accept: f.value, onChange: p, style: "display: none;" }, null)]) : null; } }); Ct(iC); const Mf = /* @__PURE__ */ new Map([ ["appearance", ht], ["size", (e, t) => { const n = {}; return t.width && (n.width = Number(t.width)), t.height && (n.height = Number(t.height)), n; }] ]), rC = "https://json-schema.org/draft/2020-12/schema", sC = "https://farris-design.gitee.io/accordion.schema.json", uC = "accordion", cC = "A Farris Container Component", dC = "object", fC = { id: { description: "The unique identifier for a Accordion", type: "string" }, type: { description: "The type string of Accordion component", type: "string", default: "accordion" }, appearance: { description: "", type: "object", properties: { class: { type: "string" }, style: { type: "string" } }, default: {} }, contents: { description: "", type: "array", default: [] }, customClass: { description: "", type: "string", default: "" }, size: { description: "", type: "object", properties: { width: { type: "number" }, height: { type: "number" } }, default: null }, enableFold: { description: "", type: "boolean", default: !0 }, expanded: { description: "", type: "boolean", default: !1 } }, pC = [ "id", "type", "contents" ], mC = { $schema: rC, $id: sC, title: uC, description: cC, type: dC, properties: fC, required: pC }; function hC(e, t, n) { return t; } const vC = "accordion", gC = "A Farris Component", yC = "object", bC = { basic: { description: "Basic Infomation", title: "基本信息", properties: { id: { description: "组件标识", title: "标识", type: "string", readonly: !0 }, type: { description: "组件类型", title: "控件类型", type: "select", editor: { type: "waiting for modification", enum: [] } } } } }, CC = { title: vC, description: gC, type: yC, categories: bC }, su = { customClass: { type: String, default: "" }, enableFold: { type: Boolean, default: !0 }, expanded: { type: Boolean, default: !1 }, height: { type: Number }, width: { type: Number } }, If = Ke(su, mC, Mf, hC, CC), yo = /* @__PURE__ */ ce({ name: "FAccordion", props: su, emits: [], setup(e, t) { const n = V(() => ({ height: e.height ? `${e.height}px` : "", width: e.width ? `${e.width}px` : "" })); Gt("accordionContext", { parentProps: e }); const a = V(() => st({ "farris-panel": !0, accordion: !0 }, e.customClass)); return () => r("div", { class: a.value, style: n.value }, [t.slots.default && t.slots.default()]); } }), wC = "https://json-schema.org/draft/2020-12/schema", SC = "https://farris-design.gitee.io/accordion-item.schema.json", xC = "AccordionItem", TC = "A Farris Container Component", kC = "object", FC = { id: { description: "The unique identifier for a Accordion Item", type: "string" }, type: { description: "The type string of Accordion Item component", type: "string" }, contents: { description: "", type: "array", default: [] }, size: { description: "", type: "object", properties: { width: { type: "number" }, height: { type: "number" } }, default: null }, title: { description: "", type: "string", default: "" }, disable: { description: "", type: "boolean", default: !1 } }, PC = [ "id", "type", "contents" ], MC = { $schema: wC, $id: SC, title: xC, description: TC, type: kC, properties: FC, required: PC }, uu = { active: { type: Boolean, default: !1 }, customClass: { type: String, default: "" }, disabled: { type: Boolean, default: !1 }, enableFold: { type: Boolean, default: !0 }, height: { type: Number }, iconUri: { type: String, default: "" }, maxHeight: { type: Number }, title: { type: String, default: "" }, width: { type: Number } }, Ef = Ke(uu, MC, Mf), ts = /* @__PURE__ */ ce({ name: "FAccordionItem", props: uu, emits: ["ClickHeader"], setup(e, t) { const n = C(), a = Fe("accordionContext"), o = C(e.title), l = C(e.active), i = V(() => { var m; return !!((m = a == null ? void 0 : a.parentProps) != null && m.enableFold) && e.enableFold; }); function s() { e.disabled || !i.value || (l.value = !l.value); } function d(m) { t.emit("ClickHeader"), s(); } const f = V(() => { const m = { card: !0, "farris-panel-item": !0, "f-state-disabled": e.disabled, "f-state-selected": l.value }; return st(m, e.customClass); }), c = V(() => !0), u = V(() => ({ "f-icon": !0, "f-accordion-collapse": !l.value, "f-accordion-expand": l.value })); function p() { return n.value ? n.value.getBoundingClientRect().height : 0; } const h = V(() => { const m = e.maxHeight ? { transition: "maxHeight 0.36s ease 0s", "max-height": l.value ? `${e.maxHeight}px` : 0 } : { transition: "height 0.36s ease 0s", height: l.value ? `${p()}px` : 0 }; return l.value || (m.overflow = "hidden"), m; }); return Ve(() => { var m; (m = a == null ? void 0 : a.parentProps) != null && m.expanded && (l.value = !0); }), () => r("div", { class: f.value }, [r("div", { class: "card-header", onClick: d }, [r("div", { class: "panel-item-title" }, [e.iconUri && r("img", { class: "panel-item-title-image", src: e.iconUri, title: "title-icon" }, null), c.value && r("span", null, [o.value]), t.slots.head && t.slots.head(), i.value && r("i", { class: u.value }, null)]), r("div", { class: "panel-item-tool" }, [t.slots.toolbar && t.slots.toolbar()]), r("div", { class: "panel-item-clear" }, null)]), r("div", { style: h.value }, [r("div", { class: "card-body", ref: n }, [t.slots.default && t.slots.default()])])]); } }), IC = /* @__PURE__ */ ce({ name: "FAccordionDesign", props: su, emits: [], setup(e, t) { const n = V(() => ({ height: e.height ? `${e.height}px` : "", width: e.width ? `${e.width}px` : "" })), a = V(() => { const s = e.customClass.split(" "), d = { "farris-panel": !0, accordion: !0 }; return s.reduce((f, c) => (f[c] = !0, f), d), d; }), o = C(), l = Fe("design-item-context"), i = Xt(o, l); return Ve(() => { o.value.componentInstance = i; }), t.expose(i.value), () => r("div", { ref: o, class: a.value, style: n.value }, [t.slots.default && t.slots.default()]); } }), EC = /* @__PURE__ */ ce({ name: "FAccordionItemDesign", props: uu, emits: [], setup(e, t) { const n = C(e.title), a = C(!1), o = C(!1); function l() { a.value = !a.value; } function i(v) { l(); } const s = V(() => ({ "f-state-disabled": o.value, card: !0, "farris-panel-item": !0, "f-state-selected": a.value })), d = V(() => !0), f = V(() => !1), c = V(() => ({ "f-icon": !0, "f-accordion-collapse": !a.value, "f-accordion-expand": a.value })), u = V(() => { const v = e.maxHeight ? { transition: "maxHeight 0.36s ease 0s", "max-height": a.value ? `${e.maxHeight}px` : 0 } : { transition: "height 0.36s ease 0s", height: a.value ? `${e.height}px` : 0 }; return a.value || (v.overflow = "hidden"), v; }); function p() { return !0; } function h() { return !1; } function m() { return !0; } return t.expose({ canMove: p(), canSelectParent: h(), canDelete: m(), canNested: !0 }), () => r("div", { class: s.value }, [r("div", { class: "card-header", onClick: i }, [r("div", { class: "panel-item-title" }, [d.value && r("span", null, [n.value]), f.value && t.slots.head && t.slots.head(), r("span", { class: c.value }, null)]), r("div", { class: "panel-item-tool" }, [t.slots.toolbar && t.slots.toolbar()]), r("div", { class: "panel-item-clear" }, null)]), r("div", { style: u.value }, [r("div", { class: "card-body drag-container" }, [t.slots.default && t.slots.default()])])]); } }); yo.install = (e) => { e.component(yo.name, yo), e.component(ts.name, ts); }; yo.register = (e, t, n, a) => { e.accordion = yo, e["accordion-item"] = ts, t.accordion = If, t["accordion-item"] = Ef; }; yo.registerDesigner = (e, t, n) => { e.accordion = IC, e["accordion-item"] = EC, t.accordion = If, t["accordion-item"] = Ef; }; const BC = "https://json-schema.org/draft/2020-12/schema", DC = "https://farris-design.gitee.io/approval-logs.schema.json", OC = "approval-logs", AC = "A Farris Business Component", VC = "object", LC = { id: { description: "The unique identifier for a component", type: "string" }, type: { description: "The type string of a component", type: "string", default: "approval-logs" }, dataId: { type: "string", default: "" }, displayType: { type: "string", default: "card" }, showForecastLogs: { type: "boolean", default: !1 }, showHistoryLogs: { type: "boolean", default: !1 }, workflowScriptUrl: { type: "string", default: "/platform/runtime/wf/webapp/mobiletaskcenter/taskComment.js" } }, NC = [ "id", "type", "displayType", "showForecastLogs", "showHistoryLogs" ], RC = { $schema: BC, $id: DC, title: OC, description: AC, type: VC, properties: LC, required: NC }, $C = /* @__PURE__ */ new Map([]); function jC(e, t, n) { var f, c; const a = t, o = (f = n.bindingSourceContext) == null ? void 0 : f.entityFieldNode; o && (a.binding = { type: "Form", path: o.bindingField, field: o.id, fullPath: o.path }); const l = n.parentComponentInstance, i = (c = l == null ? void 0 : l.schema) == null ? void 0 : c.type; if (!i || i === Ee.section.type) return a; const s = e.getSchemaByType("section"), d = Math.random().toString().slice(2, 6); return Object.assign(s, { id: `section-${d}`, appearance: { class: "f-section-in-mainsubcard" }, mainTitle: "审批记录", contents: [a] }), s; } const Bf = { /** 单据ID */ dataId: { type: String, default: "" }, /** 展示类型 */ displayType: { type: String, default: "card" }, /** 是否展示预测日志 */ showForecastLogs: { type: Boolean, default: !1 }, /** 是否展示历史日志 */ showHistoryLogs: { type: Boolean, default: !1 }, /** 审批流脚本地址 */ workflowScriptUrl: { type: String, default: "" } }; Sn( Bf, RC, $C, jC ); const ni = {}; function HC() { function e(n = 1) { const a = n * 60 * 60 * 1e3, o = Date.now(); return o - o % a; } function t(n) { if (!n) return Promise.resolve(); if (ni[n]) return ni[n]; const a = new Promise((o, l) => { const i = document.createElement("script"); i.src = n + `?v=${e()}`, i.type = "text/javascript", i.async = !0; function s() { i.removeEventListener("load", d), i.removeEventListener("error", f); } function d() { s(), o(); } function f(c) { s(), delete ni[n], l(c); } i.addEventListener("load", d), i.addEventListener("error", f), document.head.appendChild(i); }); return ni[n] = a, a; } return { loadJsScript: t }; } const zC = /* @__PURE__ */ ce({ name: "FApprovalLogs", props: Bf, emits: [], setup(e, t) { const { loadJsScript: n } = HC(), a = Lt(), o = C(); function l() { return !!window.gspTaskCenterBizLog; } function i() { return window.gspTaskCenterBizLog.ApprovalLogUtil; } function s() { return e.displayType === "data-grid" && !a ? "datagrid" : "card"; } function d() { o.value && (o.value.innerHTML = ""); } function f() { if (s() === "datagrid") { const h = { bizInstId: e.dataId, container: o.value, showHeader: !1, showViewProcess: !1, ifForecast: !!e.showForecastLogs, isIncludeHistory: !!e.showHistoryLogs }; i().getWebHtml(h); } else { const h = { bizInstId: e.dataId, container: o.value, terminal: a ? "mobile" : "web", typeId: "wf", showHeader: !1, showForecastBtn: a, ifForecast: !!e.showForecastLogs, isIncludeHistory: !!e.showHistoryLogs }; i().getWebLogsHtml(h); } } async function c() { if (!e.dataId || !o.value) { d(); return; } l() || await n(e.workflowScriptUrl).catch((p) => { console.error(p); }), l() && f(); } Ve(c), _([() => e.dataId, () => e.displayType, () => e.showForecastLogs, () => e.showHistoryLogs], () => { d(), c(); }); function u() { c(); } return t.expose({ refreshData: u }), () => r("div", { ref: o, class: "fv-approval-logs" }, null); } }); Ct(zC); const WC = "https://json-schema.org/draft/2020-12/schema", qC = "https://farris-design.gitee.io/component.schema.json", UC = "button", YC = "A Farris Visual Button", GC = "object", QC = { id: { description: "The unique identifier for a component", type: "string" }, type: { description: "The type string of component", type: "string", default: "button" }, text: { description: "The text string of component", type: "string" }, disabled: { description: "", type: "boolean", default: !1 }, appearance: { description: "", type: "object", properties: { class: { type: "string" }, style: { type: "string" } }, default: {} }, visible: { description: "", type: "boolean", default: !0 }, size: { description: "大小", type: "string", default: "middle" }, icon: { description: "图标", type: "string", default: "" }, onClick: { description: "点击事件", type: "string", default: "" } }, _C = [ "id", "type", "text" ], KC = { onClick: "点击事件" }, JC = { $schema: WC, $id: qC, title: UC, description: YC, type: GC, properties: QC, required: _C, events: KC }, XC = /* @__PURE__ */ new Map([ ["appearance", ht] ]); function ZC(e, t, n) { return Object.assign(t, { text: "按钮", appearance: { class: "btn btn-secondary" } }), t; } const cu = { /** * 组件标识 */ id: String, /** * 设置按钮类型 */ type: { type: String, default: "primary" }, /** * 是否禁用 */ disabled: { type: Boolean, default: !1 }, /** * 按钮尺寸 */ size: { type: String, default: "middle" }, /** * 按钮图标 */ icon: { type: String, default: "" }, /** * 按钮文本 */ text: { type: String, default: "" }, /** * 自定义class */ customClass: { type: String, default: "" }, customStyle: { type: String, default: "" }, /** 控制是否可见 */ visible: { type: Boolean, default: !0 } }, Df = Ke(cu, JC, XC, ZC); function ew(e, t) { function n(a) { a.stopPropagation(), e.disabled || t.emit("click", a); } return { onClickButton: n }; } function Of(e) { const t = V(() => { const a = { "f-icon": !0 }; if (e.icon) { const o = e.icon.trim().split(" "); o && o.length && o.reduce((l, i) => (l[i] = !0, l), a); } return a; }), n = V(() => !!(e.icon && e.icon.trim())); return { iconClass: t, shouldShowIcon: n }; } const Ai = /* @__PURE__ */ ce({ name: "FButton", props: cu, emits: ["click"], setup(e, t) { const { onClickButton: n } = ew(e, t), { iconClass: a, shouldShowIcon: o } = Of(e), l = V(() => { const i = { btn: !0, "btn-lg": e.size === "large", "btn-md": e.size !== "large" && e.size !== "small", "btn-sm": e.size === "small", "btn-icontext": o.value }; return i[`btn-${e.type}`] = !0, e.customClass && (typeof e.customClass == "string" ? st(i, e.customClass) : Object.keys(e.customClass).reduce((s, d) => (s[d] = e.customClass[d], s), i)), i; }); return () => e.visible ? r("button", { class: l.value, disabled: e.disabled, style: e.customStyle, onClick: (i) => n(i) }, [o.value && r("i", { class: a.value }, null), e.text ? e.text : "", t.slots.default && t.slots.default()]) : null; } }); function Af(e, t) { let n; function a(u) { const { properties: p, title: h, ignore: m } = u, v = m && Array.isArray(m), b = Object.keys(p).reduce((g, y) => ((!v || !m.find((w) => w === y)) && (g[y] = p[y].type === "object" && p[y].properties ? a(p[y]) : ft(p[y].default)), g), {}); if (h && (!v || !m.find((g) => g === "id"))) { const g = h.toLowerCase().replace(/-/g, "_"); b.id = `${g}_${Math.random().toString().slice(2, 6)}`; } return b; } function o(u) { const { properties: p, title: h, required: m } = u; if (m && Array.isArray(m)) { const v = m.reduce((b, g) => (b[g] = p[g].type === "object" && p[g].properties ? a(p[g]) : ft(p[g].default), b), {}); if (h && m.find((b) => b === "id")) { const b = h.toLowerCase().replace(/-/g, "_"); v.id = `${b}_${Math.random().toString().slice(2, 6)}`; } return v; } return { type: h }; } function l(u, p = {}, h) { const m = e[u]; if (m) { let v = o(m); const b = t[u]; return v = b ? b({ getSchemaByType: l }, v, p, h) : v, n != null && n.appendIdentifyForNewControl && n.appendIdentifyForNewControl(v), v; } return null; } function i(u, p) { const h = a(p); return Object.keys(h).reduce((m, v) => (Object.prototype.hasOwnProperty.call(u, v) && (m[v] && yc(m[v]) && yc(u[v] || !u[v]) ? Object.assign(m[v], u[v] || {}) : m[v] = u[v]), m), h), h; } function s(u, p) { return Object.keys(u).filter((m) => u[m] != null).reduce((m, v) => { if (p.has(v)) { const b = p.get(v); if (typeof b == "string") m[b] = u[v]; else { const g = b(v, u[v], u); Object.assign(m, g); } } else m[v] = u[v]; return m; }, {}); } function d(u, p, h = /* @__PURE__ */ new Map()) { const m = i(u, p); return s(m, h); } function f(u) { var h; const p = u.type; if (p) { const m = e[p]; if (!m) return u; const v = i(u, m), b = ((h = u.editor) == null ? void 0 : h.type) || ""; if (b) { const g = e[b], y = i(u.editor, g); v.editor = y; } return v; } return u; } function c(u) { n = u; } return { getSchemaByType: l, resolveSchemaWithDefaultValue: f, resolveSchemaToProps: d, mappingSchemaToProps: s, setDesignerContext: c }; } const Vf = {}, Lf = {}, { resolveSchemaWithDefaultValue: tw, resolveSchemaToProps: nw, mappingSchemaToProps: aw } = Af(Vf, Lf); function ow(e = {}) { function t(f, c, u, p) { if (typeof u == "number") return p[f].length === u; if (typeof u == "object") { const h = Object.keys(u)[0], m = u[h]; if (h === "not") return Number(p[f].length) !== Number(m); if (h === "moreThan") return Number(p[f].length) >= Number(m); if (h === "lessThan") return Number(p[f].length) <= Number(m); } return !1; } function n(f, c, u, p) { return p[f] && p[f].propertyValue && String(p[f].propertyValue.value) === String(u); } const a = /* @__PURE__ */ new Map([ ["length", t], ["getProperty", n] ]); Object.keys(e).reduce((f, c) => (f.set(c, e[c]), f), a); function o(f, c) { const u = f; return typeof c == "number" ? [{ target: u, operator: "length", param: null, value: Number(c) }] : typeof c == "boolean" ? [{ target: u, operator: "getProperty", param: f, value: !!c }] : typeof c == "object" ? Object.keys(c).map((p) => { if (p === "length") return { target: u, operator: "length", param: null, value: c[p] }; const h = p, m = c[p]; return { target: u, operator: "getProperty", param: h, value: m }; }) : []; } function l(f) { return Object.keys(f).reduce((u, p) => { const h = o(p, f[p]); return u.push(...h), u; }, []); } function i(f, c) { if (a.has(f.operator)) { const u = a.get(f.operator); return u && u(f.target, f.param, f.value, c) || !1; } return !1; } function s(f, c) { return l(f).reduce((h, m) => h && i(m, c), !0); } function d(f, c) { const u = Object.keys(f), p = u.includes("allOf"), h = u.includes("anyOf"), m = p || h, g = (m ? f[m ? p ? "allOf" : "anyOf" : "allOf"] : [f]).map((w) => s(w, c)); return p ? !g.includes(!1) : g.includes(!0); } return { parseValueSchema: d }; } const lw = { convertTo: (e, t, n, a) => { e.appearance || (e.appearance = {}), e.appearance[t] = n; }, convertFrom: (e, t, n) => e.appearance ? e.appearance[t] : e[t] }, iw = { convertFrom: (e, t, n) => e.buttons && e.buttons.length ? `共 ${e.buttons.length} 项` : "无" }, rw = { convertTo: (e, t, n, a) => { e.editor && (e.editor[t] = n); }, convertFrom: (e, t, n) => e.editor && Object.prototype.hasOwnProperty.call(e.editor, t) ? e.editor[t] : e[t] }, xa = { button: { type: "button", name: "按钮" }, "response-toolbar": { type: "response-toolbar", name: "工具栏" }, "response-toolbar-item": { type: "response-toolbar-item", name: "按钮" }, "content-container": { type: "content-container", name: "容器" }, "input-group": { type: "input-group", name: "文本" }, textarea: { type: "textarea", name: "多行文本" }, lookup: { type: "lookup", name: "帮助" }, "number-spinner": { type: "number-spinner", name: "数值" }, "date-picker": { type: "date-picker", name: "日期" }, switch: { type: "switch", name: "开关" }, "radio-group": { type: "radio-group", name: "单选组" }, "check-box": { type: "check-box", name: "复选框" }, "check-group": { type: "check-group", name: "复选框组" }, "combo-list": { type: "combo-list", name: "下拉列表" }, "response-form": { type: "response-form", name: "卡片面板" }, "response-layout": { type: "response-layout", name: "布局容器", icon: "response-layout-3" }, "response-layout-item": { type: "response-layout-item", name: "布局", icon: "response-layout-1" }, "tree-grid": { type: "tree-grid", name: "树表格" }, "tree-grid-column": { type: "tree-grid-column", name: "树表格列" }, "data-grid": { type: "data-grid", name: "表格" }, "data-grid-column": { type: "data-grid-column", name: "表格列" }, module: { type: "Module", name: "模块" }, component: { type: "component", name: "组件" }, tabs: { type: "tabs", name: "标签页" }, "tab-page": { type: "tab-page", name: "标签页项", dependentParentControl: "Tab" }, "tab-toolbar-item": { type: "tab-toolbar-item", name: "标签页工具栏按钮" }, "drawer-toolbar-item": { type: "drawer-toolbar-item", name: "抽屉工具栏按钮" }, "html-template": { type: "html-template", name: "模板容器" }, "time-picker": { type: "time-picker", name: "时间选择" }, section: { type: "section", name: "分组面板" }, "section-toolbar": { type: "section-toolbar", name: "分组面板工具栏" }, "section-toolbar-item": { type: "section-toolbar-item", name: "分组面板按钮" }, splitter: { type: "splitter", name: "分栏面板" }, "splitter-pane": { type: "splitter-pane", name: "分栏面板项", dependentParentControl: "Splitter" }, "component-ref": { type: "component-ref", name: "组件引用节点" }, uploader: { type: "uploader", name: "附件上传" }, "page-header": { type: "page-header", name: "页头" }, "page-footer": { type: "page-footer", name: "页脚" }, "tab-toolbar": { type: "tab-toolbar", name: "标签页工具栏" }, "drawer-toolbar": { type: "drawer-toolbar", name: "抽屉工具栏" }, fieldset: { type: "fieldset", name: "分组" }, "query-solution": { type: "query-solution", name: "筛选方案" }, drawer: { type: "drawer", name: "抽屉" }, "external-container": { type: "external-container", name: "外部容器", icon: "content-container" }, "list-nav": { type: "list-nav", name: "列表导航" }, nav: { type: "nav", name: "标签类导航" }, "list-view": { type: "list-view", name: "列表" }, "filter-bar": { type: "filter-bar", name: "筛选条" }, "language-textbox": { type: "language-textbox", name: "多语输入框" }, image: { type: "image", name: "图像" }, avatar: { type: "avatar", name: "头像" }, "discussion-editor": { type: "discussion-editor", name: "评论编辑区" }, "discussion-list": { type: "discussion-list", name: "评论列表" }, comment: { type: "comment", name: "评论区" }, "approval-logs": { type: "approval-logs", name: "审批记录" }, "rich-text-editor": { type: "rich-text-editor", name: "富文本", icon: "rich-text-box" }, calendar: { type: "calendar", name: "日历", icon: "date-picker" }, wizard: { type: "wizard", name: "向导", icon: "wizard" }, "wizard-page": { type: "wizard-page", name: "向导页", icon: "wizard" }, "wizard-page-detail": { type: "wizard-page-detail", name: "向导详情", icon: "wizard" }, step: { type: "step", name: "步骤条", icon: "step" }, "dynamic-form": { type: "dynamic-form", name: "动态表单" } }, sw = { convertFrom: (e, t, n) => { var o; const a = e.editor && e.editor[t] ? e.editor[t] : e[t]; return ((o = xa[a]) == null ? void 0 : o.name) || a; } }, uw = { convertTo: (e, t, n, a) => { e[t] = e[t]; }, convertFrom: (e, t, n) => e.editor ? n.getRealEditorType(e.edito