ngx-axis-appforge 1.0.2 → 1.0.4
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/fesm2022/ngx-axis-appforge-axis-components-cytoscape-design.mjs +44 -3
- package/fesm2022/ngx-axis-appforge-axis-components-cytoscape-design.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-axis-components-cytoscape.mjs +38 -0
- package/fesm2022/ngx-axis-appforge-axis-components-cytoscape.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-core.mjs +28 -5
- package/fesm2022/ngx-axis-appforge-core.mjs.map +1 -1
- package/fesm2022/ngx-axis-appforge-providers.mjs +6 -2
- package/fesm2022/ngx-axis-appforge-providers.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngx-axis-appforge-axis-components-cytoscape.d.ts +5 -1
- package/types/ngx-axis-appforge-core.d.ts +2 -1
- package/types/ngx-axis-appforge-providers.d.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-axis-appforge-core.mjs","sources":["../../../core/share/tokens.ts","../../../core/utils/dynamic.util.ts","../../../core/utils/scripts-loader.ts","../../../core/base/design-builder.ts","../../../core/utils/http.util.ts","../../../core/utils/object.util.ts","../../../core/directives/scope.ts","../../../core/share/events-handler.service.ts","../../../core/base/base.ts","../../../core/base/value-access.ts","../../../core/base/base-menu.ts","../../../core/utils/form.util.ts","../../../core/base/funfield-base.ts","../../../core/base/funfield-value-base.ts","../../../core/directives/dynamic.ts","../../../core/pipes/how-long.pipe.ts","../../../core/models/base.options.ts","../../../core/models/value-access.options.ts","../../../core/models/options-node.ts","../../../core/models/data.options.ts","../../../core/share/common-menu/common-menu.ts","../../../core/share/common-menu/common-menu.html","../../../core/utils/declaration.util.ts","../../../core/share/fun-field/fun-field.ts","../../../core/share/fun-field/fun-field.html","../../../core/utils/form-validators.ts","../../../core/share/base-design-setting/base-design-setting.ts","../../../core/share/base-design-setting/base-design-setting.html","../../../core/share/api-handler/api-handler.ts","../../../core/share/api-handler/api-handler.html","../../../core/share/array-filter-handler/input-filter-options/filter-options.ts","../../../core/share/array-filter-handler/input-filter-options/filter-options.html","../../../core/share/array-filter-handler/array-filter-handler.ts","../../../core/share/array-filter-handler/array-filter-handler.html","../../../core/share/components-snapshot-handler/components-snapshot-handler.ts","../../../core/share/components-snapshot-handler/components-snapshot-handler.html","../../../core/share/data-handler/data-handler.ts","../../../core/share/data-handler/data-handler.html","../../../core/share/export-excel-handler/sheets.options.ts","../../../core/share/export-excel-handler/export-excel-handler.ts","../../../core/share/export-excel-handler/export-excel-handler.html","../../../core/share/msg-tip-handler/msg-tip-handler.ts","../../../core/share/msg-tip-handler/msg-tip-handler.html","../../../core/share/print-handler/print-handler.ts","../../../core/share/print-handler/print-handler.html","../../../core/share/refresh-data-source-handler/refresh-data-source-handler.ts","../../../core/share/refresh-data-source-handler/refresh-data-source-handler.html","../../../core/share/route-handler/route-handler.ts","../../../core/share/route-handler/route-handler.html","../../../core/share/run-script-handler/run-script-handler.ts","../../../core/share/run-script-handler/run-script-handler.html","../../../core/share/set-data-source-handler/set-data-source-handler.ts","../../../core/share/set-data-source-handler/set-data-source-handler.html","../../../core/share/base-event-handler-descs.ts","../../../core/share/input-trigger/input-trigger.ts","../../../core/share/input-trigger/input-trigger.html","../../../core/share/value-design-setting/value-design-setting.ts","../../../core/share/value-design-setting/value-design-setting.html","../../../core/share/simple-menu/simple-menu.ts","../../../core/share/simple-menu/simple-menu.html","../../../core/share/input-validator/input-validator.ts","../../../core/share/input-validator/input-validator.html","../../../core/utils/components-loader.ts","../../../core/utils/code-name.util.ts","../../../core/ngx-axis-appforge-core.ts"],"sourcesContent":["import { ComponentRef, InjectionToken } from \"@angular/core\";\nimport { ScopeInfo } from \"../models/design-build\";\nimport { OptionsNode } from \"../models/options-node\";\nimport { ComponentsLoader } from \"../utils/components-loader\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { EventHandlerDesc, EventHandlerDescGroup } from \"../models/event-desc\";\nimport { RegisteFormControlOptions } from \"../models/form-registe.options\";\nimport { DesignConfig } from \"../models/design-config\";\nimport { ExampleGroup } from \"../models/examples\";\nimport { EventsHandler } from \"../models/event-handler\";\nimport { HttpContextToken } from \"@angular/common/http\";\nimport { Base } from \"../base/base\";\nimport { BaseOptions } from \"../models/base.options\";\n\nexport const AXIS_DESIGN_OPTIONS_NODE_FOR_MENU = new InjectionToken<{ current: OptionsNode, parent?: OptionsNode }>('axis.design.optionsNodeForMenu');\nexport const AXIS_DESIGN_CAN_LOOP_TOKEN = new InjectionToken<boolean>('axis.design.canLoop');\nexport const AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN = new InjectionToken<(scopeId?: string) => BehaviorSubject<ScopeInfo[]>>('axis.design.scopeInfosGetter');\nexport const AXIS_DESIGN_SCOPE_INFOS_REFRESH_TOKEN = new InjectionToken<BehaviorSubject<string|undefined>>('axis.design.scopeInfosRefresh');\nexport const AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN = new InjectionToken<{ component: string, componentName: string, nodes: OptionsNode[], eventHandlerDescs: { [event: string]: EventHandlerDesc } }[]>('axis.design.componentInfoForSetting');\nexport const AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN = new InjectionToken<{ ref?: ComponentRef<Base<BaseOptions>>, options: any }>('axis.design.componentRefForSetting');\nexport const AXIS_DESIGN_COMPONENT_REF_GETTER_TOKEN = new InjectionToken<(nodeId: string) => ComponentRef<Base<BaseOptions>>>('axis.design.componentRefGetter');\nexport const AXIS_DESIGN_ALL_PERMISSIONS_TOKEN = new InjectionToken<{ [permission: string]: string }>('axis.design.allPermissions');\nexport const AXIS_DESIGN_CHOOSE_COMPONENT_FUNC_TOKEN = new InjectionToken<(...tags: string[]) => Observable<{ options?: any, config?: DesignConfig }>>('axis.design.chooseComponentFunc');\nexport const AXIS_DESIGN_CMPLIBS_TOKEN = new InjectionToken<{ libName: string, lib: ExampleGroup[] }[]>('axis.design.cmplibs');\n\nexport const AXIS_COMPONENTS_TOKEN = new InjectionToken<{ [module: string]: () => Promise<any> }>('axis.components');\nexport const AXIS_COMPONENTS_LOADER_TOKEN = new InjectionToken<ComponentsLoader>('axis.componentsLoader');\nexport const AXIS_SCRIPTS_TOKEN = new InjectionToken<{ [name: string]: string }>('axis.scripts');\nexport const AXIS_EVENT_HANDLERS_TOKEN = new InjectionToken<EventsHandler[]>('axis.eventHandlers');\nexport const AXIS_EVENT_HANDLER_DESCS_TOKEN = new InjectionToken<EventHandlerDescGroup[]>('axis.eventHandlersDescs');\nexport const AXIS_INJECT_DATA_TOKEN = new InjectionToken<any>('axis.injectData');\nexport const AXIS_INJECT_FUNC_TOKEN = new InjectionToken<{ [name: string]: (Function | { func: Function, type: string }) } | BehaviorSubject<{ [name: string]: (Function | { func: Function, type: string }) }>>('axis.injectFunc');\nexport const AXIS_CURRENT_USER_PERMISSIONS_TOKEN = new InjectionToken<string[]>('axis.currentUserPermissions');\nexport const AXIS_HTTP_CONTEXT_DATA_TOKEN = new InjectionToken<{ [key: string]: any } | BehaviorSubject<any>>('axis.httpContextData');\n\nexport const AXIS_FORM_REGISTE_CONTROL_TOKEN = new InjectionToken<(opt: RegisteFormControlOptions) => void>('axis.form.registeControl');\nexport const AXIS_FORM_UNREGISTE_CONTROL_TOKEN = new InjectionToken<(opt: string) => void>('axis.form.unregisteControl');\n\nexport const AXIS_FILE_BASE_URL_TOKEN = new InjectionToken<string | BehaviorSubject<string>>('axis.fileBaseUrl');\nexport const AXIS_HTTP_CONTEXT_TOKEN = new HttpContextToken<{ [key: string]: any }>(() => ({}));\n","\nexport interface DynamicFnOptions {\n fnBody?: string;\n args?: any[] | object;\n}\n\nconst notDefinedRegDefault = /^(.*) is not defined$/;\nconst notDefinedRegIOS = /^Can't find variable: (.*)$/;\nexport function fn(fnBody: string, argsObj: any, ignoreUndefined = false, printError = true) {\n let argsName: string[] = [];\n let args: any[] = [];\n if (argsObj) {\n argsName = Object.keys(argsObj);\n args = argsName.map(n => argsObj[n]);\n }\n while (true) {\n try {\n const fun = new Function(...argsName, fnBody);\n if (fun && fun instanceof Function) {\n return fun(...args);\n } else if (printError) {\n _consoleError(fnBody, args, argsName);\n }\n } catch (e) {\n if (ignoreUndefined && e instanceof ReferenceError && (notDefinedRegDefault.test(e.message) || notDefinedRegIOS.test(e.message))) {\n const defaultMatch = notDefinedRegDefault.exec(e.message);\n const iosMatch = notDefinedRegIOS.exec(e.message);\n if (defaultMatch) {\n argsName.push(defaultMatch[1]);\n continue;\n } else if (iosMatch && iosMatch[1]) {\n argsName.push(iosMatch[1]);\n continue;\n }\n }\n if (printError) {\n _consoleError(fnBody, args, argsName, e as Error);\n }\n }\n return null;\n }\n\n}\n\nfunction _consoleError(fnBody: string, args: any[], argsName: string[], e?: Error) {\n let ds: any[] = [];\n args.forEach((e, i) => {\n ds[i] = { name: argsName[i], value: e };\n });\n console.groupCollapsed(`%c 函数${e ? '编译' : '执行'}失败`, \"color:red\");\n if (e) {\n console.error(\"失败原因\", e.message);\n }\n console.log(\"函数体\", fnBody);\n console.log(\"数据源\", ds);\n console.groupEnd();\n}","const loadedMap = new Map<string, any>();\nconst loadingMap = new Map<string, Promise<any>>();\n\nexport function loadScripts(path: string): Promise<string> {\n if (loadedMap.has(path)) {\n return Promise.resolve(loadedMap.get(path)!);\n }\n if (loadingMap.has(path)) {\n return loadingMap.get(path)!;\n }\n loadingMap.set(path, downloadScript(path).then(script => {\n loadedMap.set(path, script);\n loadingMap.delete(path);\n return script;\n }));\n return loadingMap.get(path)!;\n}\n\nexport function syncLoadScript(path: string): string | undefined {\n return loadedMap.get(path);\n}\n\nasync function downloadScript(path: string): Promise<any> {\n return await (await fetch(path)).text();\n}","import { ComponentRef } from \"@angular/core\";\nimport { ScopeDirective } from \"../directives/scope\";\n\nexport class DesignBuilder {\n\n constructor(public buildElement: (ref: ComponentRef<any>, options: any) => void, public buildScope: (scope: ScopeDirective) => void) { }\n\n}","import { HttpClient, HttpContext, HttpEventType, HttpRequest } from \"@angular/common/http\";\nimport { ApiOptions } from \"../models/api.options\";\nimport { map, catchError, of, Observable, BehaviorSubject, filter } from \"rxjs\";\nimport { AXIS_HTTP_CONTEXT_TOKEN } from \"../share/tokens\";\n\nexport function sendApi(opt: ApiOptions, http: HttpClient): Observable<any> {\n let contextData: any;\n if (opt.context) {\n if (opt.context instanceof BehaviorSubject) {\n contextData = opt.context.value;\n } else {\n contextData = opt.context;\n }\n }\n let context: HttpContext | undefined;\n if (contextData) {\n context = new HttpContext().set(AXIS_HTTP_CONTEXT_TOKEN, contextData);\n }\n return http.request(new HttpRequest(opt.method?.toUpperCase() as any || \"GET\", opt.url, opt.body, { context: context }))\n .pipe(filter(e => e.type == HttpEventType.Response), map((h: any) => h.body), catchError(e => of(undefined)));\n}","export function listSort(list: Array<any>, compareField: string, reverse: boolean = false) {\n const type = typeof list.map(e => e[compareField]).find(e => e != null);\n const factor = reverse ? -1 : 1;\n if (type == \"number\") {\n list.sort((a, b) => (a[compareField] - b[compareField]) * factor);\n } else if (type == \"string\") {\n list.sort((a, b) => ((a[compareField] || \"\") + \"\").localeCompare(b[compareField]) * factor);\n }\n}\n\nexport function trackByFn(trackByField: string) {\n return (index: number, item: any) => {\n return item[trackByField];\n }\n}\n\nexport function copy(obj: any, deepCopy = false) {\n let newobj = obj;\n if (obj instanceof Array) {\n newobj = [];\n obj.forEach((item, i) => {\n try {\n newobj[i] = copy(item, deepCopy);\n } catch (e) {\n console.error(\"复制对象失败\", obj);\n }\n });\n } else if (obj instanceof Object) {\n newobj = Object.assign({}, obj);\n if (deepCopy) {\n for (const n in newobj) {\n if (newobj[n] instanceof Object) {\n newobj[n] = copy(newobj[n], deepCopy);\n }\n }\n }\n }\n return newobj;\n}\n\nexport function deepMerge(...objs: any[]) {\n const temp: any = {};\n objs = objs.filter(e => e);\n objs.forEach(o => {\n Object.keys(o).filter(k => o[k] != null && typeof o[k] == \"object\" && !(o[k] instanceof Array)).forEach(k => {\n if (!temp.hasOwnProperty(k)) {\n temp[k] = {};\n }\n temp[k] = deepMerge(temp[k], o[k]);\n });\n });\n objs.push(temp);\n return Object.assign({}, ...objs);\n}\n\nexport function obj2Arr(obj: any) {\n const arr = [];\n if (obj) {\n for (let n in obj) {\n arr.push(obj[n]);\n }\n }\n return arr;\n}\n\nexport function recursionArray(arr: any[], options: { childrenField?: string, before?: (node: any, level: number, parent?: any) => boolean | void, after?: (node: any, level: number, parent?: any) => boolean | void }, offsetLevel = 0, parent?: any): boolean | void {\n const childrenField = options.childrenField ?? \"children\";\n if (options.before || options.after) {\n for (let i = 0; i < arr.length; i++) {\n const n = arr[i];\n let ctn = options.before?.(n, offsetLevel, parent);\n if (ctn === false) {\n return;\n }\n if (Array.isArray(n[childrenField])) {\n if (recursionArray(n[childrenField], options, offsetLevel + 1, n) === false) {\n return false;\n }\n }\n ctn = options.after?.(n, offsetLevel, parent);\n if (ctn === false) {\n return;\n }\n }\n }\n}\n\nexport function recursionObject(obj: any, handler: (keys: string[], value: any, parent: any) => void, keys: string[] = [], parent?: any) {\n if (!obj) {\n handler(keys, obj, parent);\n } else if (obj instanceof Array) {\n obj.forEach((v, i) => {\n const nextKeys: string[] = ([] as string[]).concat(keys);\n nextKeys.push(i.toString());\n recursionObject(v, handler, nextKeys, obj);\n });\n } else if (typeof (obj) == \"object\") {\n Object.keys(obj).forEach(k => {\n const nextKeys: string[] = ([] as string[]).concat(keys);\n nextKeys.push(k);\n recursionObject(obj[k], handler, nextKeys, obj);\n });\n } else {\n handler(keys, obj, parent);\n }\n}\n\nexport function rebuildObject(targetObj: any, sourceObj: any) {\n if (sourceObj) {\n if (!targetObj) {\n targetObj = {};\n }\n Object.keys(targetObj).forEach(k => {\n delete targetObj[k];\n });\n Object.assign(targetObj, sourceObj);\n }\n return targetObj;\n}\n\nexport function assignDefaultField(targetObj: any, sourceObj: any) {\n if (!targetObj) {\n return sourceObj;\n } else if (!sourceObj) {\n return targetObj;\n } else {\n Object.keys(sourceObj).forEach(k => {\n if (targetObj[k] == undefined) {\n targetObj[k] = sourceObj[k];\n }\n });\n return targetObj;\n }\n}\n\nexport function isEquals(objA: any, objB: any): boolean {\n if (objA !== objB) {\n const t = typeof (objA);\n if (t != typeof (objB)) {\n return false;\n }\n switch (t) {\n case \"object\":\n if (!objA && !objB) {\n return false;\n } else if (objA && objB) {\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length != keysB.length) {\n return false;\n }\n for (const k of keysA) {\n if (!isEquals(objA[k], objB[k])) {\n return false;\n }\n }\n } else {\n return false;\n }\n break;\n default:\n return objA == objB;\n }\n }\n return true;\n}\n\nexport function objDiff(last: { [k: string]: any } | undefined | null, current: { [k: string]: any } | undefined | null): Set<string> {\n const diff = new Set<string>();\n if (last && current) {\n for (const key of new Set(Object.keys(last).concat(Object.keys(current)))) {\n if (last[key] != current[key]) {\n diff.add(key);\n }\n }\n } else if (last) {\n return new Set(Object.keys(last));\n } else if (current) {\n return new Set(Object.keys(current));\n }\n return diff;\n}","import { Directive, effect, ElementRef, inject, input, isSignal, OnDestroy, OnInit, WritableSignal } from '@angular/core';\nimport { BehaviorSubject, concat, debounceTime, filter, isObservable, last, map, merge, NEVER, Observable, of, Subject, Subscription, switchMap, take, tap, zip } from 'rxjs';\nimport { Base } from '../base/base';\nimport { BaseOptions } from '../models/base.options';\nimport { DataSourceOptions } from '../models/data-source.options';\nimport { EventHandlerOptions } from '../models/event.options';\nimport { StaticDataSourceOptions } from '../models/static-data-source.options';\nimport { AXIS_HTTP_CONTEXT_DATA_TOKEN, AXIS_INJECT_DATA_TOKEN, AXIS_INJECT_FUNC_TOKEN, AXIS_SCRIPTS_TOKEN } from '../share/tokens';\nimport { fn } from '../utils/dynamic.util';\nimport { loadScripts, syncLoadScript } from '../utils/scripts-loader';\nimport { DesignBuilder } from '../base/design-builder';\nimport { sendApi } from '../utils/http.util';\nimport { HttpClient } from '@angular/common/http';\nimport { Initobs } from '../models/initobs';\nimport { copy, isEquals } from '../utils/object.util';\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\nimport html2canvas from 'html2canvas';\nimport saveAs from \"file-saver\";\nimport { utils, WorkBook, WorkSheet, writeFile } from 'xlsx-js-style';\n\n@Directive({\n selector: '[axisScope]'\n})\nexport class ScopeDirective implements OnInit, OnDestroy {\n\n constructor() {\n effect(() => {\n if (!this.oriDataSources || !isEquals(this.oriDataSources, this.dataSources())) {\n this.oriDataSources = copy(this.dataSources(), true);\n this.initDs();\n }\n });\n }\n private oriDataSources?: DataSourceOptions[];\n private readonly http = inject(HttpClient);\n readonly axisScope = input.required<string>();\n readonly scopeName = input.required<string>();\n readonly isRoot = input(false);\n private readonly elementRef = inject(ElementRef);\n private readonly _parentScope = inject(ScopeDirective, { optional: true, skipSelf: true });\n readonly httpContextData = inject(AXIS_HTTP_CONTEXT_DATA_TOKEN, { optional: true });\n readonly scripts = inject(AXIS_SCRIPTS_TOKEN, { optional: true });\n readonly injectData = inject(AXIS_INJECT_DATA_TOKEN, { optional: true });\n private readonly funcs = inject(AXIS_INJECT_FUNC_TOKEN, { optional: true });\n injectFuncs?: { [name: string]: Function };\n readonly dataSources = input<DataSourceOptions[]>();\n private readonly designBuilder = inject(DesignBuilder, { optional: true });\n private readonly ds = new Map<string, BehaviorSubject<any>>();\n private readonly updateDs = new Map<string, Subject<DataSourceOptions>>();\n private dynamicOptionsSubs: Subscription[] = [];\n private rootSubs: Subscription[] = [];\n private readonly instanceMap = new Map<string, Base<BaseOptions>>();\n private readonly changeSubject = new BehaviorSubject<void>(void (0));\n private readonly latestUpdateOptions = new Map<string, DataSourceOptions>();\n private get parentScope(): ScopeDirective | null {\n return this.isRoot() ? null : this._parentScope;\n }\n\n host = inject(ElementRef)\n\n ngOnInit(): void {\n this.designBuilder?.buildScope(this);\n if (this.funcs) {\n this.injectFuncs = {};\n const funcs = this.funcs instanceof BehaviorSubject ? this.funcs.value : this.funcs;\n for (const name in funcs) {\n if (funcs[name] instanceof Function) {\n this.injectFuncs[name] = funcs[name];\n } else {\n this.injectFuncs[name] = funcs[name].func;\n }\n }\n }\n }\n\n private initDs(): void {\n for (const s of this.dynamicOptionsSubs.values()) {\n s.unsubscribe();\n }\n this.dynamicOptionsSubs = [];\n for (const oriopt of this.dataSources() ?? []) {\n let needConnect = false;\n if (!this.updateDs.has(oriopt.name)) {\n needConnect = true;\n this.updateDs.set(oriopt.name, new Subject());\n }\n const updateSubject = this.updateDs.get(oriopt.name)!;\n if (!this.ds.has(oriopt.name)) {\n needConnect = true;\n this.ds.set(oriopt.name, new BehaviorSubject(undefined));\n }\n if (needConnect) {\n this.rootSubs.push(updateSubject.pipe(\n switchMap(opt => this.updateDataSource(opt)))\n .subscribe(this.ds.get(oriopt.name)!));\n }\n if (oriopt.type != 'local') {\n delete oriopt.data;\n }\n const io = this.dynamicOptions(oriopt, oriopt.type == 'api');\n if (io.init !== undefined) {\n updateSubject.next(io.init);\n }\n if (io.obs) {\n this.dynamicOptionsSubs.push(io.obs.pipe(debounceTime(100)).subscribe(updateSubject));\n }\n }\n\n this.changeSubject.next();\n }\n\n private updateDataSource(opt: DataSourceOptions): Observable<any> {\n this.latestUpdateOptions.set(opt.name, opt);\n switch (opt.type) {\n case \"api\":\n if (opt.api?.url) {\n opt.api.context ??= this.httpContextData;\n return sendApi(opt.api, this.http);\n }\n break;\n case \"local\":\n if (opt.data !== undefined) {\n return of(opt.data);\n }\n break;\n case \"inject\":\n if (opt.injectField && this.injectData) {\n if (isObservable(this.injectData)) {\n return this.injectData.pipe(map((data: any) => data[opt.injectField!]));\n } else {\n return of(this.injectData?.[opt.injectField]);\n }\n }\n break;\n case \"cache\":\n if (opt.cacheKey) {\n const cacheData = localStorage.getItem(opt.cacheKey);\n if (cacheData != null && cacheData != \"undefined\") {\n return of(JSON.parse(cacheData));\n }\n }\n }\n return NEVER;\n }\n\n get(name: string, init = true): Observable<any> | undefined {\n let res: Observable<any> | undefined;\n if (this.ds.has(name)) {\n res = this.ds.get(name)?.asObservable();\n } else {\n res = this.parentScope?.get(name, false);\n }\n if (!res && init) {\n this.ds.set(name, new BehaviorSubject(undefined));\n res = this.ds.get(name)!.asObservable();\n this.changeSubject.next();\n }\n return res;\n }\n\n snapshot(name: string): any {\n if (this.ds.has(name)) {\n return this.ds.get(name)!.value;\n }\n return this.parentScope?.snapshot(name);\n }\n\n snapshotAll(): any {\n const data: any = {};\n this.ds.forEach((d, name) => {\n data[name] = d.value;\n });\n if (this.parentScope) {\n return Object.assign(this.parentScope.snapshotAll(), data);\n } else {\n return data;\n }\n }\n\n getSnapshoptAllWithScopeId(scopeId: string): any {\n if (this.axisScope() == scopeId) {\n const data: any = {};\n this.ds.forEach((d, name) => {\n if (!d.closed) {\n data[name] = d.getValue();\n }\n });\n return data;\n } else {\n return this.parentScope?.getSnapshoptAllWithScopeId(scopeId)\n }\n }\n\n getAllWithScopeId(scopeId: string): Observable<any> {\n if (this.axisScope() == scopeId) {\n return this.changeSubject.pipe(switchMap(_ => this.ds.size ? merge(...this.ds.values()) : of(null)),\n map(() => this.getSnapshoptAllWithScopeId(scopeId)));\n } else {\n return this.parentScope?.getAllWithScopeId(scopeId) ?? NEVER;\n }\n }\n\n dynamicField(obj: any, field: string, deep = false, tempDataSource?: any): Initobs {\n const res: Initobs = {\n firstDefinedFields: [],\n definedFields: [],\n };\n if (Object.hasOwn(obj, `$${field}`)) {\n const $obj = obj[`$${field}`];\n if (typeof $obj == 'object' && $obj) {\n if ($obj.listen && Object.keys($obj.listen).length) {\n res.firstDefinedFields = [];\n res.definedFields = [];\n res.obs = merge(...Object.entries($obj.listen).map(en => {\n const obs = this.get(en[0])!;\n switch (en[1]) {\n case \"firstDefined\":\n res.firstDefinedFields?.push(en[0]);\n return obs.pipe(filter(v => v !== undefined), take(1));\n case \"defined\":\n res.definedFields?.push(en[0]);\n return obs.pipe(filter(v => v !== undefined));\n default:\n return obs;\n }\n })).pipe(map(_ => this.runFnWithImports($obj.fn, Object.assign(this.snapshotAll(), tempDataSource), $obj.imports)));\n }\n if (!$obj.listen || Object.entries($obj.listen).every(en => en[1] == \"aways\")) {\n res.init = this.runFnWithImports($obj.fn, Object.assign(this.snapshotAll(), tempDataSource), $obj.imports);\n }\n return res;\n } else {\n throw new Error(`$${field} is not a valid dynamic field`);\n }\n }\n if (deep && obj[field] && typeof obj[field] == \"object\" && !Array.isArray(obj[field])) {\n return this.dynamicOptions(obj[field], true, tempDataSource);\n }\n res.init = obj[field];\n return res;\n }\n\n snapshotField(obj: any, field: string, tempDataSource?: any) {\n if (Object.hasOwn(obj, `$${field}`)) {\n const $obj = obj[`$${field}`];\n if (typeof $obj == 'object') {\n const args = this.snapshotAll();\n if (tempDataSource) {\n Object.assign(args, tempDataSource)\n }\n return this.runFnWithImports($obj.fn, args, $obj.imports);\n }\n throw new Error(`$${field} is not a valid dynamic field`);\n } else {\n if (obj[field] && typeof obj[field] == \"object\" && !Array.isArray(obj[field])) {\n return this.snapshotOptions(obj[field], tempDataSource);\n }\n }\n return obj[field];\n }\n\n bindOptions(optionsConfig: any, options: any, tempDataSource?: any): Subscription[] {\n const subs: Subscription[] = [];\n for (const en of Object.entries(options)) {\n if (isSignal(en[1])) {\n const io = this.dynamicField(optionsConfig, en[0], false, tempDataSource);\n if (io.init !== undefined) {\n (en[1] as WritableSignal<any>).set(io.init);\n }\n if (io.obs) {\n subs.push(io.obs.pipe(filter(v => v !== undefined))\n .subscribe((en[1] as WritableSignal<any>).set));\n }\n } else {\n options[en[0]] = this.snapshotField(optionsConfig, en[0], tempDataSource);\n }\n }\n return subs;\n }\n\n dynamicOptions(optionsConfig: any, deep = false, tempDataSource?: any): Initobs {\n const res: Initobs = {\n definedFields: [],\n firstDefinedFields: []\n };\n const obs: Observable<any>[] = [];\n const empptObj: any = {};\n let setInit = true;\n for (const en of Object.entries(optionsConfig)) {\n if (en[1] === undefined) {\n continue;\n }\n const field = en[0].replace(/^\\$/, '');\n const r = this.dynamicField(optionsConfig, field, deep, tempDataSource);\n if (r.init !== undefined) {\n empptObj[field] = r.init;\n } else {\n setInit = false;\n }\n if (r.obs) {\n if (r.definedFields) {\n res.definedFields = res.definedFields?.concat(r.definedFields);\n }\n if (r.firstDefinedFields) {\n res.firstDefinedFields = res.firstDefinedFields?.concat(r.firstDefinedFields);\n }\n obs.push(r.obs.pipe(map(v => ({ [field]: v }))));\n }\n }\n if (setInit && Object.keys(empptObj).length) {\n res.init = empptObj;\n }\n if (obs.length) {\n res.obs = merge(...obs).pipe(map(v => Object.assign(empptObj, v)), filter(_ => {\n for (const f of res.definedFields!) {\n if (this.ds.get(f)?.value === undefined) {\n return false;\n }\n }\n for (const f of res.firstDefinedFields!) {\n if (this.ds.get(f)?.value === undefined) {\n return false;\n } else {\n res.firstDefinedFields = res.firstDefinedFields?.filter(ff => ff != f);\n }\n }\n return true;\n }));\n }\n return res;\n }\n\n snapshotOptions(optionsConfig: any, tempDataSource?: any): any {\n const res: any = {};\n for (const en of Object.entries(optionsConfig)) {\n const field = en[0].replace(/^\\$/, '')\n res[field] = this.snapshotField(optionsConfig, field, tempDataSource);\n }\n return res;\n }\n\n registInstance(id: string, instance: Base<BaseOptions>) {\n if (id) {\n this.instanceMap.set(id, instance);\n }\n }\n\n unRegistInstance(id: string) {\n this.instanceMap.delete(id);\n }\n\n findInstance(id: string): Base<BaseOptions> | undefined {\n return this.instanceMap.get(id) ?? this.parentScope?.findInstance(id);\n }\n\n findScope(scopeId: string): ScopeDirective | undefined {\n if (this.axisScope() == scopeId) {\n return this;\n } else {\n return this.parentScope?.findScope(scopeId);\n }\n }\n\n ngOnDestroy(): void {\n for (const s of this.dynamicOptionsSubs.values()) {\n s.unsubscribe();\n }\n for (const s of this.rootSubs.values()) {\n s.unsubscribe();\n }\n this.changeSubject.complete();\n for (const d of this.ds.values()) {\n d.complete();\n }\n }\n\n onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n if (e.id === this.axisScope() || !e.id) {\n switch (e.name) {\n case \"setDataSource\":\n return this.setDataSourceEventHandler(e.data);\n case \"refreshDataSource\":\n return this.refreshDataSourceEventHandler(e.data);\n case \"exportExcel\":\n return this.exportExcelEventHandler(e.data);\n case \"componentsSnapshot\":\n return this.componentsSnapshotEventHandler(e.data);\n default:\n return undefined;\n }\n } else {\n return this.parentScope?.onEvents(e) ?? of(true);;\n }\n }\n\n private setDataSourceEventHandler(data: StaticDataSourceOptions): Observable<boolean> {\n if (this.ds.has(data.name)) {\n this.ds.get(data.name)!.next(data.data);\n const opt = this.latestUpdateOptions.get(data.name);\n if (opt?.type == \"cache\" && opt.cacheKey) {\n localStorage.setItem(opt.cacheKey, JSON.stringify(data.data));\n }\n } else {\n this.ds.set(data.name, new BehaviorSubject(data.data));\n this.changeSubject.next();\n }\n return of(true);\n }\n\n private refreshDataSourceEventHandler(data: { name: string, setNull: boolean }): Observable<boolean> {\n if (this.latestUpdateOptions.has(data.name)) {\n if (data.setNull) {\n this.ds.get(data.name)!.next(null);\n }\n this.updateDs.get(data.name)?.next(this.latestUpdateOptions.get(data.name)!);\n }\n return of(true);\n }\n\n private componentsSnapshotEventHandler(data: { ids: string[], exportFileName: string }): Observable<boolean> {\n if (!data.ids?.length) {\n return of(false)\n }\n return zip(...data.ids.filter(id => this.instanceMap.has(id)).map(id => {\n const inst = this.instanceMap.get(id);\n return fromPromise(html2canvas(inst!.elementRef!.nativeElement))\n .pipe(switchMap(c => new Observable<HTMLImageElement>(s => {\n const img = new Image();\n img.onload = () => {\n s.next(img);\n s.complete();\n };\n img.onerror = s.error;\n img.src = c.toDataURL(\"image/png\");\n })));\n })).pipe(switchMap(images => {\n const outer = document.createElement(\"div\");\n outer.style.height = \"0px\";\n outer.style.overflow = \"auto\";\n const container = document.createElement(\"div\");\n outer.appendChild(container)\n container.style.display = \"flex\";\n container.style.flexDirection = \"column\";\n images.forEach(img => {\n container.appendChild(img);\n });\n this.elementRef.nativeElement.parentElement.appendChild(outer);\n return fromPromise(html2canvas(container)).pipe(tap(_ => this.elementRef.nativeElement.parentElement.removeChild(outer)))\n }), switchMap(canvas => new Observable<boolean>(s => {\n canvas.toBlob(b => {\n if (b) {\n saveAs(b, data.exportFileName + \".png\")\n }\n s.next(!!b);\n s.complete();\n })\n })));\n }\n\n private exportExcelEventHandler(data: { sheets: { sheetTitle: string, tableId: string }[], fileName: string, bookType: \"xlsx\" | \"xls\" }): Observable<boolean> {\n const wb: WorkBook = utils.book_new();\n const obs = (data.sheets ?? []).map<Observable<[string, WorkSheet]>>(row => {\n var table = this.findInstance(row.tableId);\n if (table) {\n const ws: Observable<WorkBook> | undefined = table.callFunction?.(\"exportExcel\");\n if (ws) {\n return ws.pipe(map(ws => [row.sheetTitle, ws]));\n }\n }\n return of([row.sheetTitle, utils.json_to_sheet([])]);\n });\n return concat(...obs).pipe(tap(row => {\n utils.book_append_sheet(wb, row[1], row[0]);\n }), last(), tap(() => {\n writeFile(wb, data.fileName + \".\" + data.bookType, { bookType: data.bookType });\n }), map(_ => true));\n }\n\n async preloadImports(obj: any): Promise<void> {\n if (this.scripts) {\n const imports = new Set<string>();\n Object.entries(obj).forEach(([key, value]) => {\n if (key.startsWith(\"$\")) {\n ((value as any).imports as any[])?.forEach(i => imports.add(i));\n }\n });\n if (imports.size) {\n await Promise.all(Array.from(imports.values()).map(i => loadScripts(this.scripts![i] + \".js\")));\n }\n }\n }\n\n runFnWithImports(fnstr: any, args: any, imports: string[]): any {\n const libs: string[] = [];\n for (const i of imports ?? []) {\n if (this.scripts?.hasOwnProperty(i)) {\n const js = syncLoadScript(`${this.scripts[i]}.js`);\n if (js) {\n libs.push(js);\n }\n }\n }\n return fn(`${libs.join(\"\\n\")}\\n${fnstr}`, Object.assign({}, args, this.injectFuncs), true);\n }\n\n runFnWithSnapshot(fnstr: any, args?: any): any {\n return fn(fnstr, Object.assign({}, this.snapshotAll(), args, this.injectFuncs), true);\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { from, mergeMap, Observable, of } from 'rxjs';\nimport { ApiOptions } from '../models/api.options';\nimport { EventHandlerOptions } from '../models/event.options';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { NzModalService } from 'ng-zorro-antd/modal';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { EventsHandler } from '../models/event-handler';\nimport { AXIS_EVENT_HANDLERS_TOKEN, AXIS_HTTP_CONTEXT_DATA_TOKEN } from './tokens';\nimport { sendApi } from '../utils/http.util';\nimport { PlatformLocation } from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EventsHandlerService implements EventsHandler {\n\n constructor(private http: HttpClient, private platformLocation: PlatformLocation, private msg: NzMessageService, private modal: NzModalService, private router: Router, @Optional() @Inject(AXIS_EVENT_HANDLERS_TOKEN) private otherHandlers?: EventsHandler[]) { }\n\n onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n switch (e.name) {\n case \"api\":\n return this.apiEventHandler(e);\n case \"msgTip\":\n return this.msgTipEventHandler(e);\n case \"arrayFilter\":\n return this.arrayFilterEventHandler(e);\n case \"route\":\n return this.routeEventHandler(e);\n case \"runScript\":\n return this.runScriptEventHandler(e);\n case \"print\":\n return this.printEventHandler(e);\n default:\n if (this.otherHandlers) {\n for (const h of this.otherHandlers) {\n const r = h.onEvents(e);\n if (r != undefined) {\n return r;\n }\n }\n }\n return undefined;\n }\n }\n\n private apiEventHandler(e: EventHandlerOptions<ApiOptions>): Observable<boolean> {\n const opt = e.data as ApiOptions;\n opt.context ??= e.ref?.injector.get(AXIS_HTTP_CONTEXT_DATA_TOKEN, null);\n return sendApi(opt, this.http).pipe(mergeMap(res => {\n if (e.ref) {\n return e.ref.triggeEvents(\"apiResponse\", { ...e.tempDataSource, apiResponse: res }, e.triggeEvents);\n } else {\n return of(true);\n }\n }));\n }\n\n private msgTipEventHandler(e: EventHandlerOptions<any>): Observable<boolean> {\n switch (e.data?.tipWay) {\n case \"modal\":\n switch (e.data?.type) {\n case \"info\":\n this.modal.info({\n nzTitle: \"提醒\",\n nzContent: e.data.content\n });\n break;\n case \"success\":\n this.modal.success({\n nzTitle: \"成功\",\n nzContent: e.data.content\n });\n break;\n case \"warning\":\n this.modal.warning({\n nzTitle: \"警告\",\n nzContent: e.data.content\n });\n break;\n case \"error\":\n this.modal.error({\n nzTitle: \"失败\",\n nzContent: e.data.content\n });\n break;\n }\n break;\n case \"message\":\n switch (e.data?.type) {\n case \"info\":\n this.msg.info(e.data.content);\n break;\n case \"success\":\n this.msg.success(e.data.content);\n break;\n case \"warning\":\n this.msg.warning(e.data.content);\n break;\n case \"error\":\n this.msg.error(e.data.content);\n break;\n }\n break;\n }\n return of(true);\n }\n\n private arrayFilterEventHandler(e: EventHandlerOptions<{ inputArray?: any[], filterData?: any, filterOptions?: { field: string, mode: string, effectFields: string[] }[] }>): Observable<boolean> {\n const { inputArray, filterData, filterOptions } = e.data ?? {};\n let outputArray: any[] | undefined | null;\n if (!inputArray?.length || !filterOptions?.length || !filterData || !Object.keys(filterData).length) {\n outputArray = inputArray;\n } else {\n outputArray = inputArray.filter((r: any) => {\n return filterOptions!\n .every(e => {\n if (filterData[e.field] == undefined || (e.mode == \"between\" && filterData[e.field].length < 2)) {\n return true;\n }\n const effectFields = e.effectFields || [e.field];\n return effectFields.some(field => {\n const rowData = r[field];\n switch (e.mode) {\n case \"startsWith\":\n return rowData?.startsWith(filterData[e.field]);\n case \"endsWith\":\n return rowData?.endsWith(filterData[e.field]);\n case \"like\":\n return rowData != null && String(rowData).toUpperCase().includes(filterData[e.field].toUpperCase());\n case \"equalGreater\":\n return rowData != undefined && r[field] >= filterData[e.field];\n case \"equalLess\":\n return rowData != undefined && r[field] <= filterData[e.field];\n case \"between\":\n return rowData != undefined && r[field] >= filterData[e.field][0] && r[field] <= filterData[e.field][1];\n case \"containAll\":\n return rowData != undefined && (!filterData[e.field].length || filterData[e.field].every((r: any) => rowData.includes(r)));\n case \"containAny\":\n return rowData != undefined && (!filterData[e.field].length || filterData[e.field].some((r: any) => rowData.includes(r)));\n default:\n return rowData == filterData[e.field];\n }\n });\n });\n });\n }\n return e.ref?.triggeEvents(\"output\", { ...e.tempDataSource, outputArray }, e.triggeEvents) ?? of(true);;\n }\n\n private routeEventHandler(e: EventHandlerOptions<{ type: \"web\", newtab?: boolean, path: string | string[], params?: any }>): Observable<boolean> {\n let { type, newtab, path } = e.data!;\n switch (type) {\n case \"web\":\n if (newtab) {\n let url: string | undefined;\n if (typeof path == \"string\") {\n url = path;\n } else if (Array.isArray(path)) {\n url = path.join(\"/\");\n }\n if (url) {\n window.open(url, \"_blank\");\n return of(true);\n }\n } else {\n let url: string[] | undefined;\n if (typeof path == \"string\") {\n if (path.startsWith(\"http\")) {\n window.open(path, \"_self\");\n return of(true);\n }\n url = [path];\n } else if (Array.isArray(path)) {\n url = path;\n }\n if (url?.[0]) {\n if (e.ref?.isDesign) {\n this.msg.info(\"设计模式下禁止路由跳转\");\n } else {\n const route = e.ref?.injector.get(ActivatedRoute);\n return from(this.router.navigate(url, { relativeTo: route, queryParams: e.data?.params }));\n }\n }\n }\n break;\n }\n return of(false);\n }\n\n private runScriptEventHandler(e: EventHandlerOptions<{ script: string }>): Observable<boolean> {\n if (e.data?.script) {\n e.ref?.getScope()?.runFnWithSnapshot(e.data.script, e.tempDataSource);\n return of(true);\n }\n return of(false);\n }\n\n private printEventHandler(e: EventHandlerOptions<{ html: string, loadTinyCss: boolean, style: any }>): Observable<boolean> {\n const iframe = document.createElement('iframe');\n\n iframe.style.position = 'fixed';\n iframe.style.right = '0';\n iframe.style.bottom = '0';\n iframe.style.width = '0';\n iframe.style.height = '0';\n iframe.style.border = '0';\n document.body.appendChild(iframe);\n const doc = iframe.contentDocument || iframe.contentWindow?.document;\n if (!doc) {\n return of(false);\n }\n const ref = this.msg.loading(\"打印准备中\", { nzDuration: 0 });\n const promises: Promise<void>[] = [];\n if (e.data?.loadTinyCss) {\n const link = doc.createElement('link');\n link.rel = 'stylesheet';\n link.media = 'all';\n link.href = `${this.platformLocation.getBaseHrefFromDOM()}tinymce/skins/content/default/content.min.css`;\n promises.push(new Promise<void>(resolve => (link.onload = link.onerror = () => resolve())));\n doc.head.appendChild(link);\n doc.body.className = \"mce-content-body\"\n }\n if (e.data?.style) {\n const style = doc.createElement('style');\n style.textContent = e.data.style;\n doc.head.appendChild(style);\n }\n doc.body.innerHTML = e.data?.html || '';\n for (const img of Array.from(doc.images || [])) {\n promises.push(new Promise<void>(resolve => (img.onload = img.onerror = () => resolve())));\n }\n Promise.allSettled(promises).then(() => {\n iframe.contentWindow?.print();\n }).finally(() => {\n this.msg.remove(ref.messageId);\n setTimeout(() => {\n iframe.remove();\n }, 1000);\n });\n return of(true);\n }\n\n}","import { AfterViewInit, Directive, ElementRef, HostBinding, inject, Injector, isSignal, OnDestroy, WritableSignal } from \"@angular/core\";\nimport { merge, Observable, of, Subscription } from \"rxjs\";\nimport { ScopeDirective } from \"../directives/scope\";\nimport { EventsHandlerService } from \"../share/events-handler.service\";\nimport { BaseOptions } from \"../models/base.options\";\nimport { EventHandlerOptions } from \"../models/event.options\";\nimport { TriggeEventsOptions } from \"../models/trigge-events.options\";\nimport { loadScripts } from \"../utils/scripts-loader\";\nimport { copy } from \"../utils/object.util\";\nimport { fn } from \"../utils/dynamic.util\";\n\n@Directive()\nexport abstract class Base<T extends BaseOptions> implements OnDestroy, AfterViewInit {\n\n onAfterViewInit?: Function;\n readonly injector = inject(Injector);\n readonly elementRef = inject(ElementRef);\n isDesign = false;\n options!: T;\n private readonly eventsService = inject(EventsHandlerService)\n private readonly scope: ScopeDirective | null = inject(ScopeDirective, { optional: true });\n private _sub: { [tag: string]: Subscription[] } = { \"default\": [] };\n\n @HostBinding('style')\n get style() {\n return this.options.style()\n }\n\n ngAfterViewInit(): void {\n this.onAfterViewInit?.();\n }\n\n async preloadImports(optionsConfig: any): Promise<void> {\n const imports = new Set<string>();\n Object.entries(optionsConfig).forEach(([key, value]) => {\n if (key.startsWith(\"$\")) {\n ((value as any).imports as any[]).forEach(i => imports.add(i));\n }\n });\n await Promise.all(Array.from(imports.values()).map(i => loadScripts(i)));\n }\n\n bindWithConfig(optionsConfig: any, config?: { options?: any, snapshot?: boolean, tag?: string, tempDataSource?: any }): void {\n let options = config?.options ?? this.options;\n let snapshot = config?.snapshot ?? false;\n if (!snapshot && config?.tag) {\n this.unsubscribe([config.tag]);\n }\n if (this.scope && !snapshot) {\n this.addAllSubscribe(this.scope.bindOptions(optionsConfig, options!, config?.tempDataSource), config?.tag ?? \"bindWithConfig\");\n } else {\n if (this.scope && snapshot) {\n optionsConfig = this.scope.snapshotOptions(optionsConfig, config?.tempDataSource);\n }\n for (const en of Object.entries(options!)) {\n const value = optionsConfig[en[0]];\n if (value !== undefined) {\n if (isSignal(en[1])) {\n (en[1] as WritableSignal<any>).set(value);\n } else {\n (options as any)[en[0]] = value;\n }\n }\n }\n }\n }\n\n unsubscribeAll() {\n Object.values(this._sub).forEach(srr => srr.forEach(s => s.unsubscribe()));\n this._sub = { \"default\": [] };\n }\n\n unsubscribe(tags: string[]) {\n Object.keys(this._sub)\n .filter(tag => tags.includes(tag))\n .forEach(tag => {\n this._sub[tag].forEach(s => s.unsubscribe());\n delete this._sub[tag];\n });\n }\n\n addSubscribe(sub: Subscription, tag: string = \"default\") {\n if (!this._sub[tag]) {\n this._sub[tag] = [];\n }\n this._sub[tag].push(sub);\n }\n\n addAllSubscribe(subs: Subscription[], tag: string = \"default\") {\n if (!this._sub[tag]) {\n this._sub[tag] = [];\n }\n this._sub[tag] = this._sub[tag].concat(subs);\n }\n\n onEvents?(e: EventHandlerOptions<any>): Observable<boolean> | undefined;\n\n callFunction?<T>(name: String, args?: any): T | undefined;\n\n hasEventHandler(trigger: string, triggeEvents?: TriggeEventsOptions): boolean {\n const te = triggeEvents ?? this.options.triggeEvents();\n return !!te?.[trigger]?.length;\n }\n\n triggeEvents(trigger: string, tempDataSource?: any, triggeEvents?: TriggeEventsOptions, scope?: ScopeDirective): Observable<boolean> {\n scope ??= this.scope ?? undefined;\n const te = triggeEvents ?? this.options.triggeEvents();\n if (te && te[trigger]) {\n return merge(...te[trigger].filter(e => !(scope?.snapshotField(e, \"disabled\", tempDataSource) ?? e.disabled)).map(e => {\n if (scope) {\n e = scope.snapshotOptions(e, tempDataSource);\n } else {\n e = copy(e, true);\n }\n e.tempDataSource = tempDataSource;\n return this.triggeEvent(e, scope);\n }));\n }\n return of(true);\n }\n\n triggeEvent(e: EventHandlerOptions<unknown>, scope?: ScopeDirective): Observable<boolean> {\n scope ??= this.scope ?? undefined;\n console.log(\"triggeEvent\", e);\n e.ref = this;\n let obs: Observable<boolean> | undefined;\n switch (e.target) {\n case \"component\":\n if (e.id) {\n obs = (scope)?.findInstance(e.id)?.onEvents?.(e);\n }\n break;\n case \"service\":\n obs = this.eventsService.onEvents(e);\n break;\n case \"scope\":\n obs = scope?.onEvents(e);\n break;\n }\n return obs ?? of(true);\n }\n\n getScope(): ScopeDirective | null {\n return this.scope;\n }\n\n runFn(fnstr: any, args?: any): any {\n if (this.scope) {\n return this.scope.runFnWithSnapshot(fnstr, args);\n }\n return fn(fnstr, args, true);\n }\n\n ngOnDestroy(): void {\n this.unsubscribeAll();\n }\n}\n","import { ControlValueAccessor } from \"@angular/forms\";\nimport { Base } from \"./base\";\nimport { Directive, effect, model, untracked } from \"@angular/core\";\nimport { Observable, of } from \"rxjs\";\nimport { EventHandlerOptions } from \"../models/event.options\";\nimport { ValueAccessOptions } from \"../models/value-access.options\";\nimport { RegisteValueAccessOptions } from \"../models/form-registe.options\";\n\n@Directive()\nexport abstract class ValueAccess<T extends ValueAccessOptions> extends Base<T> implements ControlValueAccessor {\n\n constructor() {\n super();\n effect(() => {\n if (this.options.initValue() !== undefined) {\n untracked(() => this.setInitValue(this.options.initValue()));\n }\n })\n }\n\n readonly value = model<any>(undefined);\n registeValueAccess?: (opt: RegisteValueAccessOptions) => void;\n\n setInitValue(value: any) {\n this.registeValueAccess?.({\n initValue: value,\n });\n this.value.set(value);\n if (value !== undefined && this.options.emitInitEvent()) {\n this.triggeEvents(\"valueChange\", { value: value }).subscribe();\n }\n }\n\n onChange?: (value: any) => void;\n onTouched?: (value: any) => {};\n writeValue(value: any): void {\n this.value.set(value);\n if (value !== undefined) {\n this.triggeEvents(\"valueChange\", { value: value }).subscribe();\n }\n }\n registerOnChange(fn: any): void {\n this.onChange = (value) => {\n this.triggeEvents(\"valueChange\", { value: value }).subscribe();\n fn?.(value);\n };\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return obs;\n }\n switch (e.name) {\n case \"setValue\":\n this.writeValue(e.data?.data);\n this.onChange?.(e.data?.data);\n return of(true);\n case \"getValue\":\n return this.triggeEvents(\"afterGetValue\", { getValue: this.value() }, e.triggeEvents);\n }\n return undefined;\n }\n\n}\n","import { Directive, inject, ViewChild } from '@angular/core';\nimport { NzContextMenuService, NzDropdownMenuComponent } from 'ng-zorro-antd/dropdown';\nimport { AXIS_DESIGN_OPTIONS_NODE_FOR_MENU } from '../share/tokens';\nimport { OptionsNode } from '../models/options-node';\nimport { OptionsChangeEvent } from '../models/options-change-event';\n\n@Directive()\nexport abstract class BaseMenu {\n\n private readonly contextMenuService: NzContextMenuService = inject(NzContextMenuService);\n readonly optionsNodes: { current: OptionsNode, parent?: OptionsNode } = inject(AXIS_DESIGN_OPTIONS_NODE_FOR_MENU);\n\n @ViewChild(\"menu\", { static: true })\n menu!: NzDropdownMenuComponent;\n\n onChange?: (e: OptionsChangeEvent) => void;\n\n contextMenu(e: MouseEvent): void {\n e.preventDefault();\n e.stopPropagation();\n this.contextMenuService.create(e, this.menu);\n }\n}\n","import { AbstractControl, FormArray, FormGroup } from \"@angular/forms\";\n\nexport function updateAndValidAll(form: FormGroup | FormArray | AbstractControl, options: { markAsDirty?: boolean } = { markAsDirty: true }) {\n let isValid = true;\n if (form instanceof FormGroup) {\n Object.values(form.controls).forEach(control => {\n if (!updateAndValidAll(control, options)) {\n isValid = false;\n }\n });\n } else if (form instanceof FormArray) {\n form.controls.forEach(control => {\n if (!updateAndValidAll(control, options)) {\n isValid = false;\n }\n })\n } else {\n if (options.markAsDirty ?? true) {\n form.markAsDirty();\n }\n form.updateValueAndValidity({ onlySelf: true });\n isValid = form.valid;\n }\n return isValid;\n}","import { Directive, inject } from \"@angular/core\";\nimport { FormBuilder, UntypedFormGroup } from \"@angular/forms\";\nimport { FunFieldValue } from \"../share/fun-field/fun-field\";\nimport { copy } from \"../utils/object.util\";\nimport { FunFieldOptions } from \"../models/fun-field.options\";\nimport { updateAndValidAll } from \"../utils/form.util\";\n\n@Directive()\nexport abstract class FunFieldBase {\n\n private init: any;\n private orivalue: any;\n protected readonly fb = inject(FormBuilder);\n abstract fg: UntypedFormGroup;\n protected funFields: FunFieldOptions = {};\n\n reset(value?: any) {\n if (!this.init) {\n this.init = this.getValue();\n }\n this.orivalue = { ...this.init, ...value };\n this.fg.patchValue(this.buildFunField(this.orivalue), { emitEvent: false });\n }\n\n getValue(): any {\n return this.recoverFunField(this.fg.value);\n }\n\n valid(): boolean {\n return updateAndValidAll(this.fg);\n }\n\n buildFunField(obj: any, funFields?: FunFieldOptions): any {\n funFields ??= this.funFields;\n const cloneObj = obj ? copy(obj) : {};\n if (funFields) {\n Object.keys(funFields).forEach(f => {\n let value;\n if (funFields[f].child) {\n if (Array.isArray(cloneObj[f])) {\n value = cloneObj[f].map(item => this.buildFunField(item, funFields[f].child));\n } else {\n value = this.buildFunField(cloneObj[f], funFields[f].child);\n }\n } else {\n value = {\n funMode: cloneObj.hasOwnProperty(`$${f}`),\n originValue: undefined,\n fnValue: {\n fn: \"return undefined;\"\n }\n };\n if (value.funMode) {\n value.fnValue = cloneObj[`$${f}`];\n if (typeof (cloneObj[`$${f}`]) == \"string\") {\n value.fnValue = {\n fn: cloneObj[`$${f}`]\n }\n }\n delete cloneObj[`$${f}`];\n } else {\n if (cloneObj[f] !== undefined) {\n value.originValue = cloneObj[f];\n } else {\n value.originValue = funFields[f].defaultValue;\n }\n value.fnValue = {\n fn: `return ${JSON.stringify(value.originValue)}`\n };\n }\n }\n cloneObj[f] = value;\n });\n }\n return cloneObj;\n }\n\n recoverFunField(obj: any, funFields?: FunFieldOptions, oriObj?: any) {\n funFields ??= this.funFields;\n oriObj ??= this.orivalue ?? {};\n const cloneObj = obj ? copy(obj) : {};\n const cloneOriObj = copy(oriObj);\n if (obj && funFields) {\n Object.keys(funFields).forEach(k => {\n const f: FunFieldValue = cloneObj[k];\n if (f) {\n if (funFields[k].child) {\n if (Array.isArray(cloneObj[k])) {\n cloneObj[k] = cloneObj[k].map((item, i) => this.recoverFunField(item, funFields[k].child, cloneOriObj[k][i]));\n } else {\n cloneObj[k] = this.recoverFunField(cloneObj[k], funFields[k].child, cloneOriObj[k] ?? {});\n }\n delete cloneObj[`$${k}`];\n } else {\n if (f.funMode) {\n cloneObj[`$${k}`] = f.fnValue;\n delete cloneObj[k];\n } else {\n cloneObj[k] = f.originValue;\n delete cloneObj[`$${k}`];\n }\n }\n delete cloneOriObj[k];\n delete cloneOriObj[`$${k}`];\n } else {\n delete cloneObj[k];\n }\n });\n }\n return Object.assign({}, cloneOriObj, cloneObj)\n }\n\n}\n","import { Directive, model, OnDestroy, OnInit } from \"@angular/core\";\nimport { ControlValueAccessor } from \"@angular/forms\";\nimport { Subscription } from \"rxjs\";\nimport { FunFieldBase } from \"./funfield-base\";\nimport { updateAndValidAll } from \"../utils/form.util\";\n\n@Directive()\nexport abstract class FunFieldValueBase extends FunFieldBase implements OnInit, OnDestroy, ControlValueAccessor {\n\n public onChange: any;\n protected readonly value = model<any>();\n protected readonly formValue = model<any>();\n private sub!: Subscription;\n protected sendInitValue = false;\n\n writeValue(value: any): void {\n this.value.set(value);\n this.reset(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n }\n\n override reset(value?: any): void {\n super.reset(value);\n this.formValue.set(this.fg.value);\n }\n\n ngOnInit(): void {\n this.formValue.set(this.fg.value);\n if (this.sendInitValue) {\n this.value.set(this.recoverFunField(this.fg.value));\n this.onChange?.(this.value());\n }\n this.sub = this.fg.valueChanges.subscribe(v => {\n this.formValue.set(v);\n if (updateAndValidAll(this.fg)) {\n this.value.set(this.recoverFunField(v));\n this.onChange?.(this.value());\n } else {\n Object.entries(this.fg.controls).filter(en => en[1].invalid).forEach(en => {\n console.log(\"invalid\", en[0]);\n })\n }\n });\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n\n}\n","import { Directive, effect, forwardRef, input, OnDestroy, Type, ViewContainerRef, inject, ComponentRef, Injector, output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ScopeDirective } from './scope';\nimport { Observable, Subscription } from 'rxjs';\nimport { Base } from '../base/base';\nimport { ValueAccess } from '../base/value-access';\nimport { BaseOptions } from '../models/base.options';\nimport { ValueAccessOptions } from '../models/value-access.options';\nimport { AXIS_COMPONENTS_LOADER_TOKEN, AXIS_CURRENT_USER_PERMISSIONS_TOKEN, AXIS_FORM_REGISTE_CONTROL_TOKEN } from '../share/tokens';\nimport { DesignBuilder } from '../base/design-builder';\nimport { EventHandlerOptions } from '../models/event.options';\nimport { RegisteValueAccessOptions } from '../models/form-registe.options';\n\nconst DynamicComponentsMap = new Map<string, Type<any>>();\n\n@Directive({\n selector: '[axisDynamic]',\n exportAs: 'axisDynamic',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DynamicDirective),\n multi: true\n },\n ]\n})\nexport class DynamicDirective implements ControlValueAccessor, OnDestroy {\n\n readonly axisDynamic = input.required<any>();\n readonly standalone = input(false);\n readonly isDesign = input(false);\n readonly forceRenderOnChange = input(false);\n readonly onRegisteValueAccess = output<RegisteValueAccessOptions>();\n\n private component?: string;\n private sub?: Subscription;\n private id?: string;\n private readonly injector = inject(Injector);\n private _designBuilder = inject(DesignBuilder, { optional: true });\n private loader = inject(AXIS_COMPONENTS_LOADER_TOKEN);\n readonly currentUserPermissions = inject(AXIS_CURRENT_USER_PERMISSIONS_TOKEN, { optional: true });\n private container = inject(ViewContainerRef);\n private _scope = inject(ScopeDirective, { optional: true });\n private ref?: ComponentRef<Base<BaseOptions>>;\n\n private get scope(): ScopeDirective | null {\n return this.standalone() ? null : this._scope;\n }\n\n private get designBuilder(): DesignBuilder | null {\n return !this.standalone() || this.isDesign() ? this._designBuilder : null;\n }\n\n private get valueInstance(): ValueAccess<ValueAccessOptions> | undefined {\n if (this.ref?.instance && this.ref.instance instanceof ValueAccess) {\n return this.ref.instance;\n }\n return undefined;\n }\n\n onChange?: (value: any) => {};\n onTouched?: (value: any) => {};\n triggeEvent?: (e: EventHandlerOptions<any>) => Observable<boolean>;\n onEvents?: (e: EventHandlerOptions<any>) => Observable<boolean> | undefined;\n value: any;\n\n constructor() {\n effect(() => {\n if (!this.axisDynamic()?.component) {\n this.destoryInstance();\n return;\n }\n this.sub?.unsubscribe();\n if (!this.hasPermission() && !this.designBuilder) {\n return;\n }\n let inuse = this.axisDynamic().inuse;\n let skip = false;\n if (this.scope) {\n const io = this.scope.dynamicField(this.axisDynamic(), \"inuse\");\n if (io.init !== undefined) {\n inuse = io.init;\n }\n if (io.obs) {\n this.sub = io.obs.subscribe(inuse => {\n skip = true;\n if (inuse) {\n if (this.id != this.axisDynamic().id) {\n if (this.id) {\n this.scope!.unRegistInstance(this.id);\n }\n this.id = this.axisDynamic().id;\n }\n this.render();\n } else {\n this.destoryInstance();\n }\n });\n }\n }\n if (!skip) {\n if (inuse) {\n if (this.id != this.axisDynamic().id) {\n this.id = this.axisDynamic().id;\n }\n this.render();\n } else {\n this.destoryInstance();\n }\n }\n })\n }\n\n private hasPermission(): boolean {\n const { requiredPermissions } = this.axisDynamic();\n if (!requiredPermissions?.length) {\n return true;\n }\n return (requiredPermissions as string[]).every(permission => this.currentUserPermissions?.includes(permission));\n }\n\n private async render() {\n if (this.axisDynamic()?.component && (!this.component || this.component != this.axisDynamic().component || this.forceRenderOnChange())) {\n this.component = this.axisDynamic().component;\n let componentType: Type<any> | undefined;\n if (DynamicComponentsMap.has(this.component!)) {\n componentType = DynamicComponentsMap.get(this.component!);\n } else {\n try {\n componentType = await this.loader.loadComponent(this.component!);\n DynamicComponentsMap.set(this.component!, componentType!);\n } catch (error) {\n console.error(error);\n }\n }\n await this.scope?.preloadImports(this.axisDynamic());\n this.container.clear();\n this.ref = this.container.createComponent<Base<BaseOptions>>(componentType!, { injector: this.buildInjector() });\n this.onEvents = this.ref.instance.onEvents?.bind(this.ref.instance);\n this.triggeEvent = this.ref.instance.triggeEvent?.bind(this.ref.instance);\n this.scope?.registInstance(this.axisDynamic().id, this.ref.instance)\n this.ref.instance?.bindWithConfig(this.axisDynamic());\n if (this.valueInstance) {\n this.valueInstance.registerOnChange(this.onChange);\n this.valueInstance.registerOnTouched(this.onTouched);\n this.valueInstance.registeValueAccess = (v) => this.onRegisteValueAccess.emit(v);\n if (this.value !== undefined) {\n this.valueInstance.writeValue(this.value);\n }\n }\n if (this.designBuilder) {\n this.ref.instance.isDesign = true;\n this.ref.instance!.onAfterViewInit = () => {\n this.designBuilder!.buildElement(this.ref!, this.axisDynamic());\n }\n }\n } else {\n this.ref?.instance?.bindWithConfig(this.axisDynamic());\n this.designBuilder?.buildElement(this.ref!, this.axisDynamic());\n }\n }\n\n private buildInjector(): Injector | undefined {\n if (this.standalone()) {\n return Injector.create({\n providers: [\n {\n provide: ScopeDirective,\n useValue: null\n },\n {\n provide: DynamicDirective,\n useValue: null\n },\n {\n provide: DesignBuilder,\n useValue: this.isDesign() ? this.designBuilder : null\n }, {\n provide: AXIS_FORM_REGISTE_CONTROL_TOKEN,\n useValue: null\n }\n ],\n parent: this.injector\n });\n }\n return this.injector;\n }\n\n forceRender(): void {\n this.component = undefined;\n this.id = undefined;\n this.render();\n }\n\n writeValue(value: any): void {\n this.valueInstance?.writeValue(value);\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n this.valueInstance?.registerOnChange(fn);\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n this.valueInstance?.registerOnTouched(fn);\n }\n\n destoryInstance() {\n if (this.id) {\n this.scope?.unRegistInstance(this.id);\n this.id = undefined;\n }\n this.component = undefined;\n this.container.clear();\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n this.destoryInstance();\n }\n\n}\n","import { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'axisHowLong', pure: false\n})\nexport class HowLongPipe implements PipeTransform {\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n timer?: any;\n\n lastValue = \"\";\n\n date?: Date;\n\n ngOnDestroy(): void {\n if (this.timer != undefined) {\n clearTimeout(this.timer);\n this.timer = undefined;\n this.lastValue = \"\";\n this.date = undefined;\n }\n }\n\n transform(date?: Date): string | undefined {\n if (!this.date) {\n if (date) {\n this.date = date;\n let offset = (new Date().getTime() - date.getTime()) / 1000;\n let sufix = offset > 0 ? \"前\" : \"后\";\n let time = \"\";\n offset = Math.floor(Math.abs(offset));\n let refreshTimer = 0;\n if (offset < 10) {\n time = \"几秒钟\";\n refreshTimer = 1;\n } else if (offset < 60) {\n time = \"1分钟内\";\n sufix = \"\";\n refreshTimer = 1;\n } else if (offset < 3600) {\n refreshTimer = 60 - (offset % 60);\n time = `${Math.floor(offset / 60)}分钟`;\n } else if (offset < 86400) {\n refreshTimer = 3600 - (offset % 3600);\n time = `${Math.floor(offset / 3600)}小时`;\n } else {\n refreshTimer = 86400 - (offset % 86400);\n time = `${Math.floor(offset / 86400)}天`;\n }\n this.lastValue = `${time}${sufix}`;\n this.timer = setTimeout(() => {\n this.ngOnDestroy();\n this.cdr.markForCheck();\n }, refreshTimer * 1000);\n } else {\n this.lastValue = \"\";\n }\n return this.lastValue;\n }\n\n if (date !== this.date) {\n this.ngOnDestroy();\n return this.transform(date);\n }\n\n return this.lastValue;\n }\n\n}\n","import { signal } from \"@angular/core\";\nimport { TriggeEventsOptions } from \"./trigge-events.options\";\n\nexport class BaseOptions {\n component = \"\";\n id = \"\";\n readonly inuse = signal(true);\n requiredPermissions: string[] = [];\n readonly triggeEvents = signal<TriggeEventsOptions | undefined>(undefined);\n readonly style = signal<any>(undefined);\n loop = false;\n loopTarget: any[] | undefined = undefined;\n}","import { signal } from \"@angular/core\";\nimport { BaseOptions } from \"./base.options\";\n\nexport class ValueAccessOptions extends BaseOptions {\n\n initValue = signal<any>(undefined);\n emitInitEvent = signal(true);\n disabled = signal(false);\n readonly = signal(false);\n}","import { Type } from \"@angular/core\";\nimport { FunFieldValueBase } from \"../base/funfield-value-base\";\nimport { BaseMenu } from \"../base/base-menu\";\n\nexport class OptionsNode {\n\n canLoop = false;\n\n constructor(protected config: OptionsNodeConfig) {\n if (config.parentObj != undefined) {\n config.rootOptions = undefined;\n }\n }\n\n get id(): string {\n return this.config.id ?? this.options.id;\n }\n\n get parentId(): string | undefined {\n return this.config.parentId;\n }\n\n get scopeId(): string | undefined {\n return this.config.scopeId;\n }\n\n set scopeId(scopeId: string) {\n this.config.scopeId = scopeId;\n }\n\n get name(): string | undefined {\n return this.config.name;\n }\n\n get dragType(): string | undefined {\n return this.config.dragType;\n }\n\n get dropType(): string | undefined {\n return this.config.dropType;\n }\n\n get canSetting(): boolean {\n return this.config.canSetting ?? false;\n }\n\n get canDrag(): boolean {\n return this.config.canDrag ?? false;\n }\n\n get childDirection(): \"horizontal\" | \"vertical\" {\n return this.config.childDirection ?? \"horizontal\";\n }\n\n get canDrop(): boolean {\n return this.config.canDrop ?? false;\n }\n\n get dropObj(): any {\n return this.config.dropObj;\n }\n\n get parentObj(): any {\n return this.config.parentObj;\n }\n\n get indexOfParentObj(): number | string | undefined {\n return this.config.indexOfParentObj;\n }\n\n get options(): any {\n if (this.parentObj != undefined && this.indexOfParentObj != undefined) {\n return this.parentObj[this.indexOfParentObj];\n }\n return this.config.rootOptions;\n }\n\n get defaultDropIndex(): number | string | undefined {\n return this.config.defaultDropIndex;\n }\n\n get isRoot(): boolean {\n return this.config.rootOptions != undefined;\n }\n\n get icon(): string | undefined {\n return this.config.icon;\n }\n\n get children(): OptionsNode[] | undefined {\n return this.config.children;\n }\n\n get settingType(): Type<FunFieldValueBase> | undefined {\n return this.config.settingType;\n }\n\n get contextMenu(): Type<BaseMenu> | undefined {\n return this.config.contextMenu;\n }\n\n onPaste(node: OptionsNode, replaceIdFun: (opt: any) => any): void {\n this.config.onPaste?.(node, replaceIdFun);\n }\n\n toElementNode(elements: { element?: HTMLElement, dropElement?: HTMLElement }): ElementNode {\n return new ElementNode(this.id, elements);\n }\n\n updateOptions(options: any): void {\n if (this.isRoot) {\n this.config.rootOptions = options;\n } else {\n this.parentObj[this.indexOfParentObj!] = options;\n }\n if (this.config.updateId) {\n this.config.id = this.config.updateId(options);\n }\n }\n\n copyWith(config: OptionsNodeConfig): OptionsNode {\n return new OptionsNode(Object.assign({}, this.config, config));\n }\n\n refresh(): void {\n console.log(\"refresh\", this.id, this.indexOfParentObj, this.parentObj.indexOf(this.options))\n }\n}\n\nexport class ElementNode {\n constructor(public id: string, elements: { element?: HTMLElement, dropElement?: HTMLElement }) {\n this.element = elements.element;\n this.dropElement = elements.dropElement;\n }\n element?: HTMLElement;\n dropElement?: HTMLElement;\n}\n\ninterface OptionsNodeConfig {\n id?: string;\n updateId?: (newOptions: any) => string;\n parentId?: string;\n scopeId?: string;\n name?: string;\n canSetting?: boolean;\n canDrag?: boolean;\n canDrop?: boolean;\n childDirection?: \"horizontal\" | \"vertical\";\n dragType?: string;\n dropType?: string;\n parentObj?: any;\n dropObj?: any;\n indexOfParentObj?: number | string;\n rootOptions?: any;\n defaultDropIndex?: number | string;\n settingType?: Type<FunFieldValueBase>;\n icon?: string;\n children?: OptionsNode[];\n onPaste?: (ojb: OptionsNode, replaceIdFun: (opt: any) => any) => void;\n contextMenu?: Type<BaseMenu>;\n}","import { signal } from \"@angular/core\";\nimport { BaseOptions } from \"./base.options\";\n\nexport class DataOptions extends BaseOptions {\n data = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { BaseMenu } from '../../base/base-menu';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { NzDropdownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { AXIS_DESIGN_CHOOSE_COMPONENT_FUNC_TOKEN } from '../tokens';\n\n@Component({\n selector: 'axis-common-menu',\n imports: [NzDividerModule, NzDropdownModule, NzIconModule],\n templateUrl: './common-menu.html',\n styleUrl: './common-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CommonMenu {\n\n readonly baseMenu = input.required<BaseMenu>();\n readonly chooseComponentFunc = inject(AXIS_DESIGN_CHOOSE_COMPONENT_FUNC_TOKEN);\n\n get canAddParent(): boolean {\n const { optionsNodes } = this.baseMenu();\n return optionsNodes.current.isRoot || (!!optionsNodes.parent?.canDrop && optionsNodes.parent?.dropType == \"component\");\n }\n\n get canAddChild(): boolean {\n const { optionsNodes } = this.baseMenu();\n return optionsNodes.current.dropType == \"component\" && (Array.isArray(optionsNodes.current.dropObj) || !optionsNodes.current.dropObj[optionsNodes.current.defaultDropIndex!])\n }\n\n get canRemove(): boolean {\n return this.baseMenu().optionsNodes.current.canSetting;\n }\n\n addParent() {\n this.chooseComponentFunc(\"wrap\").subscribe(res => {\n const { options, config } = res;\n if (options && config) {\n const { optionsNodes } = this.baseMenu();\n const node = config.buildOptionsNodes?.({ currentObject: options });\n if (node) {\n const { treeNode } = node;\n treeNode.dropObj[treeNode.defaultDropIndex!] = optionsNodes.current.options;\n let value = undefined;\n if (optionsNodes.current.isRoot) {\n value = options;\n } else {\n optionsNodes.parent!.dropObj[optionsNodes.current.indexOfParentObj!] = treeNode.options;\n }\n this.baseMenu().onChange?.({ value: value, nextNodeId: res.options.id, historyDesc: `添加${node.treeNode.name}` });\n }\n }\n });\n }\n\n addChild() {\n this.chooseComponentFunc().subscribe(res => {\n if (res.options) {\n const { optionsNodes } = this.baseMenu();\n optionsNodes.current.dropObj[optionsNodes.current.defaultDropIndex!] = res.options;\n this.baseMenu().onChange?.({ nextNodeId: res.options.id, historyDesc: `添加${res.config?.componentName}` });\n }\n });\n }\n\n remove() {\n const current = this.baseMenu().optionsNodes.current;\n if (current.isRoot) {\n this.baseMenu().onChange?.({ value: null, historyDesc: `删除${current.name}` });\n } else {\n const { parentObj, indexOfParentObj } = current;\n let nextNodeId = this.baseMenu().optionsNodes.parent?.id;\n if (Array.isArray(parentObj)) {\n parentObj.splice(indexOfParentObj as number, 1);\n if (parentObj.length) {\n nextNodeId = parentObj[Math.min(indexOfParentObj as number, parentObj.length - 1)].id;\n }\n } else {\n parentObj[indexOfParentObj!] = null;\n }\n this.baseMenu().onChange?.({ nextNodeId: nextNodeId, historyDesc: `删除${current.name}` });\n }\n }\n\n}\n","@if (canAddParent) {\n<li nz-menu-item (click)=\"addParent()\">\n <i nz-icon nzType=\"pic-center\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>添加父组件</span>\n</li>\n}\n@if (canAddChild) {\n<li nz-menu-item (click)=\"addChild()\">\n <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>添加子组件</span>\n</li>\n}\n@if (canRemove) {\n<li nz-menu-item style=\"color: #f81d22\" (click)=\"remove()\">\n <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>删除</span>\n</li>\n}","// 生成变量的类型声明\nexport function generateDeclarations(args: any, declaraMap?: { [name: string]: string }): string {\n return Object.entries(args).map(([name, value]) =>\n `declare const ${name}: ${declaraMap?.[name] ?? convertToTsType(value)};`\n ).join('\\n');\n}\n\n// 将 JavaScript 值转换为 TypeScript 类型表达式\nfunction convertToTsType(value: any): string {\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n\n const type = typeof value;\n\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'boolean') return 'boolean';\n if (type === 'function') {\n // 获取函数参数个数\n const paramCount = value.length;\n // 生成参数列表,使用 any 类型作为默认参数类型\n const params = Array(paramCount).fill(null).map((_, i) => `arg${i}: any`).join(', ');\n // 简单推断返回类型(实际项目中可能需要更复杂的逻辑)\n return `(${params}) => any`;\n }\n\n if (Array.isArray(value)) {\n if (value.length > 0) {\n return `Array<${convertToTsType(value[0])}>`;\n }\n return 'any[]';\n }\n\n if (type === 'object') {\n const props = Object.entries(value)\n .map(([key, val]) =>\n `${key}: ${convertToTsType(val)};`\n )\n .join('\\n ');\n\n return `{\\n ${props}\\n}`;\n }\n\n return 'any';\n}","import { AfterContentInit, ChangeDetectionStrategy, Component, computed, ContentChild, effect, forwardRef, inject, input, model, OnDestroy, signal, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgModel, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { BehaviorSubject, debounceTime, EMPTY, merge, mergeWith, NEVER, of, pipe, Subject, Subscription, switchMap } from 'rxjs';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzListModule } from 'ng-zorro-antd/list';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { ClipboardModule } from 'ngx-clipboard';\nimport { NzAlertModule } from 'ng-zorro-antd/alert';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzSplitterModule } from 'ng-zorro-antd/splitter';\nimport { AXIS_SCRIPTS_TOKEN, AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, AXIS_INJECT_FUNC_TOKEN, AXIS_DESIGN_SCOPE_INFOS_REFRESH_TOKEN } from '../tokens';\nimport { fn } from '../../utils/dynamic.util';\nimport { ScopeInfo } from '../../models/design-build';\nimport { copy } from '../../utils/object.util';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzCheckboxModule, NzCheckboxOption } from 'ng-zorro-antd/checkbox';\nimport { loadScripts } from '../../utils/scripts-loader';\nimport { generateDeclarations } from '../../utils/declaration.util';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'axis-fun-field',\n imports: [NzModalModule, NzListModule, NzFlexModule, NzInputModule, NzIconModule, NzButtonModule, NzRadioModule, FormsModule, ClipboardModule, NzAlertModule, NzEmptyModule, NzSelectModule, NzSplitterModule, NzCollapseModule, NzCheckboxModule, DynamicDirective],\n templateUrl: './fun-field.html',\n styleUrls: ['./fun-field.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FunField),\n multi: true\n }\n ]\n})\nexport class FunField implements ControlValueAccessor, OnDestroy, AfterContentInit {\n constructor(private msg: NzMessageService) {\n this._sub.push(this.execFnSubject.pipe(debounceTime(200))\n .subscribe(async _ => {\n let value = this.editValue() ?? this.value() ?? {};\n if (!this.onlyFun() && !value.funMode) {\n this.computeResult.set(value.originValue);\n } else {\n const args = this.ds();\n const libs: string[] = [];\n for (const i of value.fnValue?.imports ?? []) {\n if (this.scripts?.hasOwnProperty(i)) {\n libs.push(await loadScripts(`${this.scripts[i]}.js`));\n }\n }\n try {\n this.success.set(\"\");\n this.warn.set(\"\");\n this.error.set(\"\");\n this.computeResult.set(fn(`${libs.join(\"\\n\")}\\n${this.editFn()}`, args, true, false));\n if (!this.onlyFun() && this.editValue()?.funMode) {\n this.editValue().originValue = this.computeResult();\n this.updateContentValue();\n }\n if (this.computeResult() == undefined) {\n this.warn.set(`警告:执行结果为${this.computeResult()}`);\n } else {\n if (typeof (this.computeResult()) == \"object\") {\n this.resultResultEditorMode = \"json\";\n } else {\n this.resultResultEditorMode = \"plain_text\";\n }\n this.successResult = JSON.stringify(this.computeResult(), undefined, \"\\t\");\n this.success.set(\"函数运行成功!\");\n }\n } catch (e: any) {\n this.error.set(`报错:${e.message}`);\n }\n }\n }));\n effect(() => {\n this.buildImportDeclarations();\n });\n }\n\n readonly scopes = input<ScopeInfo[]>();\n readonly exclude = input<string[] | undefined>([]);\n readonly scopeId = input<string>();\n readonly onlyFun = input(false);\n readonly noListen = input(false);\n readonly disabled = input(false);\n readonly scopeInfosRefresh = inject(AXIS_DESIGN_SCOPE_INFOS_REFRESH_TOKEN, { optional: true });\n readonly getScopeInfos = inject(AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, { optional: true });\n readonly scopeInfos = toSignal(toObservable(this.scopeId).pipe(mergeWith(this.scopeInfosRefresh?.asObservable() ?? NEVER), switchMap(scopeId => this.getScopeInfos?.(scopeId) ?? of(undefined))));\n readonly scripts = inject(AXIS_SCRIPTS_TOKEN, { optional: true });\n readonly funcs = inject(AXIS_INJECT_FUNC_TOKEN, { optional: true });\n get funcsNames(): string[] {\n const funcs = this.funcs instanceof BehaviorSubject ? this.funcs.value : this.funcs;\n return Object.keys(funcs ?? {});\n }\n readonly scopeds = computed(() => this.buildScopeDs());\n readonly ds = computed(() => this.buildDs());\n readonly argsName = computed(() => this.buildArgsName());\n readonly importsList = computed(() => this.buildImportsList());\n readonly importDeclarations = signal<any[]>([]);\n readonly showDataSource = signal<any>(undefined);\n readonly editValue = signal<any>(undefined);\n readonly editFn = signal<any>(undefined);\n readonly editTip = input<string>();\n\n @ViewChild(\"funEditor\")\n funEditor?: DynamicDirective;\n monaco?: any;\n\n @ContentChild(NgModel)\n contentModel?: NgModel;\n\n execFnSubject = new Subject<void>();\n\n successResult: any;\n computeResult = signal<any>(undefined);\n\n resultResultEditorMode: string = \"json\";\n\n isShowSuccessResult = false;\n\n _sub: Subscription[] = [];\n\n ngOnDestroy(): void {\n this._sub.forEach(s => s.unsubscribe());\n }\n\n onChange: any;\n\n value = model<any>();\n\n writeValue(v: FunFieldValue | undefined): void {\n this.value.set(v);\n if (this.onlyFun() && this.noListen()) {\n this.editFn.set(v as any || \"return undefined\");\n this.execFnSubject.next();\n } else if (v) {\n if (v?.funMode) {\n this.editFn.set(this.value()!.fnValue.fn);\n this.execFnSubject.next();\n } else {\n this.value()!.fnValue = {\n listen: {},\n fn: `return ${JSON.stringify(this.value()!.originValue)};`\n };\n this.editFn.set(this.value()!.fnValue.fn);\n }\n }\n this.updateContentValue();\n }\n\n private updateContentValue() {\n if (!this.onlyFun()) {\n this.contentModel?.control.setValue(this.value()?.originValue, { emitModelToViewChange: true, emitViewToModelChange: false });\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(_: any): void {\n }\n\n _templateDataSource?: any[] = [];\n\n readonly open = model(false);\n readonly success = signal<string>(\"\");\n readonly error = signal<string>(\"\");\n readonly warn = signal<string>(\"\");\n\n showCreateListenModal = model(false);\n\n showAddImportModal = false;\n\n createListenDataSourceName = model(\"\");\n\n ngAfterContentInit(): void {\n setTimeout(() => {\n if (this.value()?.fnValue?.fn) {\n this.execFnSubject.next();\n }\n this.updateContentValue();\n });\n if (this.contentModel?.update) {\n this._sub.push(this.contentModel.update.subscribe(v => {\n if (!this.value()) {\n this.value.set({});\n }\n if (this.value() !== undefined) {\n this.value()!.originValue = v;\n this.changeValue();\n this.computeResult.set(v);\n }\n }))\n }\n }\n\n private buildScopeDs(): ScopeInfo[] {\n let scopes: any[] = copy((this.scopes() ?? []).concat(this.scopeInfos() ?? []), true);\n const sdname = new Set<string>();\n for (const scope of scopes) {\n for (const name in scope.ds) {\n sdname.add(name);\n if (this.exclude()?.includes(name)) {\n delete scope.ds[name];\n }\n }\n }\n const unknownScope: any = {\n scopeId: \"__unknown__\",\n scopeName: \"未知\",\n ds: {},\n }\n scopes.unshift(unknownScope);\n for (const en of Object.entries((this.editValue() ?? this.value())?.fnValue?.listen ?? {})) {\n if (!sdname.has(en[0])) {\n unknownScope.ds[en[0]] = \"示例数据\";\n }\n }\n this.execFnSubject.next();\n return scopes.filter(s => Object.keys(s.ds ?? {}).length);\n }\n\n getDsNames(scope: ScopeInfo): string[] {\n return Object.keys(scope.ds);\n }\n\n private buildDs(): any {\n const ds: any = {};\n for (const scope of [...this.scopeds()].reverse()) {\n Object.assign(ds, scope.ds);\n }\n const funcs = this.funcs instanceof BehaviorSubject ? this.funcs.value : this.funcs;\n for (const name in funcs) {\n if (funcs[name] instanceof Function) {\n ds[name] = funcs[name];\n } else {\n ds[name] = funcs[name].func;\n }\n }\n return ds;\n }\n\n openFunModal() {\n this.editValue.set(copy(this.value(), true));\n this.open.set(true);\n }\n\n private buildArgsName(): string {\n return Object.keys(this.ds()).join(\",\");\n }\n\n private buildImportsList(): NzCheckboxOption[] {\n return Object.keys(this.scripts ?? {})\n .map((name) => ({ label: name, value: name }))\n }\n\n changeLinstenMode(name: string, mode: string) {\n if (!this.editValue()!.fnValue?.listen) {\n this.editValue()!.fnValue.listen = {};\n }\n if (mode == \"none\") {\n delete this.editValue()!.fnValue.listen![name];\n } else {\n this.editValue()!.fnValue.listen![name] = mode;\n }\n this.editValue.set({ ...this.editValue() });\n }\n\n changeImports(imports: string[]) {\n this.editValue().fnValue.imports = imports;\n this.editValue.set({ ...this.editValue() });\n this.execFnSubject.next();\n }\n\n onCancel() {\n this.open.set(false);\n }\n\n onOk() {\n this.value.set(this.editValue());\n this.changeValue();\n this.open.set(false);\n }\n\n toogleMode() {\n if (this.value() && !this.onlyFun()) {\n this.value()!.funMode = !this.value()!.funMode;\n if (this.value()!.funMode && !this.value()!.fnValue) {\n this.value()!.fnValue = { fn: `return ${JSON.stringify(this.value()!.originValue)};` };\n }\n this.changeValue();\n if (this.value()!.funMode) {\n this.execFnSubject.next();\n }\n }\n }\n\n changeValue() {\n if (this.noListen() && this.onlyFun()) {\n this.value.set(this.editFn());\n this.onChange(this.value());\n return;\n } else if (this.onlyFun() || this.value()?.funMode) {\n this.value()!.funMode = true;\n for (const en of Object.entries(this.value()!.fnValue.listen ?? {})) {\n if (en[1] == \"none\") {\n delete this.value()!.fnValue.listen[en[0]];\n }\n }\n this.value().fnValue.fn = this.editFn();\n }\n this.value.set(copy(this.value()));\n this.onChange(this.value());\n }\n\n doShowDataSource(name: string) {\n this.showDataSource.set({\n name: name,\n data: JSON.stringify(this.ds()[name], undefined, '\\t')\n });\n }\n\n copySuccess() {\n this.msg.info(\"已复制\");\n }\n\n addListen() {\n if (this.createListenDataSourceName()) {\n if (this.ds().hasOwnProperty(this.createListenDataSourceName())) {\n this.msg.error(\"数据源名称重复\");\n return;\n }\n if (!this.editValue().fnValue.listen) {\n this.editValue().fnValue.listen = {};\n }\n this.editValue().fnValue.listen[this.createListenDataSourceName()] = \"defined\";\n this.editValue.set({ ...this.editValue() });\n }\n this.showCreateListenModal.set(false);\n this.createListenDataSourceName.set(\"\");\n this.execFnSubject.next();\n }\n\n removeListen(name: string) {\n delete this.editValue().fnValue.listen[name];\n this.editValue.set({ ...this.editValue() });\n this.execFnSubject.next();\n }\n\n async buildImportDeclarations() {\n const libs: { content: string; filePath?: string; }[] = [];\n for (const name in this.scripts) {\n if (this.editValue()?.fnValue?.imports?.includes(name)) {\n const filePath = this.scripts[name] + \".d.ts\";\n const dtsContent = await loadScripts(filePath);\n libs.push({ content: dtsContent, filePath });\n }\n }\n const declaraMap: any = {};\n const funcs = this.funcs instanceof BehaviorSubject ? this.funcs.value : this.funcs;\n for (const name in funcs) {\n if (!(funcs[name] instanceof Function)) {\n declaraMap[name] = funcs[name].type;\n }\n }\n libs.push({ content: generateDeclarations(this.ds(), declaraMap) });\n this.importDeclarations.set(libs);\n }\n\n layoutEditor() {\n this.funEditor?.onEvents?.({ name: \"layout\", target: \"component\" })?.subscribe();\n }\n\n}\n\nexport interface FunFieldValue {\n funMode: boolean;\n originValue: any;\n fnValue: any;\n}\n","@if (!onlyFun()) {\n<div nz-flex nzAlign=\"center\">\n @if (!value()?.funMode) {\n <div nz-flex nzFlex=\"1 0 0\">\n <ng-content #content></ng-content>\n </div>\n }@else{\n <nz-input-group nz-flex nzFlex=\"1 0 0\" [nzSuffix]=\"suffixTemplate\" [nzPrefix]=\"prefixTemplate\">\n <input nz-input readonly type=\"text\" [class]=\"{success:success(),warn:warn(),error:error()}\"\n [placeholder]=\"success() || warn() || error()\" (click)=\"openFunModal()\" />\n </nz-input-group>\n }\n <a nz-button nzType=\"link\" [disabled]=\"disabled()\" (click)=\"toogleMode()\"><i style=\"margin: 0 auto;display: block;\"\n nz-icon [nzType]=\"value()?.funMode?'rollback':'function'\" nzTheme=\"outline\"></i></a>\n</div>\n}@else{\n<nz-input-group [nzSuffix]=\"suffixTemplate\" [nzPrefix]=\"prefixTemplate\">\n <input nz-input readonly type=\"text\" [class]=\"{success:success(),warn:warn(),error:error()}\"\n [placeholder]=\"success() || warn() || error() || ''\" (click)=\"openFunModal()\" />\n</nz-input-group>\n}\n<ng-template #prefixTemplate>\n <i nz-icon nzType=\"function\" style=\"margin-right: 5px;\"></i>\n @if (success()) {\n <i nz-icon nzType=\"check-circle\" style=\"color:#52c41a;\"></i>\n }@else if (warn()) {\n <i nz-icon nzType=\"exclamation-circle\" style=\"color:#faad14;\"></i>\n }@else if (error()) {\n <i nz-icon nzType=\"close-circle\" style=\"color:#ff4d4f;\"></i>\n }\n</ng-template>\n<ng-template #suffixTemplate>\n <i style=\"color:rgba(150, 150, 150, 0.5);\" nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>\n</ng-template>\n<nz-modal nzWidth=\"1000px\" [nzBodyStyle]=\"{padding:'0'}\" [(nzVisible)]=\"open\" (nzOnCancel)=\"onCancel()\"\n (nzOnOk)=\"onOk()\" (nzAfterClose)=\"editValue.set(undefined);\">\n <ng-container *nzModalTitle>\n <i nz-icon nzType=\"function\" style=\"margin-right: 8px;\"></i>编辑脚本\n @if (editTip()) {\n <span style=\"font-size: 12px;margin-left: 30px;color:var(--ant-error-color)\">\n <nz-icon nzType=\"info-circle\" nzTheme=\"outline\" />\n {{editTip()}}\n </span>\n }\n </ng-container>\n <ng-container *nzModalContent>\n <nz-splitter style=\"height: 400px;\" (nzResize)=\"layoutEditor()\">\n <nz-splitter-panel [nzDefaultSize]=\"250\" [nzMin]=\"250\" nzMax=\"70%\" [nzCollapsible]=\"true\">\n <nz-collapse nzAccordion [nzBordered]=\"false\">\n @if (funcsNames.length) {\n <nz-collapse-panel nzHeader=\"注入函数\" [nzExtra]=\"funcsNames.length.toString()\">\n @for (item of funcsNames; track $index) {\n <div><span style=\"color:#C52727\">function</span> {{item}}</div>\n }\n </nz-collapse-panel>\n }\n @if ((!onlyFun() || !noListen()) && importsList().length) {\n <nz-collapse-panel nzHeader=\"函数库导入\"\n [nzExtra]=\"(editValue().fnValue?.imports?.length ?? 0) + '/'+importsList().length\">\n <nz-checkbox-group [nzOptions]=\"importsList()\" [ngModel]=\"editValue().fnValue?.imports\"\n (ngModelChange)=\"changeImports($event)\" />\n </nz-collapse-panel>\n }\n <nz-collapse-panel nzActive nzHeader=\"数据源\" [nzExtra]=\"addListenBtn\">\n <ng-template #addListenBtn>\n <a nz-button nzType=\"link\" nzSize=\"small\"\n (click)=\"$event.stopPropagation();showCreateListenModal.set(true)\">\n <nz-icon nzType=\"plus\"></nz-icon>\n 添加\n </a>\n </ng-template>\n @if (!scopeds().length) {\n <nz-empty nzNotFoundContent=\"暂无数据源\"></nz-empty>\n }@else{\n @for (scope of scopeds(); track scope.scopeId) {\n <div class=\"scope-tag\">{{scope.scopeName}}</div>\n @for (item of getDsNames(scope); track item;) {\n <div nz-flex nzVertical style=\"margin-top: 2px;\">\n <div nz-flex nzAlign=\"center\">\n <a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"doShowDataSource(item)\">\n <i nz-icon nzType=\"search\" nzTheme=\"outline\"></i>\n {{item}}\n </a>\n <a nz-button nzType=\"link\" nzSize=\"small\" ngxClipboard [cbContent]=\"item\"\n (cbOnSuccess)=\"copySuccess()\">\n <i nz-icon nzType=\"copy\" nzTheme=\"outline\"></i>\n </a>\n @if (scope.scopeId == '__unknown__') {\n <a nz-button nzType=\"link\" nzSize=\"small\" nzDanger (click)=\"removeListen(item)\">\n <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>\n </a>\n }\n </div>\n @if (!noListen() && !scope.noListen) {\n <nz-select style=\"margin-left:16px;font-size: 12px;width: fit-content;\"\n [nzDropdownMatchSelectWidth]=\"false\" nzVariant=\"borderless\"\n [ngModel]=\"editValue().fnValue?.listen?.[item]??'none'\"\n (ngModelChange)=\"changeLinstenMode(item,$event)\" nzSize=\"small\">\n <nz-option nzCustomContent nzLabel=\"不监听\" nzValue=\"none\">\n <span style=\"font-size: 12px;\">不监听</span>\n </nz-option>\n <nz-option nzCustomContent nzLabel=\"首次有定义\" nzValue=\"firstDefined\">\n <span style=\"font-size: 12px;\">首次有定义</span>\n </nz-option>\n <nz-option nzCustomContent nzLabel=\"有定义\" nzValue=\"defined\">\n <span style=\"font-size: 12px;\">有定义</span>\n </nz-option>\n <nz-option nzCustomContent nzLabel=\"总是\" nzValue=\"aways\">\n <span style=\"font-size: 12px;\">总是</span>\n </nz-option>\n </nz-select>\n }\n </div>\n }\n }\n }\n </nz-collapse-panel>\n </nz-collapse>\n </nz-splitter-panel>\n <nz-splitter-panel>\n <div nz-flex nzVertical style=\"height: 100%;\">\n <div class=\"code-row\"><span style=\"color: #C52727;\">function</span>({{argsName()}})\n {{'{'}}</div>\n <div nz-flex nzFlex=\"1 1 0\">\n <ng-container #funEditor=\"axisDynamic\"\n [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'javascript',typescriptExtLibs:importDeclarations()}\"\n [standalone]=\"true\" [(ngModel)]=\"editFn\"\n (ngModelChange)=\"execFnSubject.next()\"></ng-container>\n </div>\n <div class=\"code-row\"> {{'}'}}</div>\n </div>\n </nz-splitter-panel>\n </nz-splitter>\n @if (success()) {\n <nz-alert nzShowIcon nzType=\"success\" nzCloseable [nzDescription]=\"success()\" (nzOnClose)=\"success.set('')\"\n [nzAction]=\"showSuccessResultBtn\">\n </nz-alert>\n <ng-template #showSuccessResultBtn>\n <button nz-button (click)=\"isShowSuccessResult=true\">查看执行结果</button>\n </ng-template>\n }@else if(error()){\n <nz-alert nzShowIcon nzType=\"error\" nzCloseable [nzDescription]=\"error()\" (nzOnClose)=\"error.set('')\">\n </nz-alert>\n }@else if(warn()){\n <nz-alert nzShowIcon nzType=\"warning\" nzCloseable [nzDescription]=\"warn()\" (nzOnClose)=\"warn.set('')\">\n </nz-alert>\n }\n </ng-container>\n</nz-modal>\n\n<nz-modal [nzVisible]=\"!!isShowSuccessResult\" nzTitle=\"函数执行结果\" [nzOkText]=\"null\"\n (nzOnCancel)=\"isShowSuccessResult=false;\" [nzBodyStyle]=\"{padding:'0',position:'relative'}\" nzCancelText=\"关闭\">\n <div *nzModalContent style=\"height: 400px;\" nz-flex>\n <ng-container [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'json',readonly:true}\"\n [standalone]=\"true\" [ngModel]=\"successResult\"></ng-container>\n </div>\n</nz-modal>\n\n<nz-modal nzWidth=\"800px\" [nzVisible]=\"!!showDataSource()\" [nzTitle]=\"'查看数据源-'+showDataSource()?.name\" [nzOkText]=\"null\"\n (nzOnCancel)=\"showDataSource.set(undefined)\" [nzBodyStyle]=\"{padding:'0'}\" nzCancelText=\"关闭\">\n <div *nzModalContent style=\"height: 400px;\" nz-flex>\n <ng-container [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'json',readonly:true}\"\n [standalone]=\"true\" [ngModel]=\"showDataSource()?.data ??''\"></ng-container>\n </div>\n</nz-modal>\n\n<nz-modal [(nzVisible)]=\"showCreateListenModal\" nzDraggable nzTitle=\"创建监听\" (nzOnOk)=\"addListen()\"\n (nzOnCancel)=\"showCreateListenModal.set(false)\" nzWidth=\"400px\">\n <ng-container *nzModalContent>\n <div nz-flex nzAlign=\"center\">\n <div>数据源名称:</div>\n <input style=\"flex:1\" nz-input [(ngModel)]=\"createListenDataSourceName\" />\n </div>\n </ng-container>\n</nz-modal>","import { AbstractControl, UntypedFormControl, ValidationErrors, ValidatorFn, Validators } from \"@angular/forms\";\nimport { NzSafeAny } from \"ng-zorro-antd/core/types\";\n\nexport type MyErrorsOptions = { 'zh-cn': string } & Record<string, NzSafeAny>;\nexport type MyValidationErrors = Record<string, MyErrorsOptions>;\n\nexport class FormValidators extends Validators {\n\n static override required(control: AbstractControl): ValidationErrors | null {\n let error = Validators.required(control);\n if (error) {\n return { required: { 'zh-cn': \"必填项\" } };\n }\n return null;\n }\n\n static requiredFun(control: AbstractControl): ValidationErrors | null {\n let error = FormValidators.required(control);\n if (!error) {\n error = FormValidators.required(new UntypedFormControl(control.value?.funMode ? control.value?.fnValue.fn : control.value?.originValue));\n }\n if (error) {\n return { required: { 'zh-cn': \"必填项\" } };\n }\n return null;\n }\n\n\n static equal(comparedValue: string | (() => string | null)) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n let cv;\n if (typeof (comparedValue) != \"function\") {\n cv = comparedValue;\n } else {\n try { cv = comparedValue(); } catch { }\n }\n return control.value != cv ? { notEqual: true } : null;\n }\n }\n\n static override minLength(minLength: number): ValidatorFn {\n const validator = Validators.minLength(minLength);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { minlength: { 'zh-cn': `最小长度为 ${minLength}` } };\n };\n }\n\n static override maxLength(maxLength: number): ValidatorFn {\n const validator = Validators.maxLength(maxLength);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { minlength: { 'zh-cn': `最大长度为 ${maxLength}` } };\n };\n }\n\n static override min(minvalue: number): ValidatorFn {\n const validator = Validators.min(minvalue);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { minlength: { 'zh-cn': `最小值为 ${minvalue}` } };\n };\n }\n\n static override max(maxvalue: number): ValidatorFn {\n const validator = Validators.max(maxvalue);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { minlength: { 'zh-cn': `最大值为 ${maxvalue}` } };\n };\n }\n\n static override pattern(pattern: string | RegExp): ValidatorFn {\n const validator = Validators.pattern(pattern);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { pattern: { 'zh-cn': \"输入不正确\" } };\n };\n }\n}\n\nexport function buildValidators(validators: any[]): ValidatorFn[] {\n const output: ValidatorFn[] = [];\n for (const v of validators) {\n if (v.disabled) {\n continue;\n }\n switch (v.type) {\n case \"required\":\n output.push(FormValidators.required);\n break;\n case \"length\":\n if (v.minLength || v.minLength == 0) {\n output.push(FormValidators.minLength(v.minLength));\n }\n if (v.maxLength || v.maxLength == 0) {\n output.push(FormValidators.maxLength(v.maxLength));\n }\n break;\n case \"value\":\n if (v.minValue || v.minValue == 0) {\n output.push(FormValidators.min(v.minValue));\n }\n if (v.maxValue || v.maxValue == 0) {\n output.push(FormValidators.max(v.maxValue));\n }\n break;\n case \"regex\":\n if (v.pattern) {\n output.push(FormValidators.pattern(v.pattern));\n }\n break;\n }\n }\n return output;\n}","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, inject, input, signal } from '@angular/core';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { FormValidators } from '../../utils/form-validators';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { AXIS_DESIGN_ALL_PERMISSIONS_TOKEN, AXIS_DESIGN_CAN_LOOP_TOKEN } from '../tokens';\nimport { FunFieldOptions } from '../../models/fun-field.options';\n\n@Component({\n selector: 'axis-base-design-setting',\n imports: [NzCollapseModule, NzFormModule, FunField, NzSwitchModule, FormsModule, NzInputModule, ReactiveFormsModule, DynamicDirective, NzSelectModule],\n templateUrl: './base-design-setting.html',\n styleUrl: './base-design-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseDesignSetting implements AfterViewInit {\n\n constructor(private element: ElementRef) { }\n\n readonly showLine = signal(false);\n readonly scopeId = input<string>();\n readonly exclude = input<string[]>([]);\n readonly allPermissions = Object.entries(inject(AXIS_DESIGN_ALL_PERMISSIONS_TOKEN));\n readonly canLoop = inject(AXIS_DESIGN_CAN_LOOP_TOKEN);\n\n fg = input.required<UntypedFormGroup>();\n\n ngAfterViewInit(): void {\n if (this.element.nativeElement.nextElementSibling) {\n this.showLine.set(true);\n }\n }\n\n}\n\nexport const baseFbConfig = {\n id: [undefined, [FormValidators.required]],\n inuse: [undefined, [FormValidators.requiredFun]],\n loop: [false, [FormValidators.required]],\n loopTarget: [],\n requiredPermissions: [],\n style: [],\n triggeEvents: []\n};\n\nexport const baseFunField: FunFieldOptions = {\n inuse: {\n defaultValue: true\n },\n style: {\n defaultValue: undefined\n },\n loopTarget: {\n defaultValue: []\n }\n}","<form [formGroup]=\"fg()\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"通用设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 组件ID\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <input nz-input formControlName=\"id\" />\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 启用\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"inuse\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (canLoop) {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 启用循环\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-switch #loop formControlName=\"loop\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n @if (loop.isChecked) {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 循环目标\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"loopTarget\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 权限\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-select nzMode=\"multiple\" nzAllowClear formControlName=\"requiredPermissions\">\n @for (en of allPermissions; track en[0]) {\n <nz-option [nzLabel]=\"en[1]\" [nzValue]=\"en[0]\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 样式\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"style\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n @if (showLine()) {\n <div></div>\n }\n </nz-collapse>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject, signal } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-api-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, DynamicDirective, NzInputModule, NzSwitchModule, NzRadioModule],\n templateUrl: './api-handler.html',\n styleUrl: './api-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ApiHandler),\n multi: true\n }\n ]\n})\nexport class ApiHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n url: [undefined, FormValidators.requiredFun],\n method: [undefined, FormValidators.requiredFun],\n body: [],\n context: [],\n });\n\n protected override funFields: FunFieldOptions = {\n url: {\n defaultValue: \"\",\n },\n method: {\n defaultValue: \"get\"\n },\n body: {\n defaultValue: undefined\n },\n context: {\n defaultValue: undefined\n },\n\n };\n\n readonly successTipMode = signal(undefined);\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 地址\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"url\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 请求方式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"method\" [noListen]=\"noListen()\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"get\" nzLabel=\"GET\"></nz-option>\n <nz-option nzValue=\"post\" nzLabel=\"POST\"></nz-option>\n <nz-option nzValue=\"put\" nzLabel=\"PUT\"></nz-option>\n <nz-option nzValue=\"delete\" nzLabel=\"DELETE\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 请求数据体\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"body\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 上下文\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"context\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, computed, effect, forwardRef, inject, input, model, signal } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormArray, FormBuilder, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { FormValidators } from '../../../utils/form-validators';\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzTagModule } from 'ng-zorro-antd/tag';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'axis-design-filter-options',\n templateUrl: './filter-options.html',\n styleUrls: ['./filter-options.css'],\n imports: [NzSelectModule, NzButtonModule, NzInputModule, NzAutocompleteModule, ReactiveFormsModule, NzTagModule, NzIconModule, NzFlexModule, NzDividerModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FilterOptions),\n multi: true\n }\n ]\n})\nexport class FilterOptions implements ControlValueAccessor {\n\n constructor() {\n effect(() => {\n this.onChange?.(this.formValue()?.filters);\n })\n }\n\n onChange: any;\n readonly value = model<any[]>();\n\n writeValue(v: any): void {\n this.value.set(v);\n if (v?.length) {\n v.forEach((r: any) => {\n this.createFilter();\n r.effectFields?.forEach((f: any) => {\n if (!this.sourceDataChooseFields().includes(f) && !this.addFields().includes(f)) {\n this.addFields.set([...this.addFields(), f]);\n }\n })\n });\n }\n this.fg.reset({\n filters: v\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n }\n\n readonly sourceDataFields = input<string[]>([]);\n readonly sourceDataChooseFields = computed(() => this.sourceDataFields().concat(this.addFields()));\n readonly filterDataFields = input<string[]>([]);\n readonly addFields = signal<string[]>([]);\n private readonly fb = inject(FormBuilder);\n readonly fg = this.fb.group({\n filters: this.fb.array([])\n });\n readonly formValue = toSignal(this.fg.valueChanges);\n currentEffectFieldsControl?: AbstractControl;\n\n get fa(): FormArray {\n return this.fg.get(\"filters\") as FormArray;\n };\n\n createFilter() {\n this.fa.push(this.fb.group({\n field: [undefined, FormValidators.required],\n mode: [\"equals\", FormValidators.required],\n effectFields: [[], FormValidators.required],\n }));\n }\n\n deleteFilter(i: number) {\n this.fa.removeAt(i);\n }\n\n addField(field: string) {\n if (!this.sourceDataChooseFields().includes(field)) {\n this.addFields.set([...this.addFields(), field]);\n if (this.currentEffectFieldsControl) {\n this.currentEffectFieldsControl!.patchValue({ effectFields: [...this.currentEffectFieldsControl!.value.effectFields, field] });\n }\n }\n\n }\n\n}\n","<form [formGroup]=\"fg\">\n <ng-container formArrayName=\"filters\">\n @for (c of fa.controls; track $index;let index=$index;) {\n <div class=\"item\" [formGroupName]=\"index\">\n <div nz-flex nzJustify=\"space-between\">\n <h4>条件{{index+1}}:</h4>\n <a nz-button nzType=\"link\" nzSize=\"small\" nzDanger (click)=\"deleteFilter(index)\"><i nz-icon\n nzType=\"delete\" nzTheme=\"outline\"></i></a>\n </div>\n <div>\n <span>使用</span>\n <input nz-input nzVariant=\"underlined\" placeholder=\"选择字段\" style=\"width: 100px;\" nzSize=\"small\"\n [nzAutocomplete]=\"filterDataFieldsAuto\" formControlName=\"field\" />\n <span>字段并通过</span>\n <nz-select style=\"width: 103px;\" nzVariant=\"underlined\" formControlName=\"mode\" nzSize=\"small\">\n <nz-option nzValue=\"equals\" nzLabel=\"相等\"></nz-option>\n <nz-option nzValue=\"startsWith\" nzLabel=\"头部相等\"></nz-option>\n <nz-option nzValue=\"endsWith\" nzLabel=\"尾部相等\"></nz-option>\n <nz-option nzValue=\"like\" nzLabel=\"模糊匹配\"></nz-option>\n <nz-option nzValue=\"equalGreater\" nzLabel=\"大于等于\"></nz-option>\n <nz-option nzValue=\"equalLess\" nzLabel=\"小于等于\"></nz-option>\n <nz-option nzValue=\"between\" nzLabel=\"两者之间\"></nz-option>\n <nz-option nzValue=\"containAll\" nzLabel=\"包含所有\"></nz-option>\n <nz-option nzValue=\"containAny\" nzLabel=\"包含任意\"></nz-option>\n </nz-select>\n <span>的方式匹配以下字段:</span>\n <nz-select formControlName=\"effectFields\" style=\"min-width: 120px;\" nzSize=\"small\" nzMode=\"multiple\"\n nzVariant=\"underlined\" nzShowSearch nzAllowClear [nzDropdownRender]=\"renderTemplate\"\n nzPlaceHolder=\"选择字段\" (nzOpenChange)=\"$event && currentEffectFieldsControl=c\">\n @for (f of sourceDataChooseFields(); track f) {\n <nz-option [nzLabel]=\"f\" [nzValue]=\"f\"></nz-option>\n }\n </nz-select>\n </div>\n </div>\n }\n </ng-container>\n</form>\n<ng-template #renderTemplate>\n <div nz-flex nzGap=\"4px\" style=\"padding: 0 10px;\">\n <input type=\"text\" nz-input nzSize=\"small\" placeholder=\"其他字段\" #inputElement />\n <a (click)=\"addField(inputElement.value);inputElement.value=''\">\n <nz-icon nzType=\"plus\" />\n </a>\n </div>\n</ng-template>\n<nz-autocomplete #filterDataFieldsAuto nzBackfill [nzWidth]=\"120\">\n @for (f of filterDataFields(); track f) {\n <nz-auto-option [nzLabel]=\"f\" [nzValue]=\"f\">\n {{f}}\n </nz-auto-option>\n }\n</nz-autocomplete>\n<a nz-button nzType=\"link\" (click)=\"createFilter()\">\n <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n 添加过滤条件\n</a>","import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, ViewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { FilterOptions } from './input-filter-options/filter-options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-array-filter-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, DynamicDirective, NzInputModule, NzSwitchModule, NzRadioModule, FilterOptions],\n templateUrl: './array-filter-handler.html',\n styleUrl: './array-filter-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ArrayFilterHandler),\n multi: true\n }\n ]\n})\nexport class ArrayFilterHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n inputArray: [],\n filterData: [],\n filterOptions: [],\n });\n\n protected override funFields: FunFieldOptions = {\n inputArray: {\n defaultValue: undefined,\n },\n filterData: {\n defaultValue: undefined,\n },\n };\n\n @ViewChild(\"sourceDataFunField\", { static: true })\n sourceDataFunField!: FunField;\n @ViewChild(\"filterDataFunField\", { static: true })\n filterDataFunField!: FunField;\n\n readonly sourceDataFields = computed(() => this.buildSourceDataFields())\n readonly filterDataFields = computed(() => this.buildfilterDataFields())\n\n private buildSourceDataFields(): string[] {\n const sourceData = this.sourceDataFunField.computeResult();\n if (sourceData?.length) {\n return Object.keys(sourceData[0]);\n }\n return [];\n }\n\n private buildfilterDataFields(): string[] {\n return Object.keys(this.filterDataFunField.computeResult() ?? {});\n }\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 原数组\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"inputArray\" [noListen]=\"noListen()\" #sourceDataFunField>\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 过滤对象\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"filterData\" [noListen]=\"noListen()\" #filterDataFunField>\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <axis-design-filter-options [sourceDataFields]=\"sourceDataFields()\" [filterDataFields]=\"filterDataFields()\"\n formControlName=\"filterOptions\"></axis-design-filter-options>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN } from '../tokens';\n\n@Component({\n selector: 'axis-components-snapshot-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule],\n templateUrl: './components-snapshot-handler.html',\n styleUrl: './components-snapshot-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ComponentsSnapshotHandler),\n multi: true\n }\n ]\n})\nexport class ComponentsSnapshotHandler extends FunFieldValueBase {\n\n readonly componentsInfo = inject(AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN);\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n ids: [undefined, FormValidators.required],\n exportFileName: [undefined, FormValidators.requiredFun],\n });\n\n protected override funFields: FunFieldOptions = {\n exportFileName: {\n defaultValue: \"组件快照\",\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 组件\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <nz-select formControlName=\"ids\" nzShowSearch nzMode=\"tags\">\n @for (component of componentsInfo; track component.componentName) {\n <nz-option-group [nzLabel]=\"component.componentName\">\n @for(node of component.nodes; track node.id){\n <nz-option [nzLabel]=\"node.id\" [nzValue]=\"node.id\"></nz-option>\n }\n </nz-option-group>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 文件名称\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"exportFileName\" [noListen]=\"noListen()\">\n <nz-input-wrapper nzSuffix=\".png\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" nzs />\n </nz-input-wrapper>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-data-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, DynamicDirective, NzInputModule, NzSwitchModule, NzRadioModule],\n templateUrl: './data-handler.html',\n styleUrl: './data-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DataHandler),\n multi: true\n }\n ]\n})\nexport class DataHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n data: [],\n });\n\n protected override funFields: FunFieldOptions = {\n data: {\n defaultValue: null,\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 数据\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"data\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","export const sheetsOptions: any = {\n \"id\": \"axis-components/edit-table#1\",\n \"requiredPermissions\": null,\n \"triggeEvents\": {\n \"valueChange\": [\n {\n \"name\": \"setDataSource\",\n \"disabled\": false,\n \"id\": \"axis-components/scope#1\",\n \"data\": {\n \"name\": \"data\",\n \"$data\": {\n \"listen\": {},\n \"fn\": \"return value;\"\n }\n },\n \"target\": \"scope\"\n }\n ]\n },\n \"emitInitEvent\": true,\n \"disabledRemoveFn\": null,\n \"showExpand\": false,\n \"expandFormName\": null,\n \"checkedFormName\": \"checked\",\n \"checkboxLinkageForExpand\": false,\n \"disableCheckboxFn\": null,\n \"showPagination\": false,\n \"pageSizeOptions\": \"10,20,50,100\",\n \"component\": \"axis-components/edit-table\",\n \"fields\": [\n {\n \"field\": \"sheetTitle\",\n \"validators\": [\n {\n \"type\": \"required\",\n \"disabled\": false,\n \"minLength\": null,\n \"maxLength\": null,\n \"minValue\": null,\n \"maxValue\": null,\n \"pattern\": \"\"\n }\n ],\n \"child\": {\n \"component\": \"axis-components/input\",\n \"id\": \"axis-components/input#1\",\n \"inuse\": true\n },\n \"inuse\": true,\n \"title\": \"工作表名称\",\n \"sortAble\": false,\n \"sortOrder\": null,\n \"sortPriority\": null,\n \"filterAble\": false,\n \"filterMultiple\": false,\n \"width\": 150,\n \"align\": \"left\",\n \"freezeMode\": \"none\"\n },\n {\n \"field\": \"tableId\",\n \"validators\": [\n {\n \"type\": \"required\",\n \"disabled\": false,\n \"minLength\": null,\n \"maxLength\": null,\n \"minValue\": null,\n \"maxValue\": null,\n \"pattern\": \"\"\n }\n ],\n \"child\": {\n \"id\": \"axis-components/select#1\",\n \"loop\": false,\n \"requiredPermissions\": null,\n \"triggeEvents\": null,\n \"emitInitEvent\": true,\n \"labelField\": \"title\",\n \"valueField\": \"key\",\n \"disabledField\": \"disabled\",\n \"fullValue\": false,\n \"allowInvalidValue\": false,\n \"mode\": \"default\",\n \"defaultFirst\": false,\n \"component\": \"axis-components/select\",\n \"inuse\": true,\n \"loopTarget\": [],\n \"disabled\": false,\n \"readonly\": false,\n \"data\": [\n {\n \"title\": \"选项1\",\n \"key\": \"1\"\n },\n {\n \"title\": \"选项2\",\n \"key\": \"2\"\n }\n ],\n \"allowClear\": true,\n \"placeholder\": \"\",\n \"variant\": \"outlined\",\n \"dropdownMatchSelectWidth\": false,\n \"size\": \"default\",\n \"optionOverflowSize\": 8,\n \"selectOnTab\": false,\n \"tokenSeparators\": [],\n \"showSearch\": true,\n \"serverSearch\": false,\n \"autoClearSearchValue\": true\n },\n \"inuse\": true,\n \"title\": \"表格ID\",\n \"sortAble\": false,\n \"sortOrder\": null,\n \"sortPriority\": null,\n \"filterAble\": false,\n \"filterMultiple\": false,\n \"width\": null,\n \"align\": \"left\",\n \"freezeMode\": \"none\"\n }\n ],\n \"inuse\": true,\n \"style\": {\n \"width\": \"100%\"\n },\n \"disabled\": false,\n \"readonly\": false,\n \"disabledAppend\": false,\n \"disabledRemove\": false,\n \"maxLength\": null,\n \"size\": \"middle\",\n \"showOrder\": true,\n \"showDataSize\": true,\n \"bordered\": false,\n \"outerBordered\": false,\n \"width\": null,\n \"showCheckbox\": false,\n \"checkeOnRowClick\": false,\n \"singleCheck\": false,\n \"showTotal\": false,\n \"totalTitle\": \"合计\",\n \"pageSize\": 10,\n \"showSizeChanger\": true\n};","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { sheetsOptions } from './sheets.options';\nimport { AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN } from '../tokens';\n\n@Component({\n selector: 'axis-export-excel-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, DynamicDirective],\n templateUrl: './export-excel-handler.html',\n styleUrl: './export-excel-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ExportExcelHandler),\n multi: true\n }\n ]\n})\nexport class ExportExcelHandler extends FunFieldValueBase {\n\n readonly componentsInfo = inject(AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN);\n get sheetsOptions(): any {\n sheetsOptions.fields[1].child.data = this.componentsInfo.find(c => c.component == \"axis-components/table\")?.nodes?.map(n => ({ key: n.id, title: n.id }))\n return sheetsOptions;\n };\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n sheets: [undefined, FormValidators.requiredFun],\n fileName: [undefined, FormValidators.requiredFun],\n bookType: [\"xlsx\", FormValidators.required],\n });\n\n protected override funFields: FunFieldOptions = {\n sheets: {\n defaultValue: [],\n },\n fileName: {\n defaultValue: \"数据导出\",\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-control nzSpan=\"24\">\n <axis-fun-field formControlName=\"sheets\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"sheetsOptions\" [standalone]=\"true\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 文件名称\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"fileName\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 文档格式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <nz-select formControlName=\"bookType\">\n <nz-option nzValue=\"xlsx\" nzLabel=\"xlsx\"></nz-option>\n <nz-option nzValue=\"xls\" nzLabel=\"xls\"></nz-option>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-msg-tip-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, NzRadioModule],\n templateUrl: './msg-tip-handler.html',\n styleUrl: './msg-tip-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsgTipHandler),\n multi: true\n }\n ]\n})\nexport class MsgTipHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n tipWay: [undefined, FormValidators.requiredFun],\n type: [undefined, FormValidators.requiredFun],\n content: [undefined, FormValidators.requiredFun],\n });\n\n protected override funFields: FunFieldOptions = {\n tipWay: {\n defaultValue: \"message\",\n },\n type: {\n defaultValue: \"info\",\n },\n content: {\n defaultValue: undefined,\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 提醒方式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"tipWay\" [noListen]=\"noListen()\" editTip=\"message-消息 modal-弹窗\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\">\n <label nz-radio-button nzValue=\"message\">消息</label>\n <label nz-radio-button nzValue=\"modal\">弹窗</label>\n </nz-radio-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 消息类型\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"type\" [noListen]=\"noListen()\" editTip=\"info-提醒 success-成功 warning-警告 error-错误\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\" nzSize=\"small\">\n <label nz-radio-button nzValue=\"info\">提醒</label>\n <label nz-radio-button nzValue=\"success\">成功</label>\n <label nz-radio-button nzValue=\"warning\">警告</label>\n <label nz-radio-button nzValue=\"error\">错误</label>\n </nz-radio-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 消息内容\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"content\" [noListen]=\"noListen()\">\n <textarea nz-input ngModel [ngModelOptions]=\"{standalone:true}\"></textarea>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { NzSwitchComponent } from \"ng-zorro-antd/switch\";\nimport { DynamicDirective } from '../../directives/dynamic';\n\n@Component({\n selector: 'axis-print-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, NzRadioModule, NzSwitchComponent, DynamicDirective],\n templateUrl: './print-handler.html',\n styleUrl: './print-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PrintHandler),\n multi: true\n }\n ]\n})\nexport class PrintHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n html: [],\n loadTinyCss: [undefined, FormValidators.requiredFun],\n style: [],\n });\n\n protected override funFields: FunFieldOptions = {\n html: {\n defaultValue: \"\",\n },\n loadTinyCss: {\n defaultValue: false,\n },\n style: {\n defaultValue: undefined,\n }\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 打印内容\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"html\" [noListen]=\"noListen()\">\n <textarea nz-input ngModel [ngModelOptions]=\"{standalone:true}\"></textarea>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 载入Tiny样式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"loadTinyCss\" [noListen]=\"noListen()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 样式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"style\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'css',style:{height:'200px'}}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { filter, map, mergeWith, of, switchMap } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN } from '../tokens';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\n\n@Component({\n selector: 'axis-refresh-data-source-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, NzSwitchModule, NzRadioModule, NzAutocompleteModule, NzSwitchModule],\n templateUrl: './refresh-data-source-handler.html',\n styleUrl: './refresh-data-source-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RefreshDataSourceHandler),\n multi: true\n }\n ]\n})\nexport class RefreshDataSourceHandler extends FunFieldValueBase {\n override fg: UntypedFormGroup = this.fb.group({\n name: [undefined, FormValidators.requiredFun],\n setNull: [undefined, FormValidators.requiredFun],\n });\n\n protected override funFields: FunFieldOptions = {\n name: {\n defaultValue: null,\n },\n setNull: {\n defaultValue: false,\n },\n };\n readonly inputTrigger = inject(InputTrigger);\n readonly noListen = this.inputTrigger.noListen;\n readonly getScopeInfos = inject(AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN);\n readonly scopeDsNames = toSignal(this.inputTrigger.fg.valueChanges.pipe(\n mergeWith(of(this.inputTrigger.fg.value)),\n filter(v => v.id?.funMode === false),\n map(v => v.id.originValue),\n switchMap(scopeId => this.getScopeInfos(scopeId)\n .pipe(map(sis => Object.keys(scopeId ? sis.find(s => s.scopeId == scopeId)?.ds : sis[0]?.ds))))));\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 数据源名\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"name\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" [nzAutocomplete]=\"dsAuto\" />\n <nz-autocomplete #dsAuto nzBackfill>\n @for (name of scopeDsNames()??[]; track name) {\n <nz-auto-option [nzLabel]=\"name\" [nzValue]=\"name\">\n {{name}}\n </nz-auto-option>\n }\n </nz-autocomplete>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 刷新前清空\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"setNull\" [noListen]=\"noListen()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { DynamicDirective } from '../../directives/dynamic';\n\n@Component({\n selector: 'axis-route-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, NzSwitchModule, DynamicDirective],\n templateUrl: './route-handler.html',\n styleUrl: './route-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RouteHandler),\n multi: true\n }\n ]\n})\nexport class RouteHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n type: [undefined, FormValidators.requiredFun],\n newtab: [undefined, FormValidators.requiredFun],\n path: [undefined, FormValidators.requiredFun],\n params: [],\n });\n\n protected override funFields: FunFieldOptions = {\n type: {\n defaultValue: \"web\",\n },\n newtab: {\n defaultValue: false,\n },\n path: {\n defaultValue: undefined,\n },\n params: {\n defaultValue: undefined,\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 打开类型\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"type\" [noListen]=\"noListen()\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"web\" nzLabel=\"网页\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.type?.funMode || formValue()?.type?.originValue == \"web\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 新浏览器标签\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"newtab\" [noListen]=\"noListen()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 链接\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"path\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.newtab.funMode || !formValue()?.newtab.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 参数\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"params\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { FormValidators } from '../../utils/form-validators';\n\n@Component({\n selector: 'axis-run-script-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule],\n templateUrl: './run-script-handler.html',\n styleUrl: './run-script-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RunScriptHandler),\n multi: true\n }\n ]\n})\nexport class RunScriptHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n script: [undefined, FormValidators.required],\n });\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 脚本\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"script\" [noListen]=\"noListen()\" [onlyFun]=\"true\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-set-data-source-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, DynamicDirective, NzInputModule, NzSwitchModule, NzRadioModule],\n templateUrl: './set-data-source-handler.html',\n styleUrl: './set-data-source-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SetDataSourceHandler),\n multi: true\n }\n ]\n})\nexport class SetDataSourceHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n name: [undefined, FormValidators.requiredFun],\n data: [],\n });\n\n protected override funFields: FunFieldOptions = {\n name: {\n defaultValue: null,\n },\n data: {\n defaultValue: null,\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label [nzSpan]=\"6\" nzRequired>\n 数据源名\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"name\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSpan]=\"6\">\n 数据\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"data\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ComponentRef } from \"@angular/core\";\nimport { EventHandlerDesc, EventHandlerDescGroup } from \"../models/event-desc\";\nimport { ApiHandler } from \"./api-handler/api-handler\";\nimport { ArrayFilterHandler } from \"./array-filter-handler/array-filter-handler\";\nimport { ComponentsSnapshotHandler } from \"./components-snapshot-handler/components-snapshot-handler\";\nimport { DataHandler } from \"./data-handler/data-handler\";\nimport { ExportExcelHandler } from \"./export-excel-handler/export-excel-handler\";\nimport { MsgTipHandler } from \"./msg-tip-handler/msg-tip-handler\";\nimport { PrintHandler } from \"./print-handler/print-handler\";\nimport { RefreshDataSourceHandler } from \"./refresh-data-source-handler/refresh-data-source-handler\";\nimport { RouteHandler } from \"./route-handler/route-handler\";\nimport { RunScriptHandler } from \"./run-script-handler/run-script-handler\";\nimport { SetDataSourceHandler } from \"./set-data-source-handler/set-data-source-handler\";\nimport { BaseOptions } from \"../models/base.options\";\nimport { Base } from \"../base/base\";\nimport { ValueAccess } from \"../base/value-access\";\nimport { ValueAccessOptions } from \"../models/value-access.options\";\n\nexport const baseEventHandlerDescs: { [name: string]: EventHandlerDesc } = {\n api: {\n name: \"api\",\n icon: \"api\",\n title: \"调用接口\",\n target: \"service\",\n dataComponent: ApiHandler,\n events: [\n {\n name: \"apiResponse\",\n title: \"接口响应\",\n ds: {\n apiResponse: {\n tip: \"示例数据\"\n }\n },\n }\n ]\n },\n setDataSource: {\n name: \"setDataSource\",\n title: \"设置数据源\",\n icon: \"database\",\n dataComponent: SetDataSourceHandler,\n target: \"scope\",\n },\n refreshDataSource: {\n name: \"refreshDataSource\",\n title: \"刷新数据源\",\n icon: \"reload\",\n dataComponent: RefreshDataSourceHandler,\n target: \"scope\",\n },\n setValue: {\n name: \"setValue\",\n title: \"设置值\",\n icon: \"flag\",\n dataComponent: DataHandler,\n target: \"component\",\n },\n getValue: {\n name: \"getValue\",\n title: \"获取值\",\n icon: \"flag\",\n target: \"component\",\n events: [\n {\n name: \"afterGetValue\",\n title: \"值获取后\",\n ds: (ref: ComponentRef<Base<BaseOptions>> | undefined) => ({\n getValue: (ref?.instance as ValueAccess<ValueAccessOptions> | undefined)?.value() ?? \"示例数据\"\n })\n }\n ],\n },\n setFocus: {\n name: \"setFocus\",\n title: \"设置焦点\",\n icon: \"aim\",\n target: \"component\",\n },\n arrayFilter: {\n name: \"arrayFilter\",\n icon: \"filter\",\n title: \"数组过滤\",\n target: \"service\",\n dataComponent: ArrayFilterHandler,\n events: [\n {\n name: \"output\",\n title: \"数据输出\",\n ds: {\n outputArray: [{\n tip: \"示例数据\"\n }]\n },\n }\n ]\n },\n msgTip: {\n name: \"msgTip\",\n icon: \"bell\",\n title: \"消息提醒\",\n target: \"service\",\n dataComponent: MsgTipHandler\n },\n route: {\n name: \"route\",\n icon: \"right-square\",\n title: \"路由\",\n target: \"service\",\n formStyle: {\n labelSpan: 8\n },\n dataComponent: RouteHandler\n },\n runScript: {\n name: \"runScript\",\n icon: \"function\",\n title: \"执行脚本\",\n target: \"service\",\n formStyle: {\n labelSpan: 8\n },\n dataComponent: RunScriptHandler\n },\n print: {\n name: \"print\",\n title: \"打印\",\n icon: \"printer\",\n dataComponent: PrintHandler,\n target: \"service\",\n },\n exportExcel: {\n name: \"exportExcel\",\n title: \"导出Excel\",\n icon: \"file-excel\",\n dataComponent: ExportExcelHandler,\n target: \"scope\",\n },\n componentsSnapshot: {\n name: \"componentsSnapshot\",\n title: \"组件快照\",\n icon: \"file-image\",\n dataComponent: ComponentsSnapshotHandler,\n target: \"scope\",\n },\n};\n\nexport const baseEventHandlerDescGroups: EventHandlerDescGroup[] = [\n {\n groupName: \"基础\",\n handlerDescs: [\n baseEventHandlerDescs[\"api\"],\n baseEventHandlerDescs[\"setDataSource\"],\n baseEventHandlerDescs[\"refreshDataSource\"],\n baseEventHandlerDescs[\"setValue\"],\n baseEventHandlerDescs[\"getValue\"],\n baseEventHandlerDescs[\"setFocus\"],\n baseEventHandlerDescs[\"arrayFilter\"],\n baseEventHandlerDescs[\"msgTip\"],\n baseEventHandlerDescs[\"route\"],\n baseEventHandlerDescs[\"runScript\"],\n baseEventHandlerDescs[\"print\"],\n baseEventHandlerDescs[\"exportExcel\"],\n baseEventHandlerDescs[\"componentsSnapshot\"],\n ]\n }\n];","import { AfterViewInit, ChangeDetectionStrategy, Component, ComponentRef, computed, ElementRef, forwardRef, inject, Injector, input, model, signal, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzFormatBeforeDropEvent, NzFormatEmitEvent, NzTreeComponent, NzTreeModule, NzTreeNode, NzTreeNodeOptions } from 'ng-zorro-antd/tree';\nimport { BehaviorSubject, map, Observable, of } from 'rxjs';\nimport { baseEventHandlerDescGroups, baseEventHandlerDescs } from '../base-event-handler-descs';\nimport { CommonModule } from '@angular/common';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzFilterOptionType, NzSelectItemInterface, NzSelectModule } from 'ng-zorro-antd/select';\nimport { AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN, AXIS_DESIGN_COMPONENT_REF_GETTER_TOKEN, AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, AXIS_EVENT_HANDLER_DESCS_TOKEN } from '../tokens';\nimport { FunField } from '../fun-field/fun-field';\nimport { FunFieldBase } from '../../base/funfield-base';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { ScopeInfo } from '../../models/design-build';\nimport { EventDesc, EventHandlerDesc, EventHandlerDescGroup } from '../../models/event-desc';\nimport { EventHandlerOptions } from '../../models/event.options';\nimport { TriggeEventsOptions } from '../../models/trigge-events.options';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { updateAndValidAll } from '../../utils/form.util';\nimport { OptionsNode } from '../../models/options-node';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { ValueAccess } from '../../base/value-access';\n\n@Component({\n selector: 'axis-input-trigger',\n imports: [NzCollapseModule, NzFormModule, NzButtonModule, NzIconModule, NzTreeModule, CommonModule, NzModalModule, NzSelectModule, ReactiveFormsModule, FunField, FormsModule, NzSwitchModule, NzFlexModule],\n templateUrl: './input-trigger.html',\n styleUrl: './input-trigger.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputTrigger),\n multi: true\n }\n ]\n})\nexport class InputTrigger extends FunFieldBase implements AfterViewInit {\n\n constructor(private element: ElementRef, private injector: Injector) {\n super();\n }\n\n fg: UntypedFormGroup = this.fb.group({\n name: [undefined, FormValidators.required],\n disabled: [undefined, FormValidators.requiredFun],\n data: [],\n id: [],\n });\n\n protected override funFields: FunFieldOptions = {\n disabled: {\n defaultValue: false\n },\n id: {\n defaultValue: undefined\n },\n\n };\n\n onChange: any;\n readonly noListen = signal(true);\n readonly internalTriggers = input<\"valueChange\"[]>();\n readonly optionsNodeId = input<string>();\n readonly getScopeInfos = inject(AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN);\n readonly componentsInfo = inject(AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN);\n readonly componentRefGetter = inject(AXIS_DESIGN_COMPONENT_REF_GETTER_TOKEN);\n readonly canChooseComponentsInfo = signal<{ component: string, componentName: string, nodes: OptionsNode[], eventHandlerDescs: { [event: string]: EventHandlerDesc } }[]>([]);\n readonly value = model<TriggeEventsOptions>();\n readonly nodes = computed(() => this.makeTreeNode(this.buildAllEventDesc()!, this.value()));\n readonly eventDesc = input<EventDesc[]>();\n readonly allEventDesc = computed(() => this.buildAllEventDesc());\n readonly allEventHanderDescGroups = computed(() => this.buildAllEventHandlerDescGroups());\n readonly allEventHanderDescs = computed(() => this.buildAllEventHandlerDescs());\n readonly showLine = signal(false);\n readonly isVisibleHandlerModal = model(false);\n readonly handlerFunFieldScopes = signal<ScopeInfo[]>([]);\n readonly editEventHandler = model<EventHandlerOptions<any>>();\n readonly treeExpandedKeys = signal<string[]>([]);\n readonly selectedHandlerDesc = signal<EventHandlerDesc | undefined>(undefined);\n readonly otherHandlerDescs = inject(AXIS_EVENT_HANDLER_DESCS_TOKEN, { optional: true });\n @ViewChild(\"tree\")\n tree?: NzTreeComponent;\n @ViewChild(\"dataContainer\", { read: ViewContainerRef })\n dataContainer?: ViewContainerRef;\n @ViewChild(\"idFunField\")\n idFunField?: FunField;\n readonly scopeInfoSubject = computed(() => this.buildScopeInfoSubject());\n\n editInfo?: { key: string, event: string, isAdd: boolean, value?: EventHandlerOptions<any>, parentValue?: EventHandlerOptions<any> };\n\n filterOption: NzFilterOptionType = (input: string, option: NzSelectItemInterface): boolean => {\n if (input) {\n return option.nzValue.includes(input) || option.nzLabel?.toString()?.includes(input);\n }\n return false;\n }\n writeValue(v: any): void {\n this.value.set(v);\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n }\n\n ngAfterViewInit(): void {\n if (this.element.nativeElement.nextElementSibling) {\n this.showLine.set(true);\n }\n }\n\n onDragStart(e: NzFormatEmitEvent): void {\n if (e.node?.origin[\"type\"] == \"event\") {\n e.event?.stopPropagation();\n e.event?.preventDefault();\n const ele = (e.event?.target as HTMLElement);\n ele.draggable = false;\n setTimeout(() => {\n ele.parentElement?.classList.remove(\"dragging\");\n });\n }\n }\n\n beforeDrop = (e: NzFormatBeforeDropEvent): Observable<boolean> => {\n const { dragNode, node, pos } = e;\n if (dragNode.origin[\"type\"] == \"handler\" && node.origin[\"type\"] == \"handler\" && pos != 0 && node.parentNode == dragNode.parentNode) {\n const dragV = dragNode.origin[\"value\"];\n const dropV = node.origin[\"value\"];\n const parentV: any[] = node.parentNode?.origin[\"value\"];\n parentV.splice(parentV.indexOf(dragV), 1);\n parentV.splice(parentV.indexOf(dropV) + (pos == -1 ? 0 : 1), 0, dragV);\n this.onValueChange();\n return of(true);\n }\n return of(false);\n }\n\n private buildAllEventHandlerDescGroups(): EventHandlerDescGroup[] {\n\n const groups = [\n ...baseEventHandlerDescGroups,\n ...this.otherHandlerDescs ?? [],\n ];\n this.componentsInfo.forEach(c => {\n groups.push({\n groupName: c.componentName,\n handlerDescs: Array.from(Object.values(c.eventHandlerDescs))\n });\n });\n return groups;\n }\n\n private buildAllEventHandlerDescs(): { [name: string]: EventHandlerDesc } {\n const descs = {\n ...baseEventHandlerDescs\n };\n if (this.otherHandlerDescs) {\n this.otherHandlerDescs.forEach(g => {\n g.handlerDescs.forEach(d => {\n descs[d.name] = d;\n })\n });\n }\n this.componentsInfo.forEach(c => {\n Object.assign(descs, c.eventHandlerDescs);\n });\n return descs;\n }\n\n private buildAllEventDesc(): EventDesc[] {\n let eventDesc: EventDesc[] = [];\n if (this.eventDesc()) {\n eventDesc = eventDesc.concat(this.eventDesc()!);\n }\n if (this.internalTriggers()) {\n for (const name of this.internalTriggers()!) {\n switch (name) {\n case \"valueChange\":\n eventDesc.push({\n name: \"valueChange\",\n title: \"值变化\",\n ds: (ref: ComponentRef<any> | undefined) => {\n return {\n value: (ref?.instance as ValueAccess<any> | undefined)?.value()\n }\n }\n });\n break;\n }\n }\n }\n return eventDesc;\n }\n\n private makeTreeNode(descs: EventDesc[], value: TriggeEventsOptions | undefined, treeNode: NzTreeNodeOptions[] = [], key = \"\"): NzTreeNodeOptions[] {\n for (const desc of descs) {\n const node: NzTreeNodeOptions = {\n ...desc,\n type: \"event\",\n expanded: true,\n key: key + desc.name,\n isLeaf: !value?.[desc.name]?.length,\n children: [],\n selectable: false,\n value: value?.[desc.name],\n };\n if (!node.isLeaf) {\n for (let i = 0; i < value![desc.name].length; i++) {\n const handler = value![desc.name][i];\n const handlerDesc: EventHandlerDesc | undefined = this.allEventHanderDescs()[handler.name];\n const handlerNode: NzTreeNodeOptions = {\n type: \"handler\",\n expanded: true,\n key: key + desc.name + \".\" + i,\n selectable: false,\n isLeaf: !handlerDesc?.events?.length,\n children: [],\n title: handler.name,\n value: handler\n };\n if (handlerDesc) {\n Object.assign(handlerNode, handlerDesc);\n }\n if (handlerDesc && !handlerNode.isLeaf) {\n this.makeTreeNode(handlerDesc.events!, handler.triggeEvents, handlerNode.children, handlerNode.key + \".\");\n }\n node.children!.push(handlerNode);\n }\n }\n treeNode.push(node);\n }\n return treeNode;\n }\n\n deleteHandler(e: NzTreeNode) {\n const parentValue: any[] = e.parentNode?.origin[\"value\"];\n const value = e.origin[\"value\"];\n if (parentValue && value && parentValue.includes(value)) {\n parentValue.splice(parentValue.indexOf(value), 1);\n }\n this.onValueChange();\n }\n\n private onValueChange(value?: TriggeEventsOptions, expandedKey?: string) {\n this.value.set(value ?? { ...this.value() });\n this.onChange(this.value());\n const expandedKeys = this.tree?.getExpandedNodeList()?.map(n => n.key) ?? [];\n if (expandedKey) {\n expandedKeys.push(expandedKey);\n }\n this.treeExpandedKeys.set(expandedKeys);\n }\n\n startAddHandler(node: NzTreeNode) {\n this.fg.reset(this.buildFunField({}, this.funFields));\n this.editInfo = {\n key: node.key,\n event: node.origin[\"name\"],\n isAdd: true,\n parentValue: node.parentNode?.origin[\"value\"],\n };\n this.handlerFunFieldScopes.set(this.buildHandlerFunFieldScopes(node));\n this.noListen.set(node.origin[\"noListen\"] ?? true);\n this.isVisibleHandlerModal.set(true);\n }\n\n startSetHandler(node: NzTreeNode) {\n this.fg.reset(this.buildFunField(node.origin[\"value\"], this.funFields));\n this.editInfo = {\n key: node.key,\n event: node.parentNode!.origin[\"name\"],\n isAdd: false,\n value: node.origin[\"value\"],\n parentValue: node.parentNode?.origin[\"value\"],\n };\n this.handlerFunFieldScopes.set(this.buildHandlerFunFieldScopes(node));\n this.noListen.set(node.parentNode?.origin[\"noListen\"] ?? true);\n this.isVisibleHandlerModal.set(true);\n }\n\n private buildHandlerFunFieldScopes(node: NzTreeNode, scopes: ScopeInfo[] = []) {\n if (node.origin['type'] == \"event\" && node?.origin[\"ds\"]) {\n let ds = node?.origin[\"ds\"];\n if (ds instanceof Function) {\n let nodeId = this.optionsNodeId();\n if (node.parentNode?.origin['target'] == \"component\") {\n nodeId = node.parentNode.origin[\"value\"].id;\n }\n if (nodeId) {\n ds = ds(this.componentRefGetter(nodeId))\n } else {\n ds = {\n value: \"示例数据\"\n };\n }\n }\n scopes.push({\n scopeId: `__handler_scope_${node.key}__`,\n scopeName: node.title,\n ds\n });\n }\n if (node.parentNode) {\n this.buildHandlerFunFieldScopes(node.parentNode, scopes);\n }\n return scopes;\n }\n\n private buildScopeInfoSubject(scopeId?: string): BehaviorSubject<ScopeInfo[]> {\n const scopeInfos = this.getScopeInfos(scopeId);\n const scopeInfoSubject = new BehaviorSubject<ScopeInfo[]>(this.handlerFunFieldScopes().concat(scopeInfos.value));\n scopeInfos.pipe(map(sis => this.handlerFunFieldScopes().concat(sis))).subscribe(scopeInfoSubject);\n return scopeInfoSubject;\n }\n\n onHandlerChange(name: string | undefined) {\n if (name && name != this.selectedHandlerDesc()?.name) {\n const desc = this.allEventHanderDescs()[name];\n this.selectedHandlerDesc.set(desc);\n const idCtrl = this.fg.get(\"id\")!;\n if (desc.target == \"component\") {\n let canChooseComponentsInfo = this.componentsInfo;\n if (desc.targetComponent) {\n canChooseComponentsInfo = canChooseComponentsInfo.filter(info => info.component == desc.targetComponent);\n }\n this.canChooseComponentsInfo.set(canChooseComponentsInfo);\n idCtrl.setValidators(FormValidators.requiredFun);\n } else if (desc.target == \"scope\") {\n idCtrl.clearValidators();\n const scopes = this.scopeInfoSubject().value?.filter(s => s.scopeId.startsWith(\"__handler_scope__\"));\n if (scopes?.length) {\n const { funMode, originValue } = idCtrl.value;\n if (!funMode && !originValue) {\n this.reset({ id: scopes[0].scopeId })\n }\n }\n } else {\n idCtrl.clearValidators();\n }\n this.dataContainer?.clear();\n if (desc.dataComponent) {\n const injector = Injector.create({\n providers: [\n { provide: AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, useValue: (scopeId?: string) => this.buildScopeInfoSubject(scopeId) },\n { provide: InputTrigger, useValue: this }\n ],\n parent: this.injector\n })\n const r = this.dataContainer?.createComponent(desc.dataComponent, { injector: injector });\n r?.instance?.writeValue(this.fg.value?.data);\n const control = this.fb.control(this.fg.value?.data, [() => {\n return r?.instance.valid() ? null : {\n invalid: true\n };\n }]);\n r?.instance.registerOnChange((v: any) => control.setValue(v));\n this.fg.setControl('data', control, { emitEvent: false });\n }\n }\n }\n\n onSetHandlerOk() {\n if (updateAndValidAll(this.fg)) {\n let value = this.value() ?? {};\n const formValue = this.recoverFunField(this.fg.value, this.funFields);\n formValue.target = this.selectedHandlerDesc()!.target;\n if (this.editInfo?.isAdd) {\n let array: EventHandlerOptions<any>[];\n if (this.editInfo?.parentValue) {\n if (!this.editInfo.parentValue.triggeEvents?.[this.editInfo.event]) {\n this.editInfo.parentValue.triggeEvents = {\n [this.editInfo.event]: []\n }\n }\n array = this.editInfo.parentValue.triggeEvents[this.editInfo.event];\n } else {\n if (!value[this.editInfo.event]) {\n value[this.editInfo.event] = [];\n }\n array = value[this.editInfo.event];\n }\n array.push(formValue);\n } else {\n Object.keys(this.funFields).forEach(k => {\n delete (this.editInfo!.value as any)[k];\n delete (this.editInfo!.value as any)[`$${k}`];\n })\n Object.assign(this.editInfo!.value!, formValue);\n }\n this.isVisibleHandlerModal.set(false);\n this.onValueChange({ ...value }, this.editInfo?.key);\n } else {\n Object.values(this.fg.controls).forEach(control => {\n if (control.invalid) {\n control.markAsDirty();\n control.updateValueAndValidity({ onlySelf: true });\n }\n });\n }\n }\n\n resetSetHandler(): void {\n this.fg.reset();\n this.selectedHandlerDesc.set(undefined);\n this.editInfo = undefined;\n }\n\n hasExpanded(node: NzTreeNode): boolean {\n return node.isExpanded || node.children.some(c => this.hasExpanded(c));\n }\n\n expand(node: NzTreeNode, expanded: boolean) {\n node.isExpanded = expanded;\n node.children.forEach(c => this.expand(c, expanded));\n }\n\n}","<nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel #panel nzHeader=\"事件设置\">\n @if (panel.active()) {\n <nz-tree #tree [nzData]=\"nodes()\" nzDraggable nzBlockNode [nzTreeTemplate]=\"nodeTemp\"\n [nzExpandedKeys]=\"treeExpandedKeys()\" (nzOnDragStart)=\"onDragStart($event)\" [nzBeforeDrop]=\"beforeDrop\"\n nzExpandAll></nz-tree>\n }\n </nz-collapse-panel>\n @if (showLine()) {\n <div></div>\n }\n</nz-collapse>\n\n<ng-template #nodeTemp let-node>\n <nz-flex nzAlign=\"center\" style=\"width: 100%;\" nzGap=\"4px\">\n @switch (node.origin.type) {\n @case (\"event\") {\n <div style=\"white-space: nowrap;\">{{node.title}}</div>\n <button nz-button nzType=\"link\" nzSize=\"small\" (click)=\"startAddHandler(node)\"><nz-icon\n nzType=\"plus\"></nz-icon>操作</button>\n @if (node.children.length) {\n <button class=\"expand-button\" nz-button nzType=\"text\" nzSize=\"small\" nzShape=\"circle\"\n (click)=\"expand(node,!hasExpanded(node))\"><nz-icon\n [nzType]=\"hasExpanded(node)?'shrink':'arrows-alt'\"></nz-icon></button>\n }\n }\n @case (\"handler\") {\n <nz-icon style=\"cursor: move;\" nzType=\"holder\" nzTheme=\"outline\" />\n <button nz-button nzType=\"link\" nzSize=\"small\" (click)=\"startSetHandler(node)\">\n <nz-icon [nzType]=\"node.icon\" nzTheme=\"outline\" />\n <span style=\"text-decoration: underline;white-space: nowrap;\">{{node.title}}</span>\n </button>\n <button nz-button nzType=\"link\" nzDanger nzSize=\"small\" (click)=\"deleteHandler(node)\"><nz-icon\n nzType=\"delete\"></nz-icon></button>\n @if (node.children.length) {\n <button class=\"expand-button\" nz-button nzType=\"text\" nzSize=\"small\" nzShape=\"circle\"\n (click)=\"expand(node,!hasExpanded(node))\"><nz-icon\n [nzType]=\"hasExpanded(node)?'shrink':'arrows-alt'\"></nz-icon></button>\n }\n }\n }\n </nz-flex>\n</ng-template>\n\n<nz-modal [nzWidth]=\"selectedHandlerDesc()?.formStyle?.width ?? '500px'\" [(nzVisible)]=\"isVisibleHandlerModal\"\n nzDraggable nzTitle=\"设置事件操作\" (nzOnCancel)=\"isVisibleHandlerModal.set(false)\" (nzOnOk)=\"onSetHandlerOk()\"\n (nzAfterClose)=\"resetSetHandler()\" (nzAfterOpen)=\"onHandlerChange(fg.value.name)\">\n <ng-container *nzModalContent>\n <form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label [nzSpan]=\"selectedHandlerDesc()?.formStyle?.labelSpan ?? 6\" nzRequired>操作</nz-form-label>\n <nz-form-control [nzSpan]=\"24 - (selectedHandlerDesc()?.formStyle?.labelSpan ?? 6)\">\n <nz-select formControlName=\"name\" nzShowSearch nzPlaceHolder=\"选择操作\" [nzFilterOption]=\"filterOption\"\n (ngModelChange)=\"onHandlerChange($event)\">\n @for (item of allEventHanderDescGroups(); track item.groupName) {\n <nz-option-group [nzLabel]=\"item.groupName\">\n @for (item of item.handlerDescs; track item.name) {\n <nz-option nzCustomContent [nzValue]=\"item.name\" [nzLabel]=\"item.title\">\n @if (item.icon) {\n <nz-icon [nzType]=\"item.icon\" />\n }\n {{item.title}}\n </nz-option>\n }\n </nz-option-group>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSpan]=\"selectedHandlerDesc()?.formStyle?.labelSpan ?? 6\" nzRequired>禁用</nz-form-label>\n <nz-form-control [nzSpan]=\"24 - (selectedHandlerDesc()?.formStyle?.labelSpan ?? 6)\">\n <axis-fun-field formControlName=\"disabled\" [noListen]=\"noListen()\"\n [scopes]=\"handlerFunFieldScopes()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (selectedHandlerDesc()?.target == \"component\") {\n <nz-form-item>\n <nz-form-label [nzSpan]=\"selectedHandlerDesc()?.formStyle?.labelSpan ?? 6\" nzRequired>目标</nz-form-label>\n <nz-form-control [nzSpan]=\"24 - (selectedHandlerDesc()?.formStyle?.labelSpan ?? 6)\">\n <axis-fun-field #idFunField formControlName=\"id\" [noListen]=\"noListen()\"\n [scopes]=\"handlerFunFieldScopes()\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\" nzShowSearch>\n @for (component of canChooseComponentsInfo(); track component.componentName) {\n <nz-option-group [nzLabel]=\"component.componentName\">\n @for(node of component.nodes; track node.id){\n <nz-option [nzLabel]=\"node.id\" [nzValue]=\"node.id\"></nz-option>\n }\n </nz-option-group>\n }\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }@else if (selectedHandlerDesc()?.target == \"scope\") {\n <nz-form-item>\n <nz-form-label [nzSpan]=\"selectedHandlerDesc()?.formStyle?.labelSpan ?? 6\">目标域</nz-form-label>\n <nz-form-control [nzSpan]=\"24 - (selectedHandlerDesc()?.formStyle?.labelSpan ?? 6)\">\n <axis-fun-field formControlName=\"id\" [noListen]=\"noListen()\" [scopes]=\"handlerFunFieldScopes()\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\" nzShowSearch nzAllowClear\n nzPlaceHolder=\"默认当前域\">\n @for (scope of scopeInfoSubject().value; track scope.scopeId) {\n @if (!scope.scopeId.startsWith(\"__handler_scope_\")) {\n <nz-option [nzLabel]=\"scope.scopeName\" [nzValue]=\"scope.scopeId\"></nz-option>\n }\n }\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n <ng-container #dataContainer></ng-container>\n </form>\n </ng-container>\n</nz-modal>","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, input, signal } from '@angular/core';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { FormValidators } from '../../utils/form-validators';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { FunFieldOptions } from '../../models/fun-field.options';\n\n@Component({\n selector: 'axis-value-design-setting',\n imports: [NzCollapseModule, NzFormModule, FunField, NzSwitchModule, FormsModule, NzInputModule, ReactiveFormsModule, DynamicDirective, NzSelectModule],\n templateUrl: './value-design-setting.html',\n styleUrl: './value-design-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ValueDesignSetting implements AfterViewInit {\n\n constructor(private element: ElementRef) { }\n\n readonly showLine = signal(false);\n readonly scopeId = input<string>();\n readonly exclude = input<string[]>([]);\n\n fg = input.required<UntypedFormGroup>();\n\n ngAfterViewInit(): void {\n if (this.element.nativeElement.nextElementSibling) {\n this.showLine.set(true);\n }\n }\n}\n\nexport const valueFbConfig = {\n initValue: [],\n emitInitEvent: [true, FormValidators.required],\n disabled: [undefined, [FormValidators.requiredFun]],\n readonly: [undefined, [FormValidators.requiredFun]],\n};\n\nexport const valueFunField: FunFieldOptions = {\n initValue: {\n defaultValue: undefined\n },\n disabled: {\n defaultValue: false\n },\n readonly: {\n defaultValue: false\n }\n}","<form [formGroup]=\"fg()\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"值组件设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 初始值\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"initValue\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 初始事件\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-switch formControlName=\"emitInitEvent\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 禁用\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"disabled\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 只读\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"readonly\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n @if (showLine()) {\n <div></div>\n }\n </nz-collapse>\n</form>","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NzDropdownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { CommonMenu } from '../common-menu/common-menu';\nimport { BaseMenu } from '../../base/base-menu';\n\n@Component({\n selector: 'axis-design-simple-menu',\n imports: [NzDropdownModule, NzIconModule, CommonMenu],\n templateUrl: './simple-menu.html',\n styleUrl: './simple-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SimpleMenu extends BaseMenu {\n\n\n}\n","<nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu>\n <axis-common-menu [baseMenu]=\"this\"></axis-common-menu>\n </ul>\n</nz-dropdown-menu>","import { ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, model, signal } from \"@angular/core\";\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from \"@angular/forms\";\nimport { NzGridModule } from \"ng-zorro-antd/grid\";\nimport { NzIconModule } from \"ng-zorro-antd/icon\";\nimport { NzListModule } from \"ng-zorro-antd/list\";\nimport { NzSpaceModule } from \"ng-zorro-antd/space\";\nimport { NzTagModule } from \"ng-zorro-antd/tag\";\nimport { NzEmptyModule } from \"ng-zorro-antd/empty\";\nimport { NzButtonModule } from \"ng-zorro-antd/button\";\nimport { NzModalModule } from \"ng-zorro-antd/modal\";\nimport { NzCollapseModule } from \"ng-zorro-antd/collapse\";\nimport { NzFormModule } from \"ng-zorro-antd/form\";\nimport { NzSelectModule } from \"ng-zorro-antd/select\";\nimport { NzInputModule } from \"ng-zorro-antd/input\";\nimport { NzSwitchModule } from \"ng-zorro-antd/switch\";\nimport { CommonModule } from \"@angular/common\";\nimport { NzFlexModule } from \"ng-zorro-antd/flex\";\nimport { NzInputNumberModule } from \"ng-zorro-antd/input-number\";\nimport { FunFieldBase } from \"../../base/funfield-base\";\nimport { FormValidators } from \"../../utils/form-validators\";\nimport { FunFieldOptions } from \"../../models/fun-field.options\";\nimport { updateAndValidAll } from \"../../utils/form.util\";\nimport { copy } from \"../../utils/object.util\";\nimport { FunField } from \"../fun-field/fun-field\";\n\n@Component({\n selector: 'axis-input-validator',\n imports: [NzListModule, NzTagModule, NzSpaceModule, NzGridModule, NzIconModule, NzEmptyModule, NzButtonModule, NzModalModule, FormsModule, NzCollapseModule, NzFormModule, ReactiveFormsModule, FunField, NzSelectModule, NzInputModule, NzSwitchModule, CommonModule, NzFlexModule, NzInputNumberModule],\n templateUrl: './input-validator.html',\n styleUrl: './input-validator.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputValidator),\n multi: true\n },\n ]\n})\nexport class InputValidator extends FunFieldBase implements ControlValueAccessor {\n\n constructor(private element: ElementRef) {\n super();\n }\n\n readonly value = model<any[]>();\n readonly showLine = signal(false);\n onChange: any;\n editIndex = -1;\n readonly showModal = model(false);\n readonly validatorDesc = computed(() => this.buildValidatorsDesc());\n\n override fg: UntypedFormGroup = this.fb.group({\n type: [\"required\", FormValidators.required],\n disabled: [undefined, FormValidators.requiredFun],\n minLength: [],\n maxLength: [],\n minValue: [],\n maxValue: [],\n pattern: [],\n });\n\n protected override funFields: FunFieldOptions = {\n disabled: {\n defaultValue: false\n },\n minLength: {\n defaultValue: null\n },\n maxLength: {\n defaultValue: null\n },\n minValue: {\n defaultValue: null\n },\n maxValue: {\n defaultValue: null\n },\n pattern: {\n defaultValue: \"\"\n }\n };\n\n writeValue(v: any): void {\n this.value.set(v);\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void { }\n\n ngAfterViewInit(): void {\n if (this.element.nativeElement.nextElementSibling) {\n this.showLine.set(true);\n }\n }\n\n private buildValidatorsDesc(): string[] | undefined {\n return this.value()?.map(v => {\n switch (v.type) {\n case \"required\":\n return \"此项必填\";\n case \"length\":\n return `长度范围:${this.wrapNumberField(v, \"minLength\")} ~ ${this.wrapNumberField(v, \"maxLength\")}`;\n case \"value\":\n return `值范围:${this.wrapNumberField(v, \"minValue\")} ~ ${this.wrapNumberField(v, \"maxValue\")}`;\n case \"regex\":\n return `表达式:${this.wrapFunField(v, \"pattern\")}`;\n default:\n return \"\";\n }\n })\n }\n\n private wrapFunField(obj: any, field: string): any {\n if (obj.hasOwnProperty(`$${field}`)) {\n return \"[动态值]\";\n }\n return obj[field];\n }\n\n private wrapNumberField(obj: any, field: string): any {\n const value = this.wrapFunField(obj, field);\n if (typeof value != \"number\" && !value) {\n return \"[不限制]\";\n }\n return value;\n }\n\n openWithCreate() {\n this.editIndex = -1;\n this.reset();\n this.showModal.set(true);\n }\n\n openWithUpdate(index: number) {\n this.editIndex = index;\n this.reset(this.value()![this.editIndex]);\n this.showModal.set(true);\n }\n\n save() {\n if (updateAndValidAll(this.fg)) {\n const nextValue = copy(this.value() ?? [], true);\n const validator = this.recoverFunField(this.fg.value)\n if (this.editIndex == -1) {\n nextValue.push(validator);\n } else {\n nextValue[this.editIndex] = validator;\n }\n this.showModal.set(false);\n this.value.set(nextValue);\n this.onChange(this.value());\n }\n }\n\n deleteValidator(index: number) {\n this.value()!.splice(index, 1);\n this.value.set([...this.value()!]);\n this.onChange(this.value());\n }\n\n}","<nz-collapse [nzBordered]=\"false\">\n <ng-template #addButton>\n <a nz-button nzType=\"link\" style=\"float: right;\" (click)=\"$event.stopPropagation();openWithCreate()\">\n <nz-icon nzType=\"plus\"></nz-icon>\n 添加\n </a>\n </ng-template>\n <nz-collapse-panel nzHeader=\"表单项验证\" nzActive [nzExtra]=\"addButton\">\n @if (!value()?.length) {\n <nz-empty nzNotFoundContent=\"暂无验证器\"></nz-empty>\n }@else{\n <div nz-flex nzVertical nzGap=\"8px\" style=\"padding: 6px;\">\n @for (item of value()??[]; track item;let i=$index) {\n <div nz-flex nzGap=\"8px\" nzAlign=\"center\">\n <div style=\"width: 64px;\">\n @switch (item.type) {\n @case (\"required\") {\n <nz-tag nzColor=\"magenta\">必填验证</nz-tag>\n }\n @case (\"length\") {\n <nz-tag nzColor=\"blue\">长度验证</nz-tag>\n }\n @case (\"value\") {\n <nz-tag nzColor=\"purple\">值验证</nz-tag>\n }\n @case (\"regex\") {\n <nz-tag nzColor=\"cyan\">正则验证</nz-tag>\n }\n }\n </div>\n <div class=\"validator-desc\">{{validatorDesc()?.[i]}}</div>\n <div>\n <a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"openWithUpdate(i)\">\n <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>\n </a>\n <a nz-button nzType=\"link\" nzSize=\"small\" nzDanger (click)=\"deleteValidator(i)\">\n <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>\n </a>\n </div>\n </div>\n }\n </div>\n }\n </nz-collapse-panel>\n @if (showLine()) {\n <div></div>\n }\n</nz-collapse>\n\n<nz-modal [(nzVisible)]=\"showModal\" nzTitle=\"验证器\" nzWidth=\"450px\" (nzOnCancel)=\"showModal.set(false)\" (nzOnOk)=\"save()\">\n <ng-container *nzModalContent>\n <form [formGroup]=\"fg\" nz-form>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 验证类型\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <nz-select formControlName=\"type\">\n <nz-option nzValue=\"required\" nzLabel=\"必填验证\"></nz-option>\n <nz-option nzValue=\"length\" nzLabel=\"长度验证\"></nz-option>\n <nz-option nzValue=\"value\" nzLabel=\"值验证\"></nz-option>\n <nz-option nzValue=\"regex\" nzLabel=\"正则验证\"></nz-option>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 禁用\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"disabled\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @switch (fg.value.type) {\n @case (\"length\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 最小长度\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"minLength\">\n <nz-input-number style=\"width: 100%\" nzPlaceHolder=\"不限制\" nzMin=\"0\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 最大长度\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"maxLength\">\n <nz-input-number style=\"width: 100%\" nzPlaceHolder=\"不限制\" nzMin=\"0\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n @case (\"value\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 最小值\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"minValue\">\n <nz-input-number style=\"width: 100%\" nzPlaceHolder=\"不限制\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 最大值\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"maxValue\">\n <nz-input-number style=\"width: 100%\" nzPlaceHolder=\"不限制\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n @case (\"regex\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 正则表达式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"pattern\">\n <input nz-input nzPlaceHolder=\"输入正则表达式\" ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n </form>\n </ng-container>\n</nz-modal>","import { inject, Injectable } from \"@angular/core\";\nimport { AXIS_COMPONENTS_TOKEN } from \"../share/tokens\";\n\n@Injectable()\nexport class ComponentsLoader {\n\n private readonly components = inject(AXIS_COMPONENTS_TOKEN);\n private readonly loadedMap = new Map<string, any>();\n private readonly loadingMap = new Map<string, Promise<any>>();\n\n loadComponent(component: string): Promise<any> {\n if (this.loadedMap.has(component)) {\n return Promise.resolve(this.loadedMap.get(component)!);\n }\n if (this.loadingMap.has(component)) {\n return this.loadingMap.get(component)!;\n }\n if (!this.components[component]) {\n return Promise.reject(`component ${component} not found`)\n }\n this.loadingMap.set(component, this.components[component]().then(module => {\n const m = module[Object.keys(module)[0]];\n this.loadedMap.set(component, m);\n this.loadingMap.delete(component);\n return m;\n }));\n return this.loadingMap.get(component)!;\n }\n}","export function codeName(code?: string, name?: string): string {\n if (code && name) {\n return `[${code}]${name}`\n }\n if (code) {\n return `[${code}]`\n }\n return name || \"\";\n}\n\nexport function nameCode(name?: string, code?: string): string {\n if (code && name) {\n return `${name}[${code}]`\n }\n if (code) {\n return `[${code}]`\n }\n return name || \"\";\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2","i5","i9","i13","i15","i4","i6","i7","i8","i10","i11","i12"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-axis-appforge-core.mjs","sources":["../../../core/share/tokens.ts","../../../core/utils/dynamic.util.ts","../../../core/utils/scripts-loader.ts","../../../core/base/design-builder.ts","../../../core/utils/http.util.ts","../../../core/utils/object.util.ts","../../../core/directives/scope.ts","../../../core/share/events-handler.service.ts","../../../core/base/base.ts","../../../core/base/value-access.ts","../../../core/base/base-menu.ts","../../../core/utils/form.util.ts","../../../core/base/funfield-base.ts","../../../core/base/funfield-value-base.ts","../../../core/directives/dynamic.ts","../../../core/pipes/how-long.pipe.ts","../../../core/models/base.options.ts","../../../core/models/value-access.options.ts","../../../core/models/options-node.ts","../../../core/models/data.options.ts","../../../core/share/common-menu/common-menu.ts","../../../core/share/common-menu/common-menu.html","../../../core/utils/declaration.util.ts","../../../core/share/fun-field/fun-field.ts","../../../core/share/fun-field/fun-field.html","../../../core/utils/form-validators.ts","../../../core/share/base-design-setting/base-design-setting.ts","../../../core/share/base-design-setting/base-design-setting.html","../../../core/share/api-handler/api-handler.ts","../../../core/share/api-handler/api-handler.html","../../../core/share/array-filter-handler/input-filter-options/filter-options.ts","../../../core/share/array-filter-handler/input-filter-options/filter-options.html","../../../core/share/array-filter-handler/array-filter-handler.ts","../../../core/share/array-filter-handler/array-filter-handler.html","../../../core/share/components-snapshot-handler/components-snapshot-handler.ts","../../../core/share/components-snapshot-handler/components-snapshot-handler.html","../../../core/share/data-handler/data-handler.ts","../../../core/share/data-handler/data-handler.html","../../../core/share/export-excel-handler/sheets.options.ts","../../../core/share/export-excel-handler/export-excel-handler.ts","../../../core/share/export-excel-handler/export-excel-handler.html","../../../core/share/msg-tip-handler/msg-tip-handler.ts","../../../core/share/msg-tip-handler/msg-tip-handler.html","../../../core/share/print-handler/print-handler.ts","../../../core/share/print-handler/print-handler.html","../../../core/share/refresh-data-source-handler/refresh-data-source-handler.ts","../../../core/share/refresh-data-source-handler/refresh-data-source-handler.html","../../../core/share/route-handler/route-handler.ts","../../../core/share/route-handler/route-handler.html","../../../core/share/run-script-handler/run-script-handler.ts","../../../core/share/run-script-handler/run-script-handler.html","../../../core/share/set-data-source-handler/set-data-source-handler.ts","../../../core/share/set-data-source-handler/set-data-source-handler.html","../../../core/share/base-event-handler-descs.ts","../../../core/share/input-trigger/input-trigger.ts","../../../core/share/input-trigger/input-trigger.html","../../../core/share/value-design-setting/value-design-setting.ts","../../../core/share/value-design-setting/value-design-setting.html","../../../core/share/simple-menu/simple-menu.ts","../../../core/share/simple-menu/simple-menu.html","../../../core/share/input-validator/input-validator.ts","../../../core/share/input-validator/input-validator.html","../../../core/utils/components-loader.ts","../../../core/utils/code-name.util.ts","../../../core/ngx-axis-appforge-core.ts"],"sourcesContent":["import { ComponentRef, InjectionToken, Type } from \"@angular/core\";\nimport { ScopeInfo } from \"../models/design-build\";\nimport { OptionsNode } from \"../models/options-node\";\nimport { ComponentsLoader } from \"../utils/components-loader\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { EventHandlerDesc, EventHandlerDescGroup } from \"../models/event-desc\";\nimport { RegisteFormControlOptions } from \"../models/form-registe.options\";\nimport { DesignConfig } from \"../models/design-config\";\nimport { ExampleGroup } from \"../models/examples\";\nimport { EventsHandler } from \"../models/event-handler\";\nimport { HttpContextToken } from \"@angular/common/http\";\nimport { Base } from \"../base/base\";\nimport { BaseOptions } from \"../models/base.options\";\nimport { ControlValueAccessor } from \"@angular/forms\";\n\nexport const AXIS_DESIGN_OPTIONS_NODE_FOR_MENU = new InjectionToken<{ current: OptionsNode, parent?: OptionsNode }>('axis.design.optionsNodeForMenu');\nexport const AXIS_DESIGN_CAN_LOOP_TOKEN = new InjectionToken<boolean>('axis.design.canLoop');\nexport const AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN = new InjectionToken<(scopeId?: string) => BehaviorSubject<ScopeInfo[]>>('axis.design.scopeInfosGetter');\nexport const AXIS_DESIGN_SCOPE_INFOS_REFRESH_TOKEN = new InjectionToken<BehaviorSubject<string | undefined>>('axis.design.scopeInfosRefresh');\nexport const AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN = new InjectionToken<{ component: string, componentName: string, nodes: OptionsNode[], eventHandlerDescs: { [event: string]: EventHandlerDesc } }[]>('axis.design.componentInfoForSetting');\nexport const AXIS_DESIGN_COMPONENT_REF_FOR_SETTING_TOKEN = new InjectionToken<{ ref?: ComponentRef<Base<BaseOptions>>, options: any }>('axis.design.componentRefForSetting');\nexport const AXIS_DESIGN_COMPONENT_REF_GETTER_TOKEN = new InjectionToken<(nodeId: string) => ComponentRef<Base<BaseOptions>>>('axis.design.componentRefGetter');\nexport const AXIS_DESIGN_ALL_PERMISSIONS_TOKEN = new InjectionToken<{ [permission: string]: string }>('axis.design.allPermissions');\nexport const AXIS_DESIGN_CHOOSE_COMPONENT_FUNC_TOKEN = new InjectionToken<(...tags: string[]) => Observable<{ options?: any, config?: DesignConfig }>>('axis.design.chooseComponentFunc');\nexport const AXIS_DESIGN_CMPLIBS_TOKEN = new InjectionToken<{ libName: string, lib: ExampleGroup[] }[]>('axis.design.cmplibs');\n\nexport const AXIS_COMPONENTS_TOKEN = new InjectionToken<{ [module: string]: () => Promise<any> }>('axis.components');\nexport const AXIS_COMPONENTS_LOADER_TOKEN = new InjectionToken<ComponentsLoader>('axis.componentsLoader');\nexport const AXIS_SCRIPTS_TOKEN = new InjectionToken<{ [name: string]: string }>('axis.scripts');\nexport const AXIS_EVENT_HANDLERS_TOKEN = new InjectionToken<EventsHandler[]>('axis.eventHandlers');\nexport const AXIS_EVENT_HANDLER_DESCS_TOKEN = new InjectionToken<EventHandlerDescGroup[]>('axis.eventHandlersDescs');\nexport const AXIS_INJECT_DATA_TOKEN = new InjectionToken<any>('axis.injectData');\nexport const AXIS_INJECT_FUNC_TOKEN = new InjectionToken<{ [name: string]: (Function | { func: Function, type: string }) } | BehaviorSubject<{ [name: string]: (Function | { func: Function, type: string }) }>>('axis.injectFunc');\nexport const AXIS_CURRENT_USER_PERMISSIONS_TOKEN = new InjectionToken<string[]>('axis.currentUserPermissions');\nexport const AXIS_HTTP_CONTEXT_DATA_TOKEN = new InjectionToken<{ [key: string]: any } | BehaviorSubject<any>>('axis.httpContextData');\nexport const AXIS_ROUTE_STATE_COMPONENT_TOKEN = new InjectionToken<Type<ControlValueAccessor>>('axis.routeStateComponent');\n\nexport const AXIS_FORM_REGISTE_CONTROL_TOKEN = new InjectionToken<(opt: RegisteFormControlOptions) => void>('axis.form.registeControl');\nexport const AXIS_FORM_UNREGISTE_CONTROL_TOKEN = new InjectionToken<(opt: string) => void>('axis.form.unregisteControl');\n\nexport const AXIS_FILE_BASE_URL_TOKEN = new InjectionToken<string | BehaviorSubject<string>>('axis.fileBaseUrl');\nexport const AXIS_HTTP_CONTEXT_TOKEN = new HttpContextToken<{ [key: string]: any }>(() => ({}));\n","\nexport interface DynamicFnOptions {\n fnBody?: string;\n args?: any[] | object;\n}\n\nconst notDefinedRegDefault = /^(.*) is not defined$/;\nconst notDefinedRegIOS = /^Can't find variable: (.*)$/;\nexport function fn(fnBody: string, argsObj: any, ignoreUndefined = false, printError = true) {\n let argsName: string[] = [];\n let args: any[] = [];\n if (argsObj) {\n argsName = Object.keys(argsObj);\n args = argsName.map(n => argsObj[n]);\n }\n while (true) {\n try {\n const fun = new Function(...argsName, fnBody);\n if (fun && fun instanceof Function) {\n return fun(...args);\n } else if (printError) {\n _consoleError(fnBody, args, argsName);\n }\n } catch (e) {\n if (ignoreUndefined && e instanceof ReferenceError && (notDefinedRegDefault.test(e.message) || notDefinedRegIOS.test(e.message))) {\n const defaultMatch = notDefinedRegDefault.exec(e.message);\n const iosMatch = notDefinedRegIOS.exec(e.message);\n if (defaultMatch) {\n argsName.push(defaultMatch[1]);\n continue;\n } else if (iosMatch && iosMatch[1]) {\n argsName.push(iosMatch[1]);\n continue;\n }\n }\n if (printError) {\n _consoleError(fnBody, args, argsName, e as Error);\n }\n }\n return null;\n }\n\n}\n\nfunction _consoleError(fnBody: string, args: any[], argsName: string[], e?: Error) {\n let ds: any[] = [];\n args.forEach((e, i) => {\n ds[i] = { name: argsName[i], value: e };\n });\n console.groupCollapsed(`%c 函数${e ? '编译' : '执行'}失败`, \"color:red\");\n if (e) {\n console.error(\"失败原因\", e.message);\n }\n console.log(\"函数体\", fnBody);\n console.log(\"数据源\", ds);\n console.groupEnd();\n}","const loadedMap = new Map<string, any>();\nconst loadingMap = new Map<string, Promise<any>>();\n\nexport function loadScripts(path: string): Promise<string> {\n if (loadedMap.has(path)) {\n return Promise.resolve(loadedMap.get(path)!);\n }\n if (loadingMap.has(path)) {\n return loadingMap.get(path)!;\n }\n loadingMap.set(path, downloadScript(path).then(script => {\n loadedMap.set(path, script);\n loadingMap.delete(path);\n return script;\n }));\n return loadingMap.get(path)!;\n}\n\nexport function syncLoadScript(path: string): string | undefined {\n return loadedMap.get(path);\n}\n\nasync function downloadScript(path: string): Promise<any> {\n return await (await fetch(path)).text();\n}","import { ComponentRef } from \"@angular/core\";\nimport { ScopeDirective } from \"../directives/scope\";\n\nexport class DesignBuilder {\n\n constructor(public buildElement: (ref: ComponentRef<any>, options: any) => void, public buildScope: (scope: ScopeDirective) => void) { }\n\n}","import { HttpClient, HttpContext, HttpEventType, HttpRequest } from \"@angular/common/http\";\nimport { ApiOptions } from \"../models/api.options\";\nimport { map, catchError, of, Observable, BehaviorSubject, filter } from \"rxjs\";\nimport { AXIS_HTTP_CONTEXT_TOKEN } from \"../share/tokens\";\n\nexport function sendApi(opt: ApiOptions, http: HttpClient): Observable<any> {\n let contextData: any;\n if (opt.context) {\n if (opt.context instanceof BehaviorSubject) {\n contextData = opt.context.value;\n } else {\n contextData = opt.context;\n }\n }\n let context: HttpContext | undefined;\n if (contextData) {\n context = new HttpContext().set(AXIS_HTTP_CONTEXT_TOKEN, contextData);\n }\n return http.request(new HttpRequest(opt.method?.toUpperCase() as any || \"GET\", opt.url, opt.body, { context: context }))\n .pipe(filter(e => e.type == HttpEventType.Response), map((h: any) => h.body), catchError(e => of(undefined)));\n}","export function listSort(list: Array<any>, compareField: string, reverse: boolean = false) {\n const type = typeof list.map(e => e[compareField]).find(e => e != null);\n const factor = reverse ? -1 : 1;\n if (type == \"number\") {\n list.sort((a, b) => (a[compareField] - b[compareField]) * factor);\n } else if (type == \"string\") {\n list.sort((a, b) => ((a[compareField] || \"\") + \"\").localeCompare(b[compareField]) * factor);\n }\n}\n\nexport function trackByFn(trackByField: string) {\n return (index: number, item: any) => {\n return item[trackByField];\n }\n}\n\nexport function copy(obj: any, deepCopy = false) {\n let newobj = obj;\n if (obj instanceof Array) {\n newobj = [];\n obj.forEach((item, i) => {\n try {\n newobj[i] = copy(item, deepCopy);\n } catch (e) {\n console.error(\"复制对象失败\", obj);\n }\n });\n } else if (obj instanceof Object) {\n newobj = Object.assign({}, obj);\n if (deepCopy) {\n for (const n in newobj) {\n if (newobj[n] instanceof Object) {\n newobj[n] = copy(newobj[n], deepCopy);\n }\n }\n }\n }\n return newobj;\n}\n\nexport function deepMerge(...objs: any[]) {\n const temp: any = {};\n objs = objs.filter(e => e);\n objs.forEach(o => {\n Object.keys(o).filter(k => o[k] != null && typeof o[k] == \"object\" && !(o[k] instanceof Array)).forEach(k => {\n if (!temp.hasOwnProperty(k)) {\n temp[k] = {};\n }\n temp[k] = deepMerge(temp[k], o[k]);\n });\n });\n objs.push(temp);\n return Object.assign({}, ...objs);\n}\n\nexport function obj2Arr(obj: any) {\n const arr = [];\n if (obj) {\n for (let n in obj) {\n arr.push(obj[n]);\n }\n }\n return arr;\n}\n\nexport function recursionArray(arr: any[], options: { childrenField?: string, before?: (node: any, level: number, parent?: any) => boolean | void, after?: (node: any, level: number, parent?: any) => boolean | void }, offsetLevel = 0, parent?: any): boolean | void {\n const childrenField = options.childrenField ?? \"children\";\n if (options.before || options.after) {\n for (let i = 0; i < arr.length; i++) {\n const n = arr[i];\n let ctn = options.before?.(n, offsetLevel, parent);\n if (ctn === false) {\n return;\n }\n if (Array.isArray(n[childrenField])) {\n if (recursionArray(n[childrenField], options, offsetLevel + 1, n) === false) {\n return false;\n }\n }\n ctn = options.after?.(n, offsetLevel, parent);\n if (ctn === false) {\n return;\n }\n }\n }\n}\n\nexport function recursionObject(obj: any, handler: (keys: string[], value: any, parent: any) => void, keys: string[] = [], parent?: any) {\n if (!obj) {\n handler(keys, obj, parent);\n } else if (obj instanceof Array) {\n obj.forEach((v, i) => {\n const nextKeys: string[] = ([] as string[]).concat(keys);\n nextKeys.push(i.toString());\n recursionObject(v, handler, nextKeys, obj);\n });\n } else if (typeof (obj) == \"object\") {\n Object.keys(obj).forEach(k => {\n const nextKeys: string[] = ([] as string[]).concat(keys);\n nextKeys.push(k);\n recursionObject(obj[k], handler, nextKeys, obj);\n });\n } else {\n handler(keys, obj, parent);\n }\n}\n\nexport function rebuildObject(targetObj: any, sourceObj: any) {\n if (sourceObj) {\n if (!targetObj) {\n targetObj = {};\n }\n Object.keys(targetObj).forEach(k => {\n delete targetObj[k];\n });\n Object.assign(targetObj, sourceObj);\n }\n return targetObj;\n}\n\nexport function assignDefaultField(targetObj: any, sourceObj: any) {\n if (!targetObj) {\n return sourceObj;\n } else if (!sourceObj) {\n return targetObj;\n } else {\n Object.keys(sourceObj).forEach(k => {\n if (targetObj[k] == undefined) {\n targetObj[k] = sourceObj[k];\n }\n });\n return targetObj;\n }\n}\n\nexport function isEquals(objA: any, objB: any): boolean {\n if (objA !== objB) {\n const t = typeof (objA);\n if (t != typeof (objB)) {\n return false;\n }\n switch (t) {\n case \"object\":\n if (!objA && !objB) {\n return false;\n } else if (objA && objB) {\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length != keysB.length) {\n return false;\n }\n for (const k of keysA) {\n if (!isEquals(objA[k], objB[k])) {\n return false;\n }\n }\n } else {\n return false;\n }\n break;\n default:\n return objA == objB;\n }\n }\n return true;\n}\n\nexport function objDiff(last: { [k: string]: any } | undefined | null, current: { [k: string]: any } | undefined | null): Set<string> {\n const diff = new Set<string>();\n if (last && current) {\n for (const key of new Set(Object.keys(last).concat(Object.keys(current)))) {\n if (last[key] != current[key]) {\n diff.add(key);\n }\n }\n } else if (last) {\n return new Set(Object.keys(last));\n } else if (current) {\n return new Set(Object.keys(current));\n }\n return diff;\n}","import { Directive, effect, ElementRef, inject, input, isSignal, OnDestroy, OnInit, WritableSignal } from '@angular/core';\nimport { BehaviorSubject, concat, debounceTime, filter, isObservable, last, map, merge, NEVER, Observable, of, Subject, Subscription, switchMap, take, tap, zip } from 'rxjs';\nimport { Base } from '../base/base';\nimport { BaseOptions } from '../models/base.options';\nimport { DataSourceOptions } from '../models/data-source.options';\nimport { EventHandlerOptions } from '../models/event.options';\nimport { StaticDataSourceOptions } from '../models/static-data-source.options';\nimport { AXIS_HTTP_CONTEXT_DATA_TOKEN, AXIS_INJECT_DATA_TOKEN, AXIS_INJECT_FUNC_TOKEN, AXIS_SCRIPTS_TOKEN } from '../share/tokens';\nimport { fn } from '../utils/dynamic.util';\nimport { loadScripts, syncLoadScript } from '../utils/scripts-loader';\nimport { DesignBuilder } from '../base/design-builder';\nimport { sendApi } from '../utils/http.util';\nimport { HttpClient } from '@angular/common/http';\nimport { Initobs } from '../models/initobs';\nimport { copy, isEquals } from '../utils/object.util';\nimport { fromPromise } from 'rxjs/internal/observable/innerFrom';\nimport html2canvas from 'html2canvas';\nimport saveAs from \"file-saver\";\nimport { utils, WorkBook, WorkSheet, writeFile } from 'xlsx-js-style';\n\n@Directive({\n selector: '[axisScope]'\n})\nexport class ScopeDirective implements OnInit, OnDestroy {\n\n constructor() {\n effect(() => {\n if (!this.oriDataSources || !isEquals(this.oriDataSources, this.dataSources())) {\n this.oriDataSources = copy(this.dataSources(), true);\n this.initDs();\n }\n });\n }\n private oriDataSources?: DataSourceOptions[];\n private readonly http = inject(HttpClient);\n readonly axisScope = input.required<string>();\n readonly scopeName = input.required<string>();\n readonly isRoot = input(false);\n private readonly elementRef = inject(ElementRef);\n private readonly _parentScope = inject(ScopeDirective, { optional: true, skipSelf: true });\n readonly httpContextData = inject(AXIS_HTTP_CONTEXT_DATA_TOKEN, { optional: true });\n readonly scripts = inject(AXIS_SCRIPTS_TOKEN, { optional: true });\n readonly injectData = inject(AXIS_INJECT_DATA_TOKEN, { optional: true });\n private readonly funcs = inject(AXIS_INJECT_FUNC_TOKEN, { optional: true });\n injectFuncs?: { [name: string]: Function };\n readonly dataSources = input<DataSourceOptions[]>();\n private readonly designBuilder = inject(DesignBuilder, { optional: true });\n private readonly ds = new Map<string, BehaviorSubject<any>>();\n private readonly updateDs = new Map<string, Subject<DataSourceOptions>>();\n private dynamicOptionsSubs: Subscription[] = [];\n private rootSubs: Subscription[] = [];\n private readonly instanceMap = new Map<string, Base<BaseOptions>>();\n private readonly changeSubject = new BehaviorSubject<void>(void (0));\n private readonly latestUpdateOptions = new Map<string, DataSourceOptions>();\n private get parentScope(): ScopeDirective | null {\n return this.isRoot() ? null : this._parentScope;\n }\n\n host = inject(ElementRef)\n\n ngOnInit(): void {\n this.designBuilder?.buildScope(this);\n if (this.funcs) {\n this.injectFuncs = {};\n const funcs = this.funcs instanceof BehaviorSubject ? this.funcs.value : this.funcs;\n for (const name in funcs) {\n if (funcs[name] instanceof Function) {\n this.injectFuncs[name] = funcs[name];\n } else {\n this.injectFuncs[name] = funcs[name].func;\n }\n }\n }\n }\n\n private initDs(): void {\n for (const s of this.dynamicOptionsSubs.values()) {\n s.unsubscribe();\n }\n this.dynamicOptionsSubs = [];\n for (const oriopt of this.dataSources() ?? []) {\n let needConnect = false;\n if (!this.updateDs.has(oriopt.name)) {\n needConnect = true;\n this.updateDs.set(oriopt.name, new Subject());\n }\n const updateSubject = this.updateDs.get(oriopt.name)!;\n if (!this.ds.has(oriopt.name)) {\n needConnect = true;\n this.ds.set(oriopt.name, new BehaviorSubject(undefined));\n }\n if (needConnect) {\n this.rootSubs.push(updateSubject.pipe(\n switchMap(opt => this.updateDataSource(opt)))\n .subscribe(this.ds.get(oriopt.name)!));\n }\n if (oriopt.type != 'local') {\n delete oriopt.data;\n }\n const io = this.dynamicOptions(oriopt, oriopt.type == 'api');\n if (io.init !== undefined) {\n updateSubject.next(io.init);\n }\n if (io.obs) {\n this.dynamicOptionsSubs.push(io.obs.pipe(debounceTime(100)).subscribe(updateSubject));\n }\n }\n\n this.changeSubject.next();\n }\n\n private updateDataSource(opt: DataSourceOptions): Observable<any> {\n this.latestUpdateOptions.set(opt.name, opt);\n switch (opt.type) {\n case \"api\":\n if (opt.api?.url) {\n opt.api.context ??= this.httpContextData;\n return sendApi(opt.api, this.http);\n }\n break;\n case \"local\":\n if (opt.data !== undefined) {\n return of(opt.data);\n }\n break;\n case \"inject\":\n if (opt.injectField && this.injectData) {\n if (isObservable(this.injectData)) {\n return this.injectData.pipe(map((data: any) => data[opt.injectField!]));\n } else {\n return of(this.injectData?.[opt.injectField]);\n }\n }\n break;\n case \"cache\":\n if (opt.cacheKey) {\n const cacheData = localStorage.getItem(opt.cacheKey);\n if (cacheData != null && cacheData != \"undefined\") {\n return of(JSON.parse(cacheData));\n }\n }\n }\n return NEVER;\n }\n\n get(name: string, init = true): Observable<any> | undefined {\n let res: Observable<any> | undefined;\n if (this.ds.has(name)) {\n res = this.ds.get(name)?.asObservable();\n } else {\n res = this.parentScope?.get(name, false);\n }\n if (!res && init) {\n this.ds.set(name, new BehaviorSubject(undefined));\n res = this.ds.get(name)!.asObservable();\n this.changeSubject.next();\n }\n return res;\n }\n\n snapshot(name: string): any {\n if (this.ds.has(name)) {\n return this.ds.get(name)!.value;\n }\n return this.parentScope?.snapshot(name);\n }\n\n snapshotAll(): any {\n const data: any = {};\n this.ds.forEach((d, name) => {\n data[name] = d.value;\n });\n if (this.parentScope) {\n return Object.assign(this.parentScope.snapshotAll(), data);\n } else {\n return data;\n }\n }\n\n getSnapshoptAllWithScopeId(scopeId: string): any {\n if (this.axisScope() == scopeId) {\n const data: any = {};\n this.ds.forEach((d, name) => {\n if (!d.closed) {\n data[name] = d.getValue();\n }\n });\n return data;\n } else {\n return this.parentScope?.getSnapshoptAllWithScopeId(scopeId)\n }\n }\n\n getAllWithScopeId(scopeId: string): Observable<any> {\n if (this.axisScope() == scopeId) {\n return this.changeSubject.pipe(switchMap(_ => this.ds.size ? merge(...this.ds.values()) : of(null)),\n map(() => this.getSnapshoptAllWithScopeId(scopeId)));\n } else {\n return this.parentScope?.getAllWithScopeId(scopeId) ?? NEVER;\n }\n }\n\n dynamicField(obj: any, field: string, deep = false, tempDataSource?: any): Initobs {\n const res: Initobs = {\n firstDefinedFields: [],\n definedFields: [],\n };\n if (Object.hasOwn(obj, `$${field}`)) {\n const $obj = obj[`$${field}`];\n if (typeof $obj == 'object' && $obj) {\n if ($obj.listen && Object.keys($obj.listen).length) {\n res.firstDefinedFields = [];\n res.definedFields = [];\n res.obs = merge(...Object.entries($obj.listen).map(en => {\n const obs = this.get(en[0])!;\n switch (en[1]) {\n case \"firstDefined\":\n res.firstDefinedFields?.push(en[0]);\n return obs.pipe(filter(v => v !== undefined), take(1));\n case \"defined\":\n res.definedFields?.push(en[0]);\n return obs.pipe(filter(v => v !== undefined));\n default:\n return obs;\n }\n })).pipe(map(_ => this.runFnWithImports($obj.fn, Object.assign(this.snapshotAll(), tempDataSource), $obj.imports)));\n }\n if (!$obj.listen || Object.entries($obj.listen).every(en => en[1] == \"aways\")) {\n res.init = this.runFnWithImports($obj.fn, Object.assign(this.snapshotAll(), tempDataSource), $obj.imports);\n }\n return res;\n } else {\n throw new Error(`$${field} is not a valid dynamic field`);\n }\n }\n if (deep && obj[field] && typeof obj[field] == \"object\" && !Array.isArray(obj[field])) {\n return this.dynamicOptions(obj[field], true, tempDataSource);\n }\n res.init = obj[field];\n return res;\n }\n\n snapshotField(obj: any, field: string, tempDataSource?: any) {\n if (Object.hasOwn(obj, `$${field}`)) {\n const $obj = obj[`$${field}`];\n if (typeof $obj == 'object') {\n const args = this.snapshotAll();\n if (tempDataSource) {\n Object.assign(args, tempDataSource)\n }\n return this.runFnWithImports($obj.fn, args, $obj.imports);\n }\n throw new Error(`$${field} is not a valid dynamic field`);\n } else {\n if (obj[field] && typeof obj[field] == \"object\" && !Array.isArray(obj[field])) {\n return this.snapshotOptions(obj[field], tempDataSource);\n }\n }\n return obj[field];\n }\n\n bindOptions(optionsConfig: any, options: any, tempDataSource?: any): Subscription[] {\n const subs: Subscription[] = [];\n for (const en of Object.entries(options)) {\n if (isSignal(en[1])) {\n const io = this.dynamicField(optionsConfig, en[0], false, tempDataSource);\n if (io.init !== undefined) {\n (en[1] as WritableSignal<any>).set(io.init);\n }\n if (io.obs) {\n subs.push(io.obs.pipe(filter(v => v !== undefined))\n .subscribe((en[1] as WritableSignal<any>).set));\n }\n } else {\n options[en[0]] = this.snapshotField(optionsConfig, en[0], tempDataSource);\n }\n }\n return subs;\n }\n\n dynamicOptions(optionsConfig: any, deep = false, tempDataSource?: any): Initobs {\n const res: Initobs = {\n definedFields: [],\n firstDefinedFields: []\n };\n const obs: Observable<any>[] = [];\n const empptObj: any = {};\n let setInit = true;\n for (const en of Object.entries(optionsConfig)) {\n if (en[1] === undefined) {\n continue;\n }\n const field = en[0].replace(/^\\$/, '');\n const r = this.dynamicField(optionsConfig, field, deep, tempDataSource);\n if (r.init !== undefined) {\n empptObj[field] = r.init;\n } else {\n setInit = false;\n }\n if (r.obs) {\n if (r.definedFields) {\n res.definedFields = res.definedFields?.concat(r.definedFields);\n }\n if (r.firstDefinedFields) {\n res.firstDefinedFields = res.firstDefinedFields?.concat(r.firstDefinedFields);\n }\n obs.push(r.obs.pipe(map(v => ({ [field]: v }))));\n }\n }\n if (setInit && Object.keys(empptObj).length) {\n res.init = empptObj;\n }\n if (obs.length) {\n res.obs = merge(...obs).pipe(map(v => Object.assign(empptObj, v)), filter(_ => {\n for (const f of res.definedFields!) {\n if (this.ds.get(f)?.value === undefined) {\n return false;\n }\n }\n for (const f of res.firstDefinedFields!) {\n if (this.ds.get(f)?.value === undefined) {\n return false;\n } else {\n res.firstDefinedFields = res.firstDefinedFields?.filter(ff => ff != f);\n }\n }\n return true;\n }));\n }\n return res;\n }\n\n snapshotOptions(optionsConfig: any, tempDataSource?: any): any {\n const res: any = {};\n for (const en of Object.entries(optionsConfig)) {\n const field = en[0].replace(/^\\$/, '')\n res[field] = this.snapshotField(optionsConfig, field, tempDataSource);\n }\n return res;\n }\n\n registInstance(id: string, instance: Base<BaseOptions>) {\n if (id) {\n this.instanceMap.set(id, instance);\n }\n }\n\n unRegistInstance(id: string) {\n this.instanceMap.delete(id);\n }\n\n findInstance(id: string): Base<BaseOptions> | undefined {\n return this.instanceMap.get(id) ?? this.parentScope?.findInstance(id);\n }\n\n findScope(scopeId: string): ScopeDirective | undefined {\n if (this.axisScope() == scopeId) {\n return this;\n } else {\n return this.parentScope?.findScope(scopeId);\n }\n }\n\n ngOnDestroy(): void {\n for (const s of this.dynamicOptionsSubs.values()) {\n s.unsubscribe();\n }\n for (const s of this.rootSubs.values()) {\n s.unsubscribe();\n }\n this.changeSubject.complete();\n for (const d of this.ds.values()) {\n d.complete();\n }\n }\n\n onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n if (e.id === this.axisScope() || !e.id) {\n switch (e.name) {\n case \"setDataSource\":\n return this.setDataSourceEventHandler(e.data);\n case \"refreshDataSource\":\n return this.refreshDataSourceEventHandler(e.data);\n case \"exportExcel\":\n return this.exportExcelEventHandler(e.data);\n case \"componentsSnapshot\":\n return this.componentsSnapshotEventHandler(e.data);\n default:\n return undefined;\n }\n } else {\n return this.parentScope?.onEvents(e) ?? of(true);;\n }\n }\n\n private setDataSourceEventHandler(data: StaticDataSourceOptions): Observable<boolean> {\n if (this.ds.has(data.name)) {\n this.ds.get(data.name)!.next(data.data);\n const opt = this.latestUpdateOptions.get(data.name);\n if (opt?.type == \"cache\" && opt.cacheKey) {\n localStorage.setItem(opt.cacheKey, JSON.stringify(data.data));\n }\n } else {\n this.ds.set(data.name, new BehaviorSubject(data.data));\n this.changeSubject.next();\n }\n return of(true);\n }\n\n private refreshDataSourceEventHandler(data: { name: string, setNull: boolean }): Observable<boolean> {\n if (this.latestUpdateOptions.has(data.name)) {\n if (data.setNull) {\n this.ds.get(data.name)!.next(null);\n }\n this.updateDs.get(data.name)?.next(this.latestUpdateOptions.get(data.name)!);\n }\n return of(true);\n }\n\n private componentsSnapshotEventHandler(data: { ids: string[], exportFileName: string }): Observable<boolean> {\n if (!data.ids?.length) {\n return of(false)\n }\n return zip(...data.ids.filter(id => this.instanceMap.has(id)).map(id => {\n const inst = this.instanceMap.get(id);\n return fromPromise(html2canvas(inst!.elementRef!.nativeElement))\n .pipe(switchMap(c => new Observable<HTMLImageElement>(s => {\n const img = new Image();\n img.onload = () => {\n s.next(img);\n s.complete();\n };\n img.onerror = s.error;\n img.src = c.toDataURL(\"image/png\");\n })));\n })).pipe(switchMap(images => {\n const outer = document.createElement(\"div\");\n outer.style.height = \"0px\";\n outer.style.overflow = \"auto\";\n const container = document.createElement(\"div\");\n outer.appendChild(container)\n container.style.display = \"flex\";\n container.style.flexDirection = \"column\";\n images.forEach(img => {\n container.appendChild(img);\n });\n this.elementRef.nativeElement.parentElement.appendChild(outer);\n return fromPromise(html2canvas(container)).pipe(tap(_ => this.elementRef.nativeElement.parentElement.removeChild(outer)))\n }), switchMap(canvas => new Observable<boolean>(s => {\n canvas.toBlob(b => {\n if (b) {\n saveAs(b, data.exportFileName + \".png\")\n }\n s.next(!!b);\n s.complete();\n })\n })));\n }\n\n private exportExcelEventHandler(data: { sheets: { sheetTitle: string, tableId: string }[], fileName: string, bookType: \"xlsx\" | \"xls\" }): Observable<boolean> {\n const wb: WorkBook = utils.book_new();\n const obs = (data.sheets ?? []).map<Observable<[string, WorkSheet]>>(row => {\n var table = this.findInstance(row.tableId);\n if (table) {\n const ws: Observable<WorkBook> | undefined = table.callFunction?.(\"exportExcel\");\n if (ws) {\n return ws.pipe(map(ws => [row.sheetTitle, ws]));\n }\n }\n return of([row.sheetTitle, utils.json_to_sheet([])]);\n });\n return concat(...obs).pipe(tap(row => {\n utils.book_append_sheet(wb, row[1], row[0]);\n }), last(), tap(() => {\n writeFile(wb, data.fileName + \".\" + data.bookType, { bookType: data.bookType });\n }), map(_ => true));\n }\n\n async preloadImports(obj: any): Promise<void> {\n if (this.scripts) {\n const imports = new Set<string>();\n Object.entries(obj).forEach(([key, value]) => {\n if (key.startsWith(\"$\")) {\n ((value as any).imports as any[])?.forEach(i => imports.add(i));\n }\n });\n if (imports.size) {\n await Promise.all(Array.from(imports.values()).map(i => loadScripts(this.scripts![i] + \".js\")));\n }\n }\n }\n\n runFnWithImports(fnstr: any, args: any, imports: string[]): any {\n const libs: string[] = [];\n for (const i of imports ?? []) {\n if (this.scripts?.hasOwnProperty(i)) {\n const js = syncLoadScript(`${this.scripts[i]}.js`);\n if (js) {\n libs.push(js);\n }\n }\n }\n return fn(`${libs.join(\"\\n\")}\\n${fnstr}`, Object.assign({}, args, this.injectFuncs), true);\n }\n\n runFnWithSnapshot(fnstr: any, args?: any): any {\n return fn(fnstr, Object.assign({}, this.snapshotAll(), args, this.injectFuncs), true);\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { from, mergeMap, Observable, of } from 'rxjs';\nimport { ApiOptions } from '../models/api.options';\nimport { EventHandlerOptions } from '../models/event.options';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { NzModalService } from 'ng-zorro-antd/modal';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { EventsHandler } from '../models/event-handler';\nimport { AXIS_EVENT_HANDLERS_TOKEN, AXIS_HTTP_CONTEXT_DATA_TOKEN } from './tokens';\nimport { sendApi } from '../utils/http.util';\nimport { PlatformLocation } from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EventsHandlerService implements EventsHandler {\n\n constructor(private http: HttpClient, private platformLocation: PlatformLocation, private msg: NzMessageService, private modal: NzModalService, private router: Router, @Optional() @Inject(AXIS_EVENT_HANDLERS_TOKEN) private otherHandlers?: EventsHandler[]) { }\n\n onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n switch (e.name) {\n case \"api\":\n return this.apiEventHandler(e);\n case \"msgTip\":\n return this.msgTipEventHandler(e);\n case \"arrayFilter\":\n return this.arrayFilterEventHandler(e);\n case \"route\":\n return this.routeEventHandler(e);\n case \"runScript\":\n return this.runScriptEventHandler(e);\n case \"print\":\n return this.printEventHandler(e);\n default:\n if (this.otherHandlers) {\n for (const h of this.otherHandlers) {\n const r = h.onEvents(e);\n if (r != undefined) {\n return r;\n }\n }\n }\n return undefined;\n }\n }\n\n private apiEventHandler(e: EventHandlerOptions<ApiOptions>): Observable<boolean> {\n const opt = e.data as ApiOptions;\n opt.context ??= e.ref?.injector.get(AXIS_HTTP_CONTEXT_DATA_TOKEN, null);\n return sendApi(opt, this.http).pipe(mergeMap(res => {\n if (e.ref) {\n return e.ref.triggeEvents(\"apiResponse\", { ...e.tempDataSource, apiResponse: res }, e.triggeEvents);\n } else {\n return of(true);\n }\n }));\n }\n\n private msgTipEventHandler(e: EventHandlerOptions<any>): Observable<boolean> {\n switch (e.data?.tipWay) {\n case \"modal\":\n switch (e.data?.type) {\n case \"info\":\n this.modal.info({\n nzTitle: \"提醒\",\n nzContent: e.data.content\n });\n break;\n case \"success\":\n this.modal.success({\n nzTitle: \"成功\",\n nzContent: e.data.content\n });\n break;\n case \"warning\":\n this.modal.warning({\n nzTitle: \"警告\",\n nzContent: e.data.content\n });\n break;\n case \"error\":\n this.modal.error({\n nzTitle: \"失败\",\n nzContent: e.data.content\n });\n break;\n }\n break;\n case \"message\":\n switch (e.data?.type) {\n case \"info\":\n this.msg.info(e.data.content);\n break;\n case \"success\":\n this.msg.success(e.data.content);\n break;\n case \"warning\":\n this.msg.warning(e.data.content);\n break;\n case \"error\":\n this.msg.error(e.data.content);\n break;\n }\n break;\n }\n return of(true);\n }\n\n private arrayFilterEventHandler(e: EventHandlerOptions<{ inputArray?: any[], filterData?: any, filterOptions?: { field: string, mode: string, effectFields: string[] }[] }>): Observable<boolean> {\n const { inputArray, filterData, filterOptions } = e.data ?? {};\n let outputArray: any[] | undefined | null;\n if (!inputArray?.length || !filterOptions?.length || !filterData || !Object.keys(filterData).length) {\n outputArray = inputArray;\n } else {\n outputArray = inputArray.filter((r: any) => {\n return filterOptions!\n .every(e => {\n if (filterData[e.field] == undefined || (e.mode == \"between\" && filterData[e.field].length < 2)) {\n return true;\n }\n const effectFields = e.effectFields || [e.field];\n return effectFields.some(field => {\n const rowData = r[field];\n switch (e.mode) {\n case \"startsWith\":\n return rowData?.startsWith(filterData[e.field]);\n case \"endsWith\":\n return rowData?.endsWith(filterData[e.field]);\n case \"like\":\n return rowData != null && String(rowData).toUpperCase().includes(filterData[e.field].toUpperCase());\n case \"equalGreater\":\n return rowData != undefined && r[field] >= filterData[e.field];\n case \"equalLess\":\n return rowData != undefined && r[field] <= filterData[e.field];\n case \"between\":\n return rowData != undefined && r[field] >= filterData[e.field][0] && r[field] <= filterData[e.field][1];\n case \"containAll\":\n return rowData != undefined && (!filterData[e.field].length || filterData[e.field].every((r: any) => rowData.includes(r)));\n case \"containAny\":\n return rowData != undefined && (!filterData[e.field].length || filterData[e.field].some((r: any) => rowData.includes(r)));\n default:\n return rowData == filterData[e.field];\n }\n });\n });\n });\n }\n return e.ref?.triggeEvents(\"output\", { ...e.tempDataSource, outputArray }, e.triggeEvents) ?? of(true);;\n }\n\n private routeEventHandler(e: EventHandlerOptions<{ type: \"web\", newtab?: boolean, path: string | string[], params?: any }>): Observable<boolean> {\n let { type, newtab, path } = e.data!;\n switch (type) {\n case \"web\":\n if (newtab) {\n let url: string | undefined;\n if (typeof path == \"string\") {\n url = path;\n } else if (Array.isArray(path)) {\n url = path.join(\"/\");\n }\n if (url) {\n window.open(url, \"_blank\");\n return of(true);\n }\n } else {\n let url: string[] | undefined;\n if (typeof path == \"string\") {\n if (path.startsWith(\"http\")) {\n window.open(path, \"_self\");\n return of(true);\n }\n url = [path];\n } else if (Array.isArray(path)) {\n url = path;\n }\n if (url?.[0]) {\n if (e.ref?.isDesign) {\n this.msg.info(\"设计模式下禁止路由跳转\");\n } else {\n const route = e.ref?.injector.get(ActivatedRoute);\n return from(this.router.navigate(url, { relativeTo: route, state: e.data?.params }));\n }\n }\n }\n break;\n }\n return of(false);\n }\n\n private runScriptEventHandler(e: EventHandlerOptions<{ script: string }>): Observable<boolean> {\n if (e.data?.script) {\n e.ref?.getScope()?.runFnWithSnapshot(e.data.script, e.tempDataSource);\n return of(true);\n }\n return of(false);\n }\n\n private printEventHandler(e: EventHandlerOptions<{ html: string, loadTinyCss: boolean, style: any }>): Observable<boolean> {\n const iframe = document.createElement('iframe');\n\n iframe.style.position = 'fixed';\n iframe.style.right = '0';\n iframe.style.bottom = '0';\n iframe.style.width = '0';\n iframe.style.height = '0';\n iframe.style.border = '0';\n document.body.appendChild(iframe);\n const doc = iframe.contentDocument || iframe.contentWindow?.document;\n if (!doc) {\n return of(false);\n }\n const ref = this.msg.loading(\"打印准备中\", { nzDuration: 0 });\n const promises: Promise<void>[] = [];\n if (e.data?.loadTinyCss) {\n const link = doc.createElement('link');\n link.rel = 'stylesheet';\n link.media = 'all';\n link.href = `${this.platformLocation.getBaseHrefFromDOM()}tinymce/skins/content/default/content.min.css`;\n promises.push(new Promise<void>(resolve => (link.onload = link.onerror = () => resolve())));\n doc.head.appendChild(link);\n doc.body.className = \"mce-content-body\"\n }\n if (e.data?.style) {\n const style = doc.createElement('style');\n style.textContent = e.data.style;\n doc.head.appendChild(style);\n }\n doc.body.innerHTML = e.data?.html || '';\n for (const img of Array.from(doc.images || [])) {\n promises.push(new Promise<void>(resolve => (img.onload = img.onerror = () => resolve())));\n }\n Promise.allSettled(promises).then(() => {\n iframe.contentWindow?.print();\n }).finally(() => {\n this.msg.remove(ref.messageId);\n setTimeout(() => {\n iframe.remove();\n }, 1000);\n });\n return of(true);\n }\n\n}","import { AfterViewInit, Directive, ElementRef, HostBinding, inject, Injector, isSignal, OnDestroy, WritableSignal } from \"@angular/core\";\nimport { merge, Observable, of, Subscription } from \"rxjs\";\nimport { ScopeDirective } from \"../directives/scope\";\nimport { EventsHandlerService } from \"../share/events-handler.service\";\nimport { BaseOptions } from \"../models/base.options\";\nimport { EventHandlerOptions } from \"../models/event.options\";\nimport { TriggeEventsOptions } from \"../models/trigge-events.options\";\nimport { loadScripts } from \"../utils/scripts-loader\";\nimport { copy } from \"../utils/object.util\";\nimport { fn } from \"../utils/dynamic.util\";\n\n@Directive()\nexport abstract class Base<T extends BaseOptions> implements OnDestroy, AfterViewInit {\n\n onAfterViewInit?: Function;\n readonly injector = inject(Injector);\n readonly elementRef = inject(ElementRef);\n isDesign = false;\n options!: T;\n private readonly eventsService = inject(EventsHandlerService)\n private readonly scope: ScopeDirective | null = inject(ScopeDirective, { optional: true });\n private _sub: { [tag: string]: Subscription[] } = { \"default\": [] };\n\n @HostBinding('style')\n get style() {\n return this.options.style()\n }\n\n ngAfterViewInit(): void {\n this.onAfterViewInit?.();\n }\n\n async preloadImports(optionsConfig: any): Promise<void> {\n const imports = new Set<string>();\n Object.entries(optionsConfig).forEach(([key, value]) => {\n if (key.startsWith(\"$\")) {\n ((value as any).imports as any[]).forEach(i => imports.add(i));\n }\n });\n await Promise.all(Array.from(imports.values()).map(i => loadScripts(i)));\n }\n\n bindWithConfig(optionsConfig: any, config?: { options?: any, snapshot?: boolean, tag?: string, tempDataSource?: any }): void {\n let options = config?.options ?? this.options;\n let snapshot = config?.snapshot ?? false;\n if (!snapshot && config?.tag) {\n this.unsubscribe([config.tag]);\n }\n if (this.scope && !snapshot) {\n this.addAllSubscribe(this.scope.bindOptions(optionsConfig, options!, config?.tempDataSource), config?.tag ?? \"bindWithConfig\");\n } else {\n if (this.scope && snapshot) {\n optionsConfig = this.scope.snapshotOptions(optionsConfig, config?.tempDataSource);\n }\n for (const en of Object.entries(options!)) {\n const value = optionsConfig[en[0]];\n if (value !== undefined) {\n if (isSignal(en[1])) {\n (en[1] as WritableSignal<any>).set(value);\n } else {\n (options as any)[en[0]] = value;\n }\n }\n }\n }\n }\n\n unsubscribeAll() {\n Object.values(this._sub).forEach(srr => srr.forEach(s => s.unsubscribe()));\n this._sub = { \"default\": [] };\n }\n\n unsubscribe(tags: string[]) {\n Object.keys(this._sub)\n .filter(tag => tags.includes(tag))\n .forEach(tag => {\n this._sub[tag].forEach(s => s.unsubscribe());\n delete this._sub[tag];\n });\n }\n\n addSubscribe(sub: Subscription, tag: string = \"default\") {\n if (!this._sub[tag]) {\n this._sub[tag] = [];\n }\n this._sub[tag].push(sub);\n }\n\n addAllSubscribe(subs: Subscription[], tag: string = \"default\") {\n if (!this._sub[tag]) {\n this._sub[tag] = [];\n }\n this._sub[tag] = this._sub[tag].concat(subs);\n }\n\n onEvents?(e: EventHandlerOptions<any>): Observable<boolean> | undefined;\n\n callFunction?<T>(name: String, args?: any): T | undefined;\n\n hasEventHandler(trigger: string, triggeEvents?: TriggeEventsOptions): boolean {\n const te = triggeEvents ?? this.options.triggeEvents();\n return !!te?.[trigger]?.length;\n }\n\n triggeEvents(trigger: string, tempDataSource?: any, triggeEvents?: TriggeEventsOptions, scope?: ScopeDirective): Observable<boolean> {\n scope ??= this.scope ?? undefined;\n const te = triggeEvents ?? this.options.triggeEvents();\n if (te && te[trigger]) {\n return merge(...te[trigger].filter(e => !(scope?.snapshotField(e, \"disabled\", tempDataSource) ?? e.disabled)).map(e => {\n if (scope) {\n e = scope.snapshotOptions(e, tempDataSource);\n } else {\n e = copy(e, true);\n }\n e.tempDataSource = tempDataSource;\n return this.triggeEvent(e, scope);\n }));\n }\n return of(true);\n }\n\n triggeEvent(e: EventHandlerOptions<unknown>, scope?: ScopeDirective): Observable<boolean> {\n scope ??= this.scope ?? undefined;\n console.log(\"triggeEvent\", e);\n e.ref = this;\n let obs: Observable<boolean> | undefined;\n switch (e.target) {\n case \"component\":\n if (e.id) {\n obs = (scope)?.findInstance(e.id)?.onEvents?.(e);\n }\n break;\n case \"service\":\n obs = this.eventsService.onEvents(e);\n break;\n case \"scope\":\n obs = scope?.onEvents(e);\n break;\n }\n return obs ?? of(true);\n }\n\n getScope(): ScopeDirective | null {\n return this.scope;\n }\n\n runFn(fnstr: any, args?: any): any {\n if (this.scope) {\n return this.scope.runFnWithSnapshot(fnstr, args);\n }\n return fn(fnstr, args, true);\n }\n\n ngOnDestroy(): void {\n this.unsubscribeAll();\n }\n}\n","import { ControlValueAccessor } from \"@angular/forms\";\nimport { Base } from \"./base\";\nimport { Directive, effect, model, untracked } from \"@angular/core\";\nimport { Observable, of } from \"rxjs\";\nimport { EventHandlerOptions } from \"../models/event.options\";\nimport { ValueAccessOptions } from \"../models/value-access.options\";\nimport { RegisteValueAccessOptions } from \"../models/form-registe.options\";\n\n@Directive()\nexport abstract class ValueAccess<T extends ValueAccessOptions> extends Base<T> implements ControlValueAccessor {\n\n constructor() {\n super();\n effect(() => {\n if (this.options.initValue() !== undefined) {\n untracked(() => this.setInitValue(this.options.initValue()));\n }\n })\n }\n\n readonly value = model<any>(undefined);\n registeValueAccess?: (opt: RegisteValueAccessOptions) => void;\n\n setInitValue(value: any) {\n this.registeValueAccess?.({\n initValue: value,\n });\n this.value.set(value);\n if (value !== undefined && this.options.emitInitEvent()) {\n this.triggeEvents(\"valueChange\", { value: value }).subscribe();\n }\n }\n\n onChange?: (value: any) => void;\n onTouched?: (value: any) => {};\n writeValue(value: any): void {\n this.value.set(value);\n if (value !== undefined) {\n this.triggeEvents(\"valueChange\", { value: value }).subscribe();\n }\n }\n registerOnChange(fn: any): void {\n this.onChange = (value) => {\n this.triggeEvents(\"valueChange\", { value: value }).subscribe();\n fn?.(value);\n };\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n override onEvents(e: EventHandlerOptions<any>): Observable<boolean> | undefined {\n const obs = super.onEvents?.(e);\n if (obs) {\n return obs;\n }\n switch (e.name) {\n case \"setValue\":\n this.writeValue(e.data?.data);\n this.onChange?.(e.data?.data);\n return of(true);\n case \"getValue\":\n return this.triggeEvents(\"afterGetValue\", { getValue: this.value() }, e.triggeEvents);\n }\n return undefined;\n }\n\n}\n","import { Directive, inject, ViewChild } from '@angular/core';\nimport { NzContextMenuService, NzDropdownMenuComponent } from 'ng-zorro-antd/dropdown';\nimport { AXIS_DESIGN_OPTIONS_NODE_FOR_MENU } from '../share/tokens';\nimport { OptionsNode } from '../models/options-node';\nimport { OptionsChangeEvent } from '../models/options-change-event';\n\n@Directive()\nexport abstract class BaseMenu {\n\n private readonly contextMenuService: NzContextMenuService = inject(NzContextMenuService);\n readonly optionsNodes: { current: OptionsNode, parent?: OptionsNode } = inject(AXIS_DESIGN_OPTIONS_NODE_FOR_MENU);\n\n @ViewChild(\"menu\", { static: true })\n menu!: NzDropdownMenuComponent;\n\n onChange?: (e: OptionsChangeEvent) => void;\n\n contextMenu(e: MouseEvent): void {\n e.preventDefault();\n e.stopPropagation();\n this.contextMenuService.create(e, this.menu);\n }\n}\n","import { AbstractControl, FormArray, FormGroup } from \"@angular/forms\";\n\nexport function updateAndValidAll(form: FormGroup | FormArray | AbstractControl, options: { markAsDirty?: boolean } = { markAsDirty: true }) {\n let isValid = true;\n if (form instanceof FormGroup) {\n Object.values(form.controls).forEach(control => {\n if (!updateAndValidAll(control, options)) {\n isValid = false;\n }\n });\n } else if (form instanceof FormArray) {\n form.controls.forEach(control => {\n if (!updateAndValidAll(control, options)) {\n isValid = false;\n }\n })\n } else {\n if (options.markAsDirty ?? true) {\n form.markAsDirty();\n }\n form.updateValueAndValidity({ onlySelf: true });\n isValid = form.valid;\n }\n return isValid;\n}","import { Directive, inject } from \"@angular/core\";\nimport { FormBuilder, UntypedFormGroup } from \"@angular/forms\";\nimport { FunFieldValue } from \"../share/fun-field/fun-field\";\nimport { copy } from \"../utils/object.util\";\nimport { FunFieldOptions } from \"../models/fun-field.options\";\nimport { updateAndValidAll } from \"../utils/form.util\";\n\n@Directive()\nexport abstract class FunFieldBase {\n\n private init: any;\n private orivalue: any;\n protected readonly fb = inject(FormBuilder);\n abstract fg: UntypedFormGroup;\n protected funFields: FunFieldOptions = {};\n\n reset(value?: any) {\n if (!this.init) {\n this.init = this.getValue();\n }\n this.orivalue = { ...this.init, ...value };\n this.fg.patchValue(this.buildFunField(this.orivalue), { emitEvent: false });\n }\n\n getValue(): any {\n return this.recoverFunField(this.fg.value);\n }\n\n valid(): boolean {\n return updateAndValidAll(this.fg);\n }\n\n buildFunField(obj: any, funFields?: FunFieldOptions): any {\n funFields ??= this.funFields;\n const cloneObj = obj ? copy(obj) : {};\n if (funFields) {\n Object.keys(funFields).forEach(f => {\n let value;\n if (funFields[f].child) {\n if (Array.isArray(cloneObj[f])) {\n value = cloneObj[f].map(item => this.buildFunField(item, funFields[f].child));\n } else {\n value = this.buildFunField(cloneObj[f], funFields[f].child);\n }\n } else {\n value = {\n funMode: cloneObj.hasOwnProperty(`$${f}`),\n originValue: undefined,\n fnValue: {\n fn: \"return undefined;\"\n }\n };\n if (value.funMode) {\n value.fnValue = cloneObj[`$${f}`];\n if (typeof (cloneObj[`$${f}`]) == \"string\") {\n value.fnValue = {\n fn: cloneObj[`$${f}`]\n }\n }\n delete cloneObj[`$${f}`];\n } else {\n if (cloneObj[f] !== undefined) {\n value.originValue = cloneObj[f];\n } else {\n value.originValue = funFields[f].defaultValue;\n }\n value.fnValue = {\n fn: `return ${JSON.stringify(value.originValue)}`\n };\n }\n }\n cloneObj[f] = value;\n });\n }\n return cloneObj;\n }\n\n recoverFunField(obj: any, funFields?: FunFieldOptions, oriObj?: any) {\n funFields ??= this.funFields;\n oriObj ??= this.orivalue ?? {};\n const cloneObj = obj ? copy(obj) : {};\n const cloneOriObj = copy(oriObj);\n if (obj && funFields) {\n Object.keys(funFields).forEach(k => {\n const f: FunFieldValue = cloneObj[k];\n if (f) {\n if (funFields[k].child) {\n if (Array.isArray(cloneObj[k])) {\n cloneObj[k] = cloneObj[k].map((item, i) => this.recoverFunField(item, funFields[k].child, cloneOriObj[k][i]));\n } else {\n cloneObj[k] = this.recoverFunField(cloneObj[k], funFields[k].child, cloneOriObj[k] ?? {});\n }\n delete cloneObj[`$${k}`];\n } else {\n if (f.funMode) {\n cloneObj[`$${k}`] = f.fnValue;\n delete cloneObj[k];\n } else {\n cloneObj[k] = f.originValue;\n delete cloneObj[`$${k}`];\n }\n }\n delete cloneOriObj[k];\n delete cloneOriObj[`$${k}`];\n } else {\n delete cloneObj[k];\n }\n });\n }\n return Object.assign({}, cloneOriObj, cloneObj)\n }\n\n}\n","import { Directive, model, OnDestroy, OnInit } from \"@angular/core\";\nimport { ControlValueAccessor } from \"@angular/forms\";\nimport { Subscription } from \"rxjs\";\nimport { FunFieldBase } from \"./funfield-base\";\nimport { updateAndValidAll } from \"../utils/form.util\";\n\n@Directive()\nexport abstract class FunFieldValueBase extends FunFieldBase implements OnInit, OnDestroy, ControlValueAccessor {\n\n public onChange: any;\n protected readonly value = model<any>();\n protected readonly formValue = model<any>();\n private sub!: Subscription;\n protected sendInitValue = false;\n\n writeValue(value: any): void {\n this.value.set(value);\n this.reset(value);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n }\n\n override reset(value?: any): void {\n super.reset(value);\n this.formValue.set(this.fg.value);\n }\n\n ngOnInit(): void {\n this.formValue.set(this.fg.value);\n if (this.sendInitValue) {\n this.value.set(this.recoverFunField(this.fg.value));\n this.onChange?.(this.value());\n }\n this.sub = this.fg.valueChanges.subscribe(v => {\n this.formValue.set(v);\n if (updateAndValidAll(this.fg)) {\n this.value.set(this.recoverFunField(v));\n this.onChange?.(this.value());\n } else {\n Object.entries(this.fg.controls).filter(en => en[1].invalid).forEach(en => {\n console.log(\"invalid\", en[0]);\n })\n }\n });\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n\n}\n","import { Directive, effect, forwardRef, input, OnDestroy, Type, ViewContainerRef, inject, ComponentRef, Injector, output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ScopeDirective } from './scope';\nimport { Observable, Subscription } from 'rxjs';\nimport { Base } from '../base/base';\nimport { ValueAccess } from '../base/value-access';\nimport { BaseOptions } from '../models/base.options';\nimport { ValueAccessOptions } from '../models/value-access.options';\nimport { AXIS_COMPONENTS_LOADER_TOKEN, AXIS_CURRENT_USER_PERMISSIONS_TOKEN, AXIS_FORM_REGISTE_CONTROL_TOKEN } from '../share/tokens';\nimport { DesignBuilder } from '../base/design-builder';\nimport { EventHandlerOptions } from '../models/event.options';\nimport { RegisteValueAccessOptions } from '../models/form-registe.options';\n\nconst DynamicComponentsMap = new Map<string, Type<any>>();\n\n@Directive({\n selector: '[axisDynamic]',\n exportAs: 'axisDynamic',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DynamicDirective),\n multi: true\n },\n ]\n})\nexport class DynamicDirective implements ControlValueAccessor, OnDestroy {\n\n readonly axisDynamic = input.required<any>();\n readonly standalone = input(false);\n readonly isDesign = input(false);\n readonly forceRenderOnChange = input(false);\n readonly onRegisteValueAccess = output<RegisteValueAccessOptions>();\n\n private component?: string;\n private sub?: Subscription;\n private id?: string;\n private readonly injector = inject(Injector);\n private _designBuilder = inject(DesignBuilder, { optional: true });\n private loader = inject(AXIS_COMPONENTS_LOADER_TOKEN);\n readonly currentUserPermissions = inject(AXIS_CURRENT_USER_PERMISSIONS_TOKEN, { optional: true });\n private container = inject(ViewContainerRef);\n private _scope = inject(ScopeDirective, { optional: true });\n private ref?: ComponentRef<Base<BaseOptions>>;\n\n private get scope(): ScopeDirective | null {\n return this.standalone() ? null : this._scope;\n }\n\n private get designBuilder(): DesignBuilder | null {\n return !this.standalone() || this.isDesign() ? this._designBuilder : null;\n }\n\n private get valueInstance(): ValueAccess<ValueAccessOptions> | undefined {\n if (this.ref?.instance && this.ref.instance instanceof ValueAccess) {\n return this.ref.instance;\n }\n return undefined;\n }\n\n onChange?: (value: any) => {};\n onTouched?: (value: any) => {};\n triggeEvent?: (e: EventHandlerOptions<any>) => Observable<boolean>;\n onEvents?: (e: EventHandlerOptions<any>) => Observable<boolean> | undefined;\n value: any;\n\n constructor() {\n effect(() => {\n if (!this.axisDynamic()?.component) {\n this.destoryInstance();\n return;\n }\n this.sub?.unsubscribe();\n if (!this.hasPermission() && !this.designBuilder) {\n return;\n }\n let inuse = this.axisDynamic().inuse;\n let skip = false;\n if (this.scope) {\n const io = this.scope.dynamicField(this.axisDynamic(), \"inuse\");\n if (io.init !== undefined) {\n inuse = io.init;\n }\n if (io.obs) {\n this.sub = io.obs.subscribe(inuse => {\n skip = true;\n if (inuse) {\n if (this.id != this.axisDynamic().id) {\n if (this.id) {\n this.scope!.unRegistInstance(this.id);\n }\n this.id = this.axisDynamic().id;\n }\n this.render();\n } else {\n this.destoryInstance();\n }\n });\n }\n }\n if (!skip) {\n if (inuse) {\n if (this.id != this.axisDynamic().id) {\n this.id = this.axisDynamic().id;\n }\n this.render();\n } else {\n this.destoryInstance();\n }\n }\n })\n }\n\n private hasPermission(): boolean {\n const { requiredPermissions } = this.axisDynamic();\n if (!requiredPermissions?.length) {\n return true;\n }\n return (requiredPermissions as string[]).every(permission => this.currentUserPermissions?.includes(permission));\n }\n\n private async render() {\n if (this.axisDynamic()?.component && (!this.component || this.component != this.axisDynamic().component || this.forceRenderOnChange())) {\n this.component = this.axisDynamic().component;\n let componentType: Type<any> | undefined;\n if (DynamicComponentsMap.has(this.component!)) {\n componentType = DynamicComponentsMap.get(this.component!);\n } else {\n try {\n componentType = await this.loader.loadComponent(this.component!);\n DynamicComponentsMap.set(this.component!, componentType!);\n } catch (error) {\n console.error(error);\n }\n }\n await this.scope?.preloadImports(this.axisDynamic());\n this.container.clear();\n this.ref = this.container.createComponent<Base<BaseOptions>>(componentType!, { injector: this.buildInjector() });\n this.onEvents = this.ref.instance.onEvents?.bind(this.ref.instance);\n this.triggeEvent = this.ref.instance.triggeEvent?.bind(this.ref.instance);\n this.scope?.registInstance(this.axisDynamic().id, this.ref.instance)\n this.ref.instance?.bindWithConfig(this.axisDynamic());\n if (this.valueInstance) {\n this.valueInstance.registerOnChange(this.onChange);\n this.valueInstance.registerOnTouched(this.onTouched);\n this.valueInstance.registeValueAccess = (v) => this.onRegisteValueAccess.emit(v);\n if (this.value !== undefined) {\n this.valueInstance.writeValue(this.value);\n }\n }\n if (this.designBuilder) {\n this.ref.instance.isDesign = true;\n this.ref.instance!.onAfterViewInit = () => {\n this.designBuilder!.buildElement(this.ref!, this.axisDynamic());\n }\n }\n } else {\n this.ref?.instance?.bindWithConfig(this.axisDynamic());\n this.designBuilder?.buildElement(this.ref!, this.axisDynamic());\n }\n }\n\n private buildInjector(): Injector | undefined {\n if (this.standalone()) {\n return Injector.create({\n providers: [\n {\n provide: ScopeDirective,\n useValue: null\n },\n {\n provide: DynamicDirective,\n useValue: null\n },\n {\n provide: DesignBuilder,\n useValue: this.isDesign() ? this.designBuilder : null\n }, {\n provide: AXIS_FORM_REGISTE_CONTROL_TOKEN,\n useValue: null\n }\n ],\n parent: this.injector\n });\n }\n return this.injector;\n }\n\n forceRender(): void {\n this.component = undefined;\n this.id = undefined;\n this.render();\n }\n\n writeValue(value: any): void {\n this.valueInstance?.writeValue(value);\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n this.valueInstance?.registerOnChange(fn);\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n this.valueInstance?.registerOnTouched(fn);\n }\n\n destoryInstance() {\n if (this.id) {\n this.scope?.unRegistInstance(this.id);\n this.id = undefined;\n }\n this.component = undefined;\n this.container.clear();\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n this.destoryInstance();\n }\n\n}\n","import { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'axisHowLong', pure: false\n})\nexport class HowLongPipe implements PipeTransform {\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n timer?: any;\n\n lastValue = \"\";\n\n date?: Date;\n\n ngOnDestroy(): void {\n if (this.timer != undefined) {\n clearTimeout(this.timer);\n this.timer = undefined;\n this.lastValue = \"\";\n this.date = undefined;\n }\n }\n\n transform(date?: Date): string | undefined {\n if (!this.date) {\n if (date) {\n this.date = date;\n let offset = (new Date().getTime() - date.getTime()) / 1000;\n let sufix = offset > 0 ? \"前\" : \"后\";\n let time = \"\";\n offset = Math.floor(Math.abs(offset));\n let refreshTimer = 0;\n if (offset < 10) {\n time = \"几秒钟\";\n refreshTimer = 1;\n } else if (offset < 60) {\n time = \"1分钟内\";\n sufix = \"\";\n refreshTimer = 1;\n } else if (offset < 3600) {\n refreshTimer = 60 - (offset % 60);\n time = `${Math.floor(offset / 60)}分钟`;\n } else if (offset < 86400) {\n refreshTimer = 3600 - (offset % 3600);\n time = `${Math.floor(offset / 3600)}小时`;\n } else {\n refreshTimer = 86400 - (offset % 86400);\n time = `${Math.floor(offset / 86400)}天`;\n }\n this.lastValue = `${time}${sufix}`;\n this.timer = setTimeout(() => {\n this.ngOnDestroy();\n this.cdr.markForCheck();\n }, refreshTimer * 1000);\n } else {\n this.lastValue = \"\";\n }\n return this.lastValue;\n }\n\n if (date !== this.date) {\n this.ngOnDestroy();\n return this.transform(date);\n }\n\n return this.lastValue;\n }\n\n}\n","import { signal } from \"@angular/core\";\nimport { TriggeEventsOptions } from \"./trigge-events.options\";\n\nexport class BaseOptions {\n component = \"\";\n id = \"\";\n readonly inuse = signal(true);\n requiredPermissions: string[] = [];\n readonly triggeEvents = signal<TriggeEventsOptions | undefined>(undefined);\n readonly style = signal<any>(undefined);\n loop = false;\n loopTarget: any[] | undefined = undefined;\n}","import { signal } from \"@angular/core\";\nimport { BaseOptions } from \"./base.options\";\n\nexport class ValueAccessOptions extends BaseOptions {\n\n initValue = signal<any>(undefined);\n emitInitEvent = signal(true);\n disabled = signal(false);\n readonly = signal(false);\n}","import { Type } from \"@angular/core\";\nimport { FunFieldValueBase } from \"../base/funfield-value-base\";\nimport { BaseMenu } from \"../base/base-menu\";\n\nexport class OptionsNode {\n\n canLoop = false;\n\n constructor(protected config: OptionsNodeConfig) {\n if (config.parentObj != undefined) {\n config.rootOptions = undefined;\n }\n }\n\n get id(): string {\n return this.config.id ?? this.options.id;\n }\n\n get parentId(): string | undefined {\n return this.config.parentId;\n }\n\n get scopeId(): string | undefined {\n return this.config.scopeId;\n }\n\n set scopeId(scopeId: string) {\n this.config.scopeId = scopeId;\n }\n\n get name(): string | undefined {\n return this.config.name;\n }\n\n get dragType(): string | undefined {\n return this.config.dragType;\n }\n\n get dropType(): string | undefined {\n return this.config.dropType;\n }\n\n get canSetting(): boolean {\n return this.config.canSetting ?? false;\n }\n\n get canDrag(): boolean {\n return this.config.canDrag ?? false;\n }\n\n get childDirection(): \"horizontal\" | \"vertical\" {\n return this.config.childDirection ?? \"horizontal\";\n }\n\n get canDrop(): boolean {\n return this.config.canDrop ?? false;\n }\n\n get dropObj(): any {\n return this.config.dropObj;\n }\n\n get parentObj(): any {\n return this.config.parentObj;\n }\n\n get indexOfParentObj(): number | string | undefined {\n return this.config.indexOfParentObj;\n }\n\n get options(): any {\n if (this.parentObj != undefined && this.indexOfParentObj != undefined) {\n return this.parentObj[this.indexOfParentObj];\n }\n return this.config.rootOptions;\n }\n\n get defaultDropIndex(): number | string | undefined {\n return this.config.defaultDropIndex;\n }\n\n get isRoot(): boolean {\n return this.config.rootOptions != undefined;\n }\n\n get icon(): string | undefined {\n return this.config.icon;\n }\n\n get children(): OptionsNode[] | undefined {\n return this.config.children;\n }\n\n get settingType(): Type<FunFieldValueBase> | undefined {\n return this.config.settingType;\n }\n\n get contextMenu(): Type<BaseMenu> | undefined {\n return this.config.contextMenu;\n }\n\n onPaste(node: OptionsNode, replaceIdFun: (opt: any) => any): void {\n this.config.onPaste?.(node, replaceIdFun);\n }\n\n toElementNode(elements: { element?: HTMLElement, dropElement?: HTMLElement }): ElementNode {\n return new ElementNode(this.id, elements);\n }\n\n updateOptions(options: any): void {\n if (this.isRoot) {\n this.config.rootOptions = options;\n } else {\n this.parentObj[this.indexOfParentObj!] = options;\n }\n if (this.config.updateId) {\n this.config.id = this.config.updateId(options);\n }\n }\n\n copyWith(config: OptionsNodeConfig): OptionsNode {\n return new OptionsNode(Object.assign({}, this.config, config));\n }\n\n refresh(): void {\n console.log(\"refresh\", this.id, this.indexOfParentObj, this.parentObj.indexOf(this.options))\n }\n}\n\nexport class ElementNode {\n constructor(public id: string, elements: { element?: HTMLElement, dropElement?: HTMLElement }) {\n this.element = elements.element;\n this.dropElement = elements.dropElement;\n }\n element?: HTMLElement;\n dropElement?: HTMLElement;\n}\n\ninterface OptionsNodeConfig {\n id?: string;\n updateId?: (newOptions: any) => string;\n parentId?: string;\n scopeId?: string;\n name?: string;\n canSetting?: boolean;\n canDrag?: boolean;\n canDrop?: boolean;\n childDirection?: \"horizontal\" | \"vertical\";\n dragType?: string;\n dropType?: string;\n parentObj?: any;\n dropObj?: any;\n indexOfParentObj?: number | string;\n rootOptions?: any;\n defaultDropIndex?: number | string;\n settingType?: Type<FunFieldValueBase>;\n icon?: string;\n children?: OptionsNode[];\n onPaste?: (ojb: OptionsNode, replaceIdFun: (opt: any) => any) => void;\n contextMenu?: Type<BaseMenu>;\n}","import { signal } from \"@angular/core\";\nimport { BaseOptions } from \"./base.options\";\n\nexport class DataOptions extends BaseOptions {\n data = signal<any>(undefined);\n}","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { BaseMenu } from '../../base/base-menu';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { NzDropdownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { AXIS_DESIGN_CHOOSE_COMPONENT_FUNC_TOKEN } from '../tokens';\n\n@Component({\n selector: 'axis-common-menu',\n imports: [NzDividerModule, NzDropdownModule, NzIconModule],\n templateUrl: './common-menu.html',\n styleUrl: './common-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CommonMenu {\n\n readonly baseMenu = input.required<BaseMenu>();\n readonly chooseComponentFunc = inject(AXIS_DESIGN_CHOOSE_COMPONENT_FUNC_TOKEN);\n\n get canAddParent(): boolean {\n const { optionsNodes } = this.baseMenu();\n return optionsNodes.current.isRoot || (!!optionsNodes.parent?.canDrop && optionsNodes.parent?.dropType == \"component\");\n }\n\n get canAddChild(): boolean {\n const { optionsNodes } = this.baseMenu();\n return optionsNodes.current.dropType == \"component\" && (Array.isArray(optionsNodes.current.dropObj) || !optionsNodes.current.dropObj[optionsNodes.current.defaultDropIndex!])\n }\n\n get canRemove(): boolean {\n return this.baseMenu().optionsNodes.current.canSetting;\n }\n\n addParent() {\n this.chooseComponentFunc(\"wrap\").subscribe(res => {\n const { options, config } = res;\n if (options && config) {\n const { optionsNodes } = this.baseMenu();\n const node = config.buildOptionsNodes?.({ currentObject: options });\n if (node) {\n const { treeNode } = node;\n treeNode.dropObj[treeNode.defaultDropIndex!] = optionsNodes.current.options;\n let value = undefined;\n if (optionsNodes.current.isRoot) {\n value = options;\n } else {\n optionsNodes.parent!.dropObj[optionsNodes.current.indexOfParentObj!] = treeNode.options;\n }\n this.baseMenu().onChange?.({ value: value, nextNodeId: res.options.id, historyDesc: `添加${node.treeNode.name}` });\n }\n }\n });\n }\n\n addChild() {\n this.chooseComponentFunc().subscribe(res => {\n if (res.options) {\n const { optionsNodes } = this.baseMenu();\n optionsNodes.current.dropObj[optionsNodes.current.defaultDropIndex!] = res.options;\n this.baseMenu().onChange?.({ nextNodeId: res.options.id, historyDesc: `添加${res.config?.componentName}` });\n }\n });\n }\n\n remove() {\n const current = this.baseMenu().optionsNodes.current;\n if (current.isRoot) {\n this.baseMenu().onChange?.({ value: null, historyDesc: `删除${current.name}` });\n } else {\n const { parentObj, indexOfParentObj } = current;\n let nextNodeId = this.baseMenu().optionsNodes.parent?.id;\n if (Array.isArray(parentObj)) {\n parentObj.splice(indexOfParentObj as number, 1);\n if (parentObj.length) {\n nextNodeId = parentObj[Math.min(indexOfParentObj as number, parentObj.length - 1)].id;\n }\n } else {\n parentObj[indexOfParentObj!] = null;\n }\n this.baseMenu().onChange?.({ nextNodeId: nextNodeId, historyDesc: `删除${current.name}` });\n }\n }\n\n}\n","@if (canAddParent) {\n<li nz-menu-item (click)=\"addParent()\">\n <i nz-icon nzType=\"pic-center\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>添加父组件</span>\n</li>\n}\n@if (canAddChild) {\n<li nz-menu-item (click)=\"addChild()\">\n <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>添加子组件</span>\n</li>\n}\n@if (canRemove) {\n<li nz-menu-item style=\"color: #f81d22\" (click)=\"remove()\">\n <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span>删除</span>\n</li>\n}","// 生成变量的类型声明\nexport function generateDeclarations(args: any, declaraMap?: { [name: string]: string }): string {\n return Object.entries(args).map(([name, value]) =>\n `declare const ${name}: ${declaraMap?.[name] ?? convertToTsType(value)};`\n ).join('\\n');\n}\n\n// 将 JavaScript 值转换为 TypeScript 类型表达式\nfunction convertToTsType(value: any): string {\n if (value === null) return 'null';\n if (value === undefined) return 'undefined';\n\n const type = typeof value;\n\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'boolean') return 'boolean';\n if (type === 'function') {\n // 获取函数参数个数\n const paramCount = value.length;\n // 生成参数列表,使用 any 类型作为默认参数类型\n const params = Array(paramCount).fill(null).map((_, i) => `arg${i}: any`).join(', ');\n // 简单推断返回类型(实际项目中可能需要更复杂的逻辑)\n return `(${params}) => any`;\n }\n\n if (Array.isArray(value)) {\n if (value.length > 0) {\n return `Array<${convertToTsType(value[0])}>`;\n }\n return 'any[]';\n }\n\n if (type === 'object') {\n const props = Object.entries(value)\n .map(([key, val]) =>\n `${key}: ${convertToTsType(val)};`\n )\n .join('\\n ');\n\n return `{\\n ${props}\\n}`;\n }\n\n return 'any';\n}","import { AfterContentInit, ChangeDetectionStrategy, Component, computed, ContentChild, effect, forwardRef, inject, input, model, OnDestroy, signal, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NgModel, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { BehaviorSubject, debounceTime, EMPTY, merge, mergeWith, NEVER, of, pipe, Subject, Subscription, switchMap } from 'rxjs';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzListModule } from 'ng-zorro-antd/list';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { ClipboardModule } from 'ngx-clipboard';\nimport { NzAlertModule } from 'ng-zorro-antd/alert';\nimport { NzEmptyModule } from 'ng-zorro-antd/empty';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzSplitterModule } from 'ng-zorro-antd/splitter';\nimport { AXIS_SCRIPTS_TOKEN, AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, AXIS_INJECT_FUNC_TOKEN, AXIS_DESIGN_SCOPE_INFOS_REFRESH_TOKEN } from '../tokens';\nimport { fn } from '../../utils/dynamic.util';\nimport { ScopeInfo } from '../../models/design-build';\nimport { copy } from '../../utils/object.util';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzCheckboxModule, NzCheckboxOption } from 'ng-zorro-antd/checkbox';\nimport { loadScripts } from '../../utils/scripts-loader';\nimport { generateDeclarations } from '../../utils/declaration.util';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'axis-fun-field',\n imports: [NzModalModule, NzListModule, NzFlexModule, NzInputModule, NzIconModule, NzButtonModule, NzRadioModule, FormsModule, ClipboardModule, NzAlertModule, NzEmptyModule, NzSelectModule, NzSplitterModule, NzCollapseModule, NzCheckboxModule, DynamicDirective],\n templateUrl: './fun-field.html',\n styleUrls: ['./fun-field.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FunField),\n multi: true\n }\n ]\n})\nexport class FunField implements ControlValueAccessor, OnDestroy, AfterContentInit {\n constructor(private msg: NzMessageService) {\n this._sub.push(this.execFnSubject.pipe(debounceTime(200))\n .subscribe(async _ => {\n let value = this.editValue() ?? this.value() ?? {};\n if (!this.onlyFun() && !value.funMode) {\n this.computeResult.set(value.originValue);\n } else {\n const args = this.ds();\n const libs: string[] = [];\n for (const i of value.fnValue?.imports ?? []) {\n if (this.scripts?.hasOwnProperty(i)) {\n libs.push(await loadScripts(`${this.scripts[i]}.js`));\n }\n }\n try {\n this.success.set(\"\");\n this.warn.set(\"\");\n this.error.set(\"\");\n this.computeResult.set(fn(`${libs.join(\"\\n\")}\\n${this.editFn()}`, args, true, false));\n if (!this.onlyFun() && this.editValue()?.funMode) {\n this.editValue().originValue = this.computeResult();\n this.updateContentValue();\n }\n if (this.computeResult() == undefined) {\n this.warn.set(`警告:执行结果为${this.computeResult()}`);\n } else {\n if (typeof (this.computeResult()) == \"object\") {\n this.resultResultEditorMode = \"json\";\n } else {\n this.resultResultEditorMode = \"plain_text\";\n }\n this.successResult = JSON.stringify(this.computeResult(), undefined, \"\\t\");\n this.success.set(\"函数运行成功!\");\n }\n } catch (e: any) {\n this.error.set(`报错:${e.message}`);\n }\n }\n }));\n effect(() => {\n this.buildImportDeclarations();\n });\n }\n\n readonly scopes = input<ScopeInfo[]>();\n readonly exclude = input<string[] | undefined>([]);\n readonly scopeId = input<string>();\n readonly onlyFun = input(false);\n readonly noListen = input(false);\n readonly disabled = input(false);\n readonly scopeInfosRefresh = inject(AXIS_DESIGN_SCOPE_INFOS_REFRESH_TOKEN, { optional: true });\n readonly getScopeInfos = inject(AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, { optional: true });\n readonly scopeInfos = toSignal(toObservable(this.scopeId).pipe(mergeWith(this.scopeInfosRefresh?.asObservable() ?? NEVER), switchMap(scopeId => this.getScopeInfos?.(scopeId) ?? of(undefined))));\n readonly scripts = inject(AXIS_SCRIPTS_TOKEN, { optional: true });\n readonly funcs = inject(AXIS_INJECT_FUNC_TOKEN, { optional: true });\n get funcsNames(): string[] {\n const funcs = this.funcs instanceof BehaviorSubject ? this.funcs.value : this.funcs;\n return Object.keys(funcs ?? {});\n }\n readonly scopeds = computed(() => this.buildScopeDs());\n readonly ds = computed(() => this.buildDs());\n readonly argsName = computed(() => this.buildArgsName());\n readonly importsList = computed(() => this.buildImportsList());\n readonly importDeclarations = signal<any[]>([]);\n readonly showDataSource = signal<any>(undefined);\n readonly editValue = signal<any>(undefined);\n readonly editFn = signal<any>(undefined);\n readonly editTip = input<string>();\n\n @ViewChild(\"funEditor\")\n funEditor?: DynamicDirective;\n monaco?: any;\n\n @ContentChild(NgModel)\n contentModel?: NgModel;\n\n execFnSubject = new Subject<void>();\n\n successResult: any;\n computeResult = signal<any>(undefined);\n\n resultResultEditorMode: string = \"json\";\n\n isShowSuccessResult = false;\n\n _sub: Subscription[] = [];\n\n ngOnDestroy(): void {\n this._sub.forEach(s => s.unsubscribe());\n }\n\n onChange: any;\n\n value = model<any>();\n\n writeValue(v: FunFieldValue | undefined): void {\n this.value.set(v);\n if (this.onlyFun() && this.noListen()) {\n this.editFn.set(v as any || \"return undefined\");\n this.execFnSubject.next();\n } else if (v) {\n if (v?.funMode) {\n this.editFn.set(this.value()!.fnValue.fn);\n this.execFnSubject.next();\n } else {\n this.value()!.fnValue = {\n listen: {},\n fn: `return ${JSON.stringify(this.value()!.originValue)};`\n };\n this.editFn.set(this.value()!.fnValue.fn);\n }\n }\n this.updateContentValue();\n }\n\n private updateContentValue() {\n if (!this.onlyFun()) {\n this.contentModel?.control.setValue(this.value()?.originValue, { emitModelToViewChange: true, emitViewToModelChange: false });\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(_: any): void {\n }\n\n _templateDataSource?: any[] = [];\n\n readonly open = model(false);\n readonly success = signal<string>(\"\");\n readonly error = signal<string>(\"\");\n readonly warn = signal<string>(\"\");\n\n showCreateListenModal = model(false);\n\n showAddImportModal = false;\n\n createListenDataSourceName = model(\"\");\n\n ngAfterContentInit(): void {\n setTimeout(() => {\n if (this.value()?.fnValue?.fn) {\n this.execFnSubject.next();\n }\n this.updateContentValue();\n });\n if (this.contentModel?.update) {\n this._sub.push(this.contentModel.update.subscribe(v => {\n if (!this.value()) {\n this.value.set({});\n }\n if (this.value() !== undefined) {\n this.value()!.originValue = v;\n this.changeValue();\n this.computeResult.set(v);\n }\n }))\n }\n }\n\n private buildScopeDs(): ScopeInfo[] {\n let scopes: any[] = copy((this.scopes() ?? []).concat(this.scopeInfos() ?? []), true);\n const sdname = new Set<string>();\n for (const scope of scopes) {\n for (const name in scope.ds) {\n sdname.add(name);\n if (this.exclude()?.includes(name)) {\n delete scope.ds[name];\n }\n }\n }\n const unknownScope: any = {\n scopeId: \"__unknown__\",\n scopeName: \"未知\",\n ds: {},\n }\n scopes.unshift(unknownScope);\n for (const en of Object.entries((this.editValue() ?? this.value())?.fnValue?.listen ?? {})) {\n if (!sdname.has(en[0])) {\n unknownScope.ds[en[0]] = \"示例数据\";\n }\n }\n this.execFnSubject.next();\n return scopes.filter(s => Object.keys(s.ds ?? {}).length);\n }\n\n getDsNames(scope: ScopeInfo): string[] {\n return Object.keys(scope.ds);\n }\n\n private buildDs(): any {\n const ds: any = {};\n for (const scope of [...this.scopeds()].reverse()) {\n Object.assign(ds, scope.ds);\n }\n const funcs = this.funcs instanceof BehaviorSubject ? this.funcs.value : this.funcs;\n for (const name in funcs) {\n if (funcs[name] instanceof Function) {\n ds[name] = funcs[name];\n } else {\n ds[name] = funcs[name].func;\n }\n }\n return ds;\n }\n\n openFunModal() {\n this.editValue.set(copy(this.value(), true));\n this.open.set(true);\n }\n\n private buildArgsName(): string {\n return Object.keys(this.ds()).join(\",\");\n }\n\n private buildImportsList(): NzCheckboxOption[] {\n return Object.keys(this.scripts ?? {})\n .map((name) => ({ label: name, value: name }))\n }\n\n changeLinstenMode(name: string, mode: string) {\n if (!this.editValue()!.fnValue?.listen) {\n this.editValue()!.fnValue.listen = {};\n }\n if (mode == \"none\") {\n delete this.editValue()!.fnValue.listen![name];\n } else {\n this.editValue()!.fnValue.listen![name] = mode;\n }\n this.editValue.set({ ...this.editValue() });\n }\n\n changeImports(imports: string[]) {\n this.editValue().fnValue.imports = imports;\n this.editValue.set({ ...this.editValue() });\n this.execFnSubject.next();\n }\n\n onCancel() {\n this.open.set(false);\n }\n\n onOk() {\n this.value.set(this.editValue());\n this.changeValue();\n this.open.set(false);\n }\n\n toogleMode() {\n if (this.value() && !this.onlyFun()) {\n this.value()!.funMode = !this.value()!.funMode;\n if (this.value()!.funMode && !this.value()!.fnValue) {\n this.value()!.fnValue = { fn: `return ${JSON.stringify(this.value()!.originValue)};` };\n }\n this.changeValue();\n if (this.value()!.funMode) {\n this.execFnSubject.next();\n }\n }\n }\n\n changeValue() {\n if (this.noListen() && this.onlyFun()) {\n this.value.set(this.editFn());\n this.onChange(this.value());\n return;\n } else if (this.onlyFun() || this.value()?.funMode) {\n this.value()!.funMode = true;\n for (const en of Object.entries(this.value()!.fnValue.listen ?? {})) {\n if (en[1] == \"none\") {\n delete this.value()!.fnValue.listen[en[0]];\n }\n }\n this.value().fnValue.fn = this.editFn();\n }\n this.value.set(copy(this.value()));\n this.onChange(this.value());\n }\n\n doShowDataSource(name: string) {\n this.showDataSource.set({\n name: name,\n data: JSON.stringify(this.ds()[name], undefined, '\\t')\n });\n }\n\n copySuccess() {\n this.msg.info(\"已复制\");\n }\n\n addListen() {\n if (this.createListenDataSourceName()) {\n if (this.ds().hasOwnProperty(this.createListenDataSourceName())) {\n this.msg.error(\"数据源名称重复\");\n return;\n }\n if (!this.editValue().fnValue.listen) {\n this.editValue().fnValue.listen = {};\n }\n this.editValue().fnValue.listen[this.createListenDataSourceName()] = \"defined\";\n this.editValue.set({ ...this.editValue() });\n }\n this.showCreateListenModal.set(false);\n this.createListenDataSourceName.set(\"\");\n this.execFnSubject.next();\n }\n\n removeListen(name: string) {\n delete this.editValue().fnValue.listen[name];\n this.editValue.set({ ...this.editValue() });\n this.execFnSubject.next();\n }\n\n async buildImportDeclarations() {\n const libs: { content: string; filePath?: string; }[] = [];\n for (const name in this.scripts) {\n if (this.editValue()?.fnValue?.imports?.includes(name)) {\n const filePath = this.scripts[name] + \".d.ts\";\n const dtsContent = await loadScripts(filePath);\n libs.push({ content: dtsContent, filePath });\n }\n }\n const declaraMap: any = {};\n const funcs = this.funcs instanceof BehaviorSubject ? this.funcs.value : this.funcs;\n for (const name in funcs) {\n if (!(funcs[name] instanceof Function)) {\n declaraMap[name] = funcs[name].type;\n }\n }\n libs.push({ content: generateDeclarations(this.ds(), declaraMap) });\n this.importDeclarations.set(libs);\n }\n\n layoutEditor() {\n this.funEditor?.onEvents?.({ name: \"layout\", target: \"component\" })?.subscribe();\n }\n\n}\n\nexport interface FunFieldValue {\n funMode: boolean;\n originValue: any;\n fnValue: any;\n}\n","@if (!onlyFun()) {\n<div nz-flex nzAlign=\"center\">\n @if (!value()?.funMode) {\n <div nz-flex nzFlex=\"1 0 0\">\n <ng-content #content></ng-content>\n </div>\n }@else{\n <nz-input-group nz-flex nzFlex=\"1 0 0\" [nzSuffix]=\"suffixTemplate\" [nzPrefix]=\"prefixTemplate\">\n <input nz-input readonly type=\"text\" [class]=\"{success:success(),warn:warn(),error:error()}\"\n [placeholder]=\"success() || warn() || error()\" (click)=\"openFunModal()\" />\n </nz-input-group>\n }\n <a nz-button nzType=\"link\" [disabled]=\"disabled()\" (click)=\"toogleMode()\"><i style=\"margin: 0 auto;display: block;\"\n nz-icon [nzType]=\"value()?.funMode?'rollback':'function'\" nzTheme=\"outline\"></i></a>\n</div>\n}@else{\n<nz-input-group [nzSuffix]=\"suffixTemplate\" [nzPrefix]=\"prefixTemplate\">\n <input nz-input readonly type=\"text\" [class]=\"{success:success(),warn:warn(),error:error()}\"\n [placeholder]=\"success() || warn() || error() || ''\" (click)=\"openFunModal()\" />\n</nz-input-group>\n}\n<ng-template #prefixTemplate>\n <i nz-icon nzType=\"function\" style=\"margin-right: 5px;\"></i>\n @if (success()) {\n <i nz-icon nzType=\"check-circle\" style=\"color:#52c41a;\"></i>\n }@else if (warn()) {\n <i nz-icon nzType=\"exclamation-circle\" style=\"color:#faad14;\"></i>\n }@else if (error()) {\n <i nz-icon nzType=\"close-circle\" style=\"color:#ff4d4f;\"></i>\n }\n</ng-template>\n<ng-template #suffixTemplate>\n <i style=\"color:rgba(150, 150, 150, 0.5);\" nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>\n</ng-template>\n<nz-modal nzWidth=\"1000px\" [nzBodyStyle]=\"{padding:'0'}\" [(nzVisible)]=\"open\" (nzOnCancel)=\"onCancel()\"\n (nzOnOk)=\"onOk()\" (nzAfterClose)=\"editValue.set(undefined);\">\n <ng-container *nzModalTitle>\n <i nz-icon nzType=\"function\" style=\"margin-right: 8px;\"></i>编辑脚本\n @if (editTip()) {\n <span style=\"font-size: 12px;margin-left: 30px;color:var(--ant-error-color)\">\n <nz-icon nzType=\"info-circle\" nzTheme=\"outline\" />\n {{editTip()}}\n </span>\n }\n </ng-container>\n <ng-container *nzModalContent>\n <nz-splitter style=\"height: 400px;\" (nzResize)=\"layoutEditor()\">\n <nz-splitter-panel [nzDefaultSize]=\"250\" [nzMin]=\"250\" nzMax=\"70%\" [nzCollapsible]=\"true\">\n <nz-collapse nzAccordion [nzBordered]=\"false\">\n @if (funcsNames.length) {\n <nz-collapse-panel nzHeader=\"注入函数\" [nzExtra]=\"funcsNames.length.toString()\">\n @for (item of funcsNames; track $index) {\n <div><span style=\"color:#C52727\">function</span> {{item}}</div>\n }\n </nz-collapse-panel>\n }\n @if ((!onlyFun() || !noListen()) && importsList().length) {\n <nz-collapse-panel nzHeader=\"函数库导入\"\n [nzExtra]=\"(editValue().fnValue?.imports?.length ?? 0) + '/'+importsList().length\">\n <nz-checkbox-group [nzOptions]=\"importsList()\" [ngModel]=\"editValue().fnValue?.imports\"\n (ngModelChange)=\"changeImports($event)\" />\n </nz-collapse-panel>\n }\n <nz-collapse-panel nzActive nzHeader=\"数据源\" [nzExtra]=\"addListenBtn\">\n <ng-template #addListenBtn>\n <a nz-button nzType=\"link\" nzSize=\"small\"\n (click)=\"$event.stopPropagation();showCreateListenModal.set(true)\">\n <nz-icon nzType=\"plus\"></nz-icon>\n 添加\n </a>\n </ng-template>\n @if (!scopeds().length) {\n <nz-empty nzNotFoundContent=\"暂无数据源\"></nz-empty>\n }@else{\n @for (scope of scopeds(); track scope.scopeId) {\n <div class=\"scope-tag\">{{scope.scopeName}}</div>\n @for (item of getDsNames(scope); track item;) {\n <div nz-flex nzVertical style=\"margin-top: 2px;\">\n <div nz-flex nzAlign=\"center\">\n <a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"doShowDataSource(item)\">\n <i nz-icon nzType=\"search\" nzTheme=\"outline\"></i>\n {{item}}\n </a>\n <a nz-button nzType=\"link\" nzSize=\"small\" ngxClipboard [cbContent]=\"item\"\n (cbOnSuccess)=\"copySuccess()\">\n <i nz-icon nzType=\"copy\" nzTheme=\"outline\"></i>\n </a>\n @if (scope.scopeId == '__unknown__') {\n <a nz-button nzType=\"link\" nzSize=\"small\" nzDanger (click)=\"removeListen(item)\">\n <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>\n </a>\n }\n </div>\n @if (!noListen() && !scope.noListen) {\n <nz-select style=\"margin-left:16px;font-size: 12px;width: fit-content;\"\n [nzDropdownMatchSelectWidth]=\"false\" nzVariant=\"borderless\"\n [ngModel]=\"editValue().fnValue?.listen?.[item]??'none'\"\n (ngModelChange)=\"changeLinstenMode(item,$event)\" nzSize=\"small\">\n <nz-option nzCustomContent nzLabel=\"不监听\" nzValue=\"none\">\n <span style=\"font-size: 12px;\">不监听</span>\n </nz-option>\n <nz-option nzCustomContent nzLabel=\"首次有定义\" nzValue=\"firstDefined\">\n <span style=\"font-size: 12px;\">首次有定义</span>\n </nz-option>\n <nz-option nzCustomContent nzLabel=\"有定义\" nzValue=\"defined\">\n <span style=\"font-size: 12px;\">有定义</span>\n </nz-option>\n <nz-option nzCustomContent nzLabel=\"总是\" nzValue=\"aways\">\n <span style=\"font-size: 12px;\">总是</span>\n </nz-option>\n </nz-select>\n }\n </div>\n }\n }\n }\n </nz-collapse-panel>\n </nz-collapse>\n </nz-splitter-panel>\n <nz-splitter-panel>\n <div nz-flex nzVertical style=\"height: 100%;\">\n <div class=\"code-row\"><span style=\"color: #C52727;\">function</span>({{argsName()}})\n {{'{'}}</div>\n <div nz-flex nzFlex=\"1 1 0\">\n <ng-container #funEditor=\"axisDynamic\"\n [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'javascript',typescriptExtLibs:importDeclarations()}\"\n [standalone]=\"true\" [(ngModel)]=\"editFn\"\n (ngModelChange)=\"execFnSubject.next()\"></ng-container>\n </div>\n <div class=\"code-row\"> {{'}'}}</div>\n </div>\n </nz-splitter-panel>\n </nz-splitter>\n @if (success()) {\n <nz-alert nzShowIcon nzType=\"success\" nzCloseable [nzDescription]=\"success()\" (nzOnClose)=\"success.set('')\"\n [nzAction]=\"showSuccessResultBtn\">\n </nz-alert>\n <ng-template #showSuccessResultBtn>\n <button nz-button (click)=\"isShowSuccessResult=true\">查看执行结果</button>\n </ng-template>\n }@else if(error()){\n <nz-alert nzShowIcon nzType=\"error\" nzCloseable [nzDescription]=\"error()\" (nzOnClose)=\"error.set('')\">\n </nz-alert>\n }@else if(warn()){\n <nz-alert nzShowIcon nzType=\"warning\" nzCloseable [nzDescription]=\"warn()\" (nzOnClose)=\"warn.set('')\">\n </nz-alert>\n }\n </ng-container>\n</nz-modal>\n\n<nz-modal [nzVisible]=\"!!isShowSuccessResult\" nzTitle=\"函数执行结果\" [nzOkText]=\"null\"\n (nzOnCancel)=\"isShowSuccessResult=false;\" [nzBodyStyle]=\"{padding:'0',position:'relative'}\" nzCancelText=\"关闭\">\n <div *nzModalContent style=\"height: 400px;\" nz-flex>\n <ng-container [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'json',readonly:true}\"\n [standalone]=\"true\" [ngModel]=\"successResult\"></ng-container>\n </div>\n</nz-modal>\n\n<nz-modal nzWidth=\"800px\" [nzVisible]=\"!!showDataSource()\" [nzTitle]=\"'查看数据源-'+showDataSource()?.name\" [nzOkText]=\"null\"\n (nzOnCancel)=\"showDataSource.set(undefined)\" [nzBodyStyle]=\"{padding:'0'}\" nzCancelText=\"关闭\">\n <div *nzModalContent style=\"height: 400px;\" nz-flex>\n <ng-container [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'json',readonly:true}\"\n [standalone]=\"true\" [ngModel]=\"showDataSource()?.data ??''\"></ng-container>\n </div>\n</nz-modal>\n\n<nz-modal [(nzVisible)]=\"showCreateListenModal\" nzDraggable nzTitle=\"创建监听\" (nzOnOk)=\"addListen()\"\n (nzOnCancel)=\"showCreateListenModal.set(false)\" nzWidth=\"400px\">\n <ng-container *nzModalContent>\n <div nz-flex nzAlign=\"center\">\n <div>数据源名称:</div>\n <input style=\"flex:1\" nz-input [(ngModel)]=\"createListenDataSourceName\" />\n </div>\n </ng-container>\n</nz-modal>","import { AbstractControl, UntypedFormControl, ValidationErrors, ValidatorFn, Validators } from \"@angular/forms\";\nimport { NzSafeAny } from \"ng-zorro-antd/core/types\";\n\nexport type MyErrorsOptions = { 'zh-cn': string } & Record<string, NzSafeAny>;\nexport type MyValidationErrors = Record<string, MyErrorsOptions>;\n\nexport class FormValidators extends Validators {\n\n static override required(control: AbstractControl): ValidationErrors | null {\n let error = Validators.required(control);\n if (error) {\n return { required: { 'zh-cn': \"必填项\" } };\n }\n return null;\n }\n\n static requiredFun(control: AbstractControl): ValidationErrors | null {\n let error = FormValidators.required(control);\n if (!error) {\n error = FormValidators.required(new UntypedFormControl(control.value?.funMode ? control.value?.fnValue.fn : control.value?.originValue));\n }\n if (error) {\n return { required: { 'zh-cn': \"必填项\" } };\n }\n return null;\n }\n\n\n static equal(comparedValue: string | (() => string | null)) {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n let cv;\n if (typeof (comparedValue) != \"function\") {\n cv = comparedValue;\n } else {\n try { cv = comparedValue(); } catch { }\n }\n return control.value != cv ? { notEqual: true } : null;\n }\n }\n\n static override minLength(minLength: number): ValidatorFn {\n const validator = Validators.minLength(minLength);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { minlength: { 'zh-cn': `最小长度为 ${minLength}` } };\n };\n }\n\n static override maxLength(maxLength: number): ValidatorFn {\n const validator = Validators.maxLength(maxLength);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { minlength: { 'zh-cn': `最大长度为 ${maxLength}` } };\n };\n }\n\n static override min(minvalue: number): ValidatorFn {\n const validator = Validators.min(minvalue);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { minlength: { 'zh-cn': `最小值为 ${minvalue}` } };\n };\n }\n\n static override max(maxvalue: number): ValidatorFn {\n const validator = Validators.max(maxvalue);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { minlength: { 'zh-cn': `最大值为 ${maxvalue}` } };\n };\n }\n\n static override pattern(pattern: string | RegExp): ValidatorFn {\n const validator = Validators.pattern(pattern);\n return (control: AbstractControl): MyValidationErrors | null => {\n if (validator(control) === null) {\n return null;\n }\n return { pattern: { 'zh-cn': \"输入不正确\" } };\n };\n }\n}\n\nexport function buildValidators(validators: any[]): ValidatorFn[] {\n const output: ValidatorFn[] = [];\n for (const v of validators) {\n if (v.disabled) {\n continue;\n }\n switch (v.type) {\n case \"required\":\n output.push(FormValidators.required);\n break;\n case \"length\":\n if (v.minLength || v.minLength == 0) {\n output.push(FormValidators.minLength(v.minLength));\n }\n if (v.maxLength || v.maxLength == 0) {\n output.push(FormValidators.maxLength(v.maxLength));\n }\n break;\n case \"value\":\n if (v.minValue || v.minValue == 0) {\n output.push(FormValidators.min(v.minValue));\n }\n if (v.maxValue || v.maxValue == 0) {\n output.push(FormValidators.max(v.maxValue));\n }\n break;\n case \"regex\":\n if (v.pattern) {\n output.push(FormValidators.pattern(v.pattern));\n }\n break;\n }\n }\n return output;\n}","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, inject, input, signal } from '@angular/core';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { FormValidators } from '../../utils/form-validators';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { AXIS_DESIGN_ALL_PERMISSIONS_TOKEN, AXIS_DESIGN_CAN_LOOP_TOKEN } from '../tokens';\nimport { FunFieldOptions } from '../../models/fun-field.options';\n\n@Component({\n selector: 'axis-base-design-setting',\n imports: [NzCollapseModule, NzFormModule, FunField, NzSwitchModule, FormsModule, NzInputModule, ReactiveFormsModule, DynamicDirective, NzSelectModule],\n templateUrl: './base-design-setting.html',\n styleUrl: './base-design-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseDesignSetting implements AfterViewInit {\n\n constructor(private element: ElementRef) { }\n\n readonly showLine = signal(false);\n readonly scopeId = input<string>();\n readonly exclude = input<string[]>([]);\n readonly allPermissions = Object.entries(inject(AXIS_DESIGN_ALL_PERMISSIONS_TOKEN));\n readonly canLoop = inject(AXIS_DESIGN_CAN_LOOP_TOKEN);\n\n fg = input.required<UntypedFormGroup>();\n\n ngAfterViewInit(): void {\n if (this.element.nativeElement.nextElementSibling) {\n this.showLine.set(true);\n }\n }\n\n}\n\nexport const baseFbConfig = {\n id: [undefined, [FormValidators.required]],\n inuse: [undefined, [FormValidators.requiredFun]],\n loop: [false, [FormValidators.required]],\n loopTarget: [],\n requiredPermissions: [],\n style: [],\n triggeEvents: []\n};\n\nexport const baseFunField: FunFieldOptions = {\n inuse: {\n defaultValue: true\n },\n style: {\n defaultValue: undefined\n },\n loopTarget: {\n defaultValue: []\n }\n}","<form [formGroup]=\"fg()\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"通用设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 组件ID\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <input nz-input formControlName=\"id\" />\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 启用\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"inuse\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (canLoop) {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 启用循环\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-switch #loop formControlName=\"loop\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n @if (loop.isChecked) {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 循环目标\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"loopTarget\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 权限\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-select nzMode=\"multiple\" nzAllowClear formControlName=\"requiredPermissions\">\n @for (en of allPermissions; track en[0]) {\n <nz-option [nzLabel]=\"en[1]\" [nzValue]=\"en[0]\"></nz-option>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 样式\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"style\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n @if (showLine()) {\n <div></div>\n }\n </nz-collapse>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject, signal } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-api-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, DynamicDirective, NzInputModule, NzSwitchModule, NzRadioModule],\n templateUrl: './api-handler.html',\n styleUrl: './api-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ApiHandler),\n multi: true\n }\n ]\n})\nexport class ApiHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n url: [undefined, FormValidators.requiredFun],\n method: [undefined, FormValidators.requiredFun],\n body: [],\n context: [],\n });\n\n protected override funFields: FunFieldOptions = {\n url: {\n defaultValue: \"\",\n },\n method: {\n defaultValue: \"get\"\n },\n body: {\n defaultValue: undefined\n },\n context: {\n defaultValue: undefined\n },\n\n };\n\n readonly successTipMode = signal(undefined);\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 地址\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"url\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 请求方式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"method\" [noListen]=\"noListen()\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"get\" nzLabel=\"GET\"></nz-option>\n <nz-option nzValue=\"post\" nzLabel=\"POST\"></nz-option>\n <nz-option nzValue=\"put\" nzLabel=\"PUT\"></nz-option>\n <nz-option nzValue=\"delete\" nzLabel=\"DELETE\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 请求数据体\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"body\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 上下文\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"context\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, computed, effect, forwardRef, inject, input, model, signal } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormArray, FormBuilder, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { FormValidators } from '../../../utils/form-validators';\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzTagModule } from 'ng-zorro-antd/tag';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'axis-design-filter-options',\n templateUrl: './filter-options.html',\n styleUrls: ['./filter-options.css'],\n imports: [NzSelectModule, NzButtonModule, NzInputModule, NzAutocompleteModule, ReactiveFormsModule, NzTagModule, NzIconModule, NzFlexModule, NzDividerModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FilterOptions),\n multi: true\n }\n ]\n})\nexport class FilterOptions implements ControlValueAccessor {\n\n constructor() {\n effect(() => {\n this.onChange?.(this.formValue()?.filters);\n })\n }\n\n onChange: any;\n readonly value = model<any[]>();\n\n writeValue(v: any): void {\n this.value.set(v);\n if (v?.length) {\n v.forEach((r: any) => {\n this.createFilter();\n r.effectFields?.forEach((f: any) => {\n if (!this.sourceDataChooseFields().includes(f) && !this.addFields().includes(f)) {\n this.addFields.set([...this.addFields(), f]);\n }\n })\n });\n }\n this.fg.reset({\n filters: v\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n }\n\n readonly sourceDataFields = input<string[]>([]);\n readonly sourceDataChooseFields = computed(() => this.sourceDataFields().concat(this.addFields()));\n readonly filterDataFields = input<string[]>([]);\n readonly addFields = signal<string[]>([]);\n private readonly fb = inject(FormBuilder);\n readonly fg = this.fb.group({\n filters: this.fb.array([])\n });\n readonly formValue = toSignal(this.fg.valueChanges);\n currentEffectFieldsControl?: AbstractControl;\n\n get fa(): FormArray {\n return this.fg.get(\"filters\") as FormArray;\n };\n\n createFilter() {\n this.fa.push(this.fb.group({\n field: [undefined, FormValidators.required],\n mode: [\"equals\", FormValidators.required],\n effectFields: [[], FormValidators.required],\n }));\n }\n\n deleteFilter(i: number) {\n this.fa.removeAt(i);\n }\n\n addField(field: string) {\n if (!this.sourceDataChooseFields().includes(field)) {\n this.addFields.set([...this.addFields(), field]);\n if (this.currentEffectFieldsControl) {\n this.currentEffectFieldsControl!.patchValue({ effectFields: [...this.currentEffectFieldsControl!.value.effectFields, field] });\n }\n }\n\n }\n\n}\n","<form [formGroup]=\"fg\">\n <ng-container formArrayName=\"filters\">\n @for (c of fa.controls; track $index;let index=$index;) {\n <div class=\"item\" [formGroupName]=\"index\">\n <div nz-flex nzJustify=\"space-between\">\n <h4>条件{{index+1}}:</h4>\n <a nz-button nzType=\"link\" nzSize=\"small\" nzDanger (click)=\"deleteFilter(index)\"><i nz-icon\n nzType=\"delete\" nzTheme=\"outline\"></i></a>\n </div>\n <div>\n <span>使用</span>\n <input nz-input nzVariant=\"underlined\" placeholder=\"选择字段\" style=\"width: 100px;\" nzSize=\"small\"\n [nzAutocomplete]=\"filterDataFieldsAuto\" formControlName=\"field\" />\n <span>字段并通过</span>\n <nz-select style=\"width: 103px;\" nzVariant=\"underlined\" formControlName=\"mode\" nzSize=\"small\">\n <nz-option nzValue=\"equals\" nzLabel=\"相等\"></nz-option>\n <nz-option nzValue=\"startsWith\" nzLabel=\"头部相等\"></nz-option>\n <nz-option nzValue=\"endsWith\" nzLabel=\"尾部相等\"></nz-option>\n <nz-option nzValue=\"like\" nzLabel=\"模糊匹配\"></nz-option>\n <nz-option nzValue=\"equalGreater\" nzLabel=\"大于等于\"></nz-option>\n <nz-option nzValue=\"equalLess\" nzLabel=\"小于等于\"></nz-option>\n <nz-option nzValue=\"between\" nzLabel=\"两者之间\"></nz-option>\n <nz-option nzValue=\"containAll\" nzLabel=\"包含所有\"></nz-option>\n <nz-option nzValue=\"containAny\" nzLabel=\"包含任意\"></nz-option>\n </nz-select>\n <span>的方式匹配以下字段:</span>\n <nz-select formControlName=\"effectFields\" style=\"min-width: 120px;\" nzSize=\"small\" nzMode=\"multiple\"\n nzVariant=\"underlined\" nzShowSearch nzAllowClear [nzDropdownRender]=\"renderTemplate\"\n nzPlaceHolder=\"选择字段\" (nzOpenChange)=\"$event && currentEffectFieldsControl=c\">\n @for (f of sourceDataChooseFields(); track f) {\n <nz-option [nzLabel]=\"f\" [nzValue]=\"f\"></nz-option>\n }\n </nz-select>\n </div>\n </div>\n }\n </ng-container>\n</form>\n<ng-template #renderTemplate>\n <div nz-flex nzGap=\"4px\" style=\"padding: 0 10px;\">\n <input type=\"text\" nz-input nzSize=\"small\" placeholder=\"其他字段\" #inputElement />\n <a (click)=\"addField(inputElement.value);inputElement.value=''\">\n <nz-icon nzType=\"plus\" />\n </a>\n </div>\n</ng-template>\n<nz-autocomplete #filterDataFieldsAuto nzBackfill [nzWidth]=\"120\">\n @for (f of filterDataFields(); track f) {\n <nz-auto-option [nzLabel]=\"f\" [nzValue]=\"f\">\n {{f}}\n </nz-auto-option>\n }\n</nz-autocomplete>\n<a nz-button nzType=\"link\" (click)=\"createFilter()\">\n <i nz-icon nzType=\"plus\" nzTheme=\"outline\"></i>\n 添加过滤条件\n</a>","import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, ViewChild } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { FilterOptions } from './input-filter-options/filter-options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-array-filter-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, DynamicDirective, NzInputModule, NzSwitchModule, NzRadioModule, FilterOptions],\n templateUrl: './array-filter-handler.html',\n styleUrl: './array-filter-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ArrayFilterHandler),\n multi: true\n }\n ]\n})\nexport class ArrayFilterHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n inputArray: [],\n filterData: [],\n filterOptions: [],\n });\n\n protected override funFields: FunFieldOptions = {\n inputArray: {\n defaultValue: undefined,\n },\n filterData: {\n defaultValue: undefined,\n },\n };\n\n @ViewChild(\"sourceDataFunField\", { static: true })\n sourceDataFunField!: FunField;\n @ViewChild(\"filterDataFunField\", { static: true })\n filterDataFunField!: FunField;\n\n readonly sourceDataFields = computed(() => this.buildSourceDataFields())\n readonly filterDataFields = computed(() => this.buildfilterDataFields())\n\n private buildSourceDataFields(): string[] {\n const sourceData = this.sourceDataFunField.computeResult();\n if (sourceData?.length) {\n return Object.keys(sourceData[0]);\n }\n return [];\n }\n\n private buildfilterDataFields(): string[] {\n return Object.keys(this.filterDataFunField.computeResult() ?? {});\n }\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 原数组\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"inputArray\" [noListen]=\"noListen()\" #sourceDataFunField>\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 过滤对象\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"filterData\" [noListen]=\"noListen()\" #filterDataFunField>\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <axis-design-filter-options [sourceDataFields]=\"sourceDataFields()\" [filterDataFields]=\"filterDataFields()\"\n formControlName=\"filterOptions\"></axis-design-filter-options>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN } from '../tokens';\n\n@Component({\n selector: 'axis-components-snapshot-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule],\n templateUrl: './components-snapshot-handler.html',\n styleUrl: './components-snapshot-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ComponentsSnapshotHandler),\n multi: true\n }\n ]\n})\nexport class ComponentsSnapshotHandler extends FunFieldValueBase {\n\n readonly componentsInfo = inject(AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN);\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n ids: [undefined, FormValidators.required],\n exportFileName: [undefined, FormValidators.requiredFun],\n });\n\n protected override funFields: FunFieldOptions = {\n exportFileName: {\n defaultValue: \"组件快照\",\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 组件\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <nz-select formControlName=\"ids\" nzShowSearch nzMode=\"tags\">\n @for (component of componentsInfo; track component.componentName) {\n <nz-option-group [nzLabel]=\"component.componentName\">\n @for(node of component.nodes; track node.id){\n <nz-option [nzLabel]=\"node.id\" [nzValue]=\"node.id\"></nz-option>\n }\n </nz-option-group>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 文件名称\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"exportFileName\" [noListen]=\"noListen()\">\n <nz-input-wrapper nzSuffix=\".png\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" nzs />\n </nz-input-wrapper>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-data-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, DynamicDirective, NzInputModule, NzSwitchModule, NzRadioModule],\n templateUrl: './data-handler.html',\n styleUrl: './data-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DataHandler),\n multi: true\n }\n ]\n})\nexport class DataHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n data: [],\n });\n\n protected override funFields: FunFieldOptions = {\n data: {\n defaultValue: null,\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 数据\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"data\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","export const sheetsOptions: any = {\n \"id\": \"axis-components/edit-table#1\",\n \"requiredPermissions\": null,\n \"triggeEvents\": {\n \"valueChange\": [\n {\n \"name\": \"setDataSource\",\n \"disabled\": false,\n \"id\": \"axis-components/scope#1\",\n \"data\": {\n \"name\": \"data\",\n \"$data\": {\n \"listen\": {},\n \"fn\": \"return value;\"\n }\n },\n \"target\": \"scope\"\n }\n ]\n },\n \"emitInitEvent\": true,\n \"disabledRemoveFn\": null,\n \"showExpand\": false,\n \"expandFormName\": null,\n \"checkedFormName\": \"checked\",\n \"checkboxLinkageForExpand\": false,\n \"disableCheckboxFn\": null,\n \"showPagination\": false,\n \"pageSizeOptions\": \"10,20,50,100\",\n \"component\": \"axis-components/edit-table\",\n \"fields\": [\n {\n \"field\": \"sheetTitle\",\n \"validators\": [\n {\n \"type\": \"required\",\n \"disabled\": false,\n \"minLength\": null,\n \"maxLength\": null,\n \"minValue\": null,\n \"maxValue\": null,\n \"pattern\": \"\"\n }\n ],\n \"child\": {\n \"component\": \"axis-components/input\",\n \"id\": \"axis-components/input#1\",\n \"inuse\": true\n },\n \"inuse\": true,\n \"title\": \"工作表名称\",\n \"sortAble\": false,\n \"sortOrder\": null,\n \"sortPriority\": null,\n \"filterAble\": false,\n \"filterMultiple\": false,\n \"width\": 150,\n \"align\": \"left\",\n \"freezeMode\": \"none\"\n },\n {\n \"field\": \"tableId\",\n \"validators\": [\n {\n \"type\": \"required\",\n \"disabled\": false,\n \"minLength\": null,\n \"maxLength\": null,\n \"minValue\": null,\n \"maxValue\": null,\n \"pattern\": \"\"\n }\n ],\n \"child\": {\n \"id\": \"axis-components/select#1\",\n \"loop\": false,\n \"requiredPermissions\": null,\n \"triggeEvents\": null,\n \"emitInitEvent\": true,\n \"labelField\": \"title\",\n \"valueField\": \"key\",\n \"disabledField\": \"disabled\",\n \"fullValue\": false,\n \"allowInvalidValue\": false,\n \"mode\": \"default\",\n \"defaultFirst\": false,\n \"component\": \"axis-components/select\",\n \"inuse\": true,\n \"loopTarget\": [],\n \"disabled\": false,\n \"readonly\": false,\n \"data\": [\n {\n \"title\": \"选项1\",\n \"key\": \"1\"\n },\n {\n \"title\": \"选项2\",\n \"key\": \"2\"\n }\n ],\n \"allowClear\": true,\n \"placeholder\": \"\",\n \"variant\": \"outlined\",\n \"dropdownMatchSelectWidth\": false,\n \"size\": \"default\",\n \"optionOverflowSize\": 8,\n \"selectOnTab\": false,\n \"tokenSeparators\": [],\n \"showSearch\": true,\n \"serverSearch\": false,\n \"autoClearSearchValue\": true\n },\n \"inuse\": true,\n \"title\": \"表格ID\",\n \"sortAble\": false,\n \"sortOrder\": null,\n \"sortPriority\": null,\n \"filterAble\": false,\n \"filterMultiple\": false,\n \"width\": null,\n \"align\": \"left\",\n \"freezeMode\": \"none\"\n }\n ],\n \"inuse\": true,\n \"style\": {\n \"width\": \"100%\"\n },\n \"disabled\": false,\n \"readonly\": false,\n \"disabledAppend\": false,\n \"disabledRemove\": false,\n \"maxLength\": null,\n \"size\": \"middle\",\n \"showOrder\": true,\n \"showDataSize\": true,\n \"bordered\": false,\n \"outerBordered\": false,\n \"width\": null,\n \"showCheckbox\": false,\n \"checkeOnRowClick\": false,\n \"singleCheck\": false,\n \"showTotal\": false,\n \"totalTitle\": \"合计\",\n \"pageSize\": 10,\n \"showSizeChanger\": true\n};","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { sheetsOptions } from './sheets.options';\nimport { AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN } from '../tokens';\n\n@Component({\n selector: 'axis-export-excel-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, DynamicDirective],\n templateUrl: './export-excel-handler.html',\n styleUrl: './export-excel-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ExportExcelHandler),\n multi: true\n }\n ]\n})\nexport class ExportExcelHandler extends FunFieldValueBase {\n\n readonly componentsInfo = inject(AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN);\n get sheetsOptions(): any {\n sheetsOptions.fields[1].child.data = this.componentsInfo.find(c => c.component == \"axis-components/table\")?.nodes?.map(n => ({ key: n.id, title: n.id }))\n return sheetsOptions;\n };\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n sheets: [undefined, FormValidators.requiredFun],\n fileName: [undefined, FormValidators.requiredFun],\n bookType: [\"xlsx\", FormValidators.required],\n });\n\n protected override funFields: FunFieldOptions = {\n sheets: {\n defaultValue: [],\n },\n fileName: {\n defaultValue: \"数据导出\",\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-control nzSpan=\"24\">\n <axis-fun-field formControlName=\"sheets\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"sheetsOptions\" [standalone]=\"true\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 文件名称\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"fileName\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 文档格式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <nz-select formControlName=\"bookType\">\n <nz-option nzValue=\"xlsx\" nzLabel=\"xlsx\"></nz-option>\n <nz-option nzValue=\"xls\" nzLabel=\"xls\"></nz-option>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-msg-tip-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, NzRadioModule],\n templateUrl: './msg-tip-handler.html',\n styleUrl: './msg-tip-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MsgTipHandler),\n multi: true\n }\n ]\n})\nexport class MsgTipHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n tipWay: [undefined, FormValidators.requiredFun],\n type: [undefined, FormValidators.requiredFun],\n content: [undefined, FormValidators.requiredFun],\n });\n\n protected override funFields: FunFieldOptions = {\n tipWay: {\n defaultValue: \"message\",\n },\n type: {\n defaultValue: \"info\",\n },\n content: {\n defaultValue: undefined,\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 提醒方式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"tipWay\" [noListen]=\"noListen()\" editTip=\"message-消息 modal-弹窗\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\">\n <label nz-radio-button nzValue=\"message\">消息</label>\n <label nz-radio-button nzValue=\"modal\">弹窗</label>\n </nz-radio-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 消息类型\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"type\" [noListen]=\"noListen()\" editTip=\"info-提醒 success-成功 warning-警告 error-错误\">\n <nz-radio-group ngModel [ngModelOptions]=\"{standalone:true}\" nzSize=\"small\">\n <label nz-radio-button nzValue=\"info\">提醒</label>\n <label nz-radio-button nzValue=\"success\">成功</label>\n <label nz-radio-button nzValue=\"warning\">警告</label>\n <label nz-radio-button nzValue=\"error\">错误</label>\n </nz-radio-group>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 消息内容\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"content\" [noListen]=\"noListen()\">\n <textarea nz-input ngModel [ngModelOptions]=\"{standalone:true}\"></textarea>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { NzSwitchComponent } from \"ng-zorro-antd/switch\";\nimport { DynamicDirective } from '../../directives/dynamic';\n\n@Component({\n selector: 'axis-print-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, NzRadioModule, NzSwitchComponent, DynamicDirective],\n templateUrl: './print-handler.html',\n styleUrl: './print-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PrintHandler),\n multi: true\n }\n ]\n})\nexport class PrintHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n html: [],\n loadTinyCss: [undefined, FormValidators.requiredFun],\n style: [],\n });\n\n protected override funFields: FunFieldOptions = {\n html: {\n defaultValue: \"\",\n },\n loadTinyCss: {\n defaultValue: false,\n },\n style: {\n defaultValue: undefined,\n }\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 打印内容\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"html\" [noListen]=\"noListen()\">\n <textarea nz-input ngModel [ngModelOptions]=\"{standalone:true}\"></textarea>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 载入Tiny样式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"loadTinyCss\" [noListen]=\"noListen()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 样式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"style\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'css',style:{height:'200px'}}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { filter, map, mergeWith, of, switchMap } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN } from '../tokens';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { NzAutocompleteModule } from 'ng-zorro-antd/auto-complete';\n\n@Component({\n selector: 'axis-refresh-data-source-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, NzSwitchModule, NzRadioModule, NzAutocompleteModule, NzSwitchModule],\n templateUrl: './refresh-data-source-handler.html',\n styleUrl: './refresh-data-source-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RefreshDataSourceHandler),\n multi: true\n }\n ]\n})\nexport class RefreshDataSourceHandler extends FunFieldValueBase {\n override fg: UntypedFormGroup = this.fb.group({\n name: [undefined, FormValidators.requiredFun],\n setNull: [undefined, FormValidators.requiredFun],\n });\n\n protected override funFields: FunFieldOptions = {\n name: {\n defaultValue: null,\n },\n setNull: {\n defaultValue: false,\n },\n };\n readonly inputTrigger = inject(InputTrigger);\n readonly noListen = this.inputTrigger.noListen;\n readonly getScopeInfos = inject(AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN);\n readonly scopeDsNames = toSignal(this.inputTrigger.fg.valueChanges.pipe(\n mergeWith(of(this.inputTrigger.fg.value)),\n filter(v => v.id?.funMode === false),\n map(v => v.id.originValue),\n switchMap(scopeId => this.getScopeInfos(scopeId)\n .pipe(map(sis => Object.keys(scopeId ? sis.find(s => s.scopeId == scopeId)?.ds : sis[0]?.ds))))));\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 数据源名\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"name\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" [nzAutocomplete]=\"dsAuto\" />\n <nz-autocomplete #dsAuto nzBackfill>\n @for (name of scopeDsNames()??[]; track name) {\n <nz-auto-option [nzLabel]=\"name\" [nzValue]=\"name\">\n {{name}}\n </nz-auto-option>\n }\n </nz-autocomplete>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 刷新前清空\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"setNull\" [noListen]=\"noListen()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { AfterViewInit, ChangeDetectionStrategy, Component, forwardRef, inject, OnDestroy, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, NgModel, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { AXIS_ROUTE_STATE_COMPONENT_TOKEN } from '../tokens';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'axis-route-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, NzInputModule, NzSwitchModule, DynamicDirective],\n templateUrl: './route-handler.html',\n styleUrl: './route-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RouteHandler),\n multi: true\n }\n ]\n})\nexport class RouteHandler extends FunFieldValueBase implements AfterViewInit, OnDestroy {\n\n readonly noListen = inject(InputTrigger).noListen;\n\n @ViewChild('stateContainer', { read: ViewContainerRef })\n readonly stateContainer?: ViewContainerRef;\n @ViewChild('stateContainer', { read: NgModel })\n readonly stateModel?: NgModel;\n readonly routeStateComponent = inject(AXIS_ROUTE_STATE_COMPONENT_TOKEN, { optional: true });\n private stateSub?: Subscription;\n\n override fg: UntypedFormGroup = this.fb.group({\n type: [undefined, FormValidators.requiredFun],\n newtab: [undefined, FormValidators.requiredFun],\n path: [undefined, FormValidators.requiredFun],\n params: [],\n });\n\n protected override funFields: FunFieldOptions = {\n type: {\n defaultValue: \"web\",\n },\n newtab: {\n defaultValue: false,\n },\n path: {\n defaultValue: undefined,\n },\n params: {\n defaultValue: undefined,\n },\n };\n\n ngAfterViewInit(): void {\n if (this.stateContainer) {\n this.stateContainer.clear();\n const ref = this.stateContainer.createComponent(this.routeStateComponent!);\n ref.instance.registerOnChange((v: any) => this.stateModel?.control.setValue(v));\n this.stateSub = this.stateModel?.valueChanges?.subscribe(v => ref.instance.writeValue(v));\n }\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.stateSub?.unsubscribe();\n }\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 打开类型\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"type\" [noListen]=\"noListen()\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\">\n <nz-option nzValue=\"web\" nzLabel=\"网页\"></nz-option>\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.type?.funMode || formValue()?.type?.originValue == \"web\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 新浏览器标签\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"newtab\" [noListen]=\"noListen()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 链接\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"path\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (formValue()?.newtab.funMode || !formValue()?.newtab.originValue) {\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 路由状态\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"params\" [noListen]=\"noListen()\">\n <ng-container #stateContainer\n [axisDynamic]=\"routeStateComponent?null:{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { InputTrigger } from '../input-trigger/input-trigger';\nimport { FormValidators } from '../../utils/form-validators';\n\n@Component({\n selector: 'axis-run-script-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule],\n templateUrl: './run-script-handler.html',\n styleUrl: './run-script-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RunScriptHandler),\n multi: true\n }\n ]\n})\nexport class RunScriptHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n script: [undefined, FormValidators.required],\n });\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 脚本\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"script\" [noListen]=\"noListen()\" [onlyFun]=\"true\">\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FunFieldValueBase } from '../../base/funfield-value-base';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { InputTrigger } from '../input-trigger/input-trigger';\n\n@Component({\n selector: 'axis-set-data-source-handler',\n imports: [NzFormModule, ReactiveFormsModule, FunField, FormsModule, NzSelectModule, DynamicDirective, NzInputModule, NzSwitchModule, NzRadioModule],\n templateUrl: './set-data-source-handler.html',\n styleUrl: './set-data-source-handler.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SetDataSourceHandler),\n multi: true\n }\n ]\n})\nexport class SetDataSourceHandler extends FunFieldValueBase {\n readonly noListen = inject(InputTrigger).noListen;\n override fg: UntypedFormGroup = this.fb.group({\n name: [undefined, FormValidators.requiredFun],\n data: [],\n });\n\n protected override funFields: FunFieldOptions = {\n name: {\n defaultValue: null,\n },\n data: {\n defaultValue: null,\n },\n };\n}\n","<form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label [nzSpan]=\"6\" nzRequired>\n 数据源名\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"name\" [noListen]=\"noListen()\">\n <input nz-input ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSpan]=\"6\">\n 数据\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"data\" [noListen]=\"noListen()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\" [standalone]=\"true\"\n ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n</form>","import { ComponentRef } from \"@angular/core\";\nimport { EventHandlerDesc, EventHandlerDescGroup } from \"../models/event-desc\";\nimport { ApiHandler } from \"./api-handler/api-handler\";\nimport { ArrayFilterHandler } from \"./array-filter-handler/array-filter-handler\";\nimport { ComponentsSnapshotHandler } from \"./components-snapshot-handler/components-snapshot-handler\";\nimport { DataHandler } from \"./data-handler/data-handler\";\nimport { ExportExcelHandler } from \"./export-excel-handler/export-excel-handler\";\nimport { MsgTipHandler } from \"./msg-tip-handler/msg-tip-handler\";\nimport { PrintHandler } from \"./print-handler/print-handler\";\nimport { RefreshDataSourceHandler } from \"./refresh-data-source-handler/refresh-data-source-handler\";\nimport { RouteHandler } from \"./route-handler/route-handler\";\nimport { RunScriptHandler } from \"./run-script-handler/run-script-handler\";\nimport { SetDataSourceHandler } from \"./set-data-source-handler/set-data-source-handler\";\nimport { BaseOptions } from \"../models/base.options\";\nimport { Base } from \"../base/base\";\nimport { ValueAccess } from \"../base/value-access\";\nimport { ValueAccessOptions } from \"../models/value-access.options\";\n\nexport const baseEventHandlerDescs: { [name: string]: EventHandlerDesc } = {\n api: {\n name: \"api\",\n icon: \"api\",\n title: \"调用接口\",\n target: \"service\",\n dataComponent: ApiHandler,\n events: [\n {\n name: \"apiResponse\",\n title: \"接口响应\",\n ds: {\n apiResponse: {\n tip: \"示例数据\"\n }\n },\n }\n ]\n },\n setDataSource: {\n name: \"setDataSource\",\n title: \"设置数据源\",\n icon: \"database\",\n dataComponent: SetDataSourceHandler,\n target: \"scope\",\n },\n refreshDataSource: {\n name: \"refreshDataSource\",\n title: \"刷新数据源\",\n icon: \"reload\",\n dataComponent: RefreshDataSourceHandler,\n target: \"scope\",\n },\n setValue: {\n name: \"setValue\",\n title: \"设置值\",\n icon: \"flag\",\n dataComponent: DataHandler,\n target: \"component\",\n },\n getValue: {\n name: \"getValue\",\n title: \"获取值\",\n icon: \"flag\",\n target: \"component\",\n events: [\n {\n name: \"afterGetValue\",\n title: \"值获取后\",\n ds: (ref: ComponentRef<Base<BaseOptions>> | undefined) => ({\n getValue: (ref?.instance as ValueAccess<ValueAccessOptions> | undefined)?.value() ?? \"示例数据\"\n })\n }\n ],\n },\n setFocus: {\n name: \"setFocus\",\n title: \"设置焦点\",\n icon: \"aim\",\n target: \"component\",\n },\n arrayFilter: {\n name: \"arrayFilter\",\n icon: \"filter\",\n title: \"数组过滤\",\n target: \"service\",\n dataComponent: ArrayFilterHandler,\n events: [\n {\n name: \"output\",\n title: \"数据输出\",\n ds: {\n outputArray: [{\n tip: \"示例数据\"\n }]\n },\n }\n ]\n },\n msgTip: {\n name: \"msgTip\",\n icon: \"bell\",\n title: \"消息提醒\",\n target: \"service\",\n dataComponent: MsgTipHandler\n },\n route: {\n name: \"route\",\n icon: \"right-square\",\n title: \"路由\",\n target: \"service\",\n formStyle: {\n labelSpan: 8\n },\n dataComponent: RouteHandler\n },\n runScript: {\n name: \"runScript\",\n icon: \"function\",\n title: \"执行脚本\",\n target: \"service\",\n formStyle: {\n labelSpan: 8\n },\n dataComponent: RunScriptHandler\n },\n print: {\n name: \"print\",\n title: \"打印\",\n icon: \"printer\",\n dataComponent: PrintHandler,\n target: \"service\",\n },\n exportExcel: {\n name: \"exportExcel\",\n title: \"导出Excel\",\n icon: \"file-excel\",\n dataComponent: ExportExcelHandler,\n target: \"scope\",\n },\n componentsSnapshot: {\n name: \"componentsSnapshot\",\n title: \"组件快照\",\n icon: \"file-image\",\n dataComponent: ComponentsSnapshotHandler,\n target: \"scope\",\n },\n};\n\nexport const baseEventHandlerDescGroups: EventHandlerDescGroup[] = [\n {\n groupName: \"基础\",\n handlerDescs: [\n baseEventHandlerDescs[\"api\"],\n baseEventHandlerDescs[\"setDataSource\"],\n baseEventHandlerDescs[\"refreshDataSource\"],\n baseEventHandlerDescs[\"setValue\"],\n baseEventHandlerDescs[\"getValue\"],\n baseEventHandlerDescs[\"setFocus\"],\n baseEventHandlerDescs[\"arrayFilter\"],\n baseEventHandlerDescs[\"msgTip\"],\n baseEventHandlerDescs[\"route\"],\n baseEventHandlerDescs[\"runScript\"],\n baseEventHandlerDescs[\"print\"],\n baseEventHandlerDescs[\"exportExcel\"],\n baseEventHandlerDescs[\"componentsSnapshot\"],\n ]\n }\n];","import { AfterViewInit, ChangeDetectionStrategy, Component, ComponentRef, computed, ElementRef, forwardRef, inject, Injector, input, model, signal, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzFormatBeforeDropEvent, NzFormatEmitEvent, NzTreeComponent, NzTreeModule, NzTreeNode, NzTreeNodeOptions } from 'ng-zorro-antd/tree';\nimport { BehaviorSubject, map, Observable, of } from 'rxjs';\nimport { baseEventHandlerDescGroups, baseEventHandlerDescs } from '../base-event-handler-descs';\nimport { CommonModule } from '@angular/common';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzFilterOptionType, NzSelectItemInterface, NzSelectModule } from 'ng-zorro-antd/select';\nimport { AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN, AXIS_DESIGN_COMPONENT_REF_GETTER_TOKEN, AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, AXIS_EVENT_HANDLER_DESCS_TOKEN } from '../tokens';\nimport { FunField } from '../fun-field/fun-field';\nimport { FunFieldBase } from '../../base/funfield-base';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { ScopeInfo } from '../../models/design-build';\nimport { EventDesc, EventHandlerDesc, EventHandlerDescGroup } from '../../models/event-desc';\nimport { EventHandlerOptions } from '../../models/event.options';\nimport { TriggeEventsOptions } from '../../models/trigge-events.options';\nimport { FormValidators } from '../../utils/form-validators';\nimport { FunFieldOptions } from '../../models/fun-field.options';\nimport { updateAndValidAll } from '../../utils/form.util';\nimport { OptionsNode } from '../../models/options-node';\nimport { NzFlexModule } from 'ng-zorro-antd/flex';\nimport { ValueAccess } from '../../base/value-access';\n\n@Component({\n selector: 'axis-input-trigger',\n imports: [NzCollapseModule, NzFormModule, NzButtonModule, NzIconModule, NzTreeModule, CommonModule, NzModalModule, NzSelectModule, ReactiveFormsModule, FunField, FormsModule, NzSwitchModule, NzFlexModule],\n templateUrl: './input-trigger.html',\n styleUrl: './input-trigger.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputTrigger),\n multi: true\n }\n ]\n})\nexport class InputTrigger extends FunFieldBase implements AfterViewInit {\n\n constructor(private element: ElementRef, private injector: Injector) {\n super();\n }\n\n fg: UntypedFormGroup = this.fb.group({\n name: [undefined, FormValidators.required],\n disabled: [undefined, FormValidators.requiredFun],\n data: [],\n id: [],\n });\n\n protected override funFields: FunFieldOptions = {\n disabled: {\n defaultValue: false\n },\n id: {\n defaultValue: undefined\n },\n\n };\n\n onChange: any;\n readonly noListen = signal(true);\n readonly internalTriggers = input<\"valueChange\"[]>();\n readonly optionsNodeId = input<string>();\n readonly getScopeInfos = inject(AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN);\n readonly componentsInfo = inject(AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN);\n readonly componentRefGetter = inject(AXIS_DESIGN_COMPONENT_REF_GETTER_TOKEN);\n readonly canChooseComponentsInfo = signal<{ component: string, componentName: string, nodes: OptionsNode[], eventHandlerDescs: { [event: string]: EventHandlerDesc } }[]>([]);\n readonly value = model<TriggeEventsOptions>();\n readonly nodes = computed(() => this.makeTreeNode(this.buildAllEventDesc()!, this.value()));\n readonly eventDesc = input<EventDesc[]>();\n readonly allEventDesc = computed(() => this.buildAllEventDesc());\n readonly allEventHanderDescGroups = computed(() => this.buildAllEventHandlerDescGroups());\n readonly allEventHanderDescs = computed(() => this.buildAllEventHandlerDescs());\n readonly showLine = signal(false);\n readonly isVisibleHandlerModal = model(false);\n readonly handlerFunFieldScopes = signal<ScopeInfo[]>([]);\n readonly editEventHandler = model<EventHandlerOptions<any>>();\n readonly treeExpandedKeys = signal<string[]>([]);\n readonly selectedHandlerDesc = signal<EventHandlerDesc | undefined>(undefined);\n readonly otherHandlerDescs = inject(AXIS_EVENT_HANDLER_DESCS_TOKEN, { optional: true });\n @ViewChild(\"tree\")\n tree?: NzTreeComponent;\n @ViewChild(\"dataContainer\", { read: ViewContainerRef })\n dataContainer?: ViewContainerRef;\n @ViewChild(\"idFunField\")\n idFunField?: FunField;\n readonly scopeInfoSubject = computed(() => this.buildScopeInfoSubject());\n\n editInfo?: { key: string, event: string, isAdd: boolean, value?: EventHandlerOptions<any>, parentValue?: EventHandlerOptions<any> };\n\n filterOption: NzFilterOptionType = (input: string, option: NzSelectItemInterface): boolean => {\n if (input) {\n return option.nzValue.includes(input) || option.nzLabel?.toString()?.includes(input);\n }\n return false;\n }\n writeValue(v: any): void {\n this.value.set(v);\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n }\n\n ngAfterViewInit(): void {\n if (this.element.nativeElement.nextElementSibling) {\n this.showLine.set(true);\n }\n }\n\n onDragStart(e: NzFormatEmitEvent): void {\n if (e.node?.origin[\"type\"] == \"event\") {\n e.event?.stopPropagation();\n e.event?.preventDefault();\n const ele = (e.event?.target as HTMLElement);\n ele.draggable = false;\n setTimeout(() => {\n ele.parentElement?.classList.remove(\"dragging\");\n });\n }\n }\n\n beforeDrop = (e: NzFormatBeforeDropEvent): Observable<boolean> => {\n const { dragNode, node, pos } = e;\n if (dragNode.origin[\"type\"] == \"handler\" && node.origin[\"type\"] == \"handler\" && pos != 0 && node.parentNode == dragNode.parentNode) {\n const dragV = dragNode.origin[\"value\"];\n const dropV = node.origin[\"value\"];\n const parentV: any[] = node.parentNode?.origin[\"value\"];\n parentV.splice(parentV.indexOf(dragV), 1);\n parentV.splice(parentV.indexOf(dropV) + (pos == -1 ? 0 : 1), 0, dragV);\n this.onValueChange();\n return of(true);\n }\n return of(false);\n }\n\n private buildAllEventHandlerDescGroups(): EventHandlerDescGroup[] {\n\n const groups = [\n ...baseEventHandlerDescGroups,\n ...this.otherHandlerDescs ?? [],\n ];\n this.componentsInfo.forEach(c => {\n groups.push({\n groupName: c.componentName,\n handlerDescs: Array.from(Object.values(c.eventHandlerDescs))\n });\n });\n return groups;\n }\n\n private buildAllEventHandlerDescs(): { [name: string]: EventHandlerDesc } {\n const descs = {\n ...baseEventHandlerDescs\n };\n if (this.otherHandlerDescs) {\n this.otherHandlerDescs.forEach(g => {\n g.handlerDescs.forEach(d => {\n descs[d.name] = d;\n })\n });\n }\n this.componentsInfo.forEach(c => {\n Object.assign(descs, c.eventHandlerDescs);\n });\n return descs;\n }\n\n private buildAllEventDesc(): EventDesc[] {\n let eventDesc: EventDesc[] = [];\n if (this.eventDesc()) {\n eventDesc = eventDesc.concat(this.eventDesc()!);\n }\n if (this.internalTriggers()) {\n for (const name of this.internalTriggers()!) {\n switch (name) {\n case \"valueChange\":\n eventDesc.push({\n name: \"valueChange\",\n title: \"值变化\",\n ds: (ref: ComponentRef<any> | undefined) => {\n return {\n value: (ref?.instance as ValueAccess<any> | undefined)?.value()\n }\n }\n });\n break;\n }\n }\n }\n return eventDesc;\n }\n\n private makeTreeNode(descs: EventDesc[], value: TriggeEventsOptions | undefined, treeNode: NzTreeNodeOptions[] = [], key = \"\"): NzTreeNodeOptions[] {\n for (const desc of descs) {\n const node: NzTreeNodeOptions = {\n ...desc,\n type: \"event\",\n expanded: true,\n key: key + desc.name,\n isLeaf: !value?.[desc.name]?.length,\n children: [],\n selectable: false,\n value: value?.[desc.name],\n };\n if (!node.isLeaf) {\n for (let i = 0; i < value![desc.name].length; i++) {\n const handler = value![desc.name][i];\n const handlerDesc: EventHandlerDesc | undefined = this.allEventHanderDescs()[handler.name];\n const handlerNode: NzTreeNodeOptions = {\n type: \"handler\",\n expanded: true,\n key: key + desc.name + \".\" + i,\n selectable: false,\n isLeaf: !handlerDesc?.events?.length,\n children: [],\n title: handler.name,\n value: handler\n };\n if (handlerDesc) {\n Object.assign(handlerNode, handlerDesc);\n }\n if (handlerDesc && !handlerNode.isLeaf) {\n this.makeTreeNode(handlerDesc.events!, handler.triggeEvents, handlerNode.children, handlerNode.key + \".\");\n }\n node.children!.push(handlerNode);\n }\n }\n treeNode.push(node);\n }\n return treeNode;\n }\n\n deleteHandler(e: NzTreeNode) {\n const parentValue: any[] = e.parentNode?.origin[\"value\"];\n const value = e.origin[\"value\"];\n if (parentValue && value && parentValue.includes(value)) {\n parentValue.splice(parentValue.indexOf(value), 1);\n }\n this.onValueChange();\n }\n\n private onValueChange(value?: TriggeEventsOptions, expandedKey?: string) {\n this.value.set(value ?? { ...this.value() });\n this.onChange(this.value());\n const expandedKeys = this.tree?.getExpandedNodeList()?.map(n => n.key) ?? [];\n if (expandedKey) {\n expandedKeys.push(expandedKey);\n }\n this.treeExpandedKeys.set(expandedKeys);\n }\n\n startAddHandler(node: NzTreeNode) {\n this.fg.reset(this.buildFunField({}, this.funFields));\n this.editInfo = {\n key: node.key,\n event: node.origin[\"name\"],\n isAdd: true,\n parentValue: node.parentNode?.origin[\"value\"],\n };\n this.handlerFunFieldScopes.set(this.buildHandlerFunFieldScopes(node));\n this.noListen.set(node.origin[\"noListen\"] ?? true);\n this.isVisibleHandlerModal.set(true);\n }\n\n startSetHandler(node: NzTreeNode) {\n this.fg.reset(this.buildFunField(node.origin[\"value\"], this.funFields));\n this.editInfo = {\n key: node.key,\n event: node.parentNode!.origin[\"name\"],\n isAdd: false,\n value: node.origin[\"value\"],\n parentValue: node.parentNode?.origin[\"value\"],\n };\n this.handlerFunFieldScopes.set(this.buildHandlerFunFieldScopes(node));\n this.noListen.set(node.parentNode?.origin[\"noListen\"] ?? true);\n this.isVisibleHandlerModal.set(true);\n }\n\n private buildHandlerFunFieldScopes(node: NzTreeNode, scopes: ScopeInfo[] = []) {\n if (node.origin['type'] == \"event\" && node?.origin[\"ds\"]) {\n let ds = node?.origin[\"ds\"];\n if (ds instanceof Function) {\n let nodeId = this.optionsNodeId();\n if (node.parentNode?.origin['target'] == \"component\") {\n nodeId = node.parentNode.origin[\"value\"].id;\n }\n if (nodeId) {\n ds = ds(this.componentRefGetter(nodeId))\n } else {\n ds = {\n value: \"示例数据\"\n };\n }\n }\n scopes.push({\n scopeId: `__handler_scope_${node.key}__`,\n scopeName: node.title,\n ds\n });\n }\n if (node.parentNode) {\n this.buildHandlerFunFieldScopes(node.parentNode, scopes);\n }\n return scopes;\n }\n\n private buildScopeInfoSubject(scopeId?: string): BehaviorSubject<ScopeInfo[]> {\n const scopeInfos = this.getScopeInfos(scopeId);\n const scopeInfoSubject = new BehaviorSubject<ScopeInfo[]>(this.handlerFunFieldScopes().concat(scopeInfos.value));\n scopeInfos.pipe(map(sis => this.handlerFunFieldScopes().concat(sis))).subscribe(scopeInfoSubject);\n return scopeInfoSubject;\n }\n\n onHandlerChange(name: string | undefined) {\n if (name && name != this.selectedHandlerDesc()?.name) {\n const desc = this.allEventHanderDescs()[name];\n this.selectedHandlerDesc.set(desc);\n const idCtrl = this.fg.get(\"id\")!;\n if (desc.target == \"component\") {\n let canChooseComponentsInfo = this.componentsInfo;\n if (desc.targetComponent) {\n canChooseComponentsInfo = canChooseComponentsInfo.filter(info => info.component == desc.targetComponent);\n }\n this.canChooseComponentsInfo.set(canChooseComponentsInfo);\n idCtrl.setValidators(FormValidators.requiredFun);\n } else if (desc.target == \"scope\") {\n idCtrl.clearValidators();\n const scopes = this.scopeInfoSubject().value?.filter(s => s.scopeId.startsWith(\"__handler_scope__\"));\n if (scopes?.length) {\n const { funMode, originValue } = idCtrl.value;\n if (!funMode && !originValue) {\n this.reset({ id: scopes[0].scopeId })\n }\n }\n } else {\n idCtrl.clearValidators();\n }\n this.dataContainer?.clear();\n if (desc.dataComponent) {\n const injector = Injector.create({\n providers: [\n { provide: AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, useValue: (scopeId?: string) => this.buildScopeInfoSubject(scopeId) },\n { provide: InputTrigger, useValue: this }\n ],\n parent: this.injector\n })\n const r = this.dataContainer?.createComponent(desc.dataComponent, { injector: injector });\n r?.instance?.writeValue(this.fg.value?.data);\n const control = this.fb.control(this.fg.value?.data, [() => {\n return r?.instance.valid() ? null : {\n invalid: true\n };\n }]);\n r?.instance.registerOnChange((v: any) => control.setValue(v));\n this.fg.setControl('data', control, { emitEvent: false });\n }\n }\n }\n\n onSetHandlerOk() {\n if (updateAndValidAll(this.fg)) {\n let value = this.value() ?? {};\n const formValue = this.recoverFunField(this.fg.value, this.funFields);\n formValue.target = this.selectedHandlerDesc()!.target;\n if (this.editInfo?.isAdd) {\n let array: EventHandlerOptions<any>[];\n if (this.editInfo?.parentValue) {\n if (!this.editInfo.parentValue.triggeEvents?.[this.editInfo.event]) {\n this.editInfo.parentValue.triggeEvents = {\n [this.editInfo.event]: []\n }\n }\n array = this.editInfo.parentValue.triggeEvents[this.editInfo.event];\n } else {\n if (!value[this.editInfo.event]) {\n value[this.editInfo.event] = [];\n }\n array = value[this.editInfo.event];\n }\n array.push(formValue);\n } else {\n Object.keys(this.funFields).forEach(k => {\n delete (this.editInfo!.value as any)[k];\n delete (this.editInfo!.value as any)[`$${k}`];\n })\n Object.assign(this.editInfo!.value!, formValue);\n }\n this.isVisibleHandlerModal.set(false);\n this.onValueChange({ ...value }, this.editInfo?.key);\n } else {\n Object.values(this.fg.controls).forEach(control => {\n if (control.invalid) {\n control.markAsDirty();\n control.updateValueAndValidity({ onlySelf: true });\n }\n });\n }\n }\n\n resetSetHandler(): void {\n this.fg.reset();\n this.selectedHandlerDesc.set(undefined);\n this.editInfo = undefined;\n }\n\n hasExpanded(node: NzTreeNode): boolean {\n return node.isExpanded || node.children.some(c => this.hasExpanded(c));\n }\n\n expand(node: NzTreeNode, expanded: boolean) {\n node.isExpanded = expanded;\n node.children.forEach(c => this.expand(c, expanded));\n }\n\n}","<nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel #panel nzHeader=\"事件设置\">\n @if (panel.active()) {\n <nz-tree #tree [nzData]=\"nodes()\" nzDraggable nzBlockNode [nzTreeTemplate]=\"nodeTemp\"\n [nzExpandedKeys]=\"treeExpandedKeys()\" (nzOnDragStart)=\"onDragStart($event)\" [nzBeforeDrop]=\"beforeDrop\"\n nzExpandAll></nz-tree>\n }\n </nz-collapse-panel>\n @if (showLine()) {\n <div></div>\n }\n</nz-collapse>\n\n<ng-template #nodeTemp let-node>\n <nz-flex nzAlign=\"center\" style=\"width: 100%;\" nzGap=\"4px\">\n @switch (node.origin.type) {\n @case (\"event\") {\n <div style=\"white-space: nowrap;\">{{node.title}}</div>\n <button nz-button nzType=\"link\" nzSize=\"small\" (click)=\"startAddHandler(node)\"><nz-icon\n nzType=\"plus\"></nz-icon>操作</button>\n @if (node.children.length) {\n <button class=\"expand-button\" nz-button nzType=\"text\" nzSize=\"small\" nzShape=\"circle\"\n (click)=\"expand(node,!hasExpanded(node))\"><nz-icon\n [nzType]=\"hasExpanded(node)?'shrink':'arrows-alt'\"></nz-icon></button>\n }\n }\n @case (\"handler\") {\n <nz-icon style=\"cursor: move;\" nzType=\"holder\" nzTheme=\"outline\" />\n <button nz-button nzType=\"link\" nzSize=\"small\" (click)=\"startSetHandler(node)\">\n <nz-icon [nzType]=\"node.icon\" nzTheme=\"outline\" />\n <span style=\"text-decoration: underline;white-space: nowrap;\">{{node.title}}</span>\n </button>\n <button nz-button nzType=\"link\" nzDanger nzSize=\"small\" (click)=\"deleteHandler(node)\"><nz-icon\n nzType=\"delete\"></nz-icon></button>\n @if (node.children.length) {\n <button class=\"expand-button\" nz-button nzType=\"text\" nzSize=\"small\" nzShape=\"circle\"\n (click)=\"expand(node,!hasExpanded(node))\"><nz-icon\n [nzType]=\"hasExpanded(node)?'shrink':'arrows-alt'\"></nz-icon></button>\n }\n }\n }\n </nz-flex>\n</ng-template>\n\n<nz-modal [nzWidth]=\"selectedHandlerDesc()?.formStyle?.width ?? '500px'\" [(nzVisible)]=\"isVisibleHandlerModal\"\n nzDraggable nzTitle=\"设置事件操作\" (nzOnCancel)=\"isVisibleHandlerModal.set(false)\" (nzOnOk)=\"onSetHandlerOk()\"\n (nzAfterClose)=\"resetSetHandler()\" (nzAfterOpen)=\"onHandlerChange(fg.value.name)\">\n <ng-container *nzModalContent>\n <form nz-form [formGroup]=\"fg\">\n <nz-form-item>\n <nz-form-label [nzSpan]=\"selectedHandlerDesc()?.formStyle?.labelSpan ?? 6\" nzRequired>操作</nz-form-label>\n <nz-form-control [nzSpan]=\"24 - (selectedHandlerDesc()?.formStyle?.labelSpan ?? 6)\">\n <nz-select formControlName=\"name\" nzShowSearch nzPlaceHolder=\"选择操作\" [nzFilterOption]=\"filterOption\"\n (ngModelChange)=\"onHandlerChange($event)\">\n @for (item of allEventHanderDescGroups(); track item.groupName) {\n <nz-option-group [nzLabel]=\"item.groupName\">\n @for (item of item.handlerDescs; track item.name) {\n <nz-option nzCustomContent [nzValue]=\"item.name\" [nzLabel]=\"item.title\">\n @if (item.icon) {\n <nz-icon [nzType]=\"item.icon\" />\n }\n {{item.title}}\n </nz-option>\n }\n </nz-option-group>\n }\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label [nzSpan]=\"selectedHandlerDesc()?.formStyle?.labelSpan ?? 6\" nzRequired>禁用</nz-form-label>\n <nz-form-control [nzSpan]=\"24 - (selectedHandlerDesc()?.formStyle?.labelSpan ?? 6)\">\n <axis-fun-field formControlName=\"disabled\" [noListen]=\"noListen()\"\n [scopes]=\"handlerFunFieldScopes()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @if (selectedHandlerDesc()?.target == \"component\") {\n <nz-form-item>\n <nz-form-label [nzSpan]=\"selectedHandlerDesc()?.formStyle?.labelSpan ?? 6\" nzRequired>目标</nz-form-label>\n <nz-form-control [nzSpan]=\"24 - (selectedHandlerDesc()?.formStyle?.labelSpan ?? 6)\">\n <axis-fun-field #idFunField formControlName=\"id\" [noListen]=\"noListen()\"\n [scopes]=\"handlerFunFieldScopes()\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\" nzShowSearch>\n @for (component of canChooseComponentsInfo(); track component.componentName) {\n <nz-option-group [nzLabel]=\"component.componentName\">\n @for(node of component.nodes; track node.id){\n <nz-option [nzLabel]=\"node.id\" [nzValue]=\"node.id\"></nz-option>\n }\n </nz-option-group>\n }\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }@else if (selectedHandlerDesc()?.target == \"scope\") {\n <nz-form-item>\n <nz-form-label [nzSpan]=\"selectedHandlerDesc()?.formStyle?.labelSpan ?? 6\">目标域</nz-form-label>\n <nz-form-control [nzSpan]=\"24 - (selectedHandlerDesc()?.formStyle?.labelSpan ?? 6)\">\n <axis-fun-field formControlName=\"id\" [noListen]=\"noListen()\" [scopes]=\"handlerFunFieldScopes()\">\n <nz-select ngModel [ngModelOptions]=\"{standalone:true}\" nzShowSearch nzAllowClear\n nzPlaceHolder=\"默认当前域\">\n @for (scope of scopeInfoSubject().value; track scope.scopeId) {\n @if (!scope.scopeId.startsWith(\"__handler_scope_\")) {\n <nz-option [nzLabel]=\"scope.scopeName\" [nzValue]=\"scope.scopeId\"></nz-option>\n }\n }\n </nz-select>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n <ng-container #dataContainer></ng-container>\n </form>\n </ng-container>\n</nz-modal>","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, input, signal } from '@angular/core';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { FunField } from '../fun-field/fun-field';\nimport { NzSwitchModule } from 'ng-zorro-antd/switch';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { DynamicDirective } from '../../directives/dynamic';\nimport { FormValidators } from '../../utils/form-validators';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { FunFieldOptions } from '../../models/fun-field.options';\n\n@Component({\n selector: 'axis-value-design-setting',\n imports: [NzCollapseModule, NzFormModule, FunField, NzSwitchModule, FormsModule, NzInputModule, ReactiveFormsModule, DynamicDirective, NzSelectModule],\n templateUrl: './value-design-setting.html',\n styleUrl: './value-design-setting.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ValueDesignSetting implements AfterViewInit {\n\n constructor(private element: ElementRef) { }\n\n readonly showLine = signal(false);\n readonly scopeId = input<string>();\n readonly exclude = input<string[]>([]);\n\n fg = input.required<UntypedFormGroup>();\n\n ngAfterViewInit(): void {\n if (this.element.nativeElement.nextElementSibling) {\n this.showLine.set(true);\n }\n }\n}\n\nexport const valueFbConfig = {\n initValue: [],\n emitInitEvent: [true, FormValidators.required],\n disabled: [undefined, [FormValidators.requiredFun]],\n readonly: [undefined, [FormValidators.requiredFun]],\n};\n\nexport const valueFunField: FunFieldOptions = {\n initValue: {\n defaultValue: undefined\n },\n disabled: {\n defaultValue: false\n },\n readonly: {\n defaultValue: false\n }\n}","<form [formGroup]=\"fg()\" nz-form>\n <nz-collapse [nzBordered]=\"false\">\n <nz-collapse-panel nzHeader=\"值组件设置\">\n <nz-form-item>\n <nz-form-label nzSpan=\"8\">\n 初始值\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"initValue\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <ng-container [axisDynamic]=\"{component:'axis-components/input-json',inuse:true}\"\n [standalone]=\"true\" ngModel [ngModelOptions]=\"{standalone:true}\"></ng-container>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 初始事件\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <nz-switch formControlName=\"emitInitEvent\"></nz-switch>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 禁用\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"disabled\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"8\" nzRequired>\n 只读\n </nz-form-label>\n <nz-form-control nzSpan=\"16\">\n <axis-fun-field formControlName=\"readonly\" [exclude]=\"exclude()\" [scopeId]=\"scopeId()\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n </nz-collapse-panel>\n @if (showLine()) {\n <div></div>\n }\n </nz-collapse>\n</form>","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NzDropdownModule } from 'ng-zorro-antd/dropdown';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { CommonMenu } from '../common-menu/common-menu';\nimport { BaseMenu } from '../../base/base-menu';\n\n@Component({\n selector: 'axis-design-simple-menu',\n imports: [NzDropdownModule, NzIconModule, CommonMenu],\n templateUrl: './simple-menu.html',\n styleUrl: './simple-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SimpleMenu extends BaseMenu {\n\n\n}\n","<nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <ul nz-menu>\n <axis-common-menu [baseMenu]=\"this\"></axis-common-menu>\n </ul>\n</nz-dropdown-menu>","import { ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, model, signal } from \"@angular/core\";\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormGroup } from \"@angular/forms\";\nimport { NzGridModule } from \"ng-zorro-antd/grid\";\nimport { NzIconModule } from \"ng-zorro-antd/icon\";\nimport { NzListModule } from \"ng-zorro-antd/list\";\nimport { NzSpaceModule } from \"ng-zorro-antd/space\";\nimport { NzTagModule } from \"ng-zorro-antd/tag\";\nimport { NzEmptyModule } from \"ng-zorro-antd/empty\";\nimport { NzButtonModule } from \"ng-zorro-antd/button\";\nimport { NzModalModule } from \"ng-zorro-antd/modal\";\nimport { NzCollapseModule } from \"ng-zorro-antd/collapse\";\nimport { NzFormModule } from \"ng-zorro-antd/form\";\nimport { NzSelectModule } from \"ng-zorro-antd/select\";\nimport { NzInputModule } from \"ng-zorro-antd/input\";\nimport { NzSwitchModule } from \"ng-zorro-antd/switch\";\nimport { CommonModule } from \"@angular/common\";\nimport { NzFlexModule } from \"ng-zorro-antd/flex\";\nimport { NzInputNumberModule } from \"ng-zorro-antd/input-number\";\nimport { FunFieldBase } from \"../../base/funfield-base\";\nimport { FormValidators } from \"../../utils/form-validators\";\nimport { FunFieldOptions } from \"../../models/fun-field.options\";\nimport { updateAndValidAll } from \"../../utils/form.util\";\nimport { copy } from \"../../utils/object.util\";\nimport { FunField } from \"../fun-field/fun-field\";\n\n@Component({\n selector: 'axis-input-validator',\n imports: [NzListModule, NzTagModule, NzSpaceModule, NzGridModule, NzIconModule, NzEmptyModule, NzButtonModule, NzModalModule, FormsModule, NzCollapseModule, NzFormModule, ReactiveFormsModule, FunField, NzSelectModule, NzInputModule, NzSwitchModule, CommonModule, NzFlexModule, NzInputNumberModule],\n templateUrl: './input-validator.html',\n styleUrl: './input-validator.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputValidator),\n multi: true\n },\n ]\n})\nexport class InputValidator extends FunFieldBase implements ControlValueAccessor {\n\n constructor(private element: ElementRef) {\n super();\n }\n\n readonly value = model<any[]>();\n readonly showLine = signal(false);\n onChange: any;\n editIndex = -1;\n readonly showModal = model(false);\n readonly validatorDesc = computed(() => this.buildValidatorsDesc());\n\n override fg: UntypedFormGroup = this.fb.group({\n type: [\"required\", FormValidators.required],\n disabled: [undefined, FormValidators.requiredFun],\n minLength: [],\n maxLength: [],\n minValue: [],\n maxValue: [],\n pattern: [],\n });\n\n protected override funFields: FunFieldOptions = {\n disabled: {\n defaultValue: false\n },\n minLength: {\n defaultValue: null\n },\n maxLength: {\n defaultValue: null\n },\n minValue: {\n defaultValue: null\n },\n maxValue: {\n defaultValue: null\n },\n pattern: {\n defaultValue: \"\"\n }\n };\n\n writeValue(v: any): void {\n this.value.set(v);\n }\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void { }\n\n ngAfterViewInit(): void {\n if (this.element.nativeElement.nextElementSibling) {\n this.showLine.set(true);\n }\n }\n\n private buildValidatorsDesc(): string[] | undefined {\n return this.value()?.map(v => {\n switch (v.type) {\n case \"required\":\n return \"此项必填\";\n case \"length\":\n return `长度范围:${this.wrapNumberField(v, \"minLength\")} ~ ${this.wrapNumberField(v, \"maxLength\")}`;\n case \"value\":\n return `值范围:${this.wrapNumberField(v, \"minValue\")} ~ ${this.wrapNumberField(v, \"maxValue\")}`;\n case \"regex\":\n return `表达式:${this.wrapFunField(v, \"pattern\")}`;\n default:\n return \"\";\n }\n })\n }\n\n private wrapFunField(obj: any, field: string): any {\n if (obj.hasOwnProperty(`$${field}`)) {\n return \"[动态值]\";\n }\n return obj[field];\n }\n\n private wrapNumberField(obj: any, field: string): any {\n const value = this.wrapFunField(obj, field);\n if (typeof value != \"number\" && !value) {\n return \"[不限制]\";\n }\n return value;\n }\n\n openWithCreate() {\n this.editIndex = -1;\n this.reset();\n this.showModal.set(true);\n }\n\n openWithUpdate(index: number) {\n this.editIndex = index;\n this.reset(this.value()![this.editIndex]);\n this.showModal.set(true);\n }\n\n save() {\n if (updateAndValidAll(this.fg)) {\n const nextValue = copy(this.value() ?? [], true);\n const validator = this.recoverFunField(this.fg.value)\n if (this.editIndex == -1) {\n nextValue.push(validator);\n } else {\n nextValue[this.editIndex] = validator;\n }\n this.showModal.set(false);\n this.value.set(nextValue);\n this.onChange(this.value());\n }\n }\n\n deleteValidator(index: number) {\n this.value()!.splice(index, 1);\n this.value.set([...this.value()!]);\n this.onChange(this.value());\n }\n\n}","<nz-collapse [nzBordered]=\"false\">\n <ng-template #addButton>\n <a nz-button nzType=\"link\" style=\"float: right;\" (click)=\"$event.stopPropagation();openWithCreate()\">\n <nz-icon nzType=\"plus\"></nz-icon>\n 添加\n </a>\n </ng-template>\n <nz-collapse-panel nzHeader=\"表单项验证\" nzActive [nzExtra]=\"addButton\">\n @if (!value()?.length) {\n <nz-empty nzNotFoundContent=\"暂无验证器\"></nz-empty>\n }@else{\n <div nz-flex nzVertical nzGap=\"8px\" style=\"padding: 6px;\">\n @for (item of value()??[]; track item;let i=$index) {\n <div nz-flex nzGap=\"8px\" nzAlign=\"center\">\n <div style=\"width: 64px;\">\n @switch (item.type) {\n @case (\"required\") {\n <nz-tag nzColor=\"magenta\">必填验证</nz-tag>\n }\n @case (\"length\") {\n <nz-tag nzColor=\"blue\">长度验证</nz-tag>\n }\n @case (\"value\") {\n <nz-tag nzColor=\"purple\">值验证</nz-tag>\n }\n @case (\"regex\") {\n <nz-tag nzColor=\"cyan\">正则验证</nz-tag>\n }\n }\n </div>\n <div class=\"validator-desc\">{{validatorDesc()?.[i]}}</div>\n <div>\n <a nz-button nzType=\"link\" nzSize=\"small\" (click)=\"openWithUpdate(i)\">\n <i nz-icon nzType=\"edit\" nzTheme=\"outline\"></i>\n </a>\n <a nz-button nzType=\"link\" nzSize=\"small\" nzDanger (click)=\"deleteValidator(i)\">\n <i nz-icon nzType=\"delete\" nzTheme=\"outline\"></i>\n </a>\n </div>\n </div>\n }\n </div>\n }\n </nz-collapse-panel>\n @if (showLine()) {\n <div></div>\n }\n</nz-collapse>\n\n<nz-modal [(nzVisible)]=\"showModal\" nzTitle=\"验证器\" nzWidth=\"450px\" (nzOnCancel)=\"showModal.set(false)\" (nzOnOk)=\"save()\">\n <ng-container *nzModalContent>\n <form [formGroup]=\"fg\" nz-form>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 验证类型\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <nz-select formControlName=\"type\">\n <nz-option nzValue=\"required\" nzLabel=\"必填验证\"></nz-option>\n <nz-option nzValue=\"length\" nzLabel=\"长度验证\"></nz-option>\n <nz-option nzValue=\"value\" nzLabel=\"值验证\"></nz-option>\n <nz-option nzValue=\"regex\" nzLabel=\"正则验证\"></nz-option>\n </nz-select>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\" nzRequired>\n 禁用\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"disabled\">\n <nz-switch ngModel [ngModelOptions]=\"{standalone:true}\"></nz-switch>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n @switch (fg.value.type) {\n @case (\"length\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 最小长度\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"minLength\">\n <nz-input-number style=\"width: 100%\" nzPlaceHolder=\"不限制\" nzMin=\"0\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 最大长度\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"maxLength\">\n <nz-input-number style=\"width: 100%\" nzPlaceHolder=\"不限制\" nzMin=\"0\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n @case (\"value\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 最小值\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"minValue\">\n <nz-input-number style=\"width: 100%\" nzPlaceHolder=\"不限制\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 最大值\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"maxValue\">\n <nz-input-number style=\"width: 100%\" nzPlaceHolder=\"不限制\" ngModel\n [ngModelOptions]=\"{standalone:true}\"></nz-input-number>\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n @case (\"regex\") {\n <nz-form-item>\n <nz-form-label nzSpan=\"6\">\n 正则表达式\n </nz-form-label>\n <nz-form-control nzSpan=\"18\">\n <axis-fun-field formControlName=\"pattern\">\n <input nz-input nzPlaceHolder=\"输入正则表达式\" ngModel [ngModelOptions]=\"{standalone:true}\" />\n </axis-fun-field>\n </nz-form-control>\n </nz-form-item>\n }\n }\n </form>\n </ng-container>\n</nz-modal>","import { inject, Injectable } from \"@angular/core\";\nimport { AXIS_COMPONENTS_TOKEN } from \"../share/tokens\";\n\n@Injectable()\nexport class ComponentsLoader {\n\n private readonly components = inject(AXIS_COMPONENTS_TOKEN);\n private readonly loadedMap = new Map<string, any>();\n private readonly loadingMap = new Map<string, Promise<any>>();\n\n loadComponent(component: string): Promise<any> {\n if (this.loadedMap.has(component)) {\n return Promise.resolve(this.loadedMap.get(component)!);\n }\n if (this.loadingMap.has(component)) {\n return this.loadingMap.get(component)!;\n }\n if (!this.components[component]) {\n return Promise.reject(`component ${component} not found`)\n }\n this.loadingMap.set(component, this.components[component]().then(module => {\n const m = module[Object.keys(module)[0]];\n this.loadedMap.set(component, m);\n this.loadingMap.delete(component);\n return m;\n }));\n return this.loadingMap.get(component)!;\n }\n}","export function codeName(code?: string, name?: string): string {\n if (code && name) {\n return `[${code}]${name}`\n }\n if (code) {\n return `[${code}]`\n }\n return name || \"\";\n}\n\nexport function nameCode(name?: string, code?: string): string {\n if (code && name) {\n return `${name}[${code}]`\n }\n if (code) {\n return `[${code}]`\n }\n return name || \"\";\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3","i2","i5","i9","i13","i15","i4","i6","i7","i8","i10","i11","i12"],"mappings":"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"}
|