UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

1,387 lines 1.94 MB
var sg = Object.defineProperty; var ug = (e, t, n) => t in e ? sg(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n; var W = (e, t, n) => ug(e, typeof t != "symbol" ? t + "" : t, n); import { computed as A, defineComponent as ce, ref as C, watch as K, createVNode as r, provide as Wt, inject as Me, onMounted as Ve, Fragment as rt, createTextVNode as Se, nextTick as it, Teleport as Xa, createApp as Do, onUnmounted as Vt, onBeforeMount as Ao, watchEffect as dr, Transition as Di, shallowRef as pi, render as Rr, h as cg, cloneVNode as dg, mergeProps as qt, withDirectives as Bt, vShow as wa, onUpdated as fg, onBeforeUnmount as Gd, withModifiers as jt, vModelText as Fa, toRef as pg, reactive as ut, resolveDirective as On, isVNode as Vn, Comment as _d, getCurrentInstance as fr, resolveComponent as Gn, toRefs as Ml, toRaw as mg, vModelCheckbox as Gs, vModelSelect as hg, isRef as vg } from "vue"; import { isImageUrl as gg, urlPrependBasePath as mo, isBase64ImageUrl as yg, getCustomClass as ft, getCustomStyle as Zt, withInstall as xt, isMobilePhone as Ot, FormSchemaEntityField$Type as Mo, FormSchemaEntityFieldType$Type as dl, EVENT_PROPERTY_TAB_IDS as ia, getMaxZIndex as wl, useGuid as gn, resolveField as Qt, useDateFormat as Ln, useResizeObserver as is, CHECKBOX_CONTEXT as _s, useCheck as Qs, radioCheckboxCommonProps as Qd, useTouchMomentum as bg, useTouch as Cg, useCommonUtils as Pa, useBem as fn, useFarrisConfig as wg, useThirdComponent as Kd, FormSchemaEntityFieldTypeName as gl, formatTime as Sg, getDateObject as ya, isLeapYear as xg, compareDate as Ai, getDaysInMonth as Tg, useTextBox as Xd, useClear as Jd, encrypt as kg, useNumberFormat as Zd, useDelayedRef as Fg, RADIOGROUP_CONTEXT as ef, useReqAnimationFrame as Pg, getTimeObject as $r, formatObjecTime as Mg } from "../common/index.esm.js"; import { resolveAppearance as Ct, createPropsResolver as Ze, getPropsResolverGenerator as pn, getSchemaByTypeForDesigner as Ig, schemaResolverMap as Eg, propertyEffectMap as Bg, propertyConfigSchemaMap as Dg, schemaMap as Ag, getSchemaByType as Sl, resolveToolbar as tf, createPageHeaderEventHandlerResolver as nf, createEventsResolver as af, createFormBindingResolver as Og } from "../dynamic-resolver/index.esm.js"; import { LocaleService as Ne } from "../locale/index.esm.js"; import { FNotifyService as Ma, F_NOTIFY_SERVICE_TOKEN as Il } from "../notify/index.esm.js"; import { useDesignerComponent as _t, DgControl as Pe, canvasChanged as mi, refreshCanvas as Vg, useDragulaCommonRule as of, UseTemplateDragAndDropRules as lf, setPositionOfButtonGroup as rf } from "../designer-canvas/index.esm.js"; import { isPlainObject as Ec, cloneDeep as vt, debounce as ra, isFunction as jr, isUndefined as Bn, mergeWith as Oi, merge as xl, isNil as Lg, isNaN as Ng, flatten as sf, get as ja, isEmpty as Rg } from "lodash-es"; import uf from "../color-picker/index.esm.js"; import Vi, { FTouchComboListContainer as cf, useDataSource as $g, FComboListContainer as jg, FComboList as Oo } from "../combo-list/index.esm.js"; import df, { useNumber as Hg, useFormat as zg, useSpinner as Wg, useTextBox as qg, getSpinnerRender as Ug, getNumberTextBoxRender as Yg, FNumberSpinner as hi, useNumberLocales as Gg } from "../number-spinner/index.esm.js"; import fl, { FButton as Li } from "../button/index.esm.js"; import Ja from "../popover/index.esm.js"; import { BaseControlProperty as ff, InputBaseProperty as Ks, ExpressionProperty as _g, FormBindingType as ol, SchemaDOMMapping as Qg } from "../property-panel/index.esm.js"; import Kg, { FieldSelectorRepositoryToken as vi } from "../field-selector/index.esm.js"; import "../collection-property-editor/index.esm.js/src/use-button-items.designer"; import Xg from "../tags/index.esm.js"; import { useInputExpand as Xs } from "../common/index.esm.js/text-box/use-input-expand"; import Js from "../drawer/index.esm.js"; import { useFilter as El, useIdentify as Bl, useHierarchy as Dl, useGroupData as Zs, useDataView as Al, useSelection as Ol, usePagination as eu, useRow as Vl, useEdit as Ll, useVisualDataBound as Nl, useVisualDataCell as Rl, useVisualDataRow as $l, useVisualGroupRow as pf, useVisualSummaryRow as mf, useVisualData as jl, useSidebar as pr, useColumn as Hl, useVirtualScroll as zl, getHierarchyRow as hf, useLoading as vf, useSelectHierarchyItem as tu, useDataViewContainerStyle as mr, useCommandColumn as gf, useSettingColumn as yf, useSort as bf, useGroupColumn as nu, useCellPosition as hr, useFitColumn as au, useFilterHistory as Cf, useColumnFilter as wf, useDragColumn as Sf, getColumnHeader as xf, getSidebar as ou, getDisableMask as Tf, getHorizontalScrollbar as lu, getVerticalScrollbar as iu, getEmpty as ru, getPagination as kf, getSummary as Ff, ColumnSettingSolution as Pf, refreshScrollAfterDataSourceLoad as Mf, COMMAND_COLUMN_DATA_TYPE as aa, SETTING_COLUMN_DATA_TYPE as oa, SETTING_COLUMN_FIELD as Jg, COMMAND_COLUMN_FIELD as Zg, CellMode as If, useScreen as Ef, useCellContentStyle as ey, getFilterPanel as ty, getGroupPanel as ny, useAdapt as ay, useNavigation as oy } from "../data-view/index.esm.js"; import vr, { FCheckbox as su } from "../checkbox/index.esm.js"; import Ia, { FButtonEdit as Wl } from "../button-edit/index.esm.js"; import Bf from "../list-view/index.esm.js"; import Et from "bignumber.js"; import uu from "../../designer/button-edit/index.esm.js"; import Sa from "../tree-view/index.esm.js"; import Df, { FInputGroup as Ni } from "../input-group/index.esm.js"; import { useResizeObserver as cu } from "@vueuse/core"; import { resolveField as ly } from "../common/index.esm.js/utils/resolve-field"; import iy from "../binding-selector/index.esm.js"; import ry from "../accordion/index.esm.js"; import sy from "../../designer/avatar/index.esm.js"; import uy from "../../designer/approval-logs/index.esm.js"; import cy from "../button-group/index.esm.js"; import dy from "../calendar/index.esm.js"; import fy from "../../designer/capsule/index.esm.js"; import Bc from "../../designer/checkbox/index.esm.js"; import Dc from "../../designer/checkbox-group/index.esm.js"; import py from "../content-container/index.esm.js"; import my from "../table/index.esm.js"; import hy from "../../designer/data-grid/index.esm.js"; import vy from "../../designer/date-picker/index.esm.js"; import gy from "../dropdown/index.esm.js"; import yy from "../../designer/dynamic-form/index.esm.js"; import by from "../external-container/index.esm.js"; import Cy from "../filter-bar/index.esm.js"; import wy from "../image-cropper/index.esm.js"; import Sy from "../../designer/input-group/index.esm.js"; import du, { FLayout as xy, FLayoutPane as Io } from "../layout/index.esm.js"; import Ty from "../list-nav/index.esm.js"; import ky from "../../designer/list-view/index.esm.js"; import Af 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 Iy from "../number-range/index.esm.js"; import Ey from "../order/index.esm.js"; import By from "../page-header/index.esm.js"; import Dy from "../page-footer/index.esm.js"; import Of from "../pagination/index.esm.js"; import Ay from "../progress/index.esm.js"; import Oy, { useCondition as Vy, useSolutionUtils as Vf } from "../query-solution/index.esm.js"; import Ly from "../../designer/radio-group/index.esm.js"; import Ny from "../../designer/rate/index.esm.js"; import Ry, { commonToolbarItemDesignProps as $y } from "../../designer/response-toolbar/index.esm.js"; import jy from "../response-layout/index.esm.js"; import Hy from "../../designer/response-layout-editor/index.esm.js"; import zy from "../search-box/index.esm.js"; import Wy from "../../designer/section/index.esm.js"; import qy from "../smoke-detector/index.esm.js"; import Uy from "../splitter/index.esm.js"; import Lf from "../step/index.esm.js"; import Yy from "../../designer/switch/index.esm.js"; import Gy from "../../designer/tabs/index.esm.js"; import _y from "../../designer/tags/index.esm.js"; import Qy from "../text/index.esm.js"; import Ky from "../../designer/time-picker/index.esm.js"; import Xy from "../transfer/index.esm.js"; import Jy from "../uploader/index.esm.js"; import Zy from "../verify-detail/index.esm.js"; import eb from "../component/index.esm.js"; import tb from "../video/index.esm.js"; import nb from "../../designer/textarea/index.esm.js"; import ab from "../../designer/tree-grid/index.esm.js"; import ob from "../fieldset/index.esm.js"; import lb from "../../designer/drawer/index.esm.js"; import ib from "../html-template/index.esm.js"; import rb from "../image/index.esm.js"; import sb from "../comment/index.esm.js"; import ub from "../../designer/wizard/index.esm.js"; import { loadRegister as cb, useComponentManager as db, useEntityState as fb, useDynamicViewUtils as pb, componentMap as Hr, resolverMap as mb, componentPropsConverter as hb } from "../dynamic-view/index.esm.js"; import rs from "../section/index.esm.js"; import vb from "../combo-tree/index.esm.js"; import gb from "../events-editor/index.esm.js"; import yb from "../mapping-editor/index.esm.js"; import bb from "../schema-selector/index.esm.js"; import Nf, { EditorType as Cb } from "../event-parameter/index.esm.js"; import wb from "../filter-condition-editor/index.esm.js"; import Sb from "../sort-condition-editor/index.esm.js"; import xb from "../menu-lookup/index.esm.js"; import Tb from "../json-editor/index.esm.js"; import kb 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 Ib from "../collection-property-editor/index.esm.js"; import Eb from "../../designer/modal/index.esm.js"; import Bb from "../tooltip/index.esm.js"; import Db, { FTreeGrid as fu } from "../tree-grid/index.esm.js"; import Ab, { FDynamicForm as Ob, FDynamicFormLabel as Vb, FDynamicFormGroup as Ri, useTypeResolver as Rf } from "../dynamic-form/index.esm.js"; import Lb, { FTimePickerTimeView as Ac, convertToDate as Nb, FTouchTimePickerTimeView as Rb } from "../time-picker/index.esm.js"; import ss from "../date-picker/index.esm.js"; import pu from "../capsule/index.esm.js"; import { createI18n as $b, useI18n as jb } from "vue-i18n"; import { useConditionValue as Hb, useConditionUtils as mu, FConditionFields as Oc, FConditionFieldsDesign as Vc, CompareType as St } from "../condition/index.esm.js"; import zb, { radioGroupProps as Wb, FRadioGroup as qb } from "../radio-group/index.esm.js"; import { DgControl as Ub } from "../designer-canvas/index.esm.js/"; import { F_MODAL_SERVICE_TOKEN as hu } from "../modal/index.esm.js"; import us, { FDataGrid as ql } from "../data-grid/index.esm.js"; import { FSwitch as Yb } from "../switch/index.esm.js"; import { FDatePicker as Lc } from "../components/index.esm.js"; import { FCheckboxGroup as Gb } from "../checkbox-group/index.esm.js"; import { SearchRelation as zr, SearchComparisonOperator as Wr } from "../field-search-box/index.esm.js"; import Vo from "../scroll-list/index.esm.js"; import vu from "../response-toolbar/index.esm.js"; import _b, { FLoadingService as Qb } from "../loading/index.esm.js"; import { FMessageBoxService as Kb } from "../message-box/index.esm.js"; import Xb, { FTabPage as Jb } from "../tabs/index.esm.js"; import Zb from "../textarea/index.esm.js"; import "../avatar/index.esm.js/src/property-config/avatar.property-config"; import "../checkbox-group/index.esm.js/src/property-config/check-group.property-config"; import "../checkbox/index.esm.js/src/property-config/checkbox.property-config"; import "../combo-list/index.esm.js/src/property-config/combo-list.property-config"; import "../date-picker/index.esm.js/src/property-config/date-picker.property-config"; import "../input-group/index.esm.js/src/property-config/input-group.property-config"; import "../language-textbox/index.esm.js/src/property-config/language-textbox.property-config"; import "../lookup/index.esm.js/src/property-config/lookup.property-config"; import "../number-range/index.esm.js/src/property-config/number-range.property-config"; import "../number-spinner/index.esm.js/src/property-config/number-spinner.property-config"; import "../radio-group/index.esm.js/src/property-config/radio-group.property-config"; import "../switch/index.esm.js/src/property-config/switch.property-config"; import "../textarea/index.esm.js/src/property-config/textarea.property-config"; import "../time-picker/index.esm.js/src/property-config/time-picker.property-config"; const eC = { title: "批量编辑", width: 500, height: 400, showCloseButton: !0, showMaxButton: !0, fields: [], rows: 0, enableDictPicking: !1 }, tC = { fields: { type: Array, default: null }, lookupHttpService: { type: Object, default: null }, enableDictPicking: { type: Boolean, default: !1 } }; function nC(e, t, n) { return t; } function aC(e, t) { return t ? typeof t == "string" ? { imageType: t.split(",") } : { imageType: t } : { imageType: [] }; } const oC = /* @__PURE__ */ new Map([ ["appearance", Ct], ["imageType", aC] ]), lC = "https://json-schema.org/draft/2020-12/schema", iC = "https://farris-design.gitee.io/avatar.schema.json", rC = "avatar", sC = "A Farris Component", uC = "object", cC = { 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" } }, dC = [ "id", "type" ], fC = [ "id", "appearance", "binding", "visible" ], pC = { onImageChange: "头像变化后事件" }, mC = { $schema: lC, $id: iC, title: rC, description: sC, type: uC, properties: cC, required: dC, ignore: fC, events: pC }, $f = { /** * 组件自定义样式 */ customClass: { type: String, default: "" }, customStyle: { type: String, default: "" }, /** * 头像宽度 * @default 100 */ avatarWidth: { type: Number, default: 100 }, /** * 头像高度 * @default 100 */ avatarHeight: { type: Number, default: 100 }, /** * 封面图片,无需双向绑定时使用 */ cover: { type: String }, /** * 只读 * @default false */ readonly: { type: Boolean, default: !1 }, visible: { type: Boolean, default: !0 }, required: { type: Boolean, default: !1 }, /** * 头像形状 * @default 'circle' */ shape: { type: String, default: "circle" }, /** * 头像最大尺寸, 单位MB * @default 2 */ maxSize: { type: Number, default: 2 }, /** * 组件值 */ modelValue: { type: String, default: "" }, /** * 图像说明,仅在readonly为true时生效 * @default '' */ title: { type: String, default: "" }, /** * 支持的图片类型 * @default [] */ imageType: { type: Array, default: [] } }; Ze($f, mC, oC, nC); function hC(e, t, n, a) { const o = ["webp", "png", "svg", "gif", "jpg", "jpeg", "bmp"]; function l(d) { return d ? "data:image/jpeg;base64," + d : ""; } const i = A(() => { var u; if (!e.imageType || !e.imageType.length) return o.map((p) => `.${p}`).join(","); const d = (u = e.imageType) == null ? void 0 : u.map((p) => `.${p}`); return !d || !d.length ? "image/*" : d.join(","); }), s = A(() => { const d = a.value; return d ? gg(d) ? mo(d) : yg(d) ? d : l(d) : ""; }), c = A(() => e.readonly ? "" : e.title); function f() { e.readonly || n && n.value && n.value.click(); } return { acceptTypes: i, imageSource: s, imageTitle: c, onClickImage: f }; } function vC(e, t, n, a, o) { const l = new Ma(); function i(d) { a.value = d; } function s(d) { return new Promise((p, h) => { const m = new FileReader(); m.readAsDataURL(d), m.onload = () => { p({ state: "done", content: m.result }); }, m.onerror = function() { h({ state: "error", content: m.result }); }; }); } function c(d) { const u = { size: d.size, name: d.name, type: d.type, lastModified: String(d.lastModified) }; s(d).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 = Ne.getLocaleValue("avatar.uploadError"); l.error({ message: h, position: "top-center" }); }); } function f(d) { if (e.readonly) return; const u = d.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() : "", y = p[0].size / 1024 / 1024 < h; if (n.value && n.value.split(",").indexOf(b) < 0) { const g = Ne.getLocaleValue("avatar.typeError"); l.error({ message: g, position: "top-center" }), u.value = ""; return; } if (!y) { const g = Ne.getLocaleValue("avatar.sizeError") + h + "MB!"; l.error({ message: g, position: "top-center" }), u.value = ""; return; } o.value = !0, c(p[0]), u.value = ""; } return { onFileChange: f }; } const gC = /* @__PURE__ */ ce({ name: "FAvatar", props: $f, 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 = A(() => { const m = { "f-avatar": !0, "f-avatar-readonly": e.readonly, "f-avatar-circle": e.shape === "circle", "f-avatar-square": e.shape === "square" }; return ft(m, e.customClass); }), i = A(() => { const m = { width: (e.avatarWidth > 0 ? e.avatarWidth : 100) + "px", height: (e.avatarHeight > 0 ? e.avatarHeight : 100) + "px" }; return Zt(m, e.customStyle); }), s = C(!1), c = C(e.modelValue || e.cover || a), { acceptTypes: f, imageSource: d, onClickImage: u } = hC(e, t, n, c), { onFileChange: p } = vC(e, t, f, c, s); K(() => e.modelValue, (m) => { c.value = m || e.cover || a; }); function h() { c.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" }, [Ne.getLocaleValue("avatar.loading")])]), r("img", { title: e.title, class: "f-avatar-image", src: d.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; } }); xt(gC); const jf = /* @__PURE__ */ new Map([ ["appearance", Ct], ["size", (e, t) => { const n = {}; return t.width && (n.width = Number(t.width)), t.height && (n.height = Number(t.height)), n; }] ]), yC = "https://json-schema.org/draft/2020-12/schema", bC = "https://farris-design.gitee.io/accordion.schema.json", CC = "accordion", wC = "A Farris Container Component", SC = "object", xC = { 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 } }, TC = [ "id", "type", "contents" ], kC = { $schema: yC, $id: bC, title: CC, description: wC, type: SC, properties: xC, required: TC }; function FC(e, t, n) { return t; } const PC = "accordion", MC = "A Farris Component", IC = "object", EC = { basic: { description: "Basic Infomation", title: "基本信息", properties: { id: { description: "组件标识", title: "标识", type: "string", readonly: !0 }, type: { description: "组件类型", title: "控件类型", type: "select", editor: { type: "waiting for modification", enum: [] } } } } }, BC = { title: PC, description: MC, type: IC, categories: EC }, gu = { /** * 组件自定义样式,多个时使用空格分隔,如'class1 class2' * @default '' */ customClass: { type: String, default: "" }, /** * 是否允许收折 * @default true */ enableFold: { type: Boolean, default: !0 }, /** * 是否展开所有面板 * @default false */ expanded: { type: Boolean, default: !1 }, /** * 设置组件的高度 */ height: { type: Number }, /** * 设置组件的宽度 */ width: { type: Number } }, Hf = Ze(gu, kC, jf, FC, BC), bo = /* @__PURE__ */ ce({ name: "FAccordion", props: gu, emits: [], setup(e, t) { const n = A(() => ({ height: e.height ? `${e.height}px` : "", width: e.width ? `${e.width}px` : "" })); Wt("accordionContext", { parentProps: e }); const a = A(() => ft({ "farris-panel": !0, accordion: !0 }, e.customClass)); return () => r("div", { class: a.value, style: n.value }, [t.slots.default && t.slots.default()]); } }), DC = "https://json-schema.org/draft/2020-12/schema", AC = "https://farris-design.gitee.io/accordion-item.schema.json", OC = "AccordionItem", VC = "A Farris Container Component", LC = "object", NC = { 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 } }, RC = [ "id", "type", "contents" ], $C = { $schema: DC, $id: AC, title: OC, description: VC, type: LC, properties: NC, required: RC }, yu = { 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 } }, zf = Ze(yu, $C, jf), cs = /* @__PURE__ */ ce({ name: "FAccordionItem", props: yu, emits: ["ClickHeader"], setup(e, t) { const n = C(), a = Me("accordionContext"), o = C(e.title), l = C(e.active), i = A(() => { 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 c(m) { t.emit("ClickHeader"), s(); } const f = A(() => { const m = { card: !0, "farris-panel-item": !0, "f-state-disabled": e.disabled, "f-state-selected": l.value }; return ft(m, e.customClass); }), d = A(() => !0), u = A(() => ({ "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 = A(() => { 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: c }, [r("div", { class: "panel-item-title" }, [e.iconUri && r("img", { class: "panel-item-title-image", src: e.iconUri, title: "title-icon" }, null), d.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()])])]); } }), jC = /* @__PURE__ */ ce({ name: "FAccordionDesign", props: gu, emits: [], setup(e, t) { const n = A(() => ({ height: e.height ? `${e.height}px` : "", width: e.width ? `${e.width}px` : "" })), a = A(() => { const s = e.customClass.split(" "), c = { "farris-panel": !0, accordion: !0 }; return s.reduce((f, d) => (f[d] = !0, f), c), c; }), o = C(), l = Me("design-item-context"), i = _t(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()]); } }), HC = /* @__PURE__ */ ce({ name: "FAccordionItemDesign", props: yu, 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 = A(() => ({ "f-state-disabled": o.value, card: !0, "farris-panel-item": !0, "f-state-selected": a.value })), c = A(() => !0), f = A(() => !1), d = A(() => ({ "f-icon": !0, "f-accordion-collapse": !a.value, "f-accordion-expand": a.value })), u = A(() => { 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" }, [c.value && r("span", null, [n.value]), f.value && t.slots.head && t.slots.head(), r("span", { class: d.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()])])]); } }); bo.install = (e) => { e.component(bo.name, bo), e.component(cs.name, cs); }; bo.register = (e, t, n, a) => { e.accordion = bo, e["accordion-item"] = cs, t.accordion = Hf, t["accordion-item"] = zf; }; bo.registerDesigner = (e, t, n) => { e.accordion = jC, e["accordion-item"] = HC, t.accordion = Hf, t["accordion-item"] = zf; }; const zC = "https://json-schema.org/draft/2020-12/schema", WC = "https://farris-design.gitee.io/approval-logs.schema.json", qC = "approval-logs", UC = "A Farris Business Component", YC = "object", GC = { 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" } }, _C = [ "id", "type", "displayType", "showForecastLogs", "showHistoryLogs" ], QC = { $schema: zC, $id: WC, title: qC, description: UC, type: YC, properties: GC, required: _C }, KC = /* @__PURE__ */ new Map([]); function XC(e, t, n) { var f, d; 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 = (d = l == null ? void 0 : l.schema) == null ? void 0 : d.type; if (!i || i === Pe.section.type) return a; const s = e.getSchemaByType("section"), c = Math.random().toString().slice(2, 6); return Object.assign(s, { id: `section-${c}`, appearance: { class: "f-section-in-mainsubcard" }, mainTitle: "审批记录", contents: [a] }), s; } const Wf = { /** 单据ID */ dataId: { type: String, default: "" }, /** 展示类型 */ displayType: { type: String, default: "card" }, /** 是否展示预测日志 */ showForecastLogs: { type: Boolean, default: !1 }, /** 是否展示历史日志 */ showHistoryLogs: { type: Boolean, default: !1 }, /** 审批流脚本地址 */ workflowScriptUrl: { type: String, default: "" } }; pn( Wf, QC, KC, XC ); const ri = {}; function JC() { 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 (ri[n]) return ri[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", c), i.removeEventListener("error", f); } function c() { s(), o(); } function f(d) { s(), delete ri[n], l(d); } i.addEventListener("load", c), i.addEventListener("error", f), document.head.appendChild(i); }); return ri[n] = a, a; } return { loadJsScript: t }; } const ZC = /* @__PURE__ */ ce({ name: "FApprovalLogs", props: Wf, emits: [], setup(e, t) { const { loadJsScript: n } = JC(), a = Ot(), o = C(); function l() { return !!window.gspTaskCenterBizLog; } function i() { return window.gspTaskCenterBizLog.ApprovalLogUtil; } function s() { return e.displayType === "data-grid" && !a ? "datagrid" : "card"; } function c() { 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 d() { if (!e.dataId || !o.value) { c(); return; } l() || await n(e.workflowScriptUrl).catch((p) => { console.error(p); }), l() && f(); } Ve(d), K([() => e.dataId, () => e.displayType, () => e.showForecastLogs, () => e.showHistoryLogs], () => { c(), d(); }); function u() { d(); } return t.expose({ refreshData: u }), () => r("div", { ref: o, class: "fv-approval-logs" }, null); } }); xt(ZC); const ew = "https://json-schema.org/draft/2020-12/schema", tw = "https://farris-design.gitee.io/component.schema.json", nw = "button", aw = "A Farris Visual Button", ow = "object", lw = { 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: "" } }, iw = [ "id", "type", "text" ], rw = { onClick: "点击事件" }, sw = { $schema: ew, $id: tw, title: nw, description: aw, type: ow, properties: lw, required: iw, events: rw }, uw = /* @__PURE__ */ new Map([ ["appearance", Ct] ]); function cw(e, t, n) { return Object.assign(t, { text: "按钮", appearance: { class: "btn btn-secondary" } }), t; } const bu = { /** * 组件唯一标识。 */ id: String, /** * 按钮显示样式。 * * @default 'primary' */ type: { type: String, default: "primary" }, /** * 是否禁用按钮。 * * @default false */ disabled: { type: Boolean, default: !1 }, /** * 按钮尺寸,可选 small、middle、large。 * * @default 'middle' */ size: { type: String, default: "middle" }, /** * 按钮图标类名。 * * @default '' */ icon: { type: String, default: "" }, /** * 按钮文本。 * * @default '' */ text: { type: String, default: "" }, /** * 自定义 CSS 类名。 * * @default '' */ customClass: { type: String, default: "" }, /** * 自定义内联样式。 * * @default '' */ customStyle: { type: String, default: "" }, /** * 控制按钮是否可见。 * * @default true */ visible: { type: Boolean, default: !0 } }, qf = Ze(bu, sw, uw, cw); function dw(e, t) { function n(a) { a.stopPropagation(), e.disabled || t.emit("click", a); } return { onClickButton: n }; } function Uf(e) { const t = A(() => { 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 = A(() => !!(e.icon && e.icon.trim())); return { iconClass: t, shouldShowIcon: n }; } const $i = /* @__PURE__ */ ce({ name: "FButton", props: bu, emits: ["click"], setup(e, t) { const { onClickButton: n } = dw(e, t), { iconClass: a, shouldShowIcon: o } = Uf(e), l = A(() => { 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" ? ft(i, e.customClass) : Object.keys(e.customClass).reduce((s, c) => (s[c] = e.customClass[c], 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 Yf(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((y, g) => ((!v || !m.find((w) => w === g)) && (y[g] = p[g].type === "object" && p[g].properties ? a(p[g]) : vt(p[g].default)), y), {}); if (h && (!v || !m.find((y) => y === "id"))) { const y = h.toLowerCase().replace(/-/g, "_"); b.id = `${y}_${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, y) => (b[y] = p[y].type === "object" && p[y].properties ? a(p[y]) : vt(p[y].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] && Ec(m[v]) && Ec(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 y = b(v, u[v], u); Object.assign(m, y); } } else m[v] = u[v]; return m; }, {}); } function c(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 y = e[b], g = i(u.editor, y); v.editor = g; } return v; } return u; } function d(u) { n = u; } return { getSchemaByType: l, resolveSchemaWithDefaultValue: f, resolveSchemaToProps: c, mappingSchemaToProps: s, setDesignerContext: d }; } const Gf = {}, _f = {}, { resolveSchemaWithDefaultValue: fw, resolveSchemaToProps: pw, mappingSchemaToProps: mw } = Yf(Gf, _f); function hw(e = {}) { function t(f, d, 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, d, 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, d) => (f.set(d, e[d]), f), a); function o(f, d) { const u = f; return typeof d == "number" ? [{ target: u, operator: "length", param: null, value: Number(d) }] : typeof d == "boolean" ? [{ target: u, operator: "getProperty", param: f, value: !!d }] : typeof d == "object" ? Object.keys(d).map((p) => { if (p === "length") return { target: u, operator: "length", param: null, value: d[p] }; const h = p, m = d[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, d) { if (a.has(f.operator)) { const u = a.get(f.operator); return u && u(f.target, f.param, f.value, d) || !1; } return !1; } function s(f, d) { return l(f).reduce((h, m) => h && i(m, d), !0); } function c(f, d) { const u = Object.keys(f), p = u.includes("allOf"), h = u.includes("anyOf"), m = p || h, y = (m ? f[m ? p ? "allOf" : "anyOf" : "allOf"] : [f]).map((w) => s(w, d)); return p ? !y.includes(!1) : y.includes(!0); } return { parseValueSchema: c }; } const vw = { convertTo: (e, t, n, a) => { e.appearance || (e.appearance = {}), e.appearance[t] = n; }, convertFrom: (e, t, n) => e.appearance ? e.appearance[t] : e[t] }, gw = { convertFrom: (e, t, n) => e.buttons && e.buttons.length ? `共 ${e.buttons.length} 项` : "无" }, yw = { 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: "容器" }, table: { type: "table", name: "表格布局" }, "table-td": { type: "table-td", 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: "分组面板按钮" }, spli