@acorex/platform 19.4.4 → 19.4.6
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/core/lib/types/core.types.d.ts +13 -0
- package/core/lib/types/file.types.d.ts +13 -0
- package/core/lib/types/index.d.ts +1 -0
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +2 -3
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +96 -4
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +3 -3
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-TNxbcVav.mjs +68 -0
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-TNxbcVav.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-9XMpubtr.mjs → acorex-platform-widgets-page-widget-designer.component-DuKrIkHh.mjs} +2 -1
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-9XMpubtr.mjs.map → acorex-platform-widgets-page-widget-designer.component-DuKrIkHh.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +554 -947
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +6 -2
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/lib/builder/widget-map.d.ts +2 -3
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +1 -0
- package/layout/entity/lib/workflows/show-file-uploader-popup.workflow.d.ts +10 -0
- package/package.json +12 -12
- package/widgets/lib/properties/layout.props.d.ts +1 -0
- package/widgets/lib/widgets/advance/file-uploader/file-list/file-list.component.d.ts +7 -4
- package/widgets/lib/widgets/advance/file-uploader/file-list-popup/file-list-popup.component.d.ts +17 -0
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-column.component.d.ts +3 -3
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-edit.component.d.ts +6 -1
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-view.component.d.ts +3 -1
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget.service.d.ts +13 -11
- package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +0 -1
- package/widgets/lib/widgets/index.d.ts +2 -2
- package/widgets/lib/widgets/layout/block/block-widget-view.component.d.ts +0 -2
- package/widgets/lib/widgets/layout/block/block-widget.config.d.ts +1 -0
- package/widgets/lib/widgets/layout/flex/flex-widget-designer.component.d.ts +10 -0
- package/widgets/lib/widgets/layout/flex/flex-widget-view.component.d.ts +10 -0
- package/widgets/lib/widgets/layout/flex/flex-widget.config.d.ts +28 -0
- package/widgets/lib/widgets/layout/flex/index.d.ts +3 -0
- package/widgets/lib/widgets/layout/grid/grid-widget-view.component.d.ts +6 -1
- package/widgets/lib/widgets/property-editors/direction/direction-widget-editor.component.d.ts +13 -0
- package/widgets/lib/widgets/{advance/file/file-box-widget.config.d.ts → property-editors/direction/direction-widget.config.d.ts} +2 -2
- package/widgets/lib/widgets/property-editors/direction/index.d.ts +2 -0
- package/widgets/lib/widgets/property-editors/spacing/spacing-widget-editor.component.d.ts +1 -1
- package/workflow/index.d.ts +1 -0
- package/workflow/lib/task-board.types.d.ts +21 -0
- package/widgets/lib/widgets/advance/file/file-box-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +0 -33
- package/widgets/lib/widgets/advance/file/file-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/file/file-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/file/file-box-widget-view.component.d.ts +0 -31
- package/widgets/lib/widgets/advance/file/file-box-widget.service.d.ts +0 -12
- package/widgets/lib/widgets/advance/file/index.d.ts +0 -7
- package/widgets/lib/widgets/editors/single-file-box/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-edit.component.d.ts +0 -19
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/editors/single-file-box/single-file-box-widget.config.d.ts +0 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, inject, ViewEncapsulation, Component, Optional, Inject, NgModule } from '@angular/core';
|
|
2
|
+
import { Injectable, inject, ViewEncapsulation, Component, Optional, Inject, NgModule, InjectionToken } from '@angular/core';
|
|
3
3
|
import { Subject, filter } from 'rxjs';
|
|
4
4
|
import { cloneDeep, get, set } from 'lodash-es';
|
|
5
5
|
import { setSmart, AXPContextStore, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER } from '@acorex/platform/core';
|
|
@@ -609,9 +609,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.10", ngImpo
|
|
|
609
609
|
args: ['AXPWorkflowModuleFactory']
|
|
610
610
|
}] }] });
|
|
611
611
|
|
|
612
|
+
class AXPWorkflowTaskProvider {
|
|
613
|
+
}
|
|
614
|
+
const AXP_WORKFLOW_TASK_PROVIDER = new InjectionToken('AXP_WORKFLOW_TASK_PROVIDER');
|
|
615
|
+
|
|
612
616
|
/**
|
|
613
617
|
* Generated bundle index. Do not edit.
|
|
614
618
|
*/
|
|
615
619
|
|
|
616
|
-
export { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, createWorkFlowEvent, ofType };
|
|
620
|
+
export { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXPWorkflowTaskProvider, AXP_WORKFLOW_TASK_PROVIDER, createWorkFlowEvent, ofType };
|
|
617
621
|
//# sourceMappingURL=acorex-platform-workflow.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-workflow.mjs","sources":["../../../../libs/platform/workflow/src/lib/errors.types.ts","../../../../libs/platform/workflow/src/lib/workflow-event-dispatcher.service.ts","../../../../libs/platform/workflow/src/lib/workflow-registery.service.ts","../../../../libs/platform/workflow/src/lib/workflow.types.ts","../../../../libs/platform/workflow/src/lib/actions/decide.action.ts","../../../../libs/platform/workflow/src/lib/workflow.service.ts","../../../../libs/platform/workflow/src/lib/actions/start-workflow.action.ts","../../../../libs/platform/workflow/src/lib/slots/workflow-action-bar/workflow-action-bar.component.ts","../../../../libs/platform/workflow/src/lib/slots/workflow-action-bar/workflow-action-bar.component.html","../../../../libs/platform/workflow/src/lib/workflow-evaluator-scope.provider.ts","../../../../libs/platform/workflow/src/lib/workflow.module.ts","../../../../libs/platform/workflow/src/acorex-platform-workflow.ts"],"sourcesContent":["export class AXPWorkflowError extends Error {\n constructor(message: string, public inner: Error | null = null) {\n super(message);\n this.name = 'AXPWorkflowError';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AXPWorkflowEvent } from './workflow.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowEventService {\n private eventSubject = new Subject<AXPWorkflowEvent>();\n\n dispatch(event: AXPWorkflowEvent): void {\n this.eventSubject.next(event);\n }\n\n get events$(): Observable<AXPWorkflowEvent> {\n return this.eventSubject.asObservable();\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowFunction, AXPWorkflowStep } from './workflow.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowRegistryService {\n private functionsMap = new Map<string, Type<AXPWorkflowFunction>>();\n private actionsMap = new Map<string, Type<AXPWorkflowAction>>();\n private workflowsMap = new Map<string, AXPWorkflow>();\n\n registerWorkflow(name: string, workflow: AXPWorkflow): void {\n this.workflowsMap.set(name, workflow);\n }\n\n getWorkflow(name: string): AXPWorkflow | undefined {\n return this.workflowsMap.get(name);\n }\n\n registerAction(name: string, action: Type<AXPWorkflowAction>): void {\n this.actionsMap.set(name, action);\n }\n\n getAction(name: string): Type<AXPWorkflowAction> | undefined {\n return this.actionsMap.get(name);\n }\n\n registerFunction(name: string, func: Type<AXPWorkflowFunction>): void {\n this.functionsMap.set(name, func);\n }\n\n getFunction(name: string): Type<AXPWorkflowFunction> | undefined {\n return this.functionsMap.get(name);\n }\n\n getFunctionNames(): string[] {\n return Array.from(this.functionsMap.keys());\n }\n\n getStep(workflowName: string, stepName: string): AXPWorkflowStep | undefined {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps as { [key: string]: AXPWorkflowStep };\n return steps[stepName];\n }\n return undefined;\n }\n\n updateStepInWorkflow(workflowName: string, stepName: string, step: AXPWorkflowStep): void {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps as { [key: string]: AXPWorkflowStep };\n if (steps[stepName]) {\n steps[stepName] = step;\n } else {\n throw new Error(`Step with name ${stepName} does not exist in workflow ${workflowName}.`);\n }\n } else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n\n addStepToWorkflow(workflowName: string, stepName: string, step: AXPWorkflowStep): void {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps as { [key: string]: AXPWorkflowStep };\n if (!steps[stepName]) {\n steps[stepName] = step;\n } else {\n throw new Error(`Step with name ${stepName} already exists in workflow ${workflowName}.`);\n }\n } else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n\n addAfterStep(\n workflowId: string,\n stepId: string,\n newStepId: string,\n newStepAction: string,\n conditionExpression: string\n ): void {\n const step = this.getStep(workflowId, stepId);\n if (step != undefined) {\n this.addStepToWorkflow(workflowId, newStepId, {\n action: newStepAction,\n nextSteps: step.nextSteps,\n });\n\n this.updateStepInWorkflow(workflowId, stepId, {\n ...step,\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: conditionExpression }],\n nextStepId: newStepId,\n },\n ],\n });\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { filter } from 'rxjs';\nimport { AXPWorkflowEventService } from './workflow-event-dispatcher.service';\nimport { cloneDeep, get } from 'lodash-es';\nimport { setSmart } from '@acorex/platform/core';\n\nexport interface AXPWorkflow {\n steps: { [stepName: string]: AXPWorkflowStep };\n startStepId: string;\n}\n\n\nexport class AXPWorkflowContext {\n\n constructor(initialData: any = {}) {\n this.variables = cloneDeep(initialData);\n }\n\n private variables: any = {};\n private stepOutputs: Map<string, any> = new Map();\n\n setVariable(key: string, value: any): void {\n setSmart(this.variables, key, value);\n }\n\n\n setVariables(context: any = {}) {\n this.variables = { ...this.variables, ...context };\n }\n\n getVariable<T = any>(key?: string | null): T {\n return !key ? this.variables : get(this.variables, key);\n }\n\n setOutput(key: string, output: any): void {\n this.stepOutputs.set(key, output);\n }\n\n setOutputs(values: Map<string, any>): void {\n this.stepOutputs = new Map([...this.stepOutputs, ...values])\n }\n\n getOutput<T = any>(key: string): T {\n return this.stepOutputs.get(key);\n }\n}\n\nexport type AXPWorkflowActionInput = any;\n\nexport type AXPWorkflowConditionType = 'AND' | 'OR' | 'SINGLE';\n\nexport interface AXPWorkflowCondition {\n type: AXPWorkflowConditionType;\n conditions?: AXPWorkflowCondition[]; // Nested conditions\n expression?: string; // Used if type is 'SINGLE'\n}\n\nexport interface AXPWorkflowNextStep {\n conditions: AXPWorkflowCondition[];\n nextStepId: string;\n}\n\nexport interface AXPWorkflowStep {\n id?: string;\n action: AXPWorkflowAction | string;\n input?: AXPWorkflowActionInput;\n nextSteps?: AXPWorkflowNextStep[];\n conditions?: AXPWorkflowCondition[];\n}\n@Injectable()\nexport abstract class AXPWorkflowAction {\n private eventService = inject(AXPWorkflowEventService);\n\n protected dispatch(event: AXPWorkflowEvent): void {\n this.eventService.dispatch(event);\n }\n\n abstract execute(context: AXPWorkflowContext): Promise<void>;\n}\n\n@Injectable()\nexport abstract class AXPWorkflowFunction {\n abstract execute(...args: any[]): Promise<any> | any;\n}\n\nexport interface AXPWorkflowEvent<T = any> {\n type: string;\n payload?: T;\n}\n\n\n\nexport function createWorkFlowEvent<T>(type: string) {\n const eventCreator = (payload: T) => ({ type, payload });\n eventCreator.type = type;\n return eventCreator;\n}\n\nexport function ofType<T extends { type: string }>(...allowedTypes: Array<{ type: string }>) {\n return filter((event: T) => allowedTypes.some((type) => event.type === type.type));\n}\n","import { Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction, AXPWorkflowContext } from \"../workflow.types\";\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowDecideAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n // its a fake action\n }\n}","import { Injectable, Injector, inject } from '@angular/core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { Observable } from 'rxjs';\nimport { AXPWorkflowError } from './errors.types';\nimport { AXPWorkflowEventService } from './workflow-event-dispatcher.service';\nimport { AXPWorkflowRegistryService } from './workflow-registery.service';\nimport {\n AXPWorkflow,\n AXPWorkflowAction,\n AXPWorkflowCondition,\n AXPWorkflowContext,\n AXPWorkflowEvent,\n AXPWorkflowFunction,\n AXPWorkflowNextStep,\n AXPWorkflowStep,\n} from './workflow.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowService {\n private eventService = inject(AXPWorkflowEventService);\n\n get events$(): Observable<AXPWorkflowEvent> {\n return this.eventService.events$;\n }\n\n constructor(private registryService: AXPWorkflowRegistryService, private injector: Injector) { }\n\n async execute(\n workflow: AXPWorkflow | string,\n initialContext: AXPWorkflowContext | any | null = null\n ): Promise<AXPWorkflowContext> {\n // Instantiate or retrieve the workflow\n const wk = typeof workflow === 'string' ? this.getWorkflowInstance(workflow) : workflow;\n\n let currentStepId = wk.startStepId;\n const context =\n initialContext instanceof AXPWorkflowContext\n ? initialContext\n : new AXPWorkflowContext(this.processData(initialContext) ?? {});\n // Initialize context with initial variables\n\n while (currentStepId) {\n const currentStep = wk.steps[currentStepId];\n if (!currentStep) {\n throw new AXPWorkflowError(`Step '${currentStepId}' not found in the workflow steps.`);\n }\n\n // Instantiate or retrieve the action\n const action =\n typeof currentStep.action === 'string' ? this.getActionInstance(currentStep.action) : currentStep.action;\n //\n if (currentStep.input) {\n let inputs: any = {};\n await this.processInputs(cloneDeep(currentStep.input), inputs, '', context);\n await new Promise((resolve) =>\n setTimeout(async () => {\n Object.assign(action, inputs);\n resolve(0);\n })\n );\n }\n try {\n await new Promise((resolve) =>\n setTimeout(async () => {\n await action.execute(context);\n resolve(0);\n }, 0)\n );\n } catch (error) {\n console.error(error);\n throw new AXPWorkflowError('Workflow Error', error as Error);\n }\n // Determine the next step based on the conditions\n const nextStepInfo = await this.determineNextStep(currentStep, context);\n if (nextStepInfo) {\n currentStepId = nextStepInfo.nextStepId;\n } else {\n break; // Exit the loop if no next step is determined\n }\n }\n return context;\n }\n\n private processData(initialContext: any): any {\n //TODO: update values with expressions and return new object\n return initialContext;\n }\n\n\n\n private getActionInstance(actionName: string): AXPWorkflowAction {\n const actionType = this.registryService.getAction(actionName);\n if (!actionType) {\n throw new AXPWorkflowError(`Action type '${actionName}' not found in the registry.`);\n }\n return this.injector.get(actionType);\n }\n\n private getWorkflowInstance(workflowName: string): AXPWorkflow {\n const workflowType = this.registryService.getWorkflow(workflowName);\n if (!workflowType) {\n throw new AXPWorkflowError(`Workflow type '${workflowName}' not found in the registry.`);\n }\n return workflowType;\n }\n\n private async determineNextStep(\n currentStep: AXPWorkflowStep,\n context: AXPWorkflowContext\n ): Promise<AXPWorkflowNextStep | null> {\n if (!currentStep.nextSteps) {\n return null;\n }\n for (const nextStep of currentStep.nextSteps) {\n if (await this.evaluateCondition(nextStep.conditions, context)) {\n return nextStep;\n }\n }\n return null;\n }\n\n private async evaluateCondition(conditions: AXPWorkflowCondition[], context: AXPWorkflowContext): Promise<boolean> {\n if (!conditions || conditions.length === 0) {\n return true; // If no conditions, the step proceeds\n }\n\n // Map each condition to a promise using evaluateSingleCondition\n const conditionPromises = conditions.map((condition) => this.evaluateSingleCondition(condition, context));\n\n // Wait for all promises to resolve\n const results = await Promise.all(conditionPromises);\n\n // Check if every condition is true\n return results.every((result) => result);\n }\n\n private async evaluateSingleCondition(\n condition: AXPWorkflowCondition,\n context: AXPWorkflowContext\n ): Promise<boolean> {\n switch (condition.type) {\n case 'SINGLE':\n return (!condition.expression ? true : await this.evaluateExpression(condition.expression, context)) as boolean;\n case 'AND':\n // Evaluate all conditions with 'AND' logic\n const andConditions = condition.conditions ?? [];\n const andResults = await Promise.all(andConditions.map((cond) => this.evaluateSingleCondition(cond, context)));\n return andResults.every((result) => result);\n\n case 'OR':\n // Evaluate all conditions with 'OR' logic\n const orConditions = condition.conditions ?? [];\n const orResults = await Promise.all(orConditions.map((cond) => this.evaluateSingleCondition(cond, context)));\n return orResults.some((result) => result);\n\n default:\n throw new AXPWorkflowError(`Unsupported condition type: ${condition.type}`);\n }\n }\n\n //TODO: return any and recursively update object, update scopes\n private async evaluateExpression(templateExpression: string, context: AXPWorkflowContext): Promise<Boolean> {\n try {\n let expression = '';\n if (typeof templateExpression === 'string' && templateExpression.trim().includes('{{')) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n expression = expressionMatch[1];\n } else {\n expression = templateExpression;\n }\n // Create a scope that includes context and registered functions\n const scope = { context, ...this.createFunctionScope() };\n // Evaluating the expression within the created scope\n const sandbox = new Function('scope', `return (async function() { with (scope) { return ${expression}; } })();`);\n const result = await sandbox(scope);\n return result;\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private async processInputs(obj: any, inputs: any, pathPrefix: string = '', context: any = {}): Promise<void> {\n if (!obj) {\n return;\n }\n\n for await (const i of Object.entries(obj)) {\n const key = i[0];\n const value = i[1];\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.trim().includes('{{')) {\n const expValue = await this.evaluateExpression(value, context);\n set(inputs, currentPath, expValue);\n } else if (\n typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))\n ) {\n // Recursively handle nested objects\n this.processInputs(value, inputs, currentPath, context);\n } else {\n // Apply static values directly\n set(inputs, currentPath, value);\n }\n }\n }\n\n private createFunctionScope(): any {\n const scope: any = {};\n this.registryService.getFunctionNames().forEach((name) => {\n scope[name] = this.getFunctionInstance(name).execute;\n });\n return { methods: { scope } };\n }\n\n private getFunctionInstance(functionName: string): AXPWorkflowFunction {\n const functionType = this.registryService.getFunction(functionName);\n if (!functionType) {\n throw new AXPWorkflowError(`Function type '${functionName}' not found in the registry.`);\n }\n return this.injector.get(functionType);\n }\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction, AXPWorkflowContext } from \"../workflow.types\";\nimport { AXPWorkflowService } from \"../workflow.service\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPStartWorkflowAction extends AXPWorkflowAction {\n\n private workflowService = inject(AXPWorkflowService)\n private workflow: string;\n private context: any;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n //console.log(\"start WK current context\", context);\n //console.log(\"start WK input context\", this.context);\n if (this.context)\n context.setVariables(this.context)\n //console.log(\"start WK merged context\", context);\n try {\n await this.workflowService.execute(this.workflow, context);\n }\n catch (e: unknown) {\n throw e;\n }\n\n }\n}\n\n","import { Component, OnDestroy, OnInit, ViewEncapsulation, computed, inject, input, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXPContextData, AXPContextStore } from '@acorex/platform/core';\nimport { AXPComponentSlot } from '@acorex/platform/layout/components';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\n@Component({\n selector: 'axp-workflow-action-bar',\n templateUrl: './workflow-action-bar.component.html',\n styleUrl: './workflow-action-bar.component.scss',\n imports: [\n // Angular\n CommonModule,\n // ACoreX\n AXFormModule,\n AXDecoratorModule,\n AXDropdownModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n // Platform\n ],\n encapsulation: ViewEncapsulation.None,\n providers: [\n\n ],\n})\nexport class AXPWorkflowActionBarComponent extends AXPComponentSlot implements OnInit, OnDestroy {\n\n protected contextStore = inject(AXPContextStore);\n\n\n ngOnInit(): void {\n this.contextStore.patch({\n 'wf': \"test\"\n });\n }\n\n ngOnDestroy(): void {\n\n }\n\n onConfirm() {\n alert(JSON.stringify(this.contextStore.data()));\n }\n}\n","<!-- <ax-button [look]=\"'solid'\" color=\"success\">\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n <ax-button-item text=\"New\">\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n</ax-button>\nthis is workflow toolbar -->\n\n<div class=\"ax-flex ax-flex-row ax-gap-2 ax-w-full ax-lightest-surface ax-border ax-rounded-md ax-p-2\">\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-items-center \">\n <div>\n <span class=\"ax-font-semibold\">\n Step:\n </span>\n <span>\n pending\n </span>\n </div>\n <div>\n <span class=\"ax-font-semibold\">\n User:\n </span>\n <span>\n John Smith\n </span>\n </div>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-ml-auto\">\n <ax-button [look]=\"'solid'\" color=\"success\" text=\"Confirm\" (onClick)=\"onConfirm()\">\n <ax-icon icon=\"fa-light fa-check\"></ax-icon>\n </ax-button>\n </div>\n</div>","import { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\n\nexport class AXMWorkflowEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n const processId = window.location.search.split('processId=')[1];\n context.addScope('workflow', {\n process: () => {\n console.log('[SCOPE] AXMWorkflowEvaluatorScopeProvider', processId);\n return {\n\n id: processId,\n };\n },\n state: () => {\n return {\n disabled: processId === '123',\n };\n }\n });\n }\n} ","import { Inject, ModuleWithProviders, NgModule, Optional, Type } from \"@angular/core\";\nimport { AXPWorkflowRegistryService } from \"./workflow-registery.service\";\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowFunction } from \"./workflow.types\";\nimport { AXPWorkflowDecideAction } from \"./actions/decide.action\";\nimport { AXPStartWorkflowAction } from \"./actions/start-workflow.action\";\nimport { AXPWorkflowActionBarComponent } from \"./slots/workflow-action-bar/workflow-action-bar.component\";\nimport { AXPComponentSlotModule } from \"@acorex/platform/layout/components\";\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER } from \"@acorex/platform/core\";\nimport { AXMWorkflowEvaluatorScopeProvider } from \"./workflow-evaluator-scope.provider\";\nexport interface AXPWorkflowModuleConfigs {\n functions?: {\n [name: string]: Type<AXPWorkflowFunction>\n },\n actions?: {\n [name: string]: Type<AXPWorkflowAction>\n },\n workflows?: {\n [name: string]: AXPWorkflow\n }\n}\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forRoot({\n 'entity-detail-footer': [\n {\n name: 'workflow-action-bar',\n component: AXPWorkflowActionBarComponent,\n priority: 100,\n condition: '{{ workflow.process().id == \"123\" }}'\n }\n ]\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMWorkflowEvaluatorScopeProvider,\n multi: true\n }\n ]\n})\nexport class AXPWorkflowModule {\n\n static forRoot(config?: AXPWorkflowModuleConfigs): ModuleWithProviders<AXPWorkflowModule> {\n return {\n ngModule: AXPWorkflowModule,\n providers: [\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry: AXPWorkflowRegistryService) => () => {\n registry.registerAction(\"start-workflow\", AXPStartWorkflowAction);\n registry.registerAction(\"decide\", AXPWorkflowDecideAction);\n //\n if (config?.functions) {\n for (const [key, type] of Object.entries(config.functions)) {\n registry.registerFunction(key, type);\n }\n }\n //\n if (config?.actions) {\n for (const [key, type] of Object.entries(config.actions)) {\n registry.registerAction(key, type);\n }\n }\n //\n if (config?.workflows) {\n for (const [key, type] of Object.entries(config.workflows)) {\n registry.registerWorkflow(key, type);\n }\n }\n },\n deps: [AXPWorkflowRegistryService],\n multi: true\n },\n ...Object.values(config?.actions ?? { AXPStartWorkflowAction }),\n ...Object.values(config?.functions ?? {}),\n ]\n };\n }\n\n static forChild(config?: AXPWorkflowModuleConfigs): ModuleWithProviders<AXPWorkflowModule> {\n return {\n ngModule: AXPWorkflowModule,\n providers: [\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry: AXPWorkflowRegistryService) => () => {\n registry.registerAction(\"start-workflow\", AXPStartWorkflowAction);\n registry.registerAction(\"decide\", AXPWorkflowDecideAction);\n //\n if (config?.functions) {\n for (const [key, type] of Object.entries(config.functions)) {\n registry.registerFunction(key, type);\n }\n }\n //\n if (config?.actions) {\n for (const [key, type] of Object.entries(config.actions)) {\n registry.registerAction(key, type);\n }\n }\n //\n if (config?.workflows) {\n for (const [key, type] of Object.entries(config.workflows)) {\n registry.registerWorkflow(key, type);\n }\n }\n },\n deps: [AXPWorkflowRegistryService],\n multi: true\n },\n ...Object.values(config?.actions ?? {}),\n ...Object.values(config?.functions ?? {})\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPWorkflowModuleFactory') instances: any[]) {\n instances?.forEach(f => {\n f();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXPWorkflowRegistryService","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-workflow.mjs","sources":["../../../../libs/platform/workflow/src/lib/errors.types.ts","../../../../libs/platform/workflow/src/lib/workflow-event-dispatcher.service.ts","../../../../libs/platform/workflow/src/lib/workflow-registery.service.ts","../../../../libs/platform/workflow/src/lib/workflow.types.ts","../../../../libs/platform/workflow/src/lib/actions/decide.action.ts","../../../../libs/platform/workflow/src/lib/workflow.service.ts","../../../../libs/platform/workflow/src/lib/actions/start-workflow.action.ts","../../../../libs/platform/workflow/src/lib/slots/workflow-action-bar/workflow-action-bar.component.ts","../../../../libs/platform/workflow/src/lib/slots/workflow-action-bar/workflow-action-bar.component.html","../../../../libs/platform/workflow/src/lib/workflow-evaluator-scope.provider.ts","../../../../libs/platform/workflow/src/lib/workflow.module.ts","../../../../libs/platform/workflow/src/lib/task-board.types.ts","../../../../libs/platform/workflow/src/acorex-platform-workflow.ts"],"sourcesContent":["export class AXPWorkflowError extends Error {\n constructor(message: string, public inner: Error | null = null) {\n super(message);\n this.name = 'AXPWorkflowError';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AXPWorkflowEvent } from './workflow.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowEventService {\n private eventSubject = new Subject<AXPWorkflowEvent>();\n\n dispatch(event: AXPWorkflowEvent): void {\n this.eventSubject.next(event);\n }\n\n get events$(): Observable<AXPWorkflowEvent> {\n return this.eventSubject.asObservable();\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowFunction, AXPWorkflowStep } from './workflow.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowRegistryService {\n private functionsMap = new Map<string, Type<AXPWorkflowFunction>>();\n private actionsMap = new Map<string, Type<AXPWorkflowAction>>();\n private workflowsMap = new Map<string, AXPWorkflow>();\n\n registerWorkflow(name: string, workflow: AXPWorkflow): void {\n this.workflowsMap.set(name, workflow);\n }\n\n getWorkflow(name: string): AXPWorkflow | undefined {\n return this.workflowsMap.get(name);\n }\n\n registerAction(name: string, action: Type<AXPWorkflowAction>): void {\n this.actionsMap.set(name, action);\n }\n\n getAction(name: string): Type<AXPWorkflowAction> | undefined {\n return this.actionsMap.get(name);\n }\n\n registerFunction(name: string, func: Type<AXPWorkflowFunction>): void {\n this.functionsMap.set(name, func);\n }\n\n getFunction(name: string): Type<AXPWorkflowFunction> | undefined {\n return this.functionsMap.get(name);\n }\n\n getFunctionNames(): string[] {\n return Array.from(this.functionsMap.keys());\n }\n\n getStep(workflowName: string, stepName: string): AXPWorkflowStep | undefined {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps as { [key: string]: AXPWorkflowStep };\n return steps[stepName];\n }\n return undefined;\n }\n\n updateStepInWorkflow(workflowName: string, stepName: string, step: AXPWorkflowStep): void {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps as { [key: string]: AXPWorkflowStep };\n if (steps[stepName]) {\n steps[stepName] = step;\n } else {\n throw new Error(`Step with name ${stepName} does not exist in workflow ${workflowName}.`);\n }\n } else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n\n addStepToWorkflow(workflowName: string, stepName: string, step: AXPWorkflowStep): void {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps as { [key: string]: AXPWorkflowStep };\n if (!steps[stepName]) {\n steps[stepName] = step;\n } else {\n throw new Error(`Step with name ${stepName} already exists in workflow ${workflowName}.`);\n }\n } else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n\n addAfterStep(\n workflowId: string,\n stepId: string,\n newStepId: string,\n newStepAction: string,\n conditionExpression: string\n ): void {\n const step = this.getStep(workflowId, stepId);\n if (step != undefined) {\n this.addStepToWorkflow(workflowId, newStepId, {\n action: newStepAction,\n nextSteps: step.nextSteps,\n });\n\n this.updateStepInWorkflow(workflowId, stepId, {\n ...step,\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: conditionExpression }],\n nextStepId: newStepId,\n },\n ],\n });\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { filter } from 'rxjs';\nimport { AXPWorkflowEventService } from './workflow-event-dispatcher.service';\nimport { cloneDeep, get } from 'lodash-es';\nimport { setSmart } from '@acorex/platform/core';\n\nexport interface AXPWorkflow {\n steps: { [stepName: string]: AXPWorkflowStep };\n startStepId: string;\n}\n\n\nexport class AXPWorkflowContext {\n\n constructor(initialData: any = {}) {\n this.variables = cloneDeep(initialData);\n }\n\n private variables: any = {};\n private stepOutputs: Map<string, any> = new Map();\n\n setVariable(key: string, value: any): void {\n setSmart(this.variables, key, value);\n }\n\n\n setVariables(context: any = {}) {\n this.variables = { ...this.variables, ...context };\n }\n\n getVariable<T = any>(key?: string | null): T {\n return !key ? this.variables : get(this.variables, key);\n }\n\n setOutput(key: string, output: any): void {\n this.stepOutputs.set(key, output);\n }\n\n setOutputs(values: Map<string, any>): void {\n this.stepOutputs = new Map([...this.stepOutputs, ...values])\n }\n\n getOutput<T = any>(key: string): T {\n return this.stepOutputs.get(key);\n }\n}\n\nexport type AXPWorkflowActionInput = any;\n\nexport type AXPWorkflowConditionType = 'AND' | 'OR' | 'SINGLE';\n\nexport interface AXPWorkflowCondition {\n type: AXPWorkflowConditionType;\n conditions?: AXPWorkflowCondition[]; // Nested conditions\n expression?: string; // Used if type is 'SINGLE'\n}\n\nexport interface AXPWorkflowNextStep {\n conditions: AXPWorkflowCondition[];\n nextStepId: string;\n}\n\nexport interface AXPWorkflowStep {\n id?: string;\n action: AXPWorkflowAction | string;\n input?: AXPWorkflowActionInput;\n nextSteps?: AXPWorkflowNextStep[];\n conditions?: AXPWorkflowCondition[];\n}\n@Injectable()\nexport abstract class AXPWorkflowAction {\n private eventService = inject(AXPWorkflowEventService);\n\n protected dispatch(event: AXPWorkflowEvent): void {\n this.eventService.dispatch(event);\n }\n\n abstract execute(context: AXPWorkflowContext): Promise<void>;\n}\n\n@Injectable()\nexport abstract class AXPWorkflowFunction {\n abstract execute(...args: any[]): Promise<any> | any;\n}\n\nexport interface AXPWorkflowEvent<T = any> {\n type: string;\n payload?: T;\n}\n\n\n\nexport function createWorkFlowEvent<T>(type: string) {\n const eventCreator = (payload: T) => ({ type, payload });\n eventCreator.type = type;\n return eventCreator;\n}\n\nexport function ofType<T extends { type: string }>(...allowedTypes: Array<{ type: string }>) {\n return filter((event: T) => allowedTypes.some((type) => event.type === type.type));\n}\n","import { Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction, AXPWorkflowContext } from \"../workflow.types\";\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowDecideAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n // its a fake action\n }\n}","import { Injectable, Injector, inject } from '@angular/core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { Observable } from 'rxjs';\nimport { AXPWorkflowError } from './errors.types';\nimport { AXPWorkflowEventService } from './workflow-event-dispatcher.service';\nimport { AXPWorkflowRegistryService } from './workflow-registery.service';\nimport {\n AXPWorkflow,\n AXPWorkflowAction,\n AXPWorkflowCondition,\n AXPWorkflowContext,\n AXPWorkflowEvent,\n AXPWorkflowFunction,\n AXPWorkflowNextStep,\n AXPWorkflowStep,\n} from './workflow.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowService {\n private eventService = inject(AXPWorkflowEventService);\n\n get events$(): Observable<AXPWorkflowEvent> {\n return this.eventService.events$;\n }\n\n constructor(private registryService: AXPWorkflowRegistryService, private injector: Injector) { }\n\n async execute(\n workflow: AXPWorkflow | string,\n initialContext: AXPWorkflowContext | any | null = null\n ): Promise<AXPWorkflowContext> {\n // Instantiate or retrieve the workflow\n const wk = typeof workflow === 'string' ? this.getWorkflowInstance(workflow) : workflow;\n\n let currentStepId = wk.startStepId;\n const context =\n initialContext instanceof AXPWorkflowContext\n ? initialContext\n : new AXPWorkflowContext(this.processData(initialContext) ?? {});\n // Initialize context with initial variables\n\n while (currentStepId) {\n const currentStep = wk.steps[currentStepId];\n if (!currentStep) {\n throw new AXPWorkflowError(`Step '${currentStepId}' not found in the workflow steps.`);\n }\n\n // Instantiate or retrieve the action\n const action =\n typeof currentStep.action === 'string' ? this.getActionInstance(currentStep.action) : currentStep.action;\n //\n if (currentStep.input) {\n let inputs: any = {};\n await this.processInputs(cloneDeep(currentStep.input), inputs, '', context);\n await new Promise((resolve) =>\n setTimeout(async () => {\n Object.assign(action, inputs);\n resolve(0);\n })\n );\n }\n try {\n await new Promise((resolve) =>\n setTimeout(async () => {\n await action.execute(context);\n resolve(0);\n }, 0)\n );\n } catch (error) {\n console.error(error);\n throw new AXPWorkflowError('Workflow Error', error as Error);\n }\n // Determine the next step based on the conditions\n const nextStepInfo = await this.determineNextStep(currentStep, context);\n if (nextStepInfo) {\n currentStepId = nextStepInfo.nextStepId;\n } else {\n break; // Exit the loop if no next step is determined\n }\n }\n return context;\n }\n\n private processData(initialContext: any): any {\n //TODO: update values with expressions and return new object\n return initialContext;\n }\n\n\n\n private getActionInstance(actionName: string): AXPWorkflowAction {\n const actionType = this.registryService.getAction(actionName);\n if (!actionType) {\n throw new AXPWorkflowError(`Action type '${actionName}' not found in the registry.`);\n }\n return this.injector.get(actionType);\n }\n\n private getWorkflowInstance(workflowName: string): AXPWorkflow {\n const workflowType = this.registryService.getWorkflow(workflowName);\n if (!workflowType) {\n throw new AXPWorkflowError(`Workflow type '${workflowName}' not found in the registry.`);\n }\n return workflowType;\n }\n\n private async determineNextStep(\n currentStep: AXPWorkflowStep,\n context: AXPWorkflowContext\n ): Promise<AXPWorkflowNextStep | null> {\n if (!currentStep.nextSteps) {\n return null;\n }\n for (const nextStep of currentStep.nextSteps) {\n if (await this.evaluateCondition(nextStep.conditions, context)) {\n return nextStep;\n }\n }\n return null;\n }\n\n private async evaluateCondition(conditions: AXPWorkflowCondition[], context: AXPWorkflowContext): Promise<boolean> {\n if (!conditions || conditions.length === 0) {\n return true; // If no conditions, the step proceeds\n }\n\n // Map each condition to a promise using evaluateSingleCondition\n const conditionPromises = conditions.map((condition) => this.evaluateSingleCondition(condition, context));\n\n // Wait for all promises to resolve\n const results = await Promise.all(conditionPromises);\n\n // Check if every condition is true\n return results.every((result) => result);\n }\n\n private async evaluateSingleCondition(\n condition: AXPWorkflowCondition,\n context: AXPWorkflowContext\n ): Promise<boolean> {\n switch (condition.type) {\n case 'SINGLE':\n return (!condition.expression ? true : await this.evaluateExpression(condition.expression, context)) as boolean;\n case 'AND':\n // Evaluate all conditions with 'AND' logic\n const andConditions = condition.conditions ?? [];\n const andResults = await Promise.all(andConditions.map((cond) => this.evaluateSingleCondition(cond, context)));\n return andResults.every((result) => result);\n\n case 'OR':\n // Evaluate all conditions with 'OR' logic\n const orConditions = condition.conditions ?? [];\n const orResults = await Promise.all(orConditions.map((cond) => this.evaluateSingleCondition(cond, context)));\n return orResults.some((result) => result);\n\n default:\n throw new AXPWorkflowError(`Unsupported condition type: ${condition.type}`);\n }\n }\n\n //TODO: return any and recursively update object, update scopes\n private async evaluateExpression(templateExpression: string, context: AXPWorkflowContext): Promise<Boolean> {\n try {\n let expression = '';\n if (typeof templateExpression === 'string' && templateExpression.trim().includes('{{')) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n expression = expressionMatch[1];\n } else {\n expression = templateExpression;\n }\n // Create a scope that includes context and registered functions\n const scope = { context, ...this.createFunctionScope() };\n // Evaluating the expression within the created scope\n const sandbox = new Function('scope', `return (async function() { with (scope) { return ${expression}; } })();`);\n const result = await sandbox(scope);\n return result;\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private async processInputs(obj: any, inputs: any, pathPrefix: string = '', context: any = {}): Promise<void> {\n if (!obj) {\n return;\n }\n\n for await (const i of Object.entries(obj)) {\n const key = i[0];\n const value = i[1];\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.trim().includes('{{')) {\n const expValue = await this.evaluateExpression(value, context);\n set(inputs, currentPath, expValue);\n } else if (\n typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))\n ) {\n // Recursively handle nested objects\n this.processInputs(value, inputs, currentPath, context);\n } else {\n // Apply static values directly\n set(inputs, currentPath, value);\n }\n }\n }\n\n private createFunctionScope(): any {\n const scope: any = {};\n this.registryService.getFunctionNames().forEach((name) => {\n scope[name] = this.getFunctionInstance(name).execute;\n });\n return { methods: { scope } };\n }\n\n private getFunctionInstance(functionName: string): AXPWorkflowFunction {\n const functionType = this.registryService.getFunction(functionName);\n if (!functionType) {\n throw new AXPWorkflowError(`Function type '${functionName}' not found in the registry.`);\n }\n return this.injector.get(functionType);\n }\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction, AXPWorkflowContext } from \"../workflow.types\";\nimport { AXPWorkflowService } from \"../workflow.service\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPStartWorkflowAction extends AXPWorkflowAction {\n\n private workflowService = inject(AXPWorkflowService)\n private workflow: string;\n private context: any;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n //console.log(\"start WK current context\", context);\n //console.log(\"start WK input context\", this.context);\n if (this.context)\n context.setVariables(this.context)\n //console.log(\"start WK merged context\", context);\n try {\n await this.workflowService.execute(this.workflow, context);\n }\n catch (e: unknown) {\n throw e;\n }\n\n }\n}\n\n","import { Component, OnDestroy, OnInit, ViewEncapsulation, computed, inject, input, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXPContextData, AXPContextStore } from '@acorex/platform/core';\nimport { AXPComponentSlot } from '@acorex/platform/layout/components';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\n@Component({\n selector: 'axp-workflow-action-bar',\n templateUrl: './workflow-action-bar.component.html',\n styleUrl: './workflow-action-bar.component.scss',\n imports: [\n // Angular\n CommonModule,\n // ACoreX\n AXFormModule,\n AXDecoratorModule,\n AXDropdownModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n // Platform\n ],\n encapsulation: ViewEncapsulation.None,\n providers: [\n\n ],\n})\nexport class AXPWorkflowActionBarComponent extends AXPComponentSlot implements OnInit, OnDestroy {\n\n protected contextStore = inject(AXPContextStore);\n\n\n ngOnInit(): void {\n this.contextStore.patch({\n 'wf': \"test\"\n });\n }\n\n ngOnDestroy(): void {\n\n }\n\n onConfirm() {\n alert(JSON.stringify(this.contextStore.data()));\n }\n}\n","<!-- <ax-button [look]=\"'solid'\" color=\"success\">\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n <ax-dropdown-panel #panel>\n <ax-button-item-list>\n <ax-button-item text=\"New\">\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n</ax-button>\nthis is workflow toolbar -->\n\n<div class=\"ax-flex ax-flex-row ax-gap-2 ax-w-full ax-lightest-surface ax-border ax-rounded-md ax-p-2\">\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-items-center \">\n <div>\n <span class=\"ax-font-semibold\">\n Step:\n </span>\n <span>\n pending\n </span>\n </div>\n <div>\n <span class=\"ax-font-semibold\">\n User:\n </span>\n <span>\n John Smith\n </span>\n </div>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-ml-auto\">\n <ax-button [look]=\"'solid'\" color=\"success\" text=\"Confirm\" (onClick)=\"onConfirm()\">\n <ax-icon icon=\"fa-light fa-check\"></ax-icon>\n </ax-button>\n </div>\n</div>","import { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\n\nexport class AXMWorkflowEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n const processId = window.location.search.split('processId=')[1];\n context.addScope('workflow', {\n process: () => {\n console.log('[SCOPE] AXMWorkflowEvaluatorScopeProvider', processId);\n return {\n\n id: processId,\n };\n },\n state: () => {\n return {\n disabled: processId === '123',\n };\n }\n });\n }\n} ","import { Inject, ModuleWithProviders, NgModule, Optional, Type } from \"@angular/core\";\nimport { AXPWorkflowRegistryService } from \"./workflow-registery.service\";\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowFunction } from \"./workflow.types\";\nimport { AXPWorkflowDecideAction } from \"./actions/decide.action\";\nimport { AXPStartWorkflowAction } from \"./actions/start-workflow.action\";\nimport { AXPWorkflowActionBarComponent } from \"./slots/workflow-action-bar/workflow-action-bar.component\";\nimport { AXPComponentSlotModule } from \"@acorex/platform/layout/components\";\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER } from \"@acorex/platform/core\";\nimport { AXMWorkflowEvaluatorScopeProvider } from \"./workflow-evaluator-scope.provider\";\nexport interface AXPWorkflowModuleConfigs {\n functions?: {\n [name: string]: Type<AXPWorkflowFunction>\n },\n actions?: {\n [name: string]: Type<AXPWorkflowAction>\n },\n workflows?: {\n [name: string]: AXPWorkflow\n }\n}\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forRoot({\n 'entity-detail-footer': [\n {\n name: 'workflow-action-bar',\n component: AXPWorkflowActionBarComponent,\n priority: 100,\n condition: '{{ workflow.process().id == \"123\" }}'\n }\n ]\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMWorkflowEvaluatorScopeProvider,\n multi: true\n }\n ]\n})\nexport class AXPWorkflowModule {\n\n static forRoot(config?: AXPWorkflowModuleConfigs): ModuleWithProviders<AXPWorkflowModule> {\n return {\n ngModule: AXPWorkflowModule,\n providers: [\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry: AXPWorkflowRegistryService) => () => {\n registry.registerAction(\"start-workflow\", AXPStartWorkflowAction);\n registry.registerAction(\"decide\", AXPWorkflowDecideAction);\n //\n if (config?.functions) {\n for (const [key, type] of Object.entries(config.functions)) {\n registry.registerFunction(key, type);\n }\n }\n //\n if (config?.actions) {\n for (const [key, type] of Object.entries(config.actions)) {\n registry.registerAction(key, type);\n }\n }\n //\n if (config?.workflows) {\n for (const [key, type] of Object.entries(config.workflows)) {\n registry.registerWorkflow(key, type);\n }\n }\n },\n deps: [AXPWorkflowRegistryService],\n multi: true\n },\n ...Object.values(config?.actions ?? { AXPStartWorkflowAction }),\n ...Object.values(config?.functions ?? {}),\n ]\n };\n }\n\n static forChild(config?: AXPWorkflowModuleConfigs): ModuleWithProviders<AXPWorkflowModule> {\n return {\n ngModule: AXPWorkflowModule,\n providers: [\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry: AXPWorkflowRegistryService) => () => {\n registry.registerAction(\"start-workflow\", AXPStartWorkflowAction);\n registry.registerAction(\"decide\", AXPWorkflowDecideAction);\n //\n if (config?.functions) {\n for (const [key, type] of Object.entries(config.functions)) {\n registry.registerFunction(key, type);\n }\n }\n //\n if (config?.actions) {\n for (const [key, type] of Object.entries(config.actions)) {\n registry.registerAction(key, type);\n }\n }\n //\n if (config?.workflows) {\n for (const [key, type] of Object.entries(config.workflows)) {\n registry.registerWorkflow(key, type);\n }\n }\n },\n deps: [AXPWorkflowRegistryService],\n multi: true\n },\n ...Object.values(config?.actions ?? {}),\n ...Object.values(config?.functions ?? {})\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPWorkflowModuleFactory') instances: any[]) {\n instances?.forEach(f => {\n f();\n });\n }\n}\n","import {\n AXSchedulerAppointment,\n AXSchedulerAppointmentDataSourceFilter,\n AXSchedulerDateRange,\n} from '@acorex/components/scheduler';\nimport { AXPActionMenuItem, AXPExecuteCommand, AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { InjectionToken } from '@angular/core';\n\nexport type AXPTask = AXSchedulerAppointment & {\n data?: {\n provider?: string;\n actions?: AXPActionMenuItem[];\n };\n};\nexport type AXPTaskFilter = AXSchedulerAppointmentDataSourceFilter & { types?: string[] };\n\nexport abstract class AXPWorkflowTaskProvider {\n abstract get name(): string;\n abstract get title(): string;\n abstract get icon(): string;\n\n abstract getTasks(options?: AXPTaskFilter): Promise<AXPTask[]>;\n abstract updateTask(id: any, range: AXSchedulerDateRange): Promise<AXPTask>;\n abstract executeCommand(command: AXPExecuteCommand): Promise<AXPExecuteCommandResult>;\n}\n\nexport const AXP_WORKFLOW_TASK_PROVIDER = new InjectionToken<AXPWorkflowTaskProvider[]>('AXP_WORKFLOW_TASK_PROVIDER');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXPWorkflowRegistryService","i1"],"mappings":"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"}
|
|
@@ -21,7 +21,6 @@ export interface AXPWidgetTypesMap {
|
|
|
21
21
|
pageLayout: 'page-layout';
|
|
22
22
|
repeaterLayout: 'repeater-layout';
|
|
23
23
|
textBlockLayout: 'text-block-layout';
|
|
24
|
-
file: 'file';
|
|
25
24
|
fileUploader: 'file-uploader';
|
|
26
25
|
fileTypeExtension: 'file-type-extension';
|
|
27
26
|
map: 'map';
|
|
@@ -43,6 +42,8 @@ export interface AXPWidgetTypesMap {
|
|
|
43
42
|
cronJob: 'cron-job';
|
|
44
43
|
spacing: 'spacing';
|
|
45
44
|
border: 'border';
|
|
45
|
+
direction: 'direction';
|
|
46
|
+
flexLayout: 'flex-layout';
|
|
46
47
|
avatar: 'avatar';
|
|
47
48
|
stringFilter: 'string-filter';
|
|
48
49
|
numberFilter: 'number-filter';
|
|
@@ -71,8 +72,6 @@ export interface AXPWidgetTypesMap {
|
|
|
71
72
|
weather: 'weather';
|
|
72
73
|
metaData: 'meta-data-editor';
|
|
73
74
|
tagable: 'tagable-editor';
|
|
74
|
-
singleFileBox: 'single-file-box-editor';
|
|
75
|
-
documentAttachment: 'document-attachment-editor';
|
|
76
75
|
templateEditor: 'template-box-editor';
|
|
77
76
|
themePaletteChooser: 'theme-palette-chooser';
|
|
78
77
|
themeModeChooser: 'theme-mode-chooser';
|
|
@@ -92,6 +92,7 @@ export declare class AXPEntityMasterListViewModel {
|
|
|
92
92
|
removeSort(name: string): void;
|
|
93
93
|
applyViewSorts(): void;
|
|
94
94
|
executeCommand(commandName: string, data?: any): Promise<void>;
|
|
95
|
+
private evaluateExpressions;
|
|
95
96
|
execute(command: AXPExecuteCommand): Promise<void>;
|
|
96
97
|
destroy(): void;
|
|
97
98
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPShowFileUploaderPopupAction extends AXPWorkflowAction {
|
|
4
|
+
private fileUploaderWidgetService;
|
|
5
|
+
private entityRegistryService;
|
|
6
|
+
execute(context: AXPWorkflowContext): Promise<void>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPShowFileUploaderPopupAction, never>;
|
|
8
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPShowFileUploaderPopupAction>;
|
|
9
|
+
}
|
|
10
|
+
export declare const AXPShowFileUploaderPopupWorkflow: AXPWorkflow;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/platform",
|
|
3
|
-
"version": "19.4.
|
|
3
|
+
"version": "19.4.6",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=19.0.0",
|
|
6
6
|
"@angular/core": ">=19.0.0",
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
"types": "./common/index.d.ts",
|
|
49
49
|
"default": "./fesm2022/acorex-platform-common.mjs"
|
|
50
50
|
},
|
|
51
|
-
"./domain": {
|
|
52
|
-
"types": "./domain/index.d.ts",
|
|
53
|
-
"default": "./fesm2022/acorex-platform-domain.mjs"
|
|
54
|
-
},
|
|
55
51
|
"./core": {
|
|
56
52
|
"types": "./core/index.d.ts",
|
|
57
53
|
"default": "./fesm2022/acorex-platform-core.mjs"
|
|
58
54
|
},
|
|
55
|
+
"./domain": {
|
|
56
|
+
"types": "./domain/index.d.ts",
|
|
57
|
+
"default": "./fesm2022/acorex-platform-domain.mjs"
|
|
58
|
+
},
|
|
59
59
|
"./native": {
|
|
60
60
|
"types": "./native/index.d.ts",
|
|
61
61
|
"default": "./fesm2022/acorex-platform-native.mjs"
|
|
@@ -72,22 +72,22 @@
|
|
|
72
72
|
"types": "./workflow/index.d.ts",
|
|
73
73
|
"default": "./fesm2022/acorex-platform-workflow.mjs"
|
|
74
74
|
},
|
|
75
|
-
"./layout/components": {
|
|
76
|
-
"types": "./layout/components/index.d.ts",
|
|
77
|
-
"default": "./fesm2022/acorex-platform-layout-components.mjs"
|
|
78
|
-
},
|
|
79
75
|
"./layout/builder": {
|
|
80
76
|
"types": "./layout/builder/index.d.ts",
|
|
81
77
|
"default": "./fesm2022/acorex-platform-layout-builder.mjs"
|
|
82
78
|
},
|
|
83
|
-
"./layout/
|
|
84
|
-
"types": "./layout/
|
|
85
|
-
"default": "./fesm2022/acorex-platform-layout-
|
|
79
|
+
"./layout/components": {
|
|
80
|
+
"types": "./layout/components/index.d.ts",
|
|
81
|
+
"default": "./fesm2022/acorex-platform-layout-components.mjs"
|
|
86
82
|
},
|
|
87
83
|
"./layout/designer": {
|
|
88
84
|
"types": "./layout/designer/index.d.ts",
|
|
89
85
|
"default": "./fesm2022/acorex-platform-layout-designer.mjs"
|
|
90
86
|
},
|
|
87
|
+
"./layout/entity": {
|
|
88
|
+
"types": "./layout/entity/index.d.ts",
|
|
89
|
+
"default": "./fesm2022/acorex-platform-layout-entity.mjs"
|
|
90
|
+
},
|
|
91
91
|
"./layout/filters": {
|
|
92
92
|
"types": "./layout/filters/index.d.ts",
|
|
93
93
|
"default": "./fesm2022/acorex-platform-layout-filters.mjs"
|
|
@@ -17,3 +17,4 @@ export declare const AXP_LAYOUT_FLEX_PROPERTY: AXPWidgetProperty;
|
|
|
17
17
|
export declare const AXP_LAYOUT_GRID_PROPERTY: AXPWidgetProperty;
|
|
18
18
|
export declare const AXP_LAYOUT_ADVANCED_GRID_PROPERTY: AXPWidgetProperty;
|
|
19
19
|
export declare const AXP_LAYOUT_SHOW_HEADER_PROPERTY: AXPWidgetProperty;
|
|
20
|
+
export declare const AXP_LAYOUT_DIRECTION_PROPERTY: AXPWidgetProperty;
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { AXPFileListItem } from '@acorex/platform/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export declare class AXPFileListComponent implements OnInit, OnDestroy {
|
|
4
5
|
private fileTypeService;
|
|
5
6
|
protected isLoading: import("@angular/core").WritableSignal<boolean>;
|
|
6
7
|
private fileTypes;
|
|
8
|
+
onRemove: import("@angular/core").OutputEmitterRef<AXPFileListItem>;
|
|
7
9
|
readOnly: import("@angular/core").InputSignal<boolean>;
|
|
8
|
-
files: import("@angular/core").InputSignal<
|
|
10
|
+
files: import("@angular/core").InputSignal<AXPFileListItem[]>;
|
|
11
|
+
displayFiles: import("@angular/core").Signal<AXPFileListItem[]>;
|
|
9
12
|
ngOnInit(): Promise<void>;
|
|
10
13
|
protected getFileInfo(fileName: string): {
|
|
11
14
|
icon: string;
|
|
12
15
|
type: string;
|
|
13
16
|
};
|
|
14
|
-
handleFileDownload(file:
|
|
15
|
-
handleFileRemove(file:
|
|
17
|
+
handleFileDownload(file: AXPFileListItem): Promise<void>;
|
|
18
|
+
handleFileRemove(file: AXPFileListItem): Promise<void>;
|
|
16
19
|
ngOnDestroy(): void;
|
|
17
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileListComponent, never>;
|
|
18
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXPFileListComponent, "axp-file-list", never, { "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPFileListComponent, "axp-file-list", never, { "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "files": { "alias": "files"; "required": false; "isSignal": true; }; }, { "onRemove": "onRemove"; }, never, never, true, never>;
|
|
19
22
|
}
|
package/widgets/lib/widgets/advance/file-uploader/file-list-popup/file-list-popup.component.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
|
2
|
+
import { AXPFileListItem } from '@acorex/platform/core';
|
|
3
|
+
import { AXPLayoutContextChangeEvent, AXPWidgetNode } from '@acorex/platform/layout/builder';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class AXPFileListPopupComponent extends AXBasePageComponent {
|
|
6
|
+
files: import("@angular/core").InputSignal<AXPFileListItem[]>;
|
|
7
|
+
readOnly: import("@angular/core").InputSignal<boolean>;
|
|
8
|
+
multiple: import("@angular/core").InputSignal<boolean>;
|
|
9
|
+
accept: import("@angular/core").InputSignal<string>;
|
|
10
|
+
protected mode: import("@angular/core").Signal<"view" | "edit">;
|
|
11
|
+
protected context: import("@angular/core").WritableSignal<{}>;
|
|
12
|
+
protected onContextChanged(event: AXPLayoutContextChangeEvent): void;
|
|
13
|
+
protected node: import("@angular/core").Signal<AXPWidgetNode>;
|
|
14
|
+
apply(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileListPopupComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPFileListPopupComponent, "ng-component", never, { "files": { "alias": "files"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
17
|
+
}
|
package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-column.component.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
+
import { AXPFileListItem } from '@acorex/platform/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class AXPFileUploaderWidgetColumnComponent extends AXPColumnWidgetComponent<
|
|
4
|
+
export declare class AXPFileUploaderWidgetColumnComponent extends AXPColumnWidgetComponent<AXPFileListItem[]> {
|
|
4
5
|
protected count: import("@angular/core").Signal<number>;
|
|
5
|
-
private
|
|
6
|
-
private translate;
|
|
6
|
+
private fileService;
|
|
7
7
|
openFileList(): Promise<void>;
|
|
8
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileUploaderWidgetColumnComponent, never>;
|
|
9
9
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXPFileUploaderWidgetColumnComponent, "ng-component", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; }, {}, never, never, true, never>;
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { AXFileService } from '@acorex/core/file';
|
|
2
2
|
import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';
|
|
3
|
+
import { AXPFileListItem } from '@acorex/platform/core';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class AXPFileUploaderWidgetEditComponent extends AXPValueWidgetComponent<
|
|
5
|
+
export declare class AXPFileUploaderWidgetEditComponent extends AXPValueWidgetComponent<AXPFileListItem[]> {
|
|
5
6
|
protected readonly fileService: AXFileService;
|
|
6
7
|
protected multiple: import("@angular/core").Signal<boolean>;
|
|
7
8
|
protected accept: import("@angular/core").Signal<string>;
|
|
8
9
|
protected uploadFromComputer(): Promise<void>;
|
|
10
|
+
protected files: import("@angular/core").Signal<AXPFileListItem[]>;
|
|
11
|
+
handleFileRemove(file: AXPFileListItem): void;
|
|
12
|
+
removeFile(file: AXPFileListItem): void;
|
|
13
|
+
clear(): void;
|
|
9
14
|
private get __class();
|
|
10
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileUploaderWidgetEditComponent, never>;
|
|
11
16
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXPFileUploaderWidgetEditComponent, "axp-file-uploader-widget-edit", never, {}, {}, never, never, true, never>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
+
import { AXPFileListItem } from '@acorex/platform/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class AXPFileUploaderWidgetViewComponent extends AXPValueWidgetComponent<
|
|
4
|
+
export declare class AXPFileUploaderWidgetViewComponent extends AXPValueWidgetComponent<AXPFileListItem[]> {
|
|
5
|
+
protected files: import("@angular/core").Signal<AXPFileListItem[]>;
|
|
4
6
|
private get __class();
|
|
5
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileUploaderWidgetViewComponent, never>;
|
|
6
8
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXPFileUploaderWidgetViewComponent, "axp-file-uploader-widget-view", never, {}, {}, never, never, true, never>;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
export declare
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { AXPFileListItem } from "@acorex/platform/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPFileUploaderWidgetService {
|
|
4
|
+
private popupService;
|
|
5
|
+
private translate;
|
|
6
|
+
showFileList(options?: {
|
|
7
|
+
files?: AXPFileListItem[];
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
multiple?: boolean;
|
|
10
|
+
accept?: string;
|
|
11
|
+
}): Promise<AXPFileListItem[] | undefined>;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileUploaderWidgetService, never>;
|
|
13
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileUploaderWidgetService>;
|
|
12
14
|
}
|
|
@@ -3,7 +3,6 @@ import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';
|
|
|
3
3
|
import { ChangeDetectorRef } from '@angular/core';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class AXPMapBoxWidgetEditComponent extends AXPValueWidgetComponent<AXMapData | undefined> {
|
|
6
|
-
#private;
|
|
7
6
|
cdr: ChangeDetectorRef;
|
|
8
7
|
markers: import("@angular/core").Signal<import("@acorex/components/map").AXMapMarker[]>;
|
|
9
8
|
polygons: import("@angular/core").Signal<AXMapPolygon[]>;
|
|
@@ -11,12 +11,10 @@ export * from './editors/phone';
|
|
|
11
11
|
export * from './editors/rich-text';
|
|
12
12
|
export * from './editors/select';
|
|
13
13
|
export * from './editors/selection-list';
|
|
14
|
-
export * from './editors/single-file-box';
|
|
15
14
|
export * from './editors/template-box';
|
|
16
15
|
export * from './editors/text';
|
|
17
16
|
export * from './editors/toggle';
|
|
18
17
|
export * from './advance/avatar';
|
|
19
|
-
export * from './advance/file';
|
|
20
18
|
export * from './advance/file-uploader';
|
|
21
19
|
export * from './advance/gallery';
|
|
22
20
|
export * from './advance/map';
|
|
@@ -24,10 +22,12 @@ export * from './advance/signature';
|
|
|
24
22
|
export * from './layout/advanced-grid';
|
|
25
23
|
export * from './layout/advanced-grid-item';
|
|
26
24
|
export * from './layout/block';
|
|
25
|
+
export * from './layout/flex';
|
|
27
26
|
export * from './layout/page';
|
|
28
27
|
export * from './layout/repeater';
|
|
29
28
|
export * from './property-editors/advanced-grid-options';
|
|
30
29
|
export * from './property-editors/border';
|
|
30
|
+
export * from './property-editors/direction';
|
|
31
31
|
export * from './property-editors/flex-options';
|
|
32
32
|
export * from './property-editors/grid-options';
|
|
33
33
|
export * from './property-editors/property-editor-helper';
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
-
import { AXPLayoutFlexStyles } from '@acorex/platform/core';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
export declare class AXPBlockWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
5
4
|
protected backgroundColor: import("@angular/core").Signal<string>;
|
|
6
5
|
protected cssClass: import("@angular/core").Signal<string>;
|
|
7
|
-
protected flex: import("@angular/core").Signal<AXPLayoutFlexStyles>;
|
|
8
6
|
private get __class();
|
|
9
7
|
private get __style();
|
|
10
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPBlockWidgetViewComponent, never>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPFlexWidgetDesignerComponent extends AXPLayoutWidgetComponent {
|
|
4
|
+
protected backgroundColor: import("@angular/core").Signal<string>;
|
|
5
|
+
protected cssClass: import("@angular/core").Signal<string>;
|
|
6
|
+
private get __class();
|
|
7
|
+
private get __style();
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPFlexWidgetDesignerComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPFlexWidgetDesignerComponent, "axp-flex-widget", never, {}, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXPFlexWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
4
|
+
protected backgroundColor: import("@angular/core").Signal<string>;
|
|
5
|
+
protected cssClass: import("@angular/core").Signal<string>;
|
|
6
|
+
private get __class();
|
|
7
|
+
private get __style();
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXPFlexWidgetViewComponent, never>;
|
|
9
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXPFlexWidgetViewComponent, "axp-flex-widget", never, {}, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AXPLayoutFlexStyles } from '@acorex/platform/core';
|
|
2
|
+
import { AXPWidgetConfig } from '@acorex/platform/layout/builder';
|
|
3
|
+
export declare const AXPFlexWidget: AXPWidgetConfig<AXPFlexWidgetConfigType>;
|
|
4
|
+
declare module '@acorex/platform/layout/builder' {
|
|
5
|
+
interface AXPWidgetTypesMap {
|
|
6
|
+
flexLayout: 'flex-layout';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export type AXPFlexWidgetConfigType = {
|
|
10
|
+
type: 'container';
|
|
11
|
+
};
|
|
12
|
+
export interface AXPFlexWidgetOptions {
|
|
13
|
+
flex?: AXPLayoutFlexStyles;
|
|
14
|
+
backgroundColor?: string;
|
|
15
|
+
cssClass?: string;
|
|
16
|
+
canInsert?: boolean;
|
|
17
|
+
direction?: string;
|
|
18
|
+
spacing?: {
|
|
19
|
+
padding?: string;
|
|
20
|
+
margin?: string;
|
|
21
|
+
};
|
|
22
|
+
border?: {
|
|
23
|
+
radius?: string;
|
|
24
|
+
width?: string;
|
|
25
|
+
color?: string;
|
|
26
|
+
style?: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -3,7 +3,12 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export declare class AXPGridWidgetViewComponent extends AXPLayoutWidgetComponent {
|
|
4
4
|
protected cols: import("@angular/core").Signal<number>;
|
|
5
5
|
protected rows: import("@angular/core").Signal<number>;
|
|
6
|
-
protected
|
|
6
|
+
protected align: import("@angular/core").Signal<"start" | "end" | "center" | "stretch">;
|
|
7
|
+
protected justify: import("@angular/core").Signal<"start" | "end" | "center" | "stretch">;
|
|
8
|
+
protected autoFlow: import("@angular/core").Signal<"col" | "row">;
|
|
9
|
+
protected gap: import("@angular/core").Signal<string>;
|
|
10
|
+
calcGridRowOrColumn(value: string): number;
|
|
11
|
+
private get __class();
|
|
7
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXPGridWidgetViewComponent, never>;
|
|
8
13
|
static ɵcmp: i0.ɵɵComponentDeclaration<AXPGridWidgetViewComponent, "axp-grid-layout-widget", never, {}, {}, never, never, true, never>;
|
|
9
14
|
}
|