@wemake4u/form-player-se 1.0.6 → 1.0.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"wemake4u-form-player-se.mjs","sources":["../../../projects/ngx-sirio/src/lib/services/proxy.service.ts","../../../projects/ngx-sirio/src/lib/services/feel.service.ts","../../../projects/ngx-sirio/src/lib/services/weak.service.ts","../../../projects/ngx-sirio/src/lib/services/toast.service.ts","../../../projects/ngx-sirio/src/lib/services/register.service.ts","../../../projects/ngx-sirio/src/lib/services/scope.service.ts","../../../projects/ngx-sirio/src/lib/services/programmability.service.ts","../../../projects/ngx-sirio/src/lib/utils/patchForm.ts","../../../projects/ngx-sirio/src/lib/utils/groupByRow.ts","../../../projects/ngx-sirio/src/lib/services/event.service.ts","../../../projects/ngx-sirio/src/lib/services/metadata.service.ts","../../../projects/ngx-sirio/src/lib/directives/adorner.directive.ts","../../../projects/ngx-sirio/src/lib/directives/disable.directive.ts","../../../projects/ngx-sirio/src/lib/directives/display.directive.ts","../../../projects/ngx-sirio/src/lib/directives/repeat.directive.ts","../../../projects/ngx-sirio/src/lib/directives/framesecurity.directive.ts","../../../projects/ngx-sirio/src/lib/directives/dropdown.directive.ts","../../../projects/ngx-sirio/src/lib/directives/tab.directive.ts","../../../projects/ngx-sirio/src/lib/directives/accordion.directive.ts","../../../projects/ngx-sirio/src/lib/directives/grid.directive.ts","../../../projects/ngx-sirio/src/lib/controls/control.ts","../../../projects/ngx-sirio/src/lib/controls/form.ts","../../../projects/ngx-sirio/src/lib/controls/textfield.ts","../../../projects/ngx-sirio/src/lib/controls/select.ts","../../../projects/ngx-sirio/src/lib/controls/taglist.ts","../../../projects/ngx-sirio/src/lib/controls/number.ts","../../../projects/ngx-sirio/src/lib/controls/date.ts","../../../projects/ngx-sirio/src/lib/controls/time.ts","../../../projects/ngx-sirio/src/lib/controls/toggle.ts","../../../projects/ngx-sirio/src/lib/controls/checkbox.ts","../../../projects/ngx-sirio/src/lib/controls/chipradio.ts","../../../projects/ngx-sirio/src/lib/controls/radio.ts","../../../projects/ngx-sirio/src/lib/controls/chipchecklist.ts","../../../projects/ngx-sirio/src/lib/controls/checklist.ts","../../../projects/ngx-sirio/src/lib/controls/textarea.ts","../../../projects/ngx-sirio/src/lib/controls/filepicker.ts","../../../projects/ngx-sirio/src/lib/controls/text.ts","../../../projects/ngx-sirio/src/lib/controls/html.ts","../../../projects/ngx-sirio/src/lib/controls/image.ts","../../../projects/ngx-sirio/src/lib/controls/tab.ts","../../../projects/ngx-sirio/src/lib/controls/accordion.ts","../../../projects/ngx-sirio/src/lib/controls/dynamiclist.ts","../../../projects/ngx-sirio/src/lib/controls/group.ts","../../../projects/ngx-sirio/src/lib/controls/table.ts","../../../projects/ngx-sirio/src/lib/controls/button.ts","../../../projects/ngx-sirio/src/lib/controls/separator.ts","../../../projects/ngx-sirio/src/lib/controls/spacer.ts","../../../projects/ngx-sirio/src/lib/controls/iframe.ts","../../../projects/ngx-sirio/src/lib/controls/tooltip.ts","../../../projects/ngx-sirio/src/lib/controls/factory.ts","../../../projects/ngx-sirio/src/lib/directives/register.directive.ts","../../../projects/ngx-sirio/src/lib/directives/updateblur.directive.ts","../../../projects/ngx-sirio/src/lib/directives/date.directive.ts","../../../projects/ngx-sirio/src/lib/directives/number.directive.ts","../../../projects/ngx-sirio/src/lib/directives/text.directive.ts","../../../projects/ngx-sirio/src/lib/directives/disableform.directive.ts","../../../projects/ngx-sirio/src/lib/directives/tabcontrol.directive.ts","../../../projects/ngx-sirio/src/lib/locale/locale-it.ts","../../../projects/ngx-sirio/src/lib/directives/collapse.directive.ts","../../../projects/ngx-sirio/src/lib/shared/template-wrapper/template-wrapper.component.ts","../../../projects/ngx-sirio/src/lib/utils/gridCells.ts","../../../projects/ngx-sirio/src/lib/utils/cell-templates/objectUrl.component.html","../../../projects/ngx-sirio/src/lib/utils/cell-templates/delete.component.html","../../../projects/ngx-sirio/src/lib/utils/cell-templates/actions.component.html","../../../projects/ngx-sirio/src/lib/utils/gridUtils.ts","../../../projects/ngx-sirio/src/lib/services/sanitize.service.ts","../../../projects/ngx-sirio/src/lib/services/markdown.service.ts","../../../projects/ngx-sirio/src/lib/services/mime.service.ts","../../../projects/ngx-sirio/src/lib/services/formatter.service.ts","../../../projects/ngx-sirio/src/lib/dynamic-fields/dynamic-fields.component.ts","../../../projects/ngx-sirio/src/lib/dynamic-fields/dynamic-fields.component.html","../../../projects/ngx-sirio/src/lib/dynamic-form/dynamic-form.component.ts","../../../projects/ngx-sirio/src/lib/dynamic-form/dynamic-form.component.html","../../../projects/ngx-sirio/src/lib/utils/extractFiles.ts","../../../projects/ngx-sirio/src/lib/utils/toFormData.ts","../../../projects/ngx-sirio/src/lib/dataSources/odata.ts","../../../projects/ngx-sirio/src/lib/dataSources/rest.ts","../../../projects/ngx-sirio/src/lib/services/data.service.ts","../../../projects/ngx-sirio/src/public-api.ts","../../../projects/ngx-sirio/src/wemake4u-form-player-se.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nconst IS_PROXY = Symbol(\"__isProxy$\");\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProxyService {\r\n\r\n constructor() { }\r\n\r\n getProxy(instance: any, options: ProxyOptions | null = null): any {\r\n return this.createProxy(instance, true, options);\r\n }\r\n\r\n private createProxy(instance: any, root: boolean\r\n , options: ProxyOptions | null = null): any {\r\n\r\n if (!instance) {\r\n return instance;\r\n }\r\n\r\n return new Proxy(instance, {\r\n get: (target: any, property) => {\r\n\r\n if (property === IS_PROXY) {\r\n return true;\r\n }\r\n\r\n let value = undefined;\r\n\r\n if (root && options && options.extend && property in options.extend) {\r\n value = Reflect.get(options.extend, property, target);\r\n }\r\n else if (options && options.isCustom && options.getCustom && options.isCustom(target, property, root)) {\r\n value = options.getCustom(target, property, root);\r\n }\r\n else if (property in target) {\r\n value = Reflect.get(target, property, target); \r\n }\r\n\r\n if (options?.log) {\r\n console.log(target, property, value);\r\n }\r\n\r\n if (this.isProxy(value))\r\n return value;\r\n\r\n if (typeof value === 'function') {\r\n return this.createFunction(value, target);\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n return this.createProxy(value, false, options);\r\n }\r\n\r\n return value;\r\n },\r\n set: (target, property, value) => {\r\n if (options && options.canSet && !options.canSet(target, property, root)) {\r\n return false;\r\n }\r\n else {\r\n return Reflect.set(target, property, value, target);\r\n } \r\n },\r\n deleteProperty: (target, property) => {\r\n if (options && options.canDelete && !options.canDelete(target, property, root)) {\r\n return false;\r\n }\r\n else if (property in target) {\r\n return delete target[property];\r\n }\r\n else {\r\n return false;\r\n }\r\n },\r\n has: (target, property) => {\r\n if (root && options && options.extend && property in options.extend) {\r\n return true;\r\n }\r\n else if (options && options.isCustom && options.isCustom(target, property, root)) {\r\n return true;\r\n }\r\n else if (property in target) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n private createFunction(fn: Function, target: any): Function {\r\n return (...args: any) => {\r\n return fn.bind(target)(...args);\r\n };\r\n }\r\n\r\n private isProxy(obj: any): boolean {\r\n return obj && obj[IS_PROXY] === true; \r\n }\r\n}\r\n\r\ntype ProxyQuery = (target: any, property: string | symbol, root: boolean) => boolean;\r\n\r\ntype ProxyGetter = (target: any, property: string | symbol, root: boolean) => any;\r\n\r\nexport class ProxyOptions {\r\n private _canDelete: ProxyQuery = () => true;\r\n private _canSet: ProxyQuery = () => true;\r\n private _isCustom: ProxyQuery = () => false;\r\n private _getCustom: ProxyGetter = () => undefined;\r\n private _extend: Record<string, any> = () => undefined;\r\n\r\n set extend(fn: Record<string, any>) {\r\n this._extend = fn;\r\n }\r\n\r\n get extend(): Record<string, any> {\r\n return this._extend;\r\n }\r\n\r\n\r\n set canDelete(fn: ProxyQuery) {\r\n this._canDelete = fn;\r\n }\r\n\r\n get canDelete(): ProxyQuery {\r\n return this._canDelete;\r\n }\r\n\r\n\r\n set canSet(fn: ProxyQuery) {\r\n this._canSet = fn;\r\n }\r\n\r\n get canSet(): ProxyQuery {\r\n return this._canSet;\r\n }\r\n\r\n\r\n set isCustom(fn: ProxyQuery) {\r\n this._isCustom = fn;\r\n }\r\n\r\n get isCustom(): ProxyQuery {\r\n return this._isCustom;\r\n }\r\n\r\n\r\n set getCustom(fn: ProxyGetter) {\r\n this._getCustom = fn;\r\n }\r\n\r\n get getCustom(): ProxyGetter {\r\n return this._getCustom;\r\n }\r\n\r\n\r\n public log: boolean = false;\r\n}\r\n\r\nexport type ProxyConfigFn = (options: ProxyOptions) => void;\r\n","import { Injectable } from '@angular/core';\r\nimport { evaluate as evaluateTemplate } from 'feelers';\r\nimport { unaryTest, evaluate, parseExpression } from 'feelin';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FeelService {\r\n\r\n constructor() { }\r\n\r\n evalTemplate(template: string, context: any = {}): string {\r\n return evaluateTemplate(template, context);\r\n };\r\n\r\n evalExpression(expression: string, context: Record<string, any> = {}): any {\r\n return evaluate(expression, context);\r\n };\r\n\r\n evalUnaryTest(expression: string, context: Record<string, any> = {}, input: any = null): boolean {\r\n try {\r\n context['?'] = input;\r\n return unaryTest(expression, context);\r\n } \r\n finally {\r\n delete context['?'];\r\n }\r\n };\r\n\r\n getDependencies(expression: string, context: Record<string, any> = {}): (string | string[])[] {\r\n const dependencies: (string | string[])[] = [];\r\n const uniqueSet = new Set<string>();\r\n const addSet = (text: string) => {\r\n if (uniqueSet.has(text)) {\r\n return false;\r\n }\r\n else {\r\n uniqueSet.add(text);\r\n return true;\r\n } \r\n };\r\n parseExpression(expression, context).iterate({\r\n enter: (node: any) => {\r\n if (node.name === 'VariableName') {\r\n const text = expression.substring(node.from, node.to);\r\n if (addSet(text)) {\r\n dependencies.push(text);\r\n } \r\n }\r\n else if (node.name === 'PathExpression') {\r\n const text = expression.substring(node.from, node.to);\r\n if (addSet(text)) {\r\n const path: string[] = [];\r\n node.iterate((subnode: any) => {\r\n if (subnode.name === 'VariableName') {\r\n const part = expression.substring(subnode.from, subnode.to);\r\n path.push(part);\r\n }\r\n });\r\n dependencies.push(path);\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n });\r\n return dependencies;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { isObservable, of } from 'rxjs';\r\nimport { shareReplay } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WeakService {\r\n\r\n constructor() { }\r\n\r\n private cache = new WeakMap<object, Record<string, any>>();\r\n\r\n exists(source: object, key: string) {\r\n if (this.cache.has(source)) {\r\n const cachedObject = this.cache.get(source)!;\r\n return (key in cachedObject);\r\n }\r\n return false;\r\n }\r\n\r\n call<T>(source: object, key: string, func: () => T\r\n , reusable: ((value: T) => boolean) | null = null\r\n , store: ((value: T) => any) | null = null\r\n ): T {\r\n if (!this.cache.has(source)) {\r\n this.cache.set(source, {});\r\n }\r\n\r\n const cachedObject = this.cache.get(source)!;\r\n\r\n if (key in cachedObject\r\n && (reusable == null\r\n || reusable(cachedObject[key])))\r\n {\r\n return cachedObject[key];\r\n }\r\n\r\n let result: any = func();\r\n\r\n if (store != null) {\r\n result = store(result);\r\n }\r\n\r\n const observable = isObservable(result);\r\n\r\n if (observable) {\r\n result = result.pipe(shareReplay(1));\r\n\r\n const subscription = result\r\n .subscribe({\r\n next: (result: any) => {\r\n subscription.unsubscribe();\r\n cachedObject[key] = of(result);\r\n },\r\n error: (error : any) => console.error(error),\r\n complete: () => console.log('Observable complete')\r\n });\r\n }\r\n\r\n cachedObject[key] = result;\r\n\r\n return result;\r\n }\r\n\r\n invalidate(source: object, key: string) {\r\n if (this.cache.has(source)) {\r\n const cachedObject = this.cache.get(source)!;\r\n delete cachedObject[key];\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SirioToastService, ToastTypes } from \"ngx-sirio-lib\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastService {\r\n\r\n constructor(\r\n private sirioToast: SirioToastService\r\n ) { }\r\n\r\n notifyInfo(message: string, delay: number = 2000) {\r\n this.notify(message, \"info\", delay);\r\n }\r\n\r\n notifySuccess(message: string, delay: number = 2000) {\r\n this.notify(message, \"success\", delay);\r\n }\r\n\r\n notifyWarning(message: string, delay: number = 2000) {\r\n this.notify(message, \"warning\", delay);\r\n }\r\n\r\n notifyError(message: string, delay: number = 2000) {\r\n this.notify(message, \"danger\", delay);\r\n }\r\n\r\n private notify(message: string, type: ToastTypes, delay: number = 2000) {\r\n this.sirioToast.openToast({\r\n delay: delay,\r\n text: message,\r\n type: type\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\r\nimport { Control } from '../controls/control';\r\nimport { ProxyService, ProxyOptions } from '../services/proxy.service';\r\n\r\n@Injectable()\r\nexport class RegisterService {\r\n\r\n constructor(\r\n private proxyService: ProxyService\r\n , @Optional() @SkipSelf() private parent: RegisterService | null)\r\n {\r\n }\r\n\r\n private controls: Record<string, Control> = {};\r\n\r\n register(name: string, control: Control) {\r\n this.controls[name] = control;\r\n }\r\n\r\n unregister(name: string) {\r\n delete this.controls[name];\r\n }\r\n\r\n unregisterAll() {\r\n this.controls = { };\r\n }\r\n\r\n getControl(name: string) : Control | undefined {\r\n return this.controls[name];\r\n }\r\n\r\n getControls() : Control[] {\r\n return Object.values(this.controls);\r\n }\r\n\r\n proxy(): any {\r\n\r\n const parentName: string = \"parent\";\r\n\r\n const options = new ProxyOptions();\r\n\r\n options.isCustom = (target, property, root) => {\r\n return root || (property === parentName);\r\n };\r\n\r\n options.getCustom = (target, property, root) => {\r\n if (property === parentName) {\r\n return this.parent?.proxy();\r\n }\r\n return this.resolve(property.toString());\r\n };\r\n\r\n options.canDelete = () => false;\r\n\r\n options.canSet = () => false;\r\n\r\n return this.proxyService.getProxy(this.controls, options);\r\n }\r\n\r\n private resolve(name: string): Control | undefined {\r\n const result = this.controls[name];\r\n\r\n if (result)\r\n return result;\r\n\r\n return this.parent?.resolve(name);\r\n }\r\n}\r\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\r\nimport { ProxyService, ProxyOptions } from '../services/proxy.service';\r\n\r\n@Injectable()\r\nexport class ScopeService {\r\n\r\n constructor(\r\n private proxyService: ProxyService,\r\n @Optional() @SkipSelf() private parent: ScopeService | null) {\r\n }\r\n\r\n private scope: Record<string, any> | null = null;\r\n\r\n set(scope: Record<string, any>) {\r\n this.scope = scope;\r\n }\r\n\r\n get(): any {\r\n return this.scope; \r\n }\r\n\r\n proxy(): any {\r\n\r\n const parentName: string = \"parent\";\r\n\r\n const options = new ProxyOptions();\r\n\r\n options.isCustom = (target, property, root) => {\r\n return root && (property === parentName);\r\n };\r\n\r\n options.getCustom = (target, property, root) => {\r\n return this.parent?.proxy();\r\n };\r\n\r\n options.canDelete = (target, property, root) => {\r\n return !(root && property === parentName);\r\n };\r\n\r\n options.canSet = (target, property, root) => {\r\n return !(root && property === parentName);\r\n };\r\n\r\n return this.proxyService.getProxy(this.scope ?? {}, options);\r\n } \r\n}\r\n","import { Injectable, OnDestroy, Optional } from '@angular/core';\r\nimport { AbstractControl, FormArray, FormGroup } from '@angular/forms';\r\nimport { FeelService } from '../services/feel.service';\r\nimport { ScopeService } from '../services/scope.service';\r\nimport { ProxyService, ProxyOptions, ProxyConfigFn } from '../services/proxy.service';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { ToastService } from '../services/toast.service';\r\nimport { WeakService } from '../services/weak.service';\r\nimport { Subject, takeUntil } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class ProgrammabilityService implements OnDestroy {\r\n\r\n constructor(private feelService: FeelService\r\n , private weakService: WeakService\r\n , private proxyService: ProxyService\r\n , private toastService: ToastService\r\n , @Optional() private register: RegisterService\r\n , @Optional() private scope: ScopeService\r\n ) { }\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n isExpression(text: string | null): boolean {\r\n return text != null && text.startsWith(\"=\");\r\n };\r\n\r\n getExpression(text: string | null): string {\r\n if (this.isExpression(text))\r\n return text!.substring(1);\r\n return \"\";\r\n };\r\n\r\n evaluateString(formGroup: FormGroup, value: string | null): string {\r\n if (this.isExpression(value)) {\r\n return this.evalExpression(formGroup, this.getExpression(value)) as string;\r\n }\r\n return value ?? \"\";\r\n }\r\n\r\n evaluateBoolean(formGroup: FormGroup, value: boolean | string | null, options: EvaluateOptions = {}): boolean | null {\r\n if (typeof value === 'boolean') {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n const strValue: string = value;\r\n if (this.isExpression(strValue)) {\r\n return this.evalExpression(formGroup, this.getExpression(strValue), options) as boolean;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n evaluateNumber(formGroup: FormGroup, value: number | string | null): number | null {\r\n if (typeof value === 'number') {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n const strValue: string = value;\r\n if (this.isExpression(strValue)) {\r\n return this.evalExpression(formGroup, this.getExpression(strValue)) as number;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n evaluate(formGroup: FormGroup, value: string | null, options: EvaluateOptions = { }): any {\r\n if (this.isExpression(value)) {\r\n return this.evalExpression(formGroup, this.getExpression(value), options);\r\n }\r\n return null;\r\n }\r\n\r\n evaluateTemplate(formGroup: FormGroup, value: string | null): any {\r\n\r\n let template: string | null = null;\r\n\r\n if (this.isExpression(value)) {\r\n template = this.evalExpression(formGroup, this.getExpression(value)) as string;\r\n }\r\n else {\r\n template = value;\r\n }\r\n\r\n return this.evalTemplate(formGroup, template ?? \"\");\r\n }\r\n\r\n evaluateUnary(formGroup: FormGroup, value: string | null, input: any): any {\r\n if (this.isExpression(value)) {\r\n return this.evalUnaryTest(formGroup, this.getExpression(value), input);\r\n }\r\n return null;\r\n }\r\n\r\n private cacheable: boolean = true;\r\n\r\n private evalUnaryTest(formGroup: FormGroup, expression: string, input: any) {\r\n try {\r\n return this.feelService.evalUnaryTest(expression\r\n , this.getContext(formGroup)\r\n , input);\r\n } catch (e) {\r\n console.log(expression, e);\r\n return null;\r\n }\r\n }\r\n\r\n private evalExpression(formGroup: FormGroup, expression: string, options: EvaluateOptions = {}): any {\r\n const evaluate = () => {\r\n try {\r\n\r\n return this.feelService.evalExpression(expression\r\n , this.getContext(formGroup, options))\r\n }\r\n catch (e) {\r\n console.log(expression, e);\r\n return null;\r\n }\r\n };\r\n\r\n const cacheable = options.cacheable ?? this.cacheable;\r\n\r\n if (cacheable) {\r\n const watchKey = `:watch(${expression})`;\r\n\r\n this.weakService.call(this, watchKey, () => {\r\n this.watchExpression(formGroup, expression\r\n , () => this.weakService.invalidate(this, expression));\r\n return true;\r\n });\r\n\r\n return this.weakService.call(this, expression, evaluate);\r\n }\r\n else {\r\n return evaluate();\r\n }\r\n }\r\n\r\n private evalTemplate(formGroup: FormGroup, expression: string): any {\r\n try {\r\n return this.feelService.evalTemplate(expression\r\n , this.getContext(formGroup));\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n private createProxy(formGroup: FormGroup | null\r\n , proxyFn: ((options: ProxyOptions) => void) | null = null): any {\r\n\r\n if (!formGroup) {\r\n return null;\r\n }\r\n\r\n const options = new ProxyOptions();\r\n\r\n options.extend = {\r\n parent: this.getParent(formGroup),\r\n getFormGroup: () => this.proxyService.getProxy(formGroup),\r\n getScope: () => this.scope ? this.scope.proxy() : null,\r\n controls: () => this.register ? this.register.proxy() : null,\r\n notifyInfo: (message: string, delay?: number) => this.toastService.notifyInfo(message, delay),\r\n notifySuccess: (message: string, delay?: number) => this.toastService.notifySuccess(message, delay),\r\n notifyWarning: (message: string, delay?: number) => this.toastService.notifyWarning(message, delay),\r\n notifyError: (message: string, delay?: number) => this.toastService.notifyError(message, delay)\r\n };\r\n\r\n if (proxyFn)\r\n proxyFn(options);\r\n \r\n return this.proxyService.getProxy(formGroup.value, options);\r\n }\r\n\r\n private getParent(formGroup: FormGroup) : FormGroup | null {\r\n let parent = formGroup.parent;\r\n\r\n while (parent instanceof FormArray) {\r\n parent = parent?.parent;\r\n }\r\n\r\n return parent as FormGroup | null;\r\n }\r\n\r\n private getContext(control: AbstractControl, options: EvaluateOptions = {}): Record<string, any> {\r\n\r\n const formGroup = control as FormGroup | null;\r\n \r\n const context = this.createProxy(formGroup, options.proxyFn) as Record<string, any>;\r\n\r\n return context;\r\n }\r\n\r\n private watchExpression(formGroup: FormGroup, expression: string, callback: () => void): void {\r\n const context = this.getContext(formGroup);\r\n const dependencies = this.feelService.getDependencies(expression, context);\r\n this.watchDependencies(formGroup, dependencies, callback);\r\n };\r\n\r\n private watchDependencies(formGroup: FormGroup, dependencies: (string | string[])[], callback: () => void): void {\r\n const parentName: string = \"parent\";\r\n\r\n const subscribe = (control: AbstractControl) => {\r\n control.valueChanges\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n setTimeout(() => {\r\n callback();\r\n });\r\n });\r\n }\r\n\r\n for (const dependence of dependencies) {\r\n if (Array.isArray(dependence)) {\r\n let targetForm: AbstractControl | null = formGroup;\r\n let controlPath = dependence;\r\n\r\n while (controlPath.length > 0 && controlPath[0] === parentName) {\r\n if (!targetForm.parent)\r\n break;\r\n targetForm = targetForm.parent;\r\n controlPath = controlPath.slice(1);\r\n }\r\n\r\n if (controlPath.length > 0 && targetForm) {\r\n const control = targetForm.get(controlPath);\r\n if (control) {\r\n subscribe(control);\r\n }\r\n }\r\n } else {\r\n const control = formGroup.get(dependence);\r\n if (control) {\r\n subscribe(control);\r\n }\r\n }\r\n } \r\n }\r\n}\r\n\r\nexport interface EvaluateOptions {\r\n cacheable?: boolean;\r\n proxyFn?: ProxyConfigFn;\r\n}\r\n","import { AbstractControl, FormGroup, FormArray, FormControl } from '@angular/forms';\r\n\r\nexport function patchForm(\r\n control: AbstractControl,\r\n value: any,\r\n options?: { emitEvent?: boolean; emitError?: boolean; emitWarn?: boolean; validateType?: boolean; fallbackValue?: any }\r\n): void {\r\n\r\n const defaultOptions = {\r\n emitEvent: true,\r\n validateType: false,\r\n fallbackValue: null\r\n };\r\n\r\n const warn = (message: string) => {\r\n if (options?.emitWarn)\r\n console.warn(`[patchForm] ${message}`)\r\n };\r\n\r\n const error = (message: string) => {\r\n if (options?.emitError)\r\n throw new Error(message);\r\n };\r\n\r\n const { emitEvent, validateType, fallbackValue }\r\n = { ...defaultOptions, ...options };\r\n\r\n if (control instanceof FormControl) {\r\n if (validateType && typeof value !== typeof control.value) {\r\n warn(`Value type mismatch: expected ${typeof control.value}, but received ${typeof value}`);\r\n\r\n if (fallbackValue !== null) {\r\n control.patchValue(fallbackValue, { emitEvent });\r\n return;\r\n }\r\n error('Invalid value type and no fallback value provided.');\r\n return;\r\n }\r\n control.patchValue(value, { emitEvent });\r\n }\r\n else if (control instanceof FormGroup) {\r\n Object.keys(value || {}).forEach((key) => {\r\n if (control.controls[key]) {\r\n patchForm(control.controls[key], value[key], options);\r\n } else {\r\n warn(`Key \"${key}\" not found in the FormGroup.`);\r\n }\r\n });\r\n }\r\n else if (control instanceof FormArray) {\r\n (value || []).forEach((item: any, index: number) => {\r\n if (control.at(index)) {\r\n patchForm(control.at(index), item, options);\r\n } else {\r\n warn(`Index ${index} not found in the FormArray. Adding dynamically...`);\r\n const newControl = (control as any).addNewItem();\r\n patchForm(newControl, item, options);\r\n }\r\n });\r\n }\r\n else {\r\n error('Unsupported AbstractControl type.');\r\n }\r\n}\r\n","interface Form {\r\n id: string;\r\n type: string;\r\n name: string;\r\n title: string;\r\n disabled: string | boolean | null;\r\n path: string | null;\r\n isTemplate: boolean | null;\r\n components: Component[];\r\n}\r\n\r\ninterface Component {\r\n id: string;\r\n layout: { columns: number | null, row: string };\r\n components?: Component[];\r\n [key: string]: any;\r\n}\r\n\r\ninterface RowComponent {\r\n id: string;\r\n layout: { columns: number | null, row: string };\r\n rows?: RowGroup[];\r\n [key: string]: any;\r\n}\r\n\r\ninterface RowGroup {\r\n row: string;\r\n components: RowComponent[];\r\n}\r\n\r\ninterface GroupedForm {\r\n id: string;\r\n title: string;\r\n isTemplate: boolean | null;\r\n rows: RowGroup[];\r\n [key: string]: any;\r\n}\r\n\r\nexport function groupByRow(forms: Form[]): GroupedForm[] {\r\n return forms.map(form => ({\r\n id: form.id,\r\n type: form.type,\r\n name: form.name,\r\n title: form.title,\r\n disabled: form.disabled,\r\n path: form.path,\r\n isTemplate: form.isTemplate,\r\n rows: groupRowsRecursively(form.components)\r\n }));\r\n}\r\n\r\nfunction groupRowsRecursively(components: Component[]): RowGroup[] {\r\n const groupedMap = new Map<string, RowComponent[]>();\r\n\r\n function processComponent(component: Component) {\r\n const row = component.layout.row;\r\n\r\n if (!groupedMap.has(row)) {\r\n groupedMap.set(row, []);\r\n }\r\n\r\n const { components, ...props } = component;\r\n\r\n groupedMap.get(row)!.push({\r\n ...props,\r\n rows: components ? groupRowsRecursively(components) : undefined\r\n });\r\n }\r\n\r\n components.forEach(component => processComponent(component));\r\n\r\n return Array.from(groupedMap.entries()).map(([row, components]) => ({\r\n row,\r\n components\r\n }));\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport interface CommandEvent {\r\n name: string;\r\n component: any,\r\n formGroup: FormGroup,\r\n event: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EventService {\r\n\r\n private commandSubject = new Subject<CommandEvent>();\r\n\r\n onCommand = this.commandSubject.asObservable();\r\n\r\n emitCommand(data: CommandEvent) {\r\n this.commandSubject.next(data);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class MetadataService {\r\n\r\n constructor() {\r\n \r\n }\r\n\r\n setSchema(schema: any) {\r\n this.schema = schema ?? { forms: [] };\r\n } \r\n\r\n getSchema(): any {\r\n return this.schema;\r\n }\r\n\r\n setForms(forms: any[]) {\r\n this.forms = forms ?? []; \r\n }\r\n\r\n getForms(): any[] {\r\n return this.forms;\r\n }\r\n\r\n getFormByName(name: string): any {\r\n return this.forms.find(form => form.name === name);\r\n }\r\n\r\n private schema: any = { forms: [] };\r\n\r\n private forms: any[] = [];\r\n\r\n}\r\n","import { Input, Directive, ElementRef, Renderer2, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[prefixAdorner], [suffixAdorner]',\r\n standalone: true\r\n})\r\nexport class AdornerDirective implements OnChanges, AfterViewInit {\r\n @Input() prefixAdorner: string | null = null;\r\n @Input() suffixAdorner: string | null = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.updatePrefix(this.prefixAdorner);\r\n this.updateSuffix(this.suffixAdorner); \r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"prefixAdorner\"]) {\r\n this.updatePrefix(changes[\"prefixAdorner\"].currentValue);\r\n }\r\n\r\n if (changes[\"suffixAdorner\"]) {\r\n this.updateSuffix(changes[\"suffixAdorner\"].currentValue);\r\n }\r\n }\r\n\r\n private getWrapper() {\r\n return this.el.nativeElement.querySelector('div.sirio-input-group');\r\n };\r\n\r\n private isPrepared(): boolean {\r\n return this.getWrapper() !== null;\r\n }\r\n\r\n private prepare(): any {\r\n if (this.isPrepared())\r\n return this.getWrapper();\r\n\r\n const inputElement = this.el.nativeElement.querySelector('input');\r\n\r\n if (!inputElement)\r\n return null;\r\n\r\n const wrapper = this.renderer.createElement('div');\r\n this.renderer.addClass(wrapper, 'sirio-input-group');\r\n\r\n const parent = inputElement.parentNode;\r\n this.renderer.insertBefore(parent, wrapper, inputElement);\r\n\r\n this.renderer.appendChild(wrapper, inputElement);\r\n\r\n return wrapper;\r\n }\r\n\r\n private updatePrefix(prefixAdorner: string | null)\r\n {\r\n const prefixText = this.normalizeText(prefixAdorner);\r\n\r\n this.remove(\"span.prefix\");\r\n \r\n if (prefixText !== null) {\r\n const wrapper = this.prepare();\r\n if (wrapper) {\r\n const inputElement = wrapper.querySelector('input');\r\n const prefixSpan = this.createSpanElement(prefixText);\r\n this.renderer.addClass(prefixSpan, \"prefix\")\r\n this.renderer.insertBefore(wrapper, prefixSpan, inputElement);\r\n } \r\n }\r\n }\r\n\r\n private updateSuffix(suffixAdorner: string | null) {\r\n const suffixText = this.normalizeText(suffixAdorner);\r\n\r\n this.remove(\"span.suffix\");\r\n\r\n if (suffixText !== null) {\r\n const wrapper = this.prepare();\r\n if (wrapper) {\r\n const suffixSpan = this.createSpanElement(suffixText);\r\n this.renderer.addClass(suffixSpan, \"suffix\")\r\n this.renderer.appendChild(wrapper, suffixSpan);\r\n }\r\n }\r\n }\r\n\r\n private remove(selector: string) {\r\n const wrapper = this.getWrapper();\r\n if (!wrapper)\r\n return;\r\n const span = wrapper.querySelector(selector);\r\n if (span)\r\n this.renderer.removeChild(wrapper, span);\r\n }\r\n\r\n private createSpanElement(adorner: string) {\r\n const outerSpan = this.renderer.createElement('span');\r\n this.renderer.addClass(outerSpan, 'sirio-input-group-text');\r\n \r\n const innerSpan = this.renderer.createElement('span');\r\n this.renderer.setAttribute(innerSpan, 'aria-hidden', 'true');\r\n\r\n const iconClass = this.getIconClassName(adorner);\r\n\r\n if (iconClass) {\r\n this.renderer.addClass(innerSpan, 'fas');\r\n this.renderer.addClass(innerSpan, iconClass);\r\n }\r\n else {\r\n const strongElement = this.renderer.createElement('strong');\r\n this.renderer.appendChild(innerSpan, strongElement);\r\n\r\n const text = this.renderer.createText(adorner);\r\n this.renderer.appendChild(strongElement, text);\r\n }\r\n\r\n this.renderer.appendChild(outerSpan, innerSpan);\r\n\r\n return outerSpan;\r\n };\r\n\r\n private getIconClassName(text: string) {\r\n\r\n switch (text) {\r\n case \"%\":\r\n return \"fa-percent\";\r\n\r\n case \"@\":\r\n return \"fa-envelope\";\r\n\r\n case \"€\":\r\n return \"fa-euro-sign\";\r\n }\r\n\r\n return null;\r\n };\r\n\r\n private normalizeText(text: string | null): string | null {\r\n\r\n if (text) {\r\n const trimmedValue = text.trim();\r\n return trimmedValue.length > 0 ? trimmedValue : null;\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges, ElementRef, Renderer2 } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[disableControl], [readonly]',\r\n standalone: true\r\n})\r\nexport class DisableDirective implements OnChanges {\r\n @Input() disableControl: boolean | null = null;\r\n @Input() readonly: boolean | null = null;\r\n @Input() placeholder: string | null = null;\r\n @Input() componentRef: any;\r\n\r\n constructor(private ngControl: NgControl\r\n , private el: ElementRef\r\n , private renderer: Renderer2) {\r\n }\r\n\r\n private disableClass: string = \"fp-disabled\";\r\n private readonlyClass: string = \"fp-readonly\";\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n\r\n if (changes[\"disableControl\"] || changes[\"readonly\"]) {\r\n if (this.ngControl.control) {\r\n if (this.disableControl) {\r\n this.ngControl.control.disable();\r\n this.toggleClass(true, this.disableClass);\r\n this.overridePlaceholder(false);\r\n } else {\r\n this.ngControl.control.enable();\r\n this.toggleClass(false, this.disableClass);\r\n const disabled = this.readonly === true;\r\n (this.ngControl.valueAccessor as any)?.setDisabledState(disabled);\r\n this.toggleClass(disabled, this.readonlyClass);\r\n this.overridePlaceholder(disabled);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private toggleClass(value: boolean, className: string) {\r\n if (value) {\r\n this.renderer.addClass(this.el.nativeElement, className);\r\n } else {\r\n this.renderer.removeClass(this.el.nativeElement, className);\r\n }\r\n }\r\n\r\n private overridePlaceholder(value: boolean) {\r\n if ('placeholder' in this.componentRef) {\r\n this.componentRef.placeholder = value\r\n ? \"-\"\r\n : this.placeholder;\r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[hide], [show]',\r\n standalone: true\r\n})\r\nexport class DisplayDirective implements OnChanges {\r\n @Input() hide: boolean | null = null;\r\n @Input() show: boolean | null = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"hide\"]) {\r\n const value = changes[\"hide\"].currentValue;\r\n if (value === true) {\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'none');\r\n } else if (value === false) {\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'block');\r\n }\r\n }\r\n\r\n if (changes[\"show\"]) {\r\n const value = changes[\"show\"].currentValue;\r\n if (value === true) {\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'block'); \r\n } else if (value === false) {\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'none');\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FormArray, ControlContainer } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[repeat]',\r\n standalone: true\r\n})\r\nexport class RepeatDirective implements OnChanges {\r\n @Input() repeat: any = null;\r\n\r\n constructor(private controlContainer: ControlContainer) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"repeat\"]) {\r\n const formArray = this.controlContainer.control as FormArray; \r\n const value = changes[\"repeat\"].currentValue;\r\n if (Number.isInteger(value) && value >= 0) {\r\n this.resizeArray(formArray, value);\r\n }\r\n else {\r\n this.resizeArray(formArray, 0);\r\n }\r\n }\r\n }\r\n\r\n private resizeArray(formArray: FormArray, size: number) {\r\n while (formArray.length < size) {\r\n (formArray as any).addNewItem();\r\n }\r\n while (formArray.length > size) {\r\n formArray.removeAt(formArray.length - 1);\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, Input, AfterViewInit, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[frameSecurity]',\r\n standalone: true\r\n})\r\nexport class FrameSecurityDirective implements AfterViewInit {\r\n @Input() frameSecurity: any = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit(): void {\r\n const frame = this.el.nativeElement;\r\n\r\n const sandbox = this.getSandBox(this.frameSecurity);\r\n\r\n if (sandbox)\r\n this.renderer.setAttribute(frame, 'sandbox', sandbox);\r\n\r\n const allow = this.getAllow(this.frameSecurity);\r\n\r\n if (allow)\r\n this.renderer.setAttribute(frame, 'allow', allow);\r\n }\r\n\r\n private getSandBox(security: any): string {\r\n let allowedProperties: string[] = [\r\n \"allowScripts\",\r\n \"allowSameOrigin\",\r\n \"allowForms\",\r\n \"allowModals\",\r\n \"allowPopups\",\r\n \"allowTopNavigation\",\r\n \"allowStorageAccessByUserActivation\"\r\n ];\r\n let sandBox = Object.entries(security)\r\n .filter(([key, value]) => value === true && allowedProperties.includes(key))\r\n .map(([key]) => this.camelToKebabCase(key))\r\n .join(' ');\r\n\r\n return sandBox;\r\n };\r\n\r\n private getAllow(security: any): string {\r\n let allowedProperties: string[] = [\r\n \"fullscreen\",\r\n \"geolocation\",\r\n \"camera\",\r\n \"microphone\"\r\n ];\r\n let allow = Object.entries(security)\r\n .filter(([key, value]) => value === true && allowedProperties.includes(key))\r\n .map(([key]) => key)\r\n .join(' ');\r\n\r\n return allow;\r\n };\r\n\r\n private camelToKebabCase(str: string): string {\r\n return str.replace(/[A-Z]/g, (match) => '-' + match.toLowerCase());\r\n }\r\n}\r\n","import { Directive, AfterViewInit, ElementRef, Host, Renderer2 } from '@angular/core';\r\nimport { SirioSelectComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[dropdown]',\r\n standalone: true\r\n})\r\nexport class DropdownDirective implements AfterViewInit {\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n \r\n @Host() private sirioSelect: SirioSelectComponent\r\n ) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.handleValue(null);\r\n this.handleValue(false);\r\n this.handleSearchable();\r\n }\r\n\r\n private handleValue(value: any): void {\r\n if (this.sirioSelect\r\n && this.sirioSelect.value === value\r\n && Array.isArray(this.sirioSelect.options)\r\n ) {\r\n const valueOption = this.sirioSelect.options.find(option => option.value === value);\r\n\r\n if (valueOption) {\r\n valueOption.isSelected = true;\r\n }\r\n }\r\n }\r\n\r\n private handleSearchable(): void {\r\n\r\n const searchable = this.el.nativeElement.querySelector('.searchable');\r\n if (searchable) {\r\n const dropDown = this.el.nativeElement.querySelector('.sirio-dropdown');\r\n const dropMenu = dropDown.querySelector('.sirio-dropdown-menu');\r\n const input = searchable.querySelector('input');\r\n this.renderer.insertBefore(dropDown, searchable, dropMenu);\r\n\r\n this.renderer.listen(input, 'blur', (event: KeyboardEvent) => {\r\n this.sirioSelect.panel.close();\r\n });\r\n\r\n this.renderer.listen(input, 'keyup', (event: KeyboardEvent) => {\r\n this.onKeyUp(event, input); \r\n });\r\n\r\n this.renderer.listen(input, 'keydown', (event: KeyboardEvent) => {\r\n this.onKeyDown(event);\r\n });\r\n\r\n this.sirioSelect.panel.panelOpened.subscribe(() => {\r\n this.activate(searchable);\r\n });\r\n\r\n this.sirioSelect.panel.panelClosed.subscribe(() => {\r\n this.deactivate(searchable);\r\n });\r\n\r\n } \r\n }\r\n\r\n private deactivate(element: HTMLElement): void {\r\n this.renderer.setStyle(element, 'display', 'none');\r\n }\r\n\r\n private activate(element: HTMLElement): void {\r\n let currentValue = \"\";\r\n\r\n if (this.sirioSelect.optionsSelected.length > 0) {\r\n currentValue = this.sirioSelect.optionsSelected[0].text\r\n }\r\n\r\n const input = element.querySelector(\"input\");\r\n\r\n if (!input)\r\n return;\r\n\r\n input.value = currentValue;\r\n\r\n const dropMenu = this.el.nativeElement.querySelector('.sirio-dropdown-menu');\r\n\r\n this.sirioSelect.options.forEach((option) => {\r\n this.show(option, true);\r\n if (currentValue == option.text) {\r\n dropMenu.scrollTop = this.native(option).offsetTop;\r\n } \r\n });\r\n\r\n this.renderer.setStyle(element, 'display', 'inline-block');\r\n\r\n setTimeout(() => {\r\n input.setSelectionRange(input.value.length, input.value.length);\r\n input.focus();\r\n });\r\n }\r\n\r\n private onKeyUp(event: KeyboardEvent, input: any) {\r\n const { code } = event;\r\n\r\n switch (code) {\r\n case 'Enter':\r\n case 'Space':\r\n case 'ArrowDown':\r\n case 'ArrowUp':\r\n case 'Escape':\r\n return;\r\n }\r\n\r\n const value = this.comparable(input.value);\r\n let firstMatch = true;\r\n\r\n this.sirioSelect.options.forEach((option, index) => {\r\n const match = this.comparable(option.text).includes(value);\r\n this.show(option, match);\r\n if (match && firstMatch) {\r\n option.setFocus();\r\n firstMatch = false;\r\n }\r\n else {\r\n option.removeFocus();\r\n }\r\n });\r\n }\r\n\r\n private onKeyDown(event: KeyboardEvent) {\r\n const panel = this.sirioSelect.panel;\r\n if (!panel) {\r\n return;\r\n }\r\n const panelIsOpen = panel.panelIsOpen;\r\n const { code } = event;\r\n if (panelIsOpen) {\r\n switch (code) {\r\n case 'Enter':\r\n case 'Space':\r\n if (panel.optionFocused) {\r\n panel.optionFocused?.onOptionSelected(event);\r\n }\r\n else {\r\n panel.close(event);\r\n event?.preventDefault();\r\n }\r\n break;\r\n case 'ArrowDown':\r\n this.scrollDown();\r\n event?.preventDefault();\r\n break;\r\n case 'ArrowUp':\r\n this.scrollUp();\r\n event?.preventDefault();\r\n break;\r\n case 'Escape':\r\n panel.close(event);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n if (!panelIsOpen) {\r\n switch (code) {\r\n case 'Enter':\r\n case 'Space':\r\n panel.open(event);\r\n event?.preventDefault();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private native(option: any) {\r\n return option.viewContainerRef.element.nativeElement;\r\n }\r\n\r\n private isHidden(option: any) {\r\n return this.native(option).style.display === 'none';\r\n }\r\n\r\n private show(option: any, value: boolean) {\r\n this.native(option).style.display = value ? '' : 'none';\r\n }\r\n\r\n private comparable(text: string) {\r\n return text.toLowerCase().trim();\r\n }\r\n\r\n private scrollDown() {\r\n const panel = this.sirioSelect.panel;\r\n if (!panel.optionFocused) {\r\n panel.scrollBarTop();\r\n panel.options.first.setFocus();\r\n return;\r\n }\r\n const nextOptionFocused = this.findNextVisibleOption(panel.optionFocusedIndex + 1, panel.options);\r\n panel.scrollBarDown();\r\n panel.optionFocused?.removeFocus();\r\n if (nextOptionFocused) {\r\n nextOptionFocused?.setFocus();\r\n return;\r\n }\r\n panel.scrollBarTop();\r\n const firstVisible = this.findNextVisibleOption(0, panel.options);\r\n if (firstVisible) {\r\n firstVisible.setFocus();\r\n }\r\n }\r\n\r\n private scrollUp() {\r\n const panel = this.sirioSelect.panel;\r\n if (!panel.optionFocused) {\r\n panel.scrollBarTop();\r\n panel.options.last.setFocus();\r\n return;\r\n } \r\n const nextOptionFocused = this.findPreviousVisibleOption(panel.optionFocusedIndex - 1, panel.options);\r\n if (nextOptionFocused) {\r\n panel.scrollBarUp();\r\n panel.optionFocused?.removeFocus();\r\n nextOptionFocused?.setFocus();\r\n return;\r\n }\r\n panel.optionFocused?.removeFocus();\r\n panel.scrollBarBottom();\r\n const lastVisible = this.findPreviousVisibleOption(panel.options.length - 1, panel.options);\r\n if (lastVisible) {\r\n lastVisible.setFocus();\r\n }\r\n }\r\n\r\n private findPreviousVisibleOption(startIndex: number, options: any): any | null {\r\n let i = startIndex;\r\n while (i >= 0) {\r\n const option = options.get(i);\r\n if (!this.isHidden(option)) {\r\n return option;\r\n }\r\n i--;\r\n }\r\n return null;\r\n }\r\n\r\n private findNextVisibleOption(startIndex: number, options: any): any | null {\r\n let i = startIndex;\r\n while (i < options.length) {\r\n const option = options.get(i);\r\n if (!this.isHidden(option)) {\r\n return option;\r\n }\r\n i++;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Host, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { SirioTabComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[tabCount]',\r\n standalone: true\r\n})\r\nexport class TabDirective implements OnChanges {\r\n @Input() tabCount: number = 0;\r\n\r\n constructor(\r\n @Host() private sirioTab: SirioTabComponent\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"tabCount\"]) {\r\n const previous = changes[\"tabCount\"].previousValue;\r\n\r\n if (previous === undefined)\r\n return;\r\n\r\n const current = changes[\"tabCount\"].currentValue;\r\n\r\n setTimeout(() => {\r\n this.sirioTab.setContentItemIndex();\r\n this.sirioTab.showArrowIfNeeded();\r\n\r\n if (previous < current) {\r\n this.sirioTab.setActiveIndex(current - 1);\r\n } \r\n else {\r\n if (this.sirioTab.oldIndex == current) {\r\n // remove last\r\n this.sirioTab.setActiveIndex(current - 1);\r\n }\r\n else if (this.sirioTab.oldIndex < current) {\r\n // remove middle\r\n this.sirioTab.setActiveIndex(this.sirioTab.oldIndex);\r\n }\r\n else {\r\n // remove many\r\n this.sirioTab.setActiveIndex(current - 1);\r\n }\r\n } \r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, Host, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { SirioAccordionComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[accordionCount]',\r\n standalone: true\r\n})\r\nexport class AccordionDirective implements OnChanges {\r\n @Input() accordionCount: number = 0;\r\n\r\n constructor(\r\n @Host() private sirioAccordion: SirioAccordionComponent\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"accordionCount\"]) {\r\n const previous = changes[\"accordionCount\"].previousValue;\r\n\r\n if (previous === undefined)\r\n return;\r\n\r\n const current = changes[\"accordionCount\"].currentValue;\r\n\r\n const oldIndex = this.sirioAccordion.panels.toArray().findIndex(panel => panel.panelIsOpen);\r\n\r\n setTimeout(() => {\r\n\r\n const event = new Event(\"\");\r\n\r\n this.sirioAccordion.closePanels(event);\r\n\r\n const panels = this.sirioAccordion.panels.toArray();\r\n\r\n const showPanel = (index: number) => panels[index].onPanelHeaderClicked(event);\r\n\r\n if (previous < current) {\r\n showPanel(current - 1);\r\n }\r\n else {\r\n if (oldIndex == current) {\r\n // remove last\r\n showPanel(current - 1);\r\n }\r\n else if (oldIndex < current) {\r\n // remove middle\r\n showPanel(oldIndex);\r\n }\r\n } \r\n\r\n }, 100); \r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges, Host } from '@angular/core';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport { IRowsSource } from '../dataSources/interfaces';\r\n\r\n@Directive({\r\n selector: '[rowSource]',\r\n standalone: true\r\n})\r\nexport class GridDirective implements OnChanges {\r\n @Input() rowSource: any = null;\r\n \r\n constructor(\r\n @Host() private grid: AgGridAngular\r\n ) {\r\n\r\n grid.gridReady.subscribe(() => {\r\n this.isGridReady = true; \r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"rowSource\"]) {\r\n this.onRowChanges();\r\n }\r\n }\r\n\r\n private isGridReady: boolean = false;\r\n\r\n private onRowChanges(): void {\r\n if (this.isArray(this.rowSource)) {\r\n this.setRowData(this.rowSource);\r\n }\r\n else if (this.isDataSource(this.rowSource)) {\r\n this.setDataSource(this.rowSource);\r\n }\r\n else {\r\n this.setRowData([]);\r\n }\r\n }\r\n\r\n private setRowData(rowSource: any) {\r\n this.grid.rowModelType = 'clientSide';\r\n if (this.isGridReady) {\r\n this.grid.api.setGridOption('rowData', rowSource);\r\n }\r\n else {\r\n this.grid.rowData = rowSource;\r\n }\r\n }\r\n\r\n private setDataSource(rowSource: any) {\r\n this.grid.rowModelType = 'infinite';\r\n if (this.isGridReady) {\r\n this.grid.api.setGridOption('datasource', rowSource);\r\n }\r\n else {\r\n this.grid.datasource = rowSource;\r\n }\r\n }\r\n\r\n private isArray(rowSource: any): boolean {\r\n return Array.isArray(rowSource);\r\n }\r\n\r\n private isDataSource(obj: any): obj is IRowsSource {\r\n return typeof obj.getRows === \"function\";\r\n }\r\n}\r\n","import { ElementRef } from \"@angular/core\";\r\nimport { RegisterService } from \"../services/register.service\";\r\n\r\nexport class Control {\r\n constructor(\r\n public readonly name: string,\r\n private readonly metadata: any,\r\n private readonly componentRef: any,\r\n private readonly elementRef: ElementRef) {\r\n }\r\n\r\n getMetadata(): any {\r\n return this.metadata;\r\n }\r\n\r\n getComponentRef(): any {\r\n return this.componentRef;\r\n }\r\n\r\n getElementRef(): ElementRef {\r\n return this.elementRef;\r\n }\r\n}\r\n\r\nexport class ContainerControl extends Control {\r\n constructor(\r\n name: string,\r\n metadata: any,\r\n componentRef: any,\r\n elementRef: ElementRef,\r\n private register: RegisterService | undefined) {\r\n super(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n getControls() : Control[] {\r\n return this.register?.getControls() ?? [];\r\n }\r\n\r\n getControl(name: string): Control | undefined {\r\n return this.register?.getControl(name);\r\n }\r\n\r\n findControl<T extends Control>(name: string, type: new (...args: any[]) => T): T | null;\r\n\r\n findControl(name: string): Control | null;\r\n\r\n findControl<T extends Control>(name: string, type?: new (...args: any[]) => T): T | Control | null {\r\n\r\n const control = this.getControl(name);\r\n\r\n if (control) {\r\n if (!type) { \r\n return control;\r\n }\r\n else if (control instanceof type) {\r\n return control;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n for (const child of this.getControls()) {\r\n if (child instanceof ContainerControl) {\r\n const found = child.findControl(name, type as any);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport class ItemControl extends ContainerControl {\r\n\r\n constructor(\r\n name: string,\r\n public readonly index: number,\r\n metadata: any,\r\n componentRef: any,\r\n elementRef: ElementRef,\r\n register: RegisterService | undefined) {\r\n super(name, metadata, componentRef, elementRef, register);\r\n }\r\n\r\n}\r\n","import { ContainerControl } from \"./control\";\r\n\r\nexport class FormControl extends ContainerControl {\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioInputComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TextFieldControl extends Control {\r\n\r\n setRandomColor(): void {\r\n this.getInput().sirioInput.nativeElement.style.backgroundColor = this.getRandomColor(); \r\n }\r\n\r\n private getInput(): SirioInputComponent {\r\n return this.getComponentRef() as SirioInputComponent;\r\n }\r\n\r\n private getRandomColor(): string {\r\n const letters = '0123456789ABCDEF';\r\n let color = '#';\r\n\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n\r\n return color;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioSelectComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class SelectControl extends Control {\r\n\r\n private getSelect(): SirioSelectComponent {\r\n return this.getComponentRef() as SirioSelectComponent;\r\n }\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioSelectComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TagListControl extends Control {\r\n\r\n private getSelect(): SirioSelectComponent {\r\n return this.getComponentRef() as SirioSelectComponent;\r\n }\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioInputComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class NumberControl extends Control {\r\n\r\n private getInput(): SirioInputComponent {\r\n return this.getComponentRef() as SirioInputComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioDatepickerComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class DateControl extends Control {\r\n\r\n private getDatePicker(): SirioDatepickerComponent {\r\n return this.getComponentRef() as SirioDatepickerComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioTimepickerComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TimeControl extends Control {\r\n\r\n private getTimePicker(): SirioTimepickerComponent {\r\n return this.getComponentRef() as SirioTimepickerComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioToggleComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class ToggleControl extends Control {\r\n\r\n private getToggle(): SirioToggleComponent {\r\n return this.getComponentRef() as SirioToggleComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioCheckboxComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class CheckBoxControl extends Control {\r\n\r\n private getCheckBox(): SirioCheckboxComponent {\r\n return this.getComponentRef() as SirioCheckboxComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioChipRadioGroupComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class ChipRadioControl extends Control {\r\n\r\n private getChipRadio(): SirioChipRadioGroupComponent {\r\n return this.getComponentRef() as SirioChipRadioGroupComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioRadioGroupComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class RadioControl extends Control {\r\n\r\n private getRadio(): SirioRadioGroupComponent {\r\n return this.getComponentRef() as SirioRadioGroupComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioChipCheckboxGroupComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class ChipCheckListControl extends Control {\r\n\r\n private getChipCheckBoxGroup(): SirioChipCheckboxGroupComponent {\r\n return this.getComponentRef() as SirioChipCheckboxGroupComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioCheckboxGroupComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class CheckListControl extends Control {\r\n\r\n private getCheckboxGroup(): SirioCheckboxGroupComponent {\r\n return this.getComponentRef() as SirioCheckboxGroupComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioInputComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TextAreaControl extends Control {\r\n\r\n private getInput(): SirioInputComponent {\r\n return this.getComponentRef() as SirioInputComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioFileUploadComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class FilePickerControl extends Control {\r\n\r\n private getFileUpload(): SirioFileUploadComponent {\r\n return this.getComponentRef() as SirioFileUploadComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class TextControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class HtmlControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class ImageControl extends Control {\r\n\r\n \r\n}\r\n","import { ContainerControl } from \"./control\";\r\nimport { SirioTabComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TabControl extends ContainerControl {\r\n\r\n private getTab(): SirioTabComponent {\r\n return this.getComponentRef() as SirioTabComponent;\r\n }\r\n\r\n}\r\n","import { ContainerControl } from \"./control\";\r\nimport { SirioAccordionComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class AccordionControl extends ContainerControl {\r\n\r\n private getAccordion(): SirioAccordionComponent {\r\n return this.getComponentRef() as SirioAccordionComponent;\r\n }\r\n\r\n}\r\n","import { ContainerControl } from \"./control\";\r\n\r\nexport class DynamicListControl extends ContainerControl {\r\n\r\n \r\n}\r\n","import { ContainerControl } from \"./control\";\r\n\r\nexport class GroupControl extends ContainerControl {\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\n\r\n\r\nexport class TableControl extends Control {\r\n\r\n setFilter(filter: any): void {\r\n this.getGrid().api.setFilterModel(filter);\r\n }\r\n\r\n clearFilter(): void {\r\n this.getGrid().api.setFilterModel(null);\r\n }\r\n\r\n private getGrid(): AgGridAngular {\r\n return this.getComponentRef() as AgGridAngular;\r\n }\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioButtonComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class ButtonControl extends Control {\r\n\r\n private getButton(): SirioButtonComponent {\r\n return this.getComponentRef() as SirioButtonComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class SeparatorControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class SpacerControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class IFrameControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class TooltipControl extends Control {\r\n\r\n}\r\n","import { ElementRef } from '@angular/core';\r\nimport { Control } from '../controls/control';\r\nimport { FormControl } from '../controls/form';\r\nimport { TextFieldControl } from '../controls/textfield';\r\nimport { SelectControl } from '../controls/select';\r\nimport { TagListControl } from '../controls/taglist';\r\nimport { NumberControl } from '../controls/number';\r\nimport { DateControl } from '../controls/date';\r\nimport { TimeControl } from '../controls/time';\r\nimport { ToggleControl } from '../controls/toggle';\r\nimport { CheckBoxControl } from '../controls/checkbox';\r\nimport { ChipRadioControl } from '../controls/chipradio';\r\nimport { RadioControl } from '../controls/radio';\r\nimport { ChipCheckListControl } from '../controls/chipchecklist';\r\nimport { CheckListControl } from '../controls/checklist';\r\nimport { TextAreaControl } from '../controls/textarea';\r\nimport { FilePickerControl } from '../controls/filepicker';\r\nimport { TextControl } from '../controls/text';\r\nimport { HtmlControl } from '../controls/html';\r\nimport { ImageControl } from '../controls/image';\r\nimport { TabControl } from '../controls/tab';\r\nimport { AccordionControl } from '../controls/accordion';\r\nimport { DynamicListControl } from '../controls/dynamiclist';\r\nimport { GroupControl } from '../controls/group';\r\nimport { TableControl } from '../controls/table';\r\nimport { ButtonControl } from '../controls/button';\r\nimport { SeparatorControl } from '../controls/separator';\r\nimport { SpacerControl } from '../controls/spacer';\r\nimport { IFrameControl } from '../controls/iframe';\r\nimport { TooltipControl } from '../controls/tooltip';\r\nimport { RegisterService } from '../services/register.service';\r\n\r\nexport function createControl(name: string\r\n , metadata: any\r\n , componentRef: any\r\n , elementRef: ElementRef\r\n , register: RegisterService | undefined) : Control {\r\n\r\n switch (metadata.type) {\r\n\r\n case \"default\":\r\n return new FormControl(name, metadata, componentRef, elementRef, register);\r\n\r\n case \"textfield\":\r\n return new TextFieldControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"select\":\r\n return new SelectControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"taglist\":\r\n return new TagListControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"number\":\r\n return new NumberControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"datetime\":\r\n switch (metadata.subtype) {\r\n case \"date\":\r\n return new DateControl(name, metadata, componentRef, elementRef);\r\n case \"time\":\r\n return new TimeControl(name, metadata, componentRef, elementRef);\r\n default:\r\n return new Control(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n case \"checkbox\":\r\n switch (metadata.subtype) {\r\n case \"toggle\":\r\n return new ToggleControl(name, metadata, componentRef, elementRef);\r\n default:\r\n return new CheckBoxControl(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n case \"radio\":\r\n switch (metadata.subtype) {\r\n case \"chip\":\r\n return new ChipRadioControl(name, metadata, componentRef, elementRef);\r\n default:\r\n return new RadioControl(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n case \"checklist\":\r\n switch (metadata.subtype) {\r\n case \"chip\":\r\n return new ChipCheckListControl(name, metadata, componentRef, elementRef);\r\n default:\r\n return new CheckListControl(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n case \"textarea\":\r\n return new TextAreaControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"filepicker\":\r\n return new FilePickerControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"text\":\r\n return new TextControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"html\":\r\n return new HtmlControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"image\":\r\n return new ImageControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"dynamiclist\":\r\n switch (metadata.subtype) {\r\n case \"tab\":\r\n return new TabControl(name, metadata, componentRef, elementRef, register);\r\n case \"accordion\":\r\n return new AccordionControl(name, metadata, componentRef, elementRef, register);\r\n default:\r\n return new DynamicListControl(name, metadata, componentRef, elementRef, register);\r\n }\r\n\r\n case \"group\":\r\n return new GroupControl(name, metadata, componentRef, elementRef, register);\r\n\r\n case \"table\":\r\n return new TableControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"button\":\r\n return new ButtonControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"separator\":\r\n return new SeparatorControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"spacer\":\r\n return new SpacerControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"iframe\":\r\n return new IFrameControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"tooltip\":\r\n return new TooltipControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"tab\":\r\n return new TabControl(name, metadata, componentRef, elementRef, register);\r\n\r\n case \"accordion\":\r\n return new AccordionControl(name, metadata, componentRef, elementRef, register);\r\n\r\n default:\r\n return new Control(name, metadata, componentRef, elementRef);\r\n }\r\n}\r\n","import {\r\n Directive, Input, ElementRef, AfterContentInit, OnDestroy\r\n , ContentChild, ContentChildren, QueryList\r\n} from '@angular/core';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { ProxyService } from '../services/proxy.service';\r\nimport { createControl } from '../controls/factory';\r\nimport { DynamicFieldsComponent } from '../dynamic-fields/dynamic-fields.component';\r\nimport { ItemControl } from '../controls/control';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[register]',\r\n standalone: true\r\n})\r\nexport class RegisterDirective implements AfterContentInit, OnDestroy {\r\n @Input() register: any = null;\r\n @Input() componentRef: any;\r\n @ContentChild(DynamicFieldsComponent) dynamicField?: DynamicFieldsComponent;\r\n @ContentChildren(DynamicFieldsComponent, { descendants: true }) itemFields!: QueryList<DynamicFieldsComponent>;\r\n \r\n constructor(\r\n private el: ElementRef,\r\n private registerService: RegisterService,\r\n private proxyService: ProxyService\r\n ) { }\r\n\r\n ngAfterContentInit(): void {\r\n this.registerControl();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unregisterControl();\r\n\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n private registerControl(): void {\r\n const name = this.getName();\r\n\r\n const register = (this.register.type === 'dynamiclist')\r\n ? this.createDynamicRegister(name, this.register, this.componentRef, this.el, this.itemFields)\r\n : this.dynamicField?.getRegister();\r\n\r\n const control = createControl(name, this.register, this.componentRef, this.el, register);\r\n this.registerService.register(name, control);\r\n\r\n }\r\n\r\n private unregisterControl(): void {\r\n this.registerService.unregister(this.getName());\r\n }\r\n\r\n private getName(): string {\r\n return this.register.name ?? this.register.id;\r\n }\r\n\r\n private createDynamicRegister(name: string, metadata: any, componentRef: any, el: ElementRef\r\n , itemFields: QueryList<DynamicFieldsComponent>): RegisterService {\r\n\r\n const newRegister = new RegisterService(this.proxyService, null);\r\n\r\n const registerAll = (itemFields: QueryList<DynamicFieldsComponent>) => {\r\n newRegister.unregisterAll();\r\n itemFields.forEach((itemField, index) => {\r\n const register = itemField.getRegister();\r\n const newName = `${name}-${index}`;\r\n const control = new ItemControl(newName, index, metadata, componentRef, el, register);\r\n newRegister.register(newName, control);\r\n });\r\n }\r\n\r\n registerAll(itemFields);\r\n\r\n itemFields.changes\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((itemFields: QueryList<DynamicFieldsComponent>) => {\r\n registerAll(itemFields);\r\n });\r\n\r\n return newRegister;\r\n }\r\n}\r\n","import { Directive, AfterViewInit, Host } from '@angular/core';\r\nimport { SirioInputComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[updateBlur]',\r\n standalone: true\r\n})\r\nexport class UpdateBlurDirective implements AfterViewInit {\r\n\r\n constructor(@Host() private sirioInput: SirioInputComponent) { }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n if (this.sirioInput?.control?.updateOn === 'blur') {\r\n\r\n const writeValue = this.sirioInput.writeValue;\r\n\r\n this.sirioInput.writeValue = function (value: any, event = false) {\r\n writeValue.bind(this)(value, false);\r\n };\r\n\r\n this.sirioInput.onBlur = function (event: any) {\r\n writeValue.bind(this)(this.value, true);\r\n }\r\n }\r\n }\r\n}\r\n","import { Directive, Host } from '@angular/core';\r\nimport { SirioDatepickerComponent } from 'ngx-sirio-lib';\r\nimport { Datepicker } from 'vanillajs-datepicker';\r\n\r\n@Directive({\r\n selector: '[isoDate]',\r\n standalone: true\r\n})\r\nexport class DateDirective {\r\n\r\n constructor(@Host() private sirioDatepicker: SirioDatepickerComponent) {\r\n\r\n const registerOnChange = this.sirioDatepicker.registerOnChange.bind(this.sirioDatepicker);\r\n\r\n this.sirioDatepicker.registerOnChange = function (fn: (_: any) => void) {\r\n registerOnChange(function (value: any) {\r\n fn(dateToStore(value));\r\n });\r\n };\r\n\r\n const writeValue = this.sirioDatepicker.writeValue.bind(this.sirioDatepicker);\r\n\r\n this.sirioDatepicker.writeValue = function (value: any, event?: boolean, updateCalendar?: boolean) {\r\n writeValue(dateToDisplay(value), event, updateCalendar);\r\n };\r\n } \r\n}\r\n\r\nconst dislayFormat = 'dd/mm/yyyy';\r\nconst storeFormat = 'yyyy-mm-dd';\r\n\r\nfunction dateToDisplay(value: string): string | null {\r\n if (typeof value === \"string\") {\r\n const date = parseStore(value) ?? parseDisplay(value);\r\n return (date == null)\r\n ? value\r\n : Datepicker.formatDate(date, dislayFormat, 'it');\r\n }\r\n else {\r\n return null;\r\n } \r\n}\r\n\r\nfunction dateToStore(value: string): string | null {\r\n if (typeof value === \"string\") {\r\n const date = parseStore(value) ?? parseDisplay(value);\r\n return (date == null)\r\n ? null\r\n : Datepicker.formatDate(date, storeFormat, 'it');\r\n }\r\n else {\r\n return null;\r\n } \r\n}\r\n\r\nfunction parseDisplay(value: string): Date | null {\r\n const regex = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/;\r\n const match = value.match(regex);\r\n if (!match) return null;\r\n\r\n const day = parseInt(match[1], 10);\r\n const month = parseInt(match[2], 10);\r\n const year = parseInt(match[3], 10);\r\n\r\n const date = new Date(year, month - 1, day);\r\n\r\n if (\r\n date.getFullYear() === year &&\r\n date.getMonth() === month - 1 &&\r\n date.getDate() === day\r\n ) {\r\n return date;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction parseStore(value: string): Date | null {\r\n const regex = /^(\\d{4})-(\\d{2})-(\\d{2})(T\\d{2}:\\d{2}:\\d{2}(Z|[+-]\\d{2}:\\d{2})?)?$/;\r\n const match = value.match(regex);\r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const year = parseInt(match[1], 10);\r\n const month = parseInt(match[2], 10);\r\n const day = parseInt(match[3], 10);\r\n\r\n const date = new Date(year, month - 1, day);\r\n\r\n if (\r\n date.getFullYear() === year &&\r\n date.getMonth() === month - 1 &&\r\n date.getDate() === day\r\n ) {\r\n return date;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\n\r\n","import { Directive, Host, AfterViewInit, Input } from '@angular/core';\r\nimport { SirioInputComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[number]',\r\n standalone: true\r\n})\r\nexport class NumberDirective implements AfterViewInit {\r\n @Input() defaultValue: number | null = null;\r\n @Input() minimum: number | null = null;\r\n @Input() maximum: number | null = null;\r\n @Input() decimalDigits: number | null = null;\r\n\r\n constructor(@Host() private sirioInput: SirioInputComponent) {\r\n\r\n const registerOnChange = this.sirioInput.registerOnChange.bind(this.sirioInput);\r\n\r\n const coerceValue = (value: number | null): number | null => {\r\n const originalValue = value;\r\n\r\n if (value === null && this.defaultValue !== null) {\r\n value = this.defaultValue;\r\n }\r\n\r\n if (value != null) {\r\n if (this.minimum !== null && value < this.minimum) {\r\n value = this.minimum;\r\n }\r\n\r\n if (this.maximum !== null && value > this.maximum) {\r\n value = this.maximum;\r\n }\r\n\r\n if (this.decimalDigits != null && this.decimalDigits >= 0) {\r\n const factor = Math.pow(10, this.decimalDigits);\r\n value = Math.round(value * factor) / factor;\r\n }\r\n }\r\n \r\n if (originalValue !== value) { \r\n this.sirioInput.writeValue(value, false); \r\n }\r\n\r\n return value;\r\n };\r\n\r\n this.sirioInput.registerOnChange = function (fn: (_: any) => void) {\r\n registerOnChange(function (value: any) {\r\n fn(coerceValue(valueToStore(value))); \r\n });\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n const input = this.sirioInput.sirioInput.nativeElement;\r\n\r\n input.addEventListener('keydown', (event: Event) => {\r\n const e = event as KeyboardEvent;\r\n if (e.key === '.'\r\n || (e.key === ',' && !this.acceptDecimal())\r\n || (e.key === '-' && !this.acceptSign())) {\r\n e.preventDefault();\r\n }\r\n });\r\n\r\n input.addEventListener('paste', (event: Event) => {\r\n const e = event as ClipboardEvent;\r\n const text = e.clipboardData?.getData('text') || '';\r\n if (text.includes('.')\r\n || (text.includes(',') && !this.acceptDecimal())\r\n || (text.includes('-') && !this.acceptSign())) {\r\n event.preventDefault();\r\n }\r\n });\r\n \r\n }\r\n\r\n private acceptSign(): boolean {\r\n if (this.minimum !== null && this.minimum >= 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private acceptDecimal(): boolean {\r\n if (this.decimalDigits !== null && this.decimalDigits === 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\nfunction valueToStore(value: string): number | null {\r\n if (typeof value === \"string\") {\r\n if (value.trim() === '') { \r\n return null;\r\n }\r\n const numericValue = parseFloat(value);\r\n if (isNaN(numericValue)) {\r\n return null;\r\n }\r\n return numericValue;\r\n }\r\n else if (typeof value === 'number') {\r\n return value as number;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n","import { Directive, Host, Renderer2, Input, OnChanges, AfterViewInit, SimpleChanges } from '@angular/core';\r\nimport { SirioInputComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[textcase], [maxlength]',\r\n standalone: true\r\n})\r\nexport class TextDirective implements OnChanges, AfterViewInit {\r\n @Input() textcase: '' | 'uppercase' | 'lowercase' = '';\r\n @Input() maxlength: number | null = null;\r\n\r\n constructor(@Host() private sirioInput: SirioInputComponent\r\n , private renderer: Renderer2) {\r\n\r\n const registerOnChange = this.sirioInput.registerOnChange.bind(this.sirioInput);\r\n\r\n const coerceValue = this.coerceValue.bind(this);\r\n\r\n this.sirioInput.registerOnChange = function (fn: (_: any) => void) {\r\n registerOnChange(function (value: any) {\r\n fn(coerceValue(value));\r\n });\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.configureTextCase();\r\n this.configureMaxLength(); \r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"maxlength\"]) {\r\n this.configureMaxLength();\r\n }\r\n }\r\n\r\n private coerceValue(value: string): string\r\n {\r\n return this.applyMaxLength(\r\n this.applyCase(value));\r\n }\r\n\r\n private applyCase(value: string): string {\r\n if (this.textcase === \"uppercase\") {\r\n return value.toUpperCase();\r\n }\r\n else if (this.textcase === \"lowercase\") {\r\n return value.toLowerCase();\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private applyMaxLength(value: string): string {\r\n if (this.maxlength != null && value.length > this.maxlength) {\r\n return value.slice(0, Math.max(0, this.maxlength));\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private configureTextCase() {\r\n const inputElement = this.sirioInput.sirioInput?.nativeElement;\r\n if (inputElement && (this.textcase === 'uppercase' || this.textcase === 'lowercase')) {\r\n this.renderer.setStyle(inputElement, 'text-transform', this.textcase);\r\n\r\n inputElement.oninput = (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n const value = input.value;\r\n\r\n var newValue = this.coerceValue(value);\r\n\r\n if (newValue != value) {\r\n this.replaceInputValue(input, newValue);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private configureMaxLength() {\r\n const inputElement = this.sirioInput.sirioInput?.nativeElement;\r\n\r\n if (inputElement) {\r\n if (this.maxlength == null) {\r\n inputElement.removeAttribute('maxlength');\r\n } else {\r\n inputElement.maxLength = this.maxlength;\r\n }\r\n } \r\n }\r\n\r\n private replaceInputValue(input: HTMLInputElement, value: string): void {\r\n const start = input.selectionStart || 0;\r\n const end = input.selectionEnd || 0;\r\n\r\n input.value = value;\r\n\r\n setTimeout(() => {\r\n input.setSelectionRange(start, end);\r\n }, 0);\r\n }\r\n\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[disableForm]',\r\n standalone: true\r\n})\r\nexport class DisableFormDirective implements OnChanges {\r\n @Input('disableForm') config!: {\r\n disabled: boolean | null;\r\n formGroup: FormGroup;\r\n path: string;\r\n };\r\n\r\n constructor(\r\n private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n\r\n if (this.hasValue(this.config.path) && this.config.formGroup) {\r\n var formGroup = this.config.formGroup.get(this.config.path);\r\n if (formGroup instanceof FormGroup) {\r\n if (this.config.disabled) {\r\n formGroup.disable({ emitEvent: false });\r\n } else {\r\n formGroup.enable({ emitEvent: false });\r\n }\r\n }\r\n }\r\n \r\n this.viewContainer.clear();\r\n }\r\n\r\n private hasValue(value: string | null): boolean {\r\n return value != null && value.trim().length > 0;\r\n }\r\n}\r\n","import { Directive, Host, OnInit, OnDestroy } from '@angular/core';\r\nimport { SirioTabComponent, NgxSirioEvent } from 'ngx-sirio-lib';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[tabControl]',\r\n standalone: true\r\n})\r\nexport class TabControlDirective implements OnInit, OnDestroy {\r\n \r\n constructor(\r\n @Host() private sirioTab: SirioTabComponent\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.tabChangeSub = this.sirioTab.tabChange.subscribe(this.HandleIndexChange.bind(this));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.tabChangeSub?.unsubscribe();\r\n }\r\n\r\n private tabChangeSub!: Subscription;\r\n\r\n private HandleIndexChange(event: NgxSirioEvent<SirioTabComponent>) {\r\n const tab = event.component as any;\r\n if (event.data.newIndex === undefined) {\r\n tab.setActiveIndex(this.validateIndex(tab._savedIndex), true);\r\n }\r\n else {\r\n tab._savedIndex = event.data.newIndex;\r\n }\r\n }\r\n\r\n private validateIndex(index: number): number {\r\n if (index >= this.sirioTab.tabItems.length) {\r\n var firstTab = this.sirioTab.firstTabEnabled;\r\n if (firstTab) {\r\n index = firstTab.index;\r\n }\r\n }\r\n return index;\r\n }\r\n}\r\n","export const Texts = {\r\n TypeToSearch: \"Digita per cercare...\",\r\n Upload: \"Upload\",\r\n ScrollLeft: \"Scorri a sinistra\",\r\n ScrollRight: \"Scorri a destra\",\r\n AddItem: \"Aggiungi\",\r\n RemoveItem: \"Rimuovi\",\r\n PreviousSection: \"Sezione precedente\",\r\n NextSection: \"Sezione successiva\",\r\n Show: \"Visualizza\",\r\n Remove: \"Rimuovi\",\r\n Close: \"Chiudi\",\r\n Name: \"Nome\",\r\n Size: \"Dimensione\",\r\n Type: \"Tipo\",\r\n Actions: \"Azioni\",\r\n ReadMore: \"Leggi di più\",\r\n ReadLess: \"Leggi di meno\"\r\n};\r\n","import { Directive, ElementRef, Renderer2, Input, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\r\n\r\nimport { Texts } from '../locale/locale-it';\r\n\r\n@Directive({\r\n selector: '[collapse]',\r\n standalone: true\r\n})\r\nexport class CollapseDirective implements OnChanges, OnDestroy {\r\n @Input('collapse') maxHeight: number | null = null;\r\n\r\n private currentHeight: number | null = null;\r\n private button: HTMLButtonElement | null = null;\r\n private iconSpan: HTMLElement | null = null;\r\n private expanded = false;\r\n private viewInitialized = false;\r\n private timeoutFocusOut: any;\r\n private unlistenFocusOut!: () => void;\r\n\r\n constructor(private el: ElementRef\r\n , private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewInitialized = true;\r\n this.currentHeight = this.maxHeight;\r\n this.applyCollapseLogic();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['maxHeight']) {\r\n this.currentHeight = this.maxHeight;\r\n if (this.viewInitialized) {\r\n this.applyCollapseLogic();\r\n }\r\n }\r\n }\r\n\r\n private applyCollapseLogic(): void {\r\n \r\n this.resetStyles();\r\n \r\n this.resetButton();\r\n \r\n this.resetFocusHandler();\r\n\r\n if (this.maxHeight == null || this.maxHeight <= 0) {\r\n this.expanded = true;\r\n return;\r\n }\r\n\r\n this.expanded = false;\r\n\r\n this.applyStyle();\r\n\r\n const element = this.el.nativeElement as HTMLElement;\r\n\r\n if (element.scrollHeight > this.maxHeight) {\r\n this.applyButton();\r\n this.applyFocusHandler();\r\n }\r\n }\r\n\r\n private applyStyle() {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.renderer.setStyle(element, 'overflow', 'hidden');\r\n this.renderer.setStyle(element, 'max-height', `${this.maxHeight}px`);\r\n }\r\n\r\n private resetStyles() {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.renderer.setStyle(element, 'overflow', null);\r\n this.renderer.setStyle(element, 'max-height', null);\r\n }\r\n\r\n private applyButton(): void {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.button = this.renderer.createElement('button');\r\n this.renderer.addClass(this.button, 'sirio-btn');\r\n this.renderer.setStyle(this.button, 'padding', '0px');\r\n\r\n const text = this.renderer.createText(Texts.ReadMore);\r\n\r\n this.iconSpan = this.renderer.createElement('span');\r\n this.renderer.addClass(this.iconSpan, 'fa');\r\n this.renderer.addClass(this.iconSpan, 'fa-chevron-down');\r\n \r\n this.renderer.appendChild(this.button, text);\r\n this.renderer.appendChild(this.button, this.iconSpan);\r\n\r\n this.renderer.listen(this.button, 'click', () => this.toggleExpand());\r\n this.renderer.setStyle(this.button, 'margin-top', '8px');\r\n\r\n this.renderer.appendChild(element.parentNode, this.button);\r\n }\r\n\r\n private resetButton() {\r\n if (this.button && this.button.parentNode) {\r\n this.renderer.removeChild(this.button.parentNode, this.button);\r\n this.button = null;\r\n }\r\n }\r\n\r\n private applyFocusHandler() {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.unlistenFocusOut = this.renderer.listen(element, 'focusout', () => {\r\n clearTimeout(this.timeoutFocusOut);\r\n this.timeoutFocusOut = setTimeout(() => {\r\n if (!element.contains(document.activeElement)) {\r\n element.scrollTop = 0;\r\n console.log('NESSUN elemento interno ha più il focus');\r\n }\r\n }, 0);\r\n });\r\n }\r\n\r\n private resetFocusHandler() {\r\n if (this.unlistenFocusOut) {\r\n this.unlistenFocusOut();\r\n }\r\n clearTimeout(this.timeoutFocusOut);\r\n }\r\n\r\n private toggleExpand(): void {\r\n this.expanded = !this.expanded;\r\n if (this.expanded) {\r\n this.expand();\r\n } else {\r\n this.collapse();\r\n }\r\n }\r\n\r\n private expand(): void {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.renderer.setStyle(element, 'max-height', 'none');\r\n this.renderer.setStyle(element, 'overflow', 'visible');\r\n this.button!.childNodes[0].textContent = Texts.ReadLess;\r\n this.updateIcon('fa-chevron-up', 'fa-chevron-down');\r\n }\r\n\r\n private collapse(): void {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.renderer.setStyle(element, 'max-height', `${this.currentHeight}px`);\r\n this.renderer.setStyle(element, 'overflow', 'hidden');\r\n this.button!.childNodes[0].textContent = Texts.ReadMore;\r\n this.updateIcon('fa-chevron-down', 'fa-chevron-up');\r\n }\r\n\r\n private updateIcon(add: string, remove: string) {\r\n if (this.iconSpan) {\r\n this.renderer.removeClass(this.iconSpan, remove);\r\n this.renderer.addClass(this.iconSpan, add);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resetButton();\r\n this.resetFocusHandler();\r\n }\r\n}\r\n","import { Component, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-template-wrapper',\r\n template: '',\r\n standalone: true\r\n})\r\nexport class TemplateWrapperComponent {\r\n @Input() template!: TemplateRef<any>;\r\n @Input() context: any = {};\r\n\r\n constructor() { }\r\n\r\n getTemplateRef(): TemplateRef<any> {\r\n const result = {\r\n createEmbeddedView: (context: any) => {\r\n return this.template.createEmbeddedView(this.context);\r\n }\r\n } as TemplateRef<any>;\r\n\r\n (result as any).createEmbeddedViewImpl = () => {\r\n return this.template.createEmbeddedView(this.context);\r\n }\r\n\r\n return result;\r\n } \r\n}\r\n","import { Component } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { SirioButtonComponent } from 'ngx-sirio-lib';\r\nimport { ProgrammabilityService, EvaluateOptions } from '../services/programmability.service';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ProxyOptions } from '../services/proxy.service';\r\n\r\nimport { Texts } from '../locale/locale-it';\r\n\r\n@Component({\r\n templateUrl: './cell-templates/objectUrl.component.html',\r\n standalone: true\r\n})\r\nexport class ObjectURLRendererComponent implements ICellRendererAngularComp {\r\n params!: ICellRendererParams;\r\n\r\n Texts = Texts;\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.params = params;\r\n }\r\n\r\n onClick(event: Event) {\r\n const fileURL = URL.createObjectURL(this.params.data);\r\n window.open(fileURL, '_blank');\r\n setTimeout(() => {\r\n URL.revokeObjectURL(fileURL);\r\n }, 1000);\r\n }\r\n\r\n refresh(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\n@Component({\r\n templateUrl: './cell-templates/delete.component.html',\r\n standalone: true\r\n})\r\nexport class DeleteRowCellRenderer implements ICellRendererAngularComp {\r\n params: any;\r\n\r\n Texts = Texts;\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n }\r\n\r\n onClick(event: Event) {\r\n\r\n if ('remove' in this.params.data && typeof this.params.data.remove === 'function') {\r\n this.params.data.remove();\r\n }\r\n }\r\n\r\n refresh(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\n@Component({\r\n templateUrl: './cell-templates/actions.component.html',\r\n standalone: true,\r\n imports: [\r\n CommonModule, SirioButtonComponent\r\n ]\r\n})\r\nexport class ActionsCellRenderer implements ICellRendererAngularComp {\r\n\r\n constructor(private programmability: ProgrammabilityService) { }\r\n\r\n params: any;\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n }\r\n\r\n refresh(): boolean {\r\n return false;\r\n }\r\n\r\n evaluateBoolean(value: boolean | string | null): boolean | null {\r\n\r\n const options: EvaluateOptions = {\r\n proxyFn: (options: ProxyOptions) => {\r\n options.extend[\"getParams\"] = () => this.params;\r\n options.extend[\"getData\"] = () => this.getData();\r\n }\r\n }\r\n\r\n return this.programmability.evaluateBoolean(this.getFormGroup(), value, options);\r\n }\r\n\r\n evaluateString(value: string | null): string {\r\n return this.programmability.evaluateString(this.getFormGroup(), value);\r\n }\r\n\r\n clickButton(action: any, event: any) {\r\n if (action.click) {\r\n\r\n const options: EvaluateOptions = {\r\n cacheable: false,\r\n proxyFn: (options: ProxyOptions) => {\r\n options.extend[\"getParams\"] = () => this.params;\r\n options.extend[\"getAction\"] = () => action;\r\n options.extend[\"getData\"] = () => this.getData();\r\n }\r\n }\r\n\r\n return this.programmability.evaluate(this.getFormGroup(), action.click, options);\r\n } \r\n }\r\n\r\n private getData(): any {\r\n return this.params.data;\r\n\r\n }\r\n\r\n private getFormGroup(): FormGroup {\r\n return this.params.formGroup as FormGroup;\r\n }\r\n}\r\n\r\n","<a [attr.aria-label]=\"Texts.Show\" title=\"{{ Texts.Show }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-paperclip\"></span>\r\n</a>\r\n","<a [attr.aria-label]=\"Texts.Remove\" title=\"{{ Texts.Remove }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-trash\"></span>\r\n</a>\r\n","<div class=\"btn-small-group\">\r\n <ng-container *ngFor=\"let action of params.component.actions\">\r\n <ngx-sirio-button class=\"btn-small\"\r\n [ariaLabel]=\"evaluateString(action.label)\"\r\n [title]=\"evaluateString(action.label)\"\r\n [color]=\"null\"\r\n [disabled]=\"evaluateBoolean(action.disabled)\"\r\n (clickEvent)=\"clickButton(action, $event)\"\r\n [icon]=\"evaluateString(action.icon)\">\r\n </ngx-sirio-button>\r\n </ng-container>\r\n</div>\r\n","import { SuppressKeyboardEventParams } from 'ag-grid-community';\r\n\r\nconst GRID_CELL_CLASSNAME = \"ag-cell\";\r\n\r\nfunction getEventPath(event: Event): HTMLElement[] {\r\n const path: HTMLElement[] = [];\r\n let currentTarget: any = event.target;\r\n while (currentTarget) {\r\n path.push(currentTarget);\r\n currentTarget = currentTarget.parentElement;\r\n }\r\n return path;\r\n}\r\n\r\nfunction getAllFocusableElementsOf(el: HTMLElement) {\r\n return Array.from<HTMLElement>(\r\n el.querySelectorAll(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\r\n )\r\n ).filter((focusableEl) => {\r\n return focusableEl.tabIndex !== -1 && !focusableEl.hasAttribute('disabled');\r\n });\r\n}\r\n\r\nexport const GridUtils = {\r\n navigateInsideCell({ event }: SuppressKeyboardEventParams<any>) {\r\n const { key, shiftKey } = event; \r\n const path = getEventPath(event);\r\n const isTabForward = key === \"Tab\" && shiftKey === false;\r\n const isTabBackward = key === \"Tab\" && shiftKey === true;\r\n let suppressEvent = false;\r\n // Handle cell children tabbing\r\n if (isTabForward || isTabBackward) {\r\n const eGridCell = path.find((el) => {\r\n if (el.classList === undefined) return false;\r\n return el.classList.contains(GRID_CELL_CLASSNAME);\r\n });\r\n if (!eGridCell) {\r\n return suppressEvent;\r\n }\r\n const focusableChildrenElements = getAllFocusableElementsOf(eGridCell);\r\n const lastCellChildEl =\r\n focusableChildrenElements[focusableChildrenElements.length - 1];\r\n const firstCellChildEl = focusableChildrenElements[0];\r\n // Suppress keyboard event if tabbing forward within the cell and the current focused element is not the last child\r\n if (focusableChildrenElements.length === 0) {\r\n return false;\r\n }\r\n const currentIndex = focusableChildrenElements.indexOf(\r\n document.activeElement as HTMLElement,\r\n );\r\n if (isTabForward) {\r\n const isLastChildFocused =\r\n lastCellChildEl && document.activeElement === lastCellChildEl;\r\n if (!isLastChildFocused) {\r\n suppressEvent = true;\r\n if (currentIndex !== -1 || document.activeElement === eGridCell) {\r\n event.preventDefault();\r\n focusableChildrenElements[currentIndex + 1].focus();\r\n }\r\n }\r\n }\r\n // Suppress keyboard event if tabbing backwards within the cell, and the current focused element is not the first child\r\n else {\r\n const cellHasFocusedChildren =\r\n eGridCell.contains(document.activeElement) &&\r\n eGridCell !== document.activeElement;\r\n // Manually set focus to the last child element if cell doesn't have focused children\r\n if (!cellHasFocusedChildren) {\r\n lastCellChildEl.focus();\r\n // Cancel keyboard press, so that it doesn't focus on the last child and then pass through the keyboard press to\r\n // move to the 2nd last child element\r\n event.preventDefault();\r\n }\r\n const isFirstChildFocused =\r\n firstCellChildEl && document.activeElement === firstCellChildEl;\r\n if (!isFirstChildFocused) {\r\n suppressEvent = true;\r\n if (currentIndex !== -1 || document.activeElement === eGridCell) {\r\n event.preventDefault();\r\n focusableChildrenElements[currentIndex - 1].focus();\r\n }\r\n }\r\n }\r\n }\r\n return suppressEvent;\r\n },\r\n\r\n \r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeResourceUrl } from '@angular/platform-browser';\r\nimport sanitizeHtml from 'sanitize-html';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SanitizeService {\r\n\r\n constructor(private sanitizer: DomSanitizer)\r\n {\r\n this.sanitizeOption = {\r\n allowedTags: sanitizeHtml.defaults.allowedTags.concat(['img']),\r\n allowedAttributes: {\r\n ...sanitizeHtml.defaults.allowedAttributes,\r\n '*': ['style']\r\n }\r\n };\r\n }\r\n\r\n sanitizeHtml(html: string): string {\r\n return sanitizeHtml(html, this.sanitizeOption);\r\n };\r\n\r\n sanitizeSafeHtml(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(this.sanitizeHtml(html));\r\n };\r\n\r\n sanitizeSafeUrl(url: string): SafeResourceUrl {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n\r\n toString(safeHtml: SafeHtml): string {\r\n return this.sanitizer.sanitize(1, safeHtml) || '';\r\n }\r\n\r\n private sanitizeOption!: sanitizeHtml.IOptions;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { marked } from 'marked';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MarkdownService {\r\n\r\n constructor() {\r\n\r\n marked.use({\r\n async: false,\r\n gfm: true,\r\n breaks: true\r\n });\r\n\r\n const renderer = new marked.Renderer();\r\n\r\n renderer.link = function (args) {\r\n return `<a href=\"${args.href}\" target=\"_blank\">${args.text}</a>`; \r\n };\r\n\r\n marked.setOptions({ renderer });\r\n }\r\n\r\n toHtml(text: string): string {\r\n return marked.parse(text ?? \"\") as string;\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport mimeDb from 'mime-db';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MimeService {\r\n\r\n constructor() { }\r\n\r\n getMimeTypes(extensions: string): string {\r\n return (extensions ?? \"\")\r\n .split(',')\r\n .map(ext => this.getMimeType(ext.trim()))\r\n .filter(mime => mime !== null)\r\n .join(', ');\r\n };\r\n\r\n private getMimeType(extension: string): string | null {\r\n const ext = extension.startsWith('.') ? extension.slice(1) : extension;\r\n for (const [mimeType, info] of Object.entries(mimeDb)) {\r\n if (info.extensions && info.extensions.includes(ext)) {\r\n return mimeType;\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n//import { FeelService } from '../services/feel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormatterService {\r\n\r\n //constructor(private feelService: FeelService) { }\r\n\r\n constructor() { }\r\n\r\n formatCurrency(value: any, symbol: string | null = null): string {\r\n if (isNaN(value) || value === null || value === undefined) {\r\n return value;\r\n }\r\n\r\n const numberValue = parseFloat(value);\r\n if (isNaN(numberValue)) {\r\n return value;\r\n }\r\n\r\n const result = numberValue.toFixed(2).replace(\".\", \",\").replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n\r\n if (symbol) {\r\n return symbol + ' ' + result;\r\n }\r\n else {\r\n return result;\r\n }\r\n }\r\n\r\n formatDate(value: any): string {\r\n if (typeof value !== 'string' || !/^\\d{4}-\\d{2}-\\d{2}(T|$)/.test(value)) {\r\n return value;\r\n }\r\n\r\n const date = new Date(value);\r\n if (isNaN(date.getTime())) {\r\n return value;\r\n }\r\n\r\n const day = date.getDate().toString().padStart(2, '0');\r\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return `${day}/${month}/${year}`;\r\n }\r\n\r\n formatInteger(value: any): string {\r\n if (isNaN(value) || value === null || value === undefined) {\r\n return value;\r\n }\r\n\r\n const numberValue = parseInt(value, 10);\r\n if (isNaN(numberValue)) {\r\n return value;\r\n }\r\n\r\n return numberValue.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n }\r\n\r\n formatExpression(value: any, expression: string): string {\r\n return value as string;\r\n //const result = this.feelService.evalExpression(expression, { value: value }) as string;\r\n //return result;\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewEncapsulation, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormGroup, FormControl, FormArray, AbstractControl } from '@angular/forms';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SafeHtml, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { Datepicker } from 'vanillajs-datepicker';\r\nimport { SanitizeService } from '../services/sanitize.service';\r\nimport { MarkdownService } from '../services/markdown.service';\r\nimport { MimeService } from '../services/mime.service';\r\nimport { ProgrammabilityService } from '../services/programmability.service';\r\nimport { EventService, CommandEvent } from '../services/event.service';\r\nimport { FormatterService } from '../services/formatter.service';\r\nimport { WeakService } from '../services/weak.service';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { MetadataService } from '../services/metadata.service';\r\nimport { ButtonColors } from 'ngx-sirio-lib';\r\nimport { AdornerDirective } from '../directives/adorner.directive';\r\nimport { DisableDirective } from '../directives/disable.directive';\r\nimport { DisplayDirective } from '../directives/display.directive';\r\nimport { RepeatDirective } from '../directives/repeat.directive';\r\nimport { FrameSecurityDirective } from '../directives/framesecurity.directive';\r\nimport { DropdownDirective } from '../directives/dropdown.directive';\r\nimport { TabDirective } from '../directives/tab.directive';\r\nimport { AccordionDirective } from '../directives/accordion.directive';\r\nimport { GridDirective } from '../directives/grid.directive';\r\nimport { RegisterDirective } from '../directives/register.directive';\r\nimport { UpdateBlurDirective } from '../directives/updateblur.directive';\r\nimport { DateDirective } from '../directives/date.directive';\r\nimport { NumberDirective } from '../directives/number.directive';\r\nimport { TextDirective } from '../directives/text.directive';\r\nimport { DisableFormDirective } from '../directives/disableform.directive';\r\nimport { TabControlDirective } from '../directives/tabcontrol.directive';\r\nimport { CollapseDirective } from '../directives/collapse.directive';\r\nimport { TemplateWrapperComponent } from '../shared/template-wrapper/template-wrapper.component';\r\nimport { ObjectURLRendererComponent, DeleteRowCellRenderer, ActionsCellRenderer } from '../utils/gridCells';\r\nimport { isObservable, Observable, of } from 'rxjs';\r\n\r\nimport {\r\n SirioInputComponent, SirioValidationDirective\r\n , SirioSelectComponent, SirioSelectOptionComponent, SirioSelectPanelComponent\r\n , SirioCheckboxGroupComponent, SirioCheckboxComponent, SirioDatepickerComponent, SirioTimepickerComponent\r\n , SirioRadioGroupComponent, SirioRadioButtonComponent, SirioTabComponent, SirioTabItemComponent\r\n , SirioAccordionComponent, SirioAccordionPanelComponent, SirioAccordionHeaderComponent, SirioAccordionBodyComponent\r\n , SirioButtonComponent, SirioFileUploadComponent\r\n , SirioToggleComponent, SirioChipCheckboxGroupComponent, SirioChipRadioGroupComponent, SirioInputChipComponent\r\n , SirioAlertComponent, SirioAlertMessageComponent, SirioSliderComponent\r\n , SirioNotifyComponent, SirioNotifyBodyComponent, SirioNotifyActionComponent, SirioNotifyLinkComponent\r\n , SirioTooltipDirective\r\n , NgxSirioEvent\r\n} from 'ngx-sirio-lib';\r\n\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport {\r\n Module, PaginationModule, ClientSideRowModelModule, InfiniteRowModelModule\r\n , LocaleModule, CellStyleModule, ValidationModule\r\n , TextFilterModule, NumberFilterModule, DateFilterModule\r\n , ColDef, themeQuartz, iconSetAlpine, GridOptions, ValueFormatterParams\r\n , ClientSideRowModelApiModule\r\n , GridReadyEvent, ColumnAutoSizeModule, ColumnApiModule\r\n} from 'ag-grid-community';\r\nimport { AG_GRID_LOCALE_IT } from '@ag-grid-community/locale';\r\n\r\nimport { GridUtils } from '../utils/gridUtils';\r\n\r\nimport { Texts } from '../locale/locale-it';\r\n\r\n@Component({\r\n selector: 'app-dynamic-fields',\r\n templateUrl: './dynamic-fields.component.html',\r\n styleUrls: [\r\n './dynamic-fields.component.css'],\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule\r\n , AdornerDirective, DisableDirective, DisplayDirective, FrameSecurityDirective\r\n , DropdownDirective, UpdateBlurDirective, RepeatDirective, TabDirective, GridDirective\r\n , RegisterDirective, AccordionDirective, DateDirective, NumberDirective, TextDirective\r\n , DisableFormDirective, TabControlDirective, CollapseDirective\r\n , SirioInputComponent, SirioValidationDirective\r\n , SirioSelectComponent, SirioSelectOptionComponent, SirioSelectPanelComponent\r\n , SirioCheckboxGroupComponent, SirioCheckboxComponent, SirioDatepickerComponent, SirioTimepickerComponent\r\n , SirioRadioGroupComponent, SirioRadioButtonComponent, SirioTabComponent, SirioTabItemComponent\r\n , SirioAccordionComponent, SirioAccordionPanelComponent, SirioAccordionHeaderComponent, SirioAccordionBodyComponent\r\n , SirioButtonComponent, SirioFileUploadComponent\r\n , SirioToggleComponent, SirioChipCheckboxGroupComponent, SirioChipRadioGroupComponent, SirioInputChipComponent\r\n , SirioAlertComponent, SirioAlertMessageComponent, SirioSliderComponent\r\n , SirioNotifyComponent, SirioNotifyBodyComponent, SirioNotifyActionComponent, SirioNotifyLinkComponent\r\n , SirioTooltipDirective\r\n , TemplateWrapperComponent\r\n , AgGridAngular],\r\n providers: [\r\n RegisterService,\r\n ProgrammabilityService\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DynamicFieldsComponent implements OnInit, AfterViewInit {\r\n @Input() rows: Array<any> | undefined;\r\n @Input() formGroup!: FormGroup;\r\n\r\n Texts = Texts;\r\n\r\n constructor(private sanitizer: SanitizeService\r\n , private markdown: MarkdownService\r\n , private mime: MimeService\r\n , private programmability: ProgrammabilityService\r\n , private events: EventService\r\n , private formatter: FormatterService\r\n , private weak: WeakService\r\n , private register: RegisterService\r\n , private metadata: MetadataService\r\n , private el: ElementRef\r\n )\r\n {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.configureDatepicker();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.focusFirst();\r\n });\r\n }\r\n\r\n getRegister(): RegisterService {\r\n return this.register;\r\n }\r\n\r\n getClass(component: any): string {\r\n const colHost = \"col-host \";\r\n if (component.layout?.columns) {\r\n return colHost + \"col-md-\" + component.layout?.columns;\r\n }\r\n else {\r\n return colHost + \"col\";\r\n }\r\n }\r\n\r\n getTextFeedback(component: any): string {\r\n const control = this.formGroup.get(component.key) as FormControl;\r\n return !control || control.valid || !control.errors\r\n ? ''\r\n : control.errors['message'];\r\n }\r\n\r\n isWarning(component: any): boolean {\r\n const control = this.formGroup.get(component.key) as FormControl;\r\n return (control && control.errors && control.errors['warning']) || false\r\n }\r\n\r\n evaluateString(value: string | null): string {\r\n return this.programmability.evaluateString(this.formGroup, value); \r\n }\r\n\r\n evaluateBoolean(value: boolean | string | null): boolean | null {\r\n return this.programmability.evaluateBoolean(this.formGroup, value);\r\n }\r\n\r\n evaluateNumber(value: number | string | null): number | null {\r\n return this.programmability.evaluateNumber(this.formGroup, value);\r\n }\r\n\r\n evaluateUrl(value: string | null): SafeResourceUrl {\r\n const url = this.programmability.evaluateString(this.formGroup, value);\r\n const watchKey = `:safeUrl(${url})`;\r\n return this.weak.call(this.formGroup, watchKey, () => {\r\n return this.sanitizer.sanitizeSafeUrl(url);\r\n });\r\n }\r\n\r\n evaluateTemplate(value: string | null): string {\r\n return this.programmability.evaluateTemplate(this.formGroup, value);\r\n }\r\n\r\n evaluate(text: string | null, cacheable: boolean = true): any {\r\n return this.programmability.evaluate(this.formGroup, text, { cacheable: cacheable });\r\n }\r\n\r\n evaluateColor(value: string | null): ButtonColors | null {\r\n const color = this.evaluateString(value);\r\n const watchKey = `:buttonColor(${color})`;\r\n return this.weak.call(this.formGroup, watchKey, () => {\r\n if (color === \"ghost\")\r\n return null;\r\n const validColors: ButtonColors[] = ['primary', 'secondary', 'tertiary', 'tertiary-light', 'danger'];\r\n return validColors.includes(color as ButtonColors) ? (color as ButtonColors) : 'primary';\r\n });\r\n }\r\n\r\n evaluateConditional(conditional: any): boolean {\r\n const hide = this.evaluateBoolean(conditional?.hide);\r\n const show = this.evaluateBoolean(conditional?.show);\r\n \r\n return !(hide === true || show === false);\r\n }\r\n\r\n getTemplate(value: string): any {\r\n return this.metadata.getFormByName(value);\r\n }\r\n\r\n getFormGroup(control: AbstractControl | null): FormGroup {\r\n if (!(control instanceof FormGroup)) {\r\n throw new Error('Control is not a FormGroup');\r\n }\r\n return control;\r\n }\r\n\r\n getFormArray(control: AbstractControl | null): FormArray {\r\n if (!(control instanceof FormArray)) {\r\n throw new Error('Control is not a FormArray');\r\n }\r\n return control;\r\n }\r\n\r\n getControlFromPath(path: string | null): AbstractControl | null {\r\n const control = path\r\n ? this.formGroup.get(path)\r\n : this.formGroup;\r\n\r\n if (!control) { \r\n throw new Error(`FormGroup does not contain a control with path '${path}'`, { cause: this.formGroup });\r\n }\r\n return control;\r\n }\r\n\r\n toHTML(text: string): SafeHtml {\r\n const watchKey = `:safeHtml(${text})`;\r\n return this.weak.call(this.formGroup, watchKey, () => {\r\n const html = this.markdown.toHtml(text);\r\n return this.sanitizer.sanitizeSafeHtml(html);\r\n });\r\n };\r\n\r\n sanitize(html: string): SafeHtml {\r\n return this.sanitizer.sanitizeSafeHtml(html);\r\n };\r\n\r\n getMimeTypes(extensions: string): string {\r\n return this.mime.getMimeTypes(extensions);\r\n };\r\n\r\n clickButton(component: any, event: any) {\r\n if (component.click) {\r\n this.evaluate(component.click, false);\r\n }\r\n if (component.command) {\r\n const command: CommandEvent = {\r\n name: this.evaluateString(component.command),\r\n component: component,\r\n formGroup: this.formGroup,\r\n event: event\r\n };\r\n this.events.emitCommand(command);\r\n } \r\n }\r\n\r\n getValues(component: any): Observable<any> {\r\n if (component.values) {\r\n // Static\r\n return of(component.values);\r\n }\r\n else if (component.valuesKey) {\r\n // Field value\r\n const result = this.evaluate(component.valuesKey);\r\n return this.getAsObservable(result);\r\n }\r\n else if (component.valuesExpression) {\r\n // Expression\r\n const result = this.evaluate(component.valuesExpression);\r\n return this.getAsObservable(result);\r\n }\r\n else {\r\n // Nothing\r\n return of([]);\r\n } \r\n }\r\n\r\n getGridOptions(component: any): GridOptions {\r\n return this.weak.call(component, 'getGridOptions', () => {\r\n const columnDefs = this.getGridColumns(component);\r\n const pagination = this.getGridPaginable(component);\r\n const pageSize = this.getGridPageSize(component);\r\n const texts = this.getGridTexts();\r\n const theme = this.getGridTheme();\r\n return {\r\n defaultColDef: {\r\n floatingFilter: (component.floatingFilter === true),\r\n headerClass: (component.floatingFilter === true)\r\n ? 'show-filter' : 'hide-filter'\r\n },\r\n columnDefs: columnDefs,\r\n pagination: pagination,\r\n paginationPageSize: pageSize,\r\n paginationPageSizeSelector: [5, 10, 20, 50],\r\n localeText: texts,\r\n enableCellTextSelection: true,\r\n theme: theme,\r\n onGridReady: (params: GridReadyEvent) => {\r\n params.api.autoSizeColumns([\"actions\"]);\r\n }\r\n };\r\n });\r\n }\r\n\r\n getGridModules(component: any): Module[] {\r\n return this.weak.call(component, 'getGridModules', () => {\r\n return [\r\n ClientSideRowModelModule\r\n , InfiniteRowModelModule\r\n , PaginationModule\r\n , LocaleModule\r\n , CellStyleModule\r\n , ClientSideRowModelApiModule\r\n , TextFilterModule\r\n , NumberFilterModule\r\n , DateFilterModule\r\n , ColumnAutoSizeModule\r\n , ColumnApiModule\r\n , ValidationModule\r\n ];\r\n });\r\n }\r\n\r\n getGridData(component: any): Observable<any> {\r\n if (component.dataSource) {\r\n // Expression\r\n const result = this.evaluate(component.dataSource);\r\n return this.getAsObservable(result);\r\n }\r\n else {\r\n // Nothing\r\n return of([]);\r\n }\r\n }\r\n\r\n addNewItem(component: any) {\r\n const formArray = this.getFormArray(this.getControlFromPath(component.path));\r\n (formArray as any).addNewItem();\r\n }\r\n\r\n removeItem(component: any, index: number) {\r\n const formArray = this.getFormArray(this.getControlFromPath(component.path));\r\n formArray.removeAt(index);\r\n }\r\n\r\n createUploadTables(component: any): any {\r\n return this.weak.call(component, 'createUploadTables', () => {\r\n return [\r\n {\r\n components: [\r\n {\r\n \"type\": \"table\",\r\n \"layout\": {\r\n \"columns\": null\r\n },\r\n \"columns\": [\r\n {\r\n \"label\": Texts.Name,\r\n \"key\": \"name\",\r\n \"flex\": 1\r\n },\r\n {\r\n \"label\": Texts.Size,\r\n \"key\": \"size\",\r\n \"format\": \"integer\",\r\n \"align\": \"right\"\r\n },\r\n {\r\n \"label\": Texts.Type,\r\n \"key\": \"type\" \r\n },\r\n {\r\n \"key\": \"url\",\r\n \"label\": \"\",\r\n \"width\": 50,\r\n \"align\": \"center\",\r\n \"format\": \"objectURL\"\r\n },\r\n {\r\n \"label\": \"\",\r\n \"width\": 50,\r\n \"align\": \"center\",\r\n \"format\": \"deleteRow\"\r\n }\r\n ],\r\n \"dataSource\": \"=\" + component.key,\r\n \"height\": 200,\r\n \"conditional\": component.conditional,\r\n \"disabled\": component.disabled\r\n }\r\n ]\r\n }\r\n ];\r\n });\r\n }\r\n\r\n fileUploaded($event: NgxSirioEvent<SirioFileUploadComponent>) {\r\n const removeFile = (file: File) => {\r\n if ($event.component.control) {\r\n const newFiles = $event.component.fileList.filter(f => f !== file);\r\n $event.component.control.setValue(newFiles);\r\n addRemove(newFiles);\r\n return newFiles;\r\n }\r\n return [];\r\n }\r\n\r\n const addRemove = (files: File[]) => {\r\n files.forEach(file => {\r\n if (!('remove' in file)) {\r\n Object.defineProperty(file, 'remove', {\r\n value: function () {\r\n removeFile(this);\r\n },\r\n writable: false,\r\n enumerable: false\r\n });\r\n } \r\n }); \r\n };\r\n\r\n addRemove($event.component.fileList);\r\n }\r\n\r\n private focusFirst() {\r\n const focusableElements = this.el.nativeElement.querySelectorAll(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n\r\n for (let el of focusableElements) {\r\n if (!(el as HTMLElement).hasAttribute('disabled')) {\r\n (el as HTMLElement).focus();\r\n break;\r\n } \r\n }\r\n }\r\n\r\n private gridTexts = {\r\n ...AG_GRID_LOCALE_IT,\r\n \"pageSizeSelectorLabel\": \"Elementi per pagina:\",\r\n \"to\": \"-\",\r\n };\r\n\r\n private gridTheme = themeQuartz\r\n .withPart(iconSetAlpine)\r\n .withParams({\r\n backgroundColor: \"#FAFAFA\",\r\n borderColor: \"#D9E4F7\",\r\n browserColorScheme: \"light\",\r\n cellTextColor: \"#00121A\",\r\n columnBorder: true,\r\n fontFamily: \"inherit\",\r\n fontSize: 16,\r\n headerBackgroundColor: \"#002460\",\r\n headerColumnBorder: true,\r\n headerColumnResizeHandleColor: \"#F2F6FC\",\r\n headerColumnResizeHandleWidth: 2,\r\n headerFontSize: 16,\r\n headerFontWeight: 600,\r\n headerRowBorder: false,\r\n headerTextColor: \"#F2F6FC\",\r\n rowBorder: true\r\n });\r\n\r\n private getGridColumns(component: any): ColDef[] {\r\n if (Array.isArray(component.columns)) {\r\n const columns = component.columns.map((column: any) => ({\r\n field: column.key,\r\n headerName: column.label,\r\n resizable: column.resize === true,\r\n sortable: column.sort === true,\r\n filter: column.filter === true,\r\n suppressMovable: !(column.move === true),\r\n ...(column.flex === true && { flex: 1 }),\r\n ...(column.align === \"left\" && { cellStyle: { textAlign: 'left' } }),\r\n ...(column.align === \"center\" && { cellStyle: { textAlign: 'center' } }),\r\n ...(column.align === \"right\" && { cellStyle: { textAlign: 'right' } }),\r\n ...(typeof column.pinned === \"string\" && { pinned: column.pinned }),\r\n ...(typeof column.flex === \"number\" && { flex: column.flex }),\r\n ...(typeof column.width === \"number\" && { width: column.width }),\r\n ...(typeof column.minWidth === \"number\" && { minWidth: column.minWidth }),\r\n ...(typeof column.maxWidth === \"number\" && { maxWidth: column.maxWidth }),\r\n valueFormatter: this.getGridFormatter(column),\r\n cellRenderer: this.getGridRenderer(column)\r\n }));\r\n\r\n if (Array.isArray(component.actions) && component.actions.length > 0) {\r\n columns.push({\r\n colId: 'actions',\r\n headerName: Texts.Actions,\r\n resizable: false,\r\n cellDataType: false,\r\n pinned: \"right\",\r\n cellRendererParams: {\r\n component: component,\r\n formGroup: this.formGroup\r\n },\r\n cellRenderer: ActionsCellRenderer,\r\n suppressKeyboardEvent: GridUtils.navigateInsideCell\r\n });\r\n }\r\n\r\n return columns;\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n\r\n private getGridPaginable(component: any): boolean {\r\n return (typeof component.rowCount === 'number' && component.rowCount > 0);\r\n }\r\n\r\n private getGridPageSize(component: any) {\r\n if (typeof component.rowCount === 'number') {\r\n return component.rowCount;\r\n }\r\n }\r\n\r\n private getGridTexts() {\r\n return this.gridTexts;\r\n }\r\n\r\n private getGridTheme() {\r\n return this.gridTheme;\r\n }\r\n\r\n private getGridFormatter(column: any): ((param: ValueFormatterParams) => string) | undefined {\r\n if (column.format) {\r\n switch (column.format) {\r\n case 'integer':\r\n return params => this.formatter.formatInteger(params.value);\r\n case 'currency':\r\n return params => this.formatter.formatCurrency(params.value);\r\n case 'date':\r\n return params => this.formatter.formatDate(params.value);\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private getGridRenderer(column: any): any {\r\n if (column.format) {\r\n switch (column.format) {\r\n case 'objectURL':\r\n return ObjectURLRendererComponent;\r\n case \"deleteRow\":\r\n return DeleteRowCellRenderer;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private getAsObservable(value: any): Observable<any> {\r\n if (isObservable(value))\r\n return value;\r\n return of(value);\r\n }\r\n\r\n private configureDatepicker() {\r\n (Datepicker.locales as any)['it'] = {\r\n days: [\r\n 'Domenica',\r\n 'Lunedì',\r\n 'Martedì',\r\n 'Mercoledì',\r\n 'Giovedì',\r\n 'Venerdì',\r\n 'Sabato',\r\n ],\r\n daysMin: ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'],\r\n months: [\r\n 'Gennaio',\r\n 'Febbraio',\r\n 'Marzo',\r\n 'Aprile',\r\n 'Maggio',\r\n 'Giugno',\r\n 'Luglio',\r\n 'Agosto',\r\n 'Settembre',\r\n 'Ottobre',\r\n 'Novembre',\r\n 'Dicembre',\r\n ],\r\n monthsShort: [\r\n 'Gen',\r\n 'Feb',\r\n 'Mar',\r\n 'Apr',\r\n 'Mag',\r\n 'Giu',\r\n 'Lug',\r\n 'Ago',\r\n 'Set',\r\n 'Ott',\r\n 'Nov',\r\n 'Dic',\r\n ],\r\n today: 'Oggi',\r\n clear: 'Pulisci',\r\n format: 'dd/mm/yyyy',\r\n weekStart: 1\r\n };\r\n };\r\n}\r\n","<ng-container *ngFor=\"let row of rows\" [formGroup]=\"formGroup\">\r\n <div class=\"row field-set\">\r\n <ng-container *ngFor=\"let component of row.components\">\r\n <ng-container [ngSwitch]=\"component.type\">\r\n <div [class]=\"getClass(component)\">\r\n <!-- #region textfield -->\r\n <ng-container *ngSwitchCase=\"'textfield'\">\r\n <ngx-sirio-input type=\"text\"\r\n ariaLabel=\"input\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [prefixAdorner]=\"evaluateString(component.appearance?.prefixAdorner)\"\r\n [suffixAdorner]=\"evaluateString(component.appearance?.suffixAdorner)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n [textcase]=\"component.textCase\"\r\n [maxlength]=\"evaluateNumber(component.maxLength)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #textfield\r\n [register]=\"component\"\r\n [componentRef]=\"textfield\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region select -->\r\n <ng-container *ngSwitchCase=\"'select'\">\r\n <ngx-sirio-select ariaLabel=\"select\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n dropdown\r\n #select\r\n [register]=\"component\"\r\n [componentRef]=\"select\">\r\n <ngx-sirio-select-panel ariaLabel=\"items\">\r\n <ngx-sirio-input *ngIf=\"component.searchable\" class=\"searchable\" type=\"text\" [placeholder]=\"Texts.TypeToSearch\"></ngx-sirio-input>\r\n <ngx-sirio-select-option *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">{{ option.label }}</ngx-sirio-select-option>\r\n </ngx-sirio-select-panel>\r\n </ngx-sirio-select>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region taglist -->\r\n <ng-container *ngSwitchCase=\"'taglist'\">\r\n <ngx-sirio-select ariaLabel=\"select\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [isMultiple]=\"true\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #taglist\r\n [register]=\"component\"\r\n [componentRef]=\"taglist\">\r\n <ngx-sirio-select-panel ariaLabel=\"items\">\r\n <ngx-sirio-select-option *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">{{ option.label }}</ngx-sirio-select-option>\r\n </ngx-sirio-select-panel>\r\n </ngx-sirio-select>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ngx-sirio-input type=\"number\"\r\n ariaLabel=\"input\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [prefixAdorner]=\"evaluateString(component.appearance?.prefixAdorner)\"\r\n [suffixAdorner]=\"evaluateString(component.appearance?.suffixAdorner)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n number\r\n [defaultValue]=\"evaluateNumber(component.defaultValue)\"\r\n [minimum]=\"evaluateNumber(component.minimum)\"\r\n [maximum]=\"evaluateNumber(component.maximum)\"\r\n [decimalDigits]=\"evaluateNumber(component.decimalDigits)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #number\r\n [register]=\"component\"\r\n [componentRef]=\"number\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region datetime -->\r\n <ng-container *ngSwitchCase=\"'datetime'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ngx-sirio-datepicker ariaLabel=\"date\"\r\n [label]=\"evaluateString(component.dateLabel)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n isoDate\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #date\r\n [register]=\"component\"\r\n [componentRef]=\"date\">\r\n </ngx-sirio-datepicker>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region time -->\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <ngx-sirio-timepicker ariaLabel=\"time\"\r\n [label]=\"evaluateString(component.timeLabel)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #time\r\n [register]=\"component\"\r\n [componentRef]=\"time\">\r\n </ngx-sirio-timepicker>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region toggle -->\r\n <ng-container *ngSwitchCase=\"'toggle'\">\r\n <ngx-sirio-toggle ariaLabel=\"checkbox\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #toggle\r\n [register]=\"component\"\r\n [componentRef]=\"toggle\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-toggle>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-checkbox ariaLabel=\"checkbox\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #checkbox\r\n [register]=\"component\"\r\n [componentRef]=\"checkbox\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-checkbox>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region chip -->\r\n <ng-container *ngSwitchCase=\"'chip'\">\r\n <ngx-sirio-chip-radio-group ariaLabel=\"radio\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #chipradio\r\n [register]=\"component\"\r\n [componentRef]=\"chipradio\">\r\n <ngx-sirio-input-chip *ngFor=\"let option of (getValues(component) | async) || []\"\r\n type=\"radio\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-input-chip>\r\n </ngx-sirio-chip-radio-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-radio-group ariaLabel=\"radio\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #radio\r\n [register]=\"component\"\r\n [componentRef]=\"radio\">\r\n <ngx-sirio-radio-button *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-radio-button>\r\n </ngx-sirio-radio-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region checklist -->\r\n <ng-container *ngSwitchCase=\"'checklist'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region chip -->\r\n <ng-container *ngSwitchCase=\"'chip'\">\r\n <ngx-sirio-chip-checkbox-group ariaLabel=\"checklist\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #chipcheckbox\r\n [register]=\"component\"\r\n [componentRef]=\"chipcheckbox\">\r\n <ngx-sirio-input-chip *ngFor=\"let option of (getValues(component) | async) || []\"\r\n type=\"checkbox\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-input-chip>\r\n </ngx-sirio-chip-checkbox-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-checkbox-group ariaLabel=\"checklist\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #checkbox\r\n [register]=\"component\"\r\n [componentRef]=\"checkbox\">\r\n <ngx-sirio-checkbox *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-checkbox>\r\n </ngx-sirio-checkbox-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region textarea -->\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <ngx-sirio-input type=\"textarea\"\r\n ariaLabel=\"textarea\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [formControlName]=\"component.key\"\r\n [textcase]=\"component.textCase\"\r\n [maxlength]=\"evaluateNumber(component.maxLength)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #textarea\r\n [register]=\"component\"\r\n [componentRef]=\"textarea\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region filepicker -->\r\n <ng-container *ngSwitchCase=\"'filepicker'\">\r\n <ngx-sirio-file-upload ariaLabel=\"filepicker\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [accept]=\"getMimeTypes(component.accept)\"\r\n [multiple]=\"evaluateBoolean(component.multiple)\"\r\n (fileUploadedEvent)=\"fileUploaded($event)\"\r\n [showFilelist]=\"!component.showDetails\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #filepicker\r\n [register]=\"component\"\r\n [componentRef]=\"filepicker\">\r\n <span class=\"fas fa-arrow-up\" aria-hidden=\"true\"></span>\r\n {{ Texts.Upload }}\r\n </ngx-sirio-file-upload>\r\n <ng-container *ngIf=\"component.showDetails\">\r\n <app-dynamic-fields [formGroup]=\"formGroup\" [rows]=\"createUploadTables(component)\"></app-dynamic-fields>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [collapse]=\"component.collapseTo\"\r\n #text\r\n [register]=\"component\"\r\n [componentRef]=\"text\">\r\n <!--Reset View Context-->\r\n <div tabindex=\"0\" style=\"display:none\"></div>\r\n <div class=\"flex\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n <ng-container *ngIf=\"component.tooltip\">\r\n <app-template-wrapper #tooltipWrapper [template]=\"tooltipTemplate\" [context]=\"{ component: component }\"></app-template-wrapper>\r\n <button class=\"sirio-label-popover fas fa-info-circle\"\r\n sirioTooltip\r\n [hasPopover]=\"true\"\r\n [customTemplate]=\"tooltipWrapper.getTemplateRef()\"></button>\r\n <ng-template #tooltipTemplate let-component=\"component\">\r\n <div class=\"sirio-tooltip-body\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.tooltip))\">\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region html -->\r\n <ng-container *ngSwitchCase=\"'html'\">\r\n <div class=\"html-paragraph\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [innerHTML]=\"sanitize(evaluateTemplate(component.content))\"\r\n #html\r\n [register]=\"component\"\r\n [componentRef]=\"html\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img [src]=\"evaluateString(component.source)\"\r\n [alt]=\"evaluateString(component.alt)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n style=\"width: 100%;height: 100%;\"\r\n #image\r\n [register]=\"component\"\r\n [componentRef]=\"image\">\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region dynamiclist -->\r\n <ng-container *ngSwitchCase=\"'dynamiclist'\">\r\n <ng-container [formArrayName]=\"component.path\" [repeat]=\"evaluateNumber(component.repetitions)\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <ng-container *ngIf=\"getFormArray(formGroup.get(component.path)).controls.length > 0\">\r\n <!-- #region tab -->\r\n <ng-container *ngSwitchCase=\"'tab'\">\r\n <div [register]=\"component\"\r\n [componentRef]=\"dynamiclisttab\">\r\n <ngx-sirio-tab [leftArrowLabel]=\"Texts.ScrollLeft\"\r\n [rightArrowLabel]=\"Texts.ScrollRight\"\r\n [tabCount]=\"getFormArray(formGroup.get(component.path)).controls.length\"\r\n #dynamiclisttab>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <ngx-sirio-tab-item [label]=\"component.label + ' ' + (i + 1)\">\r\n <!--<ng-container *ngTemplateOutlet=\"itemTemplate; context: { item: item, index: i }\"></ng-container>-->\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ngx-sirio-tab-item>\r\n </ng-container>\r\n </ngx-sirio-tab>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region accordion -->\r\n <ng-container *ngSwitchCase=\"'accordion'\">\r\n <div [register]=\"component\"\r\n [componentRef]=\"dynamiclistaccordion\">\r\n <ngx-sirio-accordion [accordionCount]=\"getFormArray(formGroup.get(component.path)).controls.length\"\r\n #dynamiclistaccordion>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <ngx-sirio-accordion-panel>\r\n <ngx-sirio-accordion-header>\r\n <span [innerText]=\"component.label + ' ' + (i + 1)\"></span>\r\n </ngx-sirio-accordion-header>\r\n <ngx-sirio-accordion-body>\r\n <!--<ng-container *ngTemplateOutlet=\"itemTemplate; context: { item: item, index: i }\"></ng-container>-->\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ngx-sirio-accordion-body>\r\n </ngx-sirio-accordion-panel>\r\n </ng-container>\r\n </ngx-sirio-accordion>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <div [ngClass]=\"{'group-outline': component.showOutline === true}\"\r\n #dynamiclist\r\n [register]=\"component\"\r\n [componentRef]=\"dynamiclist\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <ngx-sirio-button (click)=\"addNewItem(component)\" class=\"add-item\" [color]=\"null\" icon=\"fas fa-plus\">{{ Texts.AddItem }}</ngx-sirio-button>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region group -->\r\n <ng-container *ngSwitchCase=\"'group'\">\r\n <div [ngClass]=\"{\r\n 'group-outline': component.showOutline === true,\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <div #group\r\n [register]=\"component\"\r\n [componentRef]=\"group\">\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(component.path))\"\r\n [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region table -->\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <ng-container *ngSwitchCase=\"'table'\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <ag-grid-angular [modules]=\"getGridModules(component)\"\r\n [gridOptions]=\"getGridOptions(component)\"\r\n [rowSource]=\"(getGridData(component) | async) || []\"\r\n [style.height.px]=\"component.height\"\r\n #table\r\n [register]=\"component\"\r\n [componentRef]=\"table\" />\r\n </ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n <!-- #region button -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ngx-sirio-button (clickEvent)=\"clickButton(component, $event)\"\r\n [color]=\"evaluateColor(component.color)\"\r\n [icon]=\"evaluateString(component.icon)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [disabled]=\"evaluateBoolean(component.disabled)\"\r\n #button\r\n [register]=\"component\"\r\n [componentRef]=\"button\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-button>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region separator -->\r\n <ng-container *ngSwitchCase=\"'separator'\">\r\n <div class=\"separator\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #separator\r\n [register]=\"component\"\r\n [componentRef]=\"separator\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region spacer -->\r\n <ng-container *ngSwitchCase=\"'spacer'\">\r\n <div style=\"width: 100%\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [style.height.px]=\"component.height\"\r\n #spacer\r\n [register]=\"component\"\r\n [componentRef]=\"spacer\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region iframe -->\r\n <ng-container *ngSwitchCase=\"'iframe'\">\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <label [for]=\"component.id\">{{ evaluateString(component.label) }}</label>\r\n <iframe [src]=\"evaluateUrl(component.url)\"\r\n [title]=\"evaluateString(component.label)\"\r\n [style.width]=\"'100%'\"\r\n [style.height.px]=\"component.height\"\r\n [frameSecurity]=\"component.security\"\r\n #iframe\r\n [register]=\"component\"\r\n [componentRef]=\"iframe\">\r\n </iframe>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region alert -->\r\n <ng-container *ngSwitchCase=\"'alert'\">\r\n <ngx-sirio-alert [type]=\"component.role\"\r\n [labelClose]=\"Texts.Close\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #alert\r\n [register]=\"component\"\r\n [componentRef]=\"alert\">\r\n <ngx-sirio-alert-message>\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </ngx-sirio-alert-message>\r\n </ngx-sirio-alert>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region notice -->\r\n <ng-container *ngSwitchCase=\"'notice'\">\r\n <ngx-sirio-notify [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #notice\r\n [register]=\"component\"\r\n [componentRef]=\"notice\">\r\n <ngx-sirio-notify-body [title]=\"evaluateString(component.title)\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </ngx-sirio-notify-body>\r\n </ngx-sirio-notify>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region range -->\r\n <ng-container *ngSwitchCase=\"'range'\">\r\n <ngx-sirio-slider [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n [min]=\"evaluateNumber(component.range?.min) ?? 0\"\r\n [max]=\"evaluateNumber(component.range?.max) ?? 0\"\r\n #range\r\n [register]=\"component\"\r\n [componentRef]=\"range\">\r\n </ngx-sirio-slider>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region tooltip -->\r\n <ng-container *ngSwitchCase=\"'tooltip'\">\r\n <app-template-wrapper #tooltipWrapper [template]=\"tooltipTemplate\" [context]=\"{ component: component }\"></app-template-wrapper>\r\n <button class=\"sirio-label-popover fas fa-info-circle\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n sirioTooltip\r\n [hasPopover]=\"true\"\r\n [customTemplate]=\"tooltipWrapper.getTemplateRef()\"\r\n #tooltip\r\n [register]=\"component\"\r\n [componentRef]=\"tooltip\"></button>\r\n <ng-template #tooltipTemplate let-component=\"component\">\r\n <div class=\"sirio-tooltip-body\">\r\n <p *ngIf=\"component.title\" class=\"sirio-tooltip-heading sirio-space-down\">\r\n {{ evaluateString(component.title) }}\r\n </p>\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region tab -->\r\n <ng-container *ngSwitchCase=\"'tab'\">\r\n <ngx-sirio-tab #tab\r\n [register]=\"component\"\r\n [componentRef]=\"tab\"\r\n [leftArrowLabel]=\"Texts.ScrollLeft\"\r\n [rightArrowLabel]=\"Texts.ScrollRight\"\r\n tabControl>\r\n <ng-container *ngFor=\"let panel of component.panels\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(panel.disabled),\r\n formGroup: formGroup,\r\n path: panel.path\r\n }\">\r\n </ng-container>\r\n <ngx-sirio-tab-item [label]=\"evaluateString(panel.label)\"\r\n [disabled]=\"evaluateBoolean(panel.disabled) ?? false\"\r\n *ngIf=\"evaluateConditional(panel.conditional)\">\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(panel.path))\"\r\n [rows]=\"getTemplate(panel.template)?.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ngx-sirio-tab-item>\r\n </ng-container>\r\n </ngx-sirio-tab>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region accordion -->\r\n <ng-container *ngSwitchCase=\"'accordion'\">\r\n <ngx-sirio-accordion\r\n #accordion\r\n [register]=\"component\"\r\n [componentRef]=\"accordion\">\r\n <ng-container *ngFor=\"let panel of component.panels\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(panel.disabled),\r\n formGroup: formGroup,\r\n path: panel.path\r\n }\">\r\n </ng-container>\r\n <ngx-sirio-accordion-panel *ngIf=\"evaluateConditional(panel.conditional)\"\r\n [disabled]=\"evaluateBoolean(panel.disabled)\">\r\n <ngx-sirio-accordion-header>\r\n <span [innerText]=\"evaluateString(panel.label)\"></span>\r\n </ngx-sirio-accordion-header>\r\n <ngx-sirio-accordion-body>\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(panel.path))\"\r\n [rows]=\"getTemplate(panel.template)?.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ngx-sirio-accordion-body>\r\n </ngx-sirio-accordion-panel>\r\n </ng-container>\r\n </ngx-sirio-accordion> \r\n </ng-container>\r\n <!-- #endregion -->\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n","/// <reference path=\"../types/typings.d.ts\" />\r\n\r\nimport {\r\n Component, Input, Output, OnChanges, OnDestroy \r\n , SimpleChanges, ViewEncapsulation, EventEmitter\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n FormBuilder, FormGroup, FormControlOptions, AbstractControl\r\n , ValidatorFn, Validators, ValidationErrors\r\n} from '@angular/forms';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { ProgrammabilityService } from '../services/programmability.service';\r\nimport { patchForm } from '../utils/patchForm';\r\nimport { groupByRow } from '../utils/groupByRow';\r\nimport { CommandEvent, EventService } from '../services/event.service';\r\nimport { MetadataService } from '../services/metadata.service';\r\nimport { DynamicFieldsComponent } from '../dynamic-fields/dynamic-fields.component';\r\nimport {\r\n SirioSidenavMobileComponent, SirioSidenavComponent, SirioSidenavItemComponent\r\n , SirioButtonComponent, SirioStepperProgressBarComponent, SirioStepperProgressItemComponent\r\n , SirioStepperProgressStatus\r\n} from 'ngx-sirio-lib';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { RegisterDirective } from '../directives/register.directive';\r\nimport { DisableFormDirective } from '../directives/disableform.directive';\r\nimport { Control } from '../controls/control'; \r\n\r\nimport { Texts } from '../locale/locale-it';\r\n\r\n@Component({\r\n selector: 'app-dynamic-form',\r\n templateUrl: './dynamic-form.component.html',\r\n styleUrls: [\r\n '../shared/bootstrap-grid.scss',\r\n './dynamic-form.component.css'\r\n ],\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule\r\n , RegisterDirective, DisableFormDirective\r\n , SirioSidenavMobileComponent, SirioSidenavComponent, SirioSidenavItemComponent\r\n , SirioButtonComponent, SirioStepperProgressBarComponent, SirioStepperProgressItemComponent\r\n , DynamicFieldsComponent],\r\n providers: [\r\n EventService, ProgrammabilityService, RegisterService, MetadataService\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DynamicFormComponent implements OnChanges, OnDestroy {\r\n @Input() schema: any;\r\n @Input() formGroup!: FormGroup;\r\n @Input() value: any = {};\r\n @Input() showNav: boolean = true;\r\n @Input() showNavButton: boolean = true;\r\n @Input() showProgress: boolean = false;\r\n @Input() progressStatus: boolean = true;\r\n @Output() valueChange = new EventEmitter<any>();\r\n @Output() initialized = new EventEmitter<FormGroup>();\r\n @Output() onCommand = new EventEmitter<CommandEvent>();\r\n @Output() activeNavChange = new EventEmitter<any>();\r\n\r\n constructor(private fb: FormBuilder\r\n , private programmability: ProgrammabilityService\r\n , private events: EventService\r\n , private registerService: RegisterService\r\n , private metadata: MetadataService\r\n ) { }\r\n\r\n Texts = Texts;\r\n\r\n ngOnDestroy(): void {\r\n this.clearHandlers();\r\n }\r\n\r\n private internalChange = false;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['schema']) {\r\n if (!this.formGroup) {\r\n this.formGroup = this.fb.group({});\r\n }\r\n\r\n this.clearControls();\r\n\r\n this.clearHandlers();\r\n\r\n const schema = changes['schema'].currentValue;\r\n\r\n const allForms = groupByRow(schema.forms ?? []);\r\n\r\n this.metadata.setSchema(schema);\r\n\r\n this.metadata.setForms(allForms);\r\n\r\n this._forms = allForms.filter(item => item.isTemplate !== true);;\r\n\r\n this.buildForm();\r\n\r\n this.defaultValue = this.formGroup.value;\r\n\r\n if (this.value) {\r\n patchForm(this.formGroup, this.value); \r\n }\r\n\r\n if (this.initialized)\r\n this.initialized.emit(this.formGroup);\r\n\r\n this.registerHandlers(); \r\n }\r\n\r\n if (changes['value']) {\r\n if (this.internalChange) {\r\n this.internalChange = false;\r\n } else {\r\n this.formGroup.reset(this.defaultValue, { emitEvent: false });\r\n patchForm(this.formGroup, this.value, {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n }\r\n\r\n get forms(): Array<any> {\r\n return this._forms;\r\n }\r\n\r\n canPrevious(): boolean {\r\n return this.getPrevious() != -1; \r\n }\r\n\r\n goPrevious() {\r\n if (this.canPrevious()) {\r\n this.activeNav = this.getPrevious();\r\n }\r\n }\r\n\r\n canNext(): boolean {\r\n return this.getNext() != -1; \r\n }\r\n\r\n goNext() {\r\n if (this.canNext()) { \r\n this.activeNav = this.getNext();\r\n }\r\n }\r\n\r\n getControls(): Control[] {\r\n return this.registerService.getControls();\r\n }\r\n\r\n getControl(name: string): Control | undefined {\r\n return this.registerService.getControl(name);\r\n }\r\n\r\n get activeNav(): number {\r\n return this._activeNav;\r\n }\r\n\r\n @Input()\r\n set activeNav(value: number) {\r\n if (value >= 0 && value < this.getMaxNav()) {\r\n this._activeNav = value;\r\n }\r\n setTimeout(() => {\r\n this.activeNavChange.emit(this._activeNav);\r\n });\r\n }\r\n\r\n getFormGroup(path: string | null): FormGroup {\r\n const control = path ? this.formGroup.get(path) : this.formGroup;\r\n if (!(control instanceof FormGroup)) {\r\n throw new Error('Control is not a FormGroup');\r\n }\r\n return control;\r\n }\r\n\r\n getFormStatus(form: any, index: number): SirioStepperProgressStatus {\r\n\r\n const current = index == this.activeNav;\r\n\r\n if (this.progressStatus && !current && this.hasValue(form.path)) {\r\n const formGroup = this.getFormGroup(form.path);\r\n return formGroup.valid ? \"success\" : \"error\";\r\n }\r\n else {\r\n return \"active\";\r\n } \r\n }\r\n\r\n activateForm(title: string) {\r\n const index = this.forms.findIndex(form => form.title === title);\r\n if (index != -1)\r\n this.activeNav = index;\r\n }\r\n\r\n evaluateBoolean(value: boolean | string | null): boolean | null {\r\n return this.programmability.evaluateBoolean(this.formGroup, value);\r\n }\r\n\r\n private valueChangesSubscription: Subscription | null = null;\r\n private onCommandSubscription: Subscription | null = null;\r\n\r\n private _forms: Array<any> = [];\r\n\r\n private _activeNav: number = 0;\r\n\r\n private defaultValue: any = { };\r\n\r\n private getNext(): number {\r\n let index = this.activeNav + 1;\r\n const max = this.getMaxNav();\r\n\r\n while (index < max) {\r\n if (!this.isDisabled(index)) {\r\n return index;\r\n }\r\n index++;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n private getPrevious(): number {\r\n let index = this.activeNav - 1;\r\n\r\n while (index >= 0) {\r\n if (!this.isDisabled(index)) {\r\n return index;\r\n }\r\n index--;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n private getMaxNav(): number {\r\n return this._forms.length ?? 0; \r\n };\r\n\r\n private isDisabled(index: number): boolean {\r\n var form = this._forms[index];\r\n\r\n if (!form)\r\n return false;\r\n\r\n return this.evaluateBoolean(form.disabled) ?? false;\r\n }\r\n \r\n private clearControls(): void {\r\n Object.keys(this.formGroup.controls).forEach(key => {\r\n this.formGroup.removeControl(key);\r\n });\r\n }\r\n\r\n private registerHandlers(): void {\r\n this.valueChangesSubscription = this.formGroup.valueChanges.subscribe((value) => {\r\n this.internalChange = true;\r\n this.valueChange.emit(value);\r\n });\r\n\r\n this.onCommandSubscription = this.events.onCommand.subscribe((data) => {\r\n if (this.onCommand)\r\n this.onCommand.emit(data);\r\n });\r\n };\r\n\r\n private clearHandlers(): void {\r\n if (this.valueChangesSubscription) {\r\n this.valueChangesSubscription.unsubscribe();\r\n }\r\n\r\n if (this.onCommandSubscription) {\r\n this.onCommandSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n private buildForm() {\r\n this.forms.forEach((form: any) => {\r\n const currentGroup = this.applyPath(this.fb, this.formGroup, form.path);\r\n form.rows?.forEach((row: any) => {\r\n this.addControls(this.fb, currentGroup, row.components);\r\n });\r\n });\r\n }\r\n\r\n private addControls(formBuilder: FormBuilder, formGroup: FormGroup, components: Array<any>) {\r\n let formComponent = this;\r\n\r\n components?.forEach((component: any) => {\r\n if (this.isFormComponent(component)) {\r\n let defaultValue = this.getDefaultValue(component);\r\n const validators = this.getValidators(formGroup, component);\r\n const options: FormControlOptions = {\r\n validators: validators || [],\r\n updateOn: this.getUpdateOn(component) || \"change\"\r\n };\r\n const control = formBuilder.control(defaultValue, options);\r\n formGroup.addControl(component.key, control);\r\n }\r\n else if (this.isContainerComponent(component)) {\r\n const containers = this.getContainers(component);\r\n containers?.forEach((container: { path: any; rows: any }) => {\r\n const currentGroup = this.applyPath(formBuilder, formGroup, container.path);\r\n container.rows?.forEach((row: any) => {\r\n formComponent.addControls(formBuilder, currentGroup, row.components);\r\n });\r\n });\r\n }\r\n else if (this.isArrayComponent(component)) {\r\n const itemComponent = this.getArrayItem(component);\r\n\r\n if (itemComponent.path) {\r\n let formArray = formBuilder.array<FormGroup>([]);\r\n\r\n formGroup.addControl(itemComponent.path, formArray);\r\n\r\n (formArray as any).addNewItem = function (): FormGroup {\r\n let newGroup = formBuilder.group({});\r\n itemComponent.rows?.forEach((row: any) => {\r\n formComponent.addControls(formBuilder, newGroup, row.components);\r\n });\r\n formArray.push(newGroup);\r\n return newGroup;\r\n };\r\n }\r\n }\r\n });\r\n }\r\n\r\n private applyPath(formBuilder: FormBuilder, formGroup: FormGroup, path: string) {\r\n if (!path) {\r\n return formGroup;\r\n }\r\n let currentGroup: FormGroup = formGroup;\r\n this.splitPath(path).forEach((segment) => {\r\n const existGroup = currentGroup.get(segment);\r\n if (existGroup instanceof FormGroup) {\r\n currentGroup = existGroup;\r\n return;\r\n }\r\n else if (existGroup) {\r\n throw new Error(`Cannot create form group because an element with path ${segment} already exists`);\r\n }\r\n else {\r\n const segmentGroup = formBuilder.group({});\r\n currentGroup.addControl(segment, segmentGroup);\r\n currentGroup = segmentGroup;\r\n } \r\n });\r\n return currentGroup;\r\n }\r\n\r\n private getValidators(formGroup: FormGroup, component: any): ValidatorFn[] | null {\r\n\r\n const validators: ValidatorFn[] = [];\r\n\r\n if (component?.validate?.required === true) {\r\n validators.push(Validators.required);\r\n }\r\n\r\n if (!Array.isArray(component.validations)) {\r\n if (validators.length == 0)\r\n return null;\r\n return validators;\r\n }\r\n\r\n component.validations?.forEach((item: any) => {\r\n if (!this.programmability.isExpression(item.expression))\r\n return;\r\n\r\n if (item.type === \"validate\") {\r\n validators.push(this.validateFn(formGroup, item));\r\n }\r\n else if (item.type === \"invalidate\") {\r\n validators.push(this.invalidateFn(formGroup, item));\r\n } \r\n });\r\n\r\n if (validators.length == 0)\r\n return null;\r\n\r\n return validators;\r\n }\r\n\r\n private validateFn(formGroup: FormGroup, item: any): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n\r\n //if (!control.touched)\r\n // return null;\r\n\r\n var valid = this.programmability.evaluateUnary(formGroup, item.expression, control.value);\r\n\r\n if (!valid) {\r\n return { error: true, message: item.message };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n private invalidateFn(formGroup: FormGroup, item: any): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n\r\n //if (!control.touched)\r\n // return null;\r\n\r\n var invalid = this.programmability.evaluateUnary(formGroup, item.expression, control.value);\r\n\r\n if (invalid) {\r\n return { error: true, message: item.message };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n private isFormComponent(component: any): boolean {\r\n switch (component.type) {\r\n case \"checkbox\":\r\n case \"checklist\":\r\n case \"datetime\":\r\n case \"filepicker\":\r\n case \"number\":\r\n case \"radio\":\r\n case \"select\":\r\n case \"taglist\":\r\n case \"textarea\":\r\n case \"textfield\":\r\n case \"range\":\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private isContainerComponent(component: any): boolean {\r\n switch (component.type) {\r\n case \"group\":\r\n case \"tab\":\r\n case \"accordion\":\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private isArrayComponent(component: any): boolean {\r\n switch (component.type) {\r\n case \"dynamiclist\":\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n \r\n private getArrayItem(component: any): { path: any; rows: any } {\r\n if (component.type === 'dynamiclist') {\r\n return { path: component.path, rows: component.rows };\r\n }\r\n else {\r\n return { path: null, rows: [] };\r\n }\r\n }\r\n\r\n private getContainers(component: any): { path: any; rows: any }[] {\r\n if (component.type === 'group') {\r\n return [{ path: component.path, rows: component.rows }];\r\n }\r\n else if (component.type === 'tab'\r\n || component.type === 'accordion') {\r\n return component.panels.map((panel: any) => ({\r\n path: panel.path,\r\n rows: this.metadata.getFormByName(panel.template)?.rows ?? []\r\n }));\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n\r\n private getUpdateOn(component: any): any {\r\n switch (component.type) {\r\n case \"number\":\r\n case \"textarea\":\r\n case \"textfield\":\r\n return \"blur\";\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private getDefaultValue(component: any): any {\r\n switch (component.type) {\r\n case \"textarea\":\r\n case \"textfield\":\r\n case \"radio\":\r\n case \"select\":\r\n return component.defaultValue as string;\r\n case \"number\":\r\n return component.defaultValue as number;\r\n case \"checkbox\":\r\n return component.defaultValue as boolean;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private splitPath(path: string): string[] {\r\n if (!path) {\r\n return [];\r\n }\r\n return path\r\n .split('.')\r\n .map(segment => segment.trim())\r\n .filter(segment => segment.length > 0);\r\n }\r\n\r\n private hasValue(value: string | null): boolean {\r\n return value != null && value.trim().length > 0;\r\n }\r\n}\r\n","<form [formGroup]=\"formGroup\" class=\"ngs\">\r\n\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n\r\n <!-- #region progress -->\r\n <ngx-sirio-stepper-progress-bar *ngIf=\"showProgress\"\r\n (eventClick)=\"activateForm($event.data.label)\"\r\n [hasDropdown]=\"true\"\r\n [dropDownLabel]=\"Texts.Show\">\r\n <ng-container *ngFor=\"let form of forms, let formIndex = index\">\r\n <ngx-sirio-stepper-progress-item *ngIf=\"!evaluateBoolean(form.disabled)\"\r\n [hasNavigation]=\"true\"\r\n [status]=\"getFormStatus(form,formIndex)\"\r\n [label]=\"form.title\" />\r\n </ng-container>\r\n </ngx-sirio-stepper-progress-bar>\r\n <!-- #endregion -->\r\n\r\n <!-- #region form disable -->\r\n <ng-container *ngFor=\"let form of forms\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(form.disabled),\r\n formGroup: formGroup,\r\n path: form.path\r\n }\">\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <ng-container *ngIf=\"showNav\">\r\n\r\n <div class=\"col-md-4\">\r\n\r\n <!-- #region sidenav -->\r\n <ng-template #sidenavTemplate>\r\n <ngx-sirio-sidenav>\r\n <ng-container *ngFor=\"let form of forms, let sectionIndex = index\">\r\n <ng-container *ngIf=\"!evaluateBoolean(form.disabled)\">\r\n <ngx-sirio-sidenav-item [isActive]=\"activeNav == sectionIndex\" (click)=\"activeNav = sectionIndex\">\r\n {{ form.title }}\r\n </ngx-sirio-sidenav-item>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-sirio-sidenav>\r\n </ng-template>\r\n\r\n <ngx-sirio-sidenav-mobile class=\"d-block d-lg-none\"\r\n openMenuLabel=\"Apri Menu\"\r\n openMenuAriaLabel=\"Apri Menu\"\r\n closeMenuLabel=\"Chiudi Menu\"\r\n closeMenuAriaLabel=\"Chiudi Menu\">\r\n <ng-container *ngTemplateOutlet=\"sidenavTemplate\"></ng-container>\r\n </ngx-sirio-sidenav-mobile>\r\n <div class=\"d-none d-lg-block\">\r\n <ng-container *ngTemplateOutlet=\"sidenavTemplate\"></ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n </div>\r\n\r\n <div class=\"col-md-1\">\r\n <div class=\"separator-horizontal\"></div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n <div class=\"content-element-form\" [ngClass]=\"showNav ? 'col-md-11' : 'col-md-16'\">\r\n\r\n <ng-container *ngFor=\"let form of forms, let sectionIndex = index\">\r\n <div *ngIf=\"activeNav == sectionIndex && !evaluateBoolean(form.disabled)\"\r\n #default\r\n [register]=\"form\"\r\n [componentRef]=\"default\">\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(form.path)\" [rows]=\"form.rows\"></app-dynamic-fields>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"showNavButton\">\r\n\r\n <div class=\"row section-navs\">\r\n <div class=\"col-8 col-md-8\">\r\n <ngx-sirio-button [color]=\"null\" [disabled]=\"!canNext()\" (click)=\"goNext()\" class=\"nextSection\">\r\n {{ Texts.NextSection }}\r\n <span class=\"fa-solid fa-chevron-right\" style=\"margin-left: 10px\"></span>\r\n </ngx-sirio-button>\r\n </div>\r\n <div class=\"col-8 col-md-8\">\r\n <ngx-sirio-button [color]=\"null\" [disabled]=\"!canPrevious()\" (click)=\"goPrevious()\" class=\"prevSection\">\r\n <span class=\"fa-solid fa-chevron-left\" style=\"margin-right: 10px\"></span>\r\n {{ Texts.PreviousSection }}\r\n </ngx-sirio-button>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n</form>\r\n\r\n\r\n\r\n","export function extractFiles(data: any)\r\n : { data: any; files: File[] }\r\n{\r\n let files: File[] = [];\r\n\r\n const rewrite = (obj: any): any => {\r\n if (Array.isArray(obj)) {\r\n return obj.map(item => rewrite(item));\r\n }\r\n else if (obj instanceof File) {\r\n files.push(obj);\r\n return {\r\n name: obj.name,\r\n size: obj.size,\r\n type: obj.type,\r\n lastModified: obj.lastModified,\r\n _fileIndex: files.length - 1\r\n };\r\n }\r\n else if (typeof obj === 'object' && obj !== null) {\r\n const rewritten: any = {};\r\n for (const key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n rewritten[key] = rewrite(obj[key]);\r\n }\r\n }\r\n return rewritten;\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n return { data: rewrite(data), files: files };\r\n}\r\n","import { extractFiles } from \"./extractFiles\";\r\n\r\nexport function toFormData(data: any): FormData\r\n{\r\n const formData = new FormData();\r\n\r\n var result = extractFiles(data);\r\n\r\n formData.append(\"data\", JSON.stringify(result.data));\r\n \r\n result.files.forEach((file) => {\r\n formData.append(\"files\", file);\r\n });\r\n\r\n return formData;\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { IGetRowsParams } from 'ag-grid-community';\r\nimport { IRowsSource } from './interfaces';\r\n\r\nexport class ODataSource implements IRowsSource {\r\n constructor(private url: string\r\n , private http: HttpClient) {\r\n }\r\n\r\n getRows(params: IGetRowsParams) {\r\n const queryString = this.getQueryString(params);\r\n\r\n let queryUrl = `${this.url}${queryString}`\r\n\r\n this.http.get<any>(queryUrl, { observe: 'response' }).subscribe({\r\n next: response => {\r\n const data = response.body ?? [];\r\n const count = response.headers.get('X-Total-Count');\r\n params.successCallback(data, this.toNumber(count));\r\n },\r\n error: error => {\r\n console.log(error);\r\n params.failCallback();\r\n }\r\n });\r\n }\r\n\r\n private getQueryString(params: IGetRowsParams): string {\r\n let queryParams = new HttpParams();\r\n queryParams = this.addCount(queryParams);\r\n queryParams = this.addSkipAndTake(params, queryParams);\r\n queryParams = this.addOrderBy(params, queryParams);\r\n queryParams = this.addFilterBy(params, queryParams);\r\n\r\n const queryString = queryParams.toString();\r\n return queryString ? \"?\" + queryString : queryString;\r\n }\r\n\r\n private addCount(queryParams: HttpParams): HttpParams {\r\n return queryParams.set(\"$count\", \"true\");\r\n }\r\n\r\n private addSkipAndTake(params: IGetRowsParams, queryParams: HttpParams): HttpParams {\r\n return queryParams\r\n .set(\"$top\", `${params.endRow - params.startRow}`)\r\n .set(\"$skip\", `${params.startRow}`);\r\n }\r\n\r\n private addOrderBy(params: IGetRowsParams, queryParams: HttpParams): HttpParams {\r\n if (!params.sortModel || params.sortModel.length === 0) {\r\n return queryParams;\r\n }\r\n\r\n const orderByParams = params.sortModel\r\n .map(sort => `${sort.colId} ${sort.sort}`)\r\n .join(\",\");\r\n\r\n return queryParams.set(\"$orderby\", orderByParams);\r\n }\r\n\r\n private addFilterBy(params: IGetRowsParams, queryParams: HttpParams): HttpParams {\r\n\r\n const filterModel = params.filterModel;\r\n\r\n if (!filterModel || Object.keys(filterModel).length === 0) {\r\n return queryParams;\r\n }\r\n\r\n const filters: string[] = [];\r\n\r\n for (const column in filterModel) {\r\n const filter = filterModel[column];\r\n\r\n const condition = this.getCondition(column, filter);\r\n\r\n if (condition) {\r\n filters.push(condition);\r\n }\r\n }\r\n\r\n return queryParams.set(\"$filter\", filters.join(\" and \"));\r\n }\r\n\r\n private getCondition(column: string, filter: any): string | null {\r\n\r\n if (filter.operator === \"AND\" || filter.operator === \"OR\") {\r\n if (Array.isArray(filter.conditions)) {\r\n return \"(\" + filter.conditions.map((subfilter: any) => this.getCondition(column, subfilter))\r\n .join(` ${filter.operator.toLowerCase()} `) + \")\";\r\n }\r\n return null;\r\n }\r\n\r\n const value = filter.filter;\r\n\r\n switch (filter.filterType) {\r\n case \"text\":\r\n const text = (value ?? \"\").replace(/'/g, \"''\");\r\n if (filter.type === \"contains\") {\r\n return `contains(${column}, '${text}')`;\r\n } else if (filter.type === \"notContains\") {\r\n return `not contains(${column}, '${text}')`;\r\n } else if (filter.type === \"equals\") {\r\n return `${column} eq '${text}'`;\r\n } else if (filter.type === \"notEqual\") {\r\n return `${column} ne '${text}'`;\r\n } else if (filter.type === \"startsWith\") {\r\n return `startswith(${column}, '${text}')`;\r\n } else if (filter.type === \"endsWith\") {\r\n return `endswith(${column}, '${text}')`;\r\n } else if (filter.type === \"blank\") {\r\n return `${column} eq null`;\r\n } else if (filter.type === \"notBlank\") {\r\n return `${column} ne null`;\r\n }\r\n break;\r\n\r\n case \"number\":\r\n if (filter.type === \"equals\") {\r\n return `${column} eq ${value}`;\r\n } else if (filter.type === \"greaterThan\") {\r\n return `${column} gt ${value}`;\r\n } else if (filter.type === \"lessThan\") {\r\n return `${column} lt ${value}`;\r\n } else if (filter.type === \"greaterThanOrEqual\") {\r\n return `${column} ge ${value}`;\r\n } else if (filter.type === \"lessThanOrEqual\") {\r\n return `${column} le ${value}`;\r\n }\r\n break;\r\n\r\n case \"date\":\r\n return `${column} eq ${value}`; // Modifica se OData usa formati ISO\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private toNumber(value: string | null): number | undefined {\r\n if (!value)\r\n return undefined;\r\n const num = parseFloat(value);\r\n return isNaN(num) ? undefined : num;\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport class RestDataSource<T, T2 = T> {\r\n private params: Record<string, any> = {};\r\n private mapFn?: (data: T) => T2;\r\n\r\n constructor(private http: HttpClient\r\n , private baseUrl: string) { }\r\n\r\n setParam(key: string, value: any): RestDataSource<T, T2> {\r\n if (value !== undefined && value !== null) {\r\n this.params[key] = value;\r\n } else {\r\n delete this.params[key];\r\n }\r\n return this;\r\n }\r\n\r\n setParams(params: Record<string, any>): RestDataSource<T, T2> {\r\n this.params = { ...params };\r\n return this;\r\n }\r\n\r\n setMapFunction(mapFn: (data: T) => T2): RestDataSource<T, T2> {\r\n this.mapFn = mapFn;\r\n return this;\r\n }\r\n\r\n getMapFunction(): ((data: T) => T2) | undefined {\r\n return this.mapFn;\r\n }\r\n\r\n getParam(key: string): any {\r\n return this.params[key];\r\n }\r\n\r\n getParams(): Record<string, any> {\r\n return this.params;\r\n }\r\n\r\n getData(): Observable<T2[]> {\r\n let httpParams = new HttpParams();\r\n\r\n Object.keys(this.params).forEach(key => {\r\n if (this.params[key] !== undefined && this.params[key] !== null) {\r\n httpParams = httpParams.set(key, this.params[key].toString());\r\n }\r\n });\r\n\r\n return this.http.get<T[]>(this.baseUrl, { params: httpParams }).pipe(\r\n map(responseArray =>\r\n this.mapFn ? responseArray.map(item => this.mapFn!(item)) : responseArray as unknown as T2[]\r\n )\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ODataSource } from '../dataSources/odata';\r\nimport { RestDataSource } from '../dataSources/rest';\r\nimport { IRowsSource } from '../dataSources/interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataService {\r\n\r\n constructor(\r\n private http: HttpClient)\r\n { }\r\n\r\n queryOData(url: string): IRowsSource {\r\n return this.createOData(url);\r\n }\r\n\r\n createRest(url: string): RestDataSource<any, any>;\r\n createRest<T>(url: string): RestDataSource<T, T>;\r\n createRest<T, T2>(url: string): RestDataSource<T, T2>;\r\n createRest<T = any, T2 = T>(url: string): RestDataSource<T, T2> {\r\n return new RestDataSource<T, T2>(this.http, url);\r\n }\r\n\r\n private createOData(url: string): IRowsSource {\r\n return new ODataSource(url, this.http);\r\n }\r\n\r\n}\r\n","/*\r\n * Public API Surface of sirio\r\n */\r\n\r\nexport * from './lib/dynamic-form/dynamic-form.component';\r\n\r\nexport * from './lib/utils/toFormData';\r\n\r\nexport * from './lib/services/data.service';\r\nexport * from './lib/services/scope.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["evaluateTemplate","evaluate","i1.ProxyService","i1.FeelService","i2.WeakService","i3.ProxyService","i4.ToastService","i5.RegisterService","i6.ScopeService","FormControl","i1","takeUntil","i1.RegisterService","i2.ProxyService","i1.ProgrammabilityService","i1.SanitizeService","i2.MarkdownService","i3.MimeService","i4.ProgrammabilityService","i5.EventService","i6.FormatterService","i7.WeakService","i8.RegisterService","i9.MetadataService","i11","i2.ProgrammabilityService","i3.EventService","i4.RegisterService","i5.MetadataService","i6"],"mappings":"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"}
1
+ {"version":3,"file":"wemake4u-form-player-se.mjs","sources":["../../../projects/ngx-sirio/src/lib/services/proxy.service.ts","../../../projects/ngx-sirio/src/lib/services/feel.service.ts","../../../projects/ngx-sirio/src/lib/services/weak.service.ts","../../../projects/ngx-sirio/src/lib/services/toast.service.ts","../../../projects/ngx-sirio/src/lib/services/register.service.ts","../../../projects/ngx-sirio/src/lib/services/scope.service.ts","../../../projects/ngx-sirio/src/lib/services/programmability.service.ts","../../../projects/ngx-sirio/src/lib/utils/patchForm.ts","../../../projects/ngx-sirio/src/lib/utils/groupByRow.ts","../../../projects/ngx-sirio/src/lib/services/event.service.ts","../../../projects/ngx-sirio/src/lib/services/metadata.service.ts","../../../projects/ngx-sirio/src/lib/directives/adorner.directive.ts","../../../projects/ngx-sirio/src/lib/directives/disable.directive.ts","../../../projects/ngx-sirio/src/lib/directives/display.directive.ts","../../../projects/ngx-sirio/src/lib/directives/repeat.directive.ts","../../../projects/ngx-sirio/src/lib/directives/framesecurity.directive.ts","../../../projects/ngx-sirio/src/lib/directives/dropdown.directive.ts","../../../projects/ngx-sirio/src/lib/directives/tab.directive.ts","../../../projects/ngx-sirio/src/lib/directives/accordion.directive.ts","../../../projects/ngx-sirio/src/lib/directives/grid.directive.ts","../../../projects/ngx-sirio/src/lib/controls/control.ts","../../../projects/ngx-sirio/src/lib/controls/form.ts","../../../projects/ngx-sirio/src/lib/controls/textfield.ts","../../../projects/ngx-sirio/src/lib/controls/select.ts","../../../projects/ngx-sirio/src/lib/controls/taglist.ts","../../../projects/ngx-sirio/src/lib/controls/number.ts","../../../projects/ngx-sirio/src/lib/controls/date.ts","../../../projects/ngx-sirio/src/lib/controls/time.ts","../../../projects/ngx-sirio/src/lib/controls/toggle.ts","../../../projects/ngx-sirio/src/lib/controls/checkbox.ts","../../../projects/ngx-sirio/src/lib/controls/chipradio.ts","../../../projects/ngx-sirio/src/lib/controls/radio.ts","../../../projects/ngx-sirio/src/lib/controls/chipchecklist.ts","../../../projects/ngx-sirio/src/lib/controls/checklist.ts","../../../projects/ngx-sirio/src/lib/controls/textarea.ts","../../../projects/ngx-sirio/src/lib/controls/filepicker.ts","../../../projects/ngx-sirio/src/lib/controls/text.ts","../../../projects/ngx-sirio/src/lib/controls/html.ts","../../../projects/ngx-sirio/src/lib/controls/image.ts","../../../projects/ngx-sirio/src/lib/controls/tab.ts","../../../projects/ngx-sirio/src/lib/controls/accordion.ts","../../../projects/ngx-sirio/src/lib/controls/dynamiclist.ts","../../../projects/ngx-sirio/src/lib/controls/group.ts","../../../projects/ngx-sirio/src/lib/controls/table.ts","../../../projects/ngx-sirio/src/lib/controls/button.ts","../../../projects/ngx-sirio/src/lib/controls/separator.ts","../../../projects/ngx-sirio/src/lib/controls/spacer.ts","../../../projects/ngx-sirio/src/lib/controls/iframe.ts","../../../projects/ngx-sirio/src/lib/controls/tooltip.ts","../../../projects/ngx-sirio/src/lib/controls/factory.ts","../../../projects/ngx-sirio/src/lib/directives/register.directive.ts","../../../projects/ngx-sirio/src/lib/directives/updateblur.directive.ts","../../../projects/ngx-sirio/src/lib/directives/date.directive.ts","../../../projects/ngx-sirio/src/lib/directives/number.directive.ts","../../../projects/ngx-sirio/src/lib/directives/text.directive.ts","../../../projects/ngx-sirio/src/lib/directives/disableform.directive.ts","../../../projects/ngx-sirio/src/lib/directives/tabcontrol.directive.ts","../../../projects/ngx-sirio/src/lib/locale/locale-it.ts","../../../projects/ngx-sirio/src/lib/directives/collapse.directive.ts","../../../projects/ngx-sirio/src/lib/directives/accordionpanel.directive.ts","../../../projects/ngx-sirio/src/lib/shared/template-wrapper/template-wrapper.component.ts","../../../projects/ngx-sirio/src/lib/utils/gridCells.ts","../../../projects/ngx-sirio/src/lib/utils/cell-templates/objectUrl.component.html","../../../projects/ngx-sirio/src/lib/utils/cell-templates/delete.component.html","../../../projects/ngx-sirio/src/lib/utils/cell-templates/actions.component.html","../../../projects/ngx-sirio/src/lib/utils/gridUtils.ts","../../../projects/ngx-sirio/src/lib/services/sanitize.service.ts","../../../projects/ngx-sirio/src/lib/services/markdown.service.ts","../../../projects/ngx-sirio/src/lib/services/mime.service.ts","../../../projects/ngx-sirio/src/lib/services/formatter.service.ts","../../../projects/ngx-sirio/src/lib/dynamic-fields/dynamic-fields.component.ts","../../../projects/ngx-sirio/src/lib/dynamic-fields/dynamic-fields.component.html","../../../projects/ngx-sirio/src/lib/dynamic-form/dynamic-form.component.ts","../../../projects/ngx-sirio/src/lib/dynamic-form/dynamic-form.component.html","../../../projects/ngx-sirio/src/lib/utils/extractFiles.ts","../../../projects/ngx-sirio/src/lib/utils/toFormData.ts","../../../projects/ngx-sirio/src/lib/dataSources/odata.ts","../../../projects/ngx-sirio/src/lib/dataSources/rest.ts","../../../projects/ngx-sirio/src/lib/services/data.service.ts","../../../projects/ngx-sirio/src/public-api.ts","../../../projects/ngx-sirio/src/wemake4u-form-player-se.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\nconst IS_PROXY = Symbol(\"__isProxy$\");\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProxyService {\r\n\r\n constructor() { }\r\n\r\n getProxy(instance: any, options: ProxyOptions | null = null): any {\r\n return this.createProxy(instance, true, options);\r\n }\r\n\r\n private createProxy(instance: any, root: boolean\r\n , options: ProxyOptions | null = null): any {\r\n\r\n if (!instance) {\r\n return instance;\r\n }\r\n\r\n return new Proxy(instance, {\r\n get: (target: any, property) => {\r\n\r\n if (property === IS_PROXY) {\r\n return true;\r\n }\r\n\r\n let value = undefined;\r\n\r\n if (root && options && options.extend && property in options.extend) {\r\n value = Reflect.get(options.extend, property, target);\r\n }\r\n else if (options && options.isCustom && options.getCustom && options.isCustom(target, property, root)) {\r\n value = options.getCustom(target, property, root);\r\n }\r\n else if (property in target) {\r\n value = Reflect.get(target, property, target); \r\n }\r\n\r\n if (options?.log) {\r\n console.log(target, property, value);\r\n }\r\n\r\n if (this.isProxy(value))\r\n return value;\r\n\r\n if (typeof value === 'function') {\r\n return this.createFunction(value, target);\r\n }\r\n else if (typeof value === 'object' && value !== null) {\r\n return this.createProxy(value, false, options);\r\n }\r\n\r\n return value;\r\n },\r\n set: (target, property, value) => {\r\n if (options && options.canSet && !options.canSet(target, property, root)) {\r\n return false;\r\n }\r\n else {\r\n return Reflect.set(target, property, value, target);\r\n } \r\n },\r\n deleteProperty: (target, property) => {\r\n if (options && options.canDelete && !options.canDelete(target, property, root)) {\r\n return false;\r\n }\r\n else if (property in target) {\r\n return delete target[property];\r\n }\r\n else {\r\n return false;\r\n }\r\n },\r\n has: (target, property) => {\r\n if (root && options && options.extend && property in options.extend) {\r\n return true;\r\n }\r\n else if (options && options.isCustom && options.isCustom(target, property, root)) {\r\n return true;\r\n }\r\n else if (property in target) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n private createFunction(fn: Function, target: any): Function {\r\n return (...args: any) => {\r\n return fn.bind(target)(...args);\r\n };\r\n }\r\n\r\n private isProxy(obj: any): boolean {\r\n return obj && obj[IS_PROXY] === true; \r\n }\r\n}\r\n\r\ntype ProxyQuery = (target: any, property: string | symbol, root: boolean) => boolean;\r\n\r\ntype ProxyGetter = (target: any, property: string | symbol, root: boolean) => any;\r\n\r\nexport class ProxyOptions {\r\n private _canDelete: ProxyQuery = () => true;\r\n private _canSet: ProxyQuery = () => true;\r\n private _isCustom: ProxyQuery = () => false;\r\n private _getCustom: ProxyGetter = () => undefined;\r\n private _extend: Record<string, any> = () => undefined;\r\n\r\n set extend(fn: Record<string, any>) {\r\n this._extend = fn;\r\n }\r\n\r\n get extend(): Record<string, any> {\r\n return this._extend;\r\n }\r\n\r\n\r\n set canDelete(fn: ProxyQuery) {\r\n this._canDelete = fn;\r\n }\r\n\r\n get canDelete(): ProxyQuery {\r\n return this._canDelete;\r\n }\r\n\r\n\r\n set canSet(fn: ProxyQuery) {\r\n this._canSet = fn;\r\n }\r\n\r\n get canSet(): ProxyQuery {\r\n return this._canSet;\r\n }\r\n\r\n\r\n set isCustom(fn: ProxyQuery) {\r\n this._isCustom = fn;\r\n }\r\n\r\n get isCustom(): ProxyQuery {\r\n return this._isCustom;\r\n }\r\n\r\n\r\n set getCustom(fn: ProxyGetter) {\r\n this._getCustom = fn;\r\n }\r\n\r\n get getCustom(): ProxyGetter {\r\n return this._getCustom;\r\n }\r\n\r\n\r\n public log: boolean = false;\r\n}\r\n\r\nexport type ProxyConfigFn = (options: ProxyOptions) => void;\r\n","import { Injectable } from '@angular/core';\r\nimport { evaluate as evaluateTemplate } from 'feelers';\r\nimport { unaryTest, evaluate, parseExpression } from 'feelin';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FeelService {\r\n\r\n constructor() { }\r\n\r\n evalTemplate(template: string, context: any = {}): string {\r\n return evaluateTemplate(template, context);\r\n };\r\n\r\n evalExpression(expression: string, context: Record<string, any> = {}): any {\r\n return evaluate(expression, context);\r\n };\r\n\r\n evalUnaryTest(expression: string, context: Record<string, any> = {}, input: any = null): boolean {\r\n try {\r\n context['?'] = input;\r\n return unaryTest(expression, context);\r\n } \r\n finally {\r\n delete context['?'];\r\n }\r\n };\r\n\r\n getDependencies(expression: string, context: Record<string, any> = {}): (string | string[])[] {\r\n const dependencies: (string | string[])[] = [];\r\n const uniqueSet = new Set<string>();\r\n const addSet = (text: string) => {\r\n if (uniqueSet.has(text)) {\r\n return false;\r\n }\r\n else {\r\n uniqueSet.add(text);\r\n return true;\r\n } \r\n };\r\n parseExpression(expression, context).iterate({\r\n enter: (node: any) => {\r\n if (node.name === 'VariableName') {\r\n const text = expression.substring(node.from, node.to);\r\n if (addSet(text)) {\r\n dependencies.push(text);\r\n } \r\n }\r\n else if (node.name === 'PathExpression') {\r\n const text = expression.substring(node.from, node.to);\r\n if (addSet(text)) {\r\n const path: string[] = [];\r\n node.iterate((subnode: any) => {\r\n if (subnode.name === 'VariableName') {\r\n const part = expression.substring(subnode.from, subnode.to);\r\n path.push(part);\r\n }\r\n });\r\n dependencies.push(path);\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n });\r\n return dependencies;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { isObservable, of } from 'rxjs';\r\nimport { shareReplay } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WeakService {\r\n\r\n constructor() { }\r\n\r\n private cache = new WeakMap<object, Record<string, any>>();\r\n\r\n exists(source: object, key: string) {\r\n if (this.cache.has(source)) {\r\n const cachedObject = this.cache.get(source)!;\r\n return (key in cachedObject);\r\n }\r\n return false;\r\n }\r\n\r\n call<T>(source: object, key: string, func: () => T\r\n , reusable: ((value: T) => boolean) | null = null\r\n , store: ((value: T) => any) | null = null\r\n ): T {\r\n if (!this.cache.has(source)) {\r\n this.cache.set(source, {});\r\n }\r\n\r\n const cachedObject = this.cache.get(source)!;\r\n\r\n if (key in cachedObject\r\n && (reusable == null\r\n || reusable(cachedObject[key])))\r\n {\r\n return cachedObject[key];\r\n }\r\n\r\n let result: any = func();\r\n\r\n if (store != null) {\r\n result = store(result);\r\n }\r\n\r\n const observable = isObservable(result);\r\n\r\n if (observable) {\r\n result = result.pipe(shareReplay(1));\r\n\r\n const subscription = result\r\n .subscribe({\r\n next: (result: any) => {\r\n subscription.unsubscribe();\r\n cachedObject[key] = of(result);\r\n },\r\n error: (error : any) => console.error(error),\r\n complete: () => console.log('Observable complete')\r\n });\r\n }\r\n\r\n cachedObject[key] = result;\r\n\r\n return result;\r\n }\r\n\r\n invalidate(source: object, key: string) {\r\n if (this.cache.has(source)) {\r\n const cachedObject = this.cache.get(source)!;\r\n delete cachedObject[key];\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SirioToastService, ToastTypes } from \"ngx-sirio-lib\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToastService {\r\n\r\n constructor(\r\n private sirioToast: SirioToastService\r\n ) { }\r\n\r\n notifyInfo(message: string, delay: number = 2000) {\r\n this.notify(message, \"info\", delay);\r\n }\r\n\r\n notifySuccess(message: string, delay: number = 2000) {\r\n this.notify(message, \"success\", delay);\r\n }\r\n\r\n notifyWarning(message: string, delay: number = 2000) {\r\n this.notify(message, \"warning\", delay);\r\n }\r\n\r\n notifyError(message: string, delay: number = 2000) {\r\n this.notify(message, \"danger\", delay);\r\n }\r\n\r\n private notify(message: string, type: ToastTypes, delay: number = 2000) {\r\n this.sirioToast.openToast({\r\n delay: delay,\r\n text: message,\r\n type: type\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\r\nimport { Control } from '../controls/control';\r\nimport { ProxyService, ProxyOptions } from '../services/proxy.service';\r\n\r\n@Injectable()\r\nexport class RegisterService {\r\n\r\n constructor(\r\n private proxyService: ProxyService\r\n , @Optional() @SkipSelf() private parent: RegisterService | null)\r\n {\r\n }\r\n\r\n private controls: Record<string, Control> = {};\r\n\r\n register(name: string, control: Control) {\r\n this.controls[name] = control;\r\n }\r\n\r\n unregister(name: string) {\r\n delete this.controls[name];\r\n }\r\n\r\n unregisterAll() {\r\n this.controls = { };\r\n }\r\n\r\n getControl(name: string) : Control | undefined {\r\n return this.controls[name];\r\n }\r\n\r\n getControls() : Control[] {\r\n return Object.values(this.controls);\r\n }\r\n\r\n proxy(): any {\r\n\r\n const parentName: string = \"parent\";\r\n\r\n const options = new ProxyOptions();\r\n\r\n options.isCustom = (target, property, root) => {\r\n return root || (property === parentName);\r\n };\r\n\r\n options.getCustom = (target, property, root) => {\r\n if (property === parentName) {\r\n return this.parent?.proxy();\r\n }\r\n return this.resolve(property.toString());\r\n };\r\n\r\n options.canDelete = () => false;\r\n\r\n options.canSet = () => false;\r\n\r\n return this.proxyService.getProxy(this.controls, options);\r\n }\r\n\r\n private resolve(name: string): Control | undefined {\r\n const result = this.controls[name];\r\n\r\n if (result)\r\n return result;\r\n\r\n return this.parent?.resolve(name);\r\n }\r\n}\r\n","import { Injectable, Optional, SkipSelf } from '@angular/core';\r\nimport { ProxyService, ProxyOptions } from '../services/proxy.service';\r\n\r\n@Injectable()\r\nexport class ScopeService {\r\n\r\n constructor(\r\n private proxyService: ProxyService,\r\n @Optional() @SkipSelf() private parent: ScopeService | null) {\r\n }\r\n\r\n private scope: Record<string, any> | null = null;\r\n\r\n set(scope: Record<string, any>) {\r\n this.scope = scope;\r\n }\r\n\r\n get(): any {\r\n return this.scope; \r\n }\r\n\r\n proxy(): any {\r\n\r\n const parentName: string = \"parent\";\r\n\r\n const options = new ProxyOptions();\r\n\r\n options.isCustom = (target, property, root) => {\r\n return root && (property === parentName);\r\n };\r\n\r\n options.getCustom = (target, property, root) => {\r\n return this.parent?.proxy();\r\n };\r\n\r\n options.canDelete = (target, property, root) => {\r\n return !(root && property === parentName);\r\n };\r\n\r\n options.canSet = (target, property, root) => {\r\n return !(root && property === parentName);\r\n };\r\n\r\n return this.proxyService.getProxy(this.scope ?? {}, options);\r\n } \r\n}\r\n","import { Injectable, OnDestroy, Optional } from '@angular/core';\r\nimport { AbstractControl, FormArray, FormGroup } from '@angular/forms';\r\nimport { FeelService } from '../services/feel.service';\r\nimport { ScopeService } from '../services/scope.service';\r\nimport { ProxyService, ProxyOptions, ProxyConfigFn } from '../services/proxy.service';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { ToastService } from '../services/toast.service';\r\nimport { WeakService } from '../services/weak.service';\r\nimport { Subject, takeUntil } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class ProgrammabilityService implements OnDestroy {\r\n\r\n constructor(private feelService: FeelService\r\n , private weakService: WeakService\r\n , private proxyService: ProxyService\r\n , private toastService: ToastService\r\n , @Optional() private register: RegisterService\r\n , @Optional() private scope: ScopeService\r\n ) { }\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n isExpression(text: string | null): boolean {\r\n return text != null && text.startsWith(\"=\");\r\n };\r\n\r\n getExpression(text: string | null): string {\r\n if (this.isExpression(text))\r\n return text!.substring(1);\r\n return \"\";\r\n };\r\n\r\n evaluateString(formGroup: FormGroup, value: string | null): string {\r\n if (this.isExpression(value)) {\r\n return this.evalExpression(formGroup, this.getExpression(value)) as string;\r\n }\r\n return value ?? \"\";\r\n }\r\n\r\n evaluateBoolean(formGroup: FormGroup, value: boolean | string | null, options: EvaluateOptions = {}): boolean | null {\r\n if (typeof value === 'boolean') {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n const strValue: string = value;\r\n if (this.isExpression(strValue)) {\r\n return this.evalExpression(formGroup, this.getExpression(strValue), options) as boolean;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n evaluateNumber(formGroup: FormGroup, value: number | string | null): number | null {\r\n if (typeof value === 'number') {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n const strValue: string = value;\r\n if (this.isExpression(strValue)) {\r\n return this.evalExpression(formGroup, this.getExpression(strValue)) as number;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n evaluate(formGroup: FormGroup, value: string | null, options: EvaluateOptions = { }): any {\r\n if (this.isExpression(value)) {\r\n return this.evalExpression(formGroup, this.getExpression(value), options);\r\n }\r\n return null;\r\n }\r\n\r\n evaluateTemplate(formGroup: FormGroup, value: string | null): any {\r\n\r\n let template: string | null = null;\r\n\r\n if (this.isExpression(value)) {\r\n template = this.evalExpression(formGroup, this.getExpression(value)) as string;\r\n }\r\n else {\r\n template = value;\r\n }\r\n\r\n return this.evalTemplate(formGroup, template ?? \"\");\r\n }\r\n\r\n evaluateUnary(formGroup: FormGroup, value: string | null, input: any): any {\r\n if (this.isExpression(value)) {\r\n return this.evalUnaryTest(formGroup, this.getExpression(value), input);\r\n }\r\n return null;\r\n }\r\n\r\n private cacheable: boolean = true;\r\n\r\n private evalUnaryTest(formGroup: FormGroup, expression: string, input: any) {\r\n try {\r\n return this.feelService.evalUnaryTest(expression\r\n , this.getContext(formGroup)\r\n , input);\r\n } catch (e) {\r\n console.log(expression, e);\r\n return null;\r\n }\r\n }\r\n\r\n private evalExpression(formGroup: FormGroup, expression: string, options: EvaluateOptions = {}): any {\r\n const evaluate = () => {\r\n try {\r\n\r\n return this.feelService.evalExpression(expression\r\n , this.getContext(formGroup, options))\r\n }\r\n catch (e) {\r\n console.log(expression, e);\r\n return null;\r\n }\r\n };\r\n\r\n const cacheable = options.cacheable ?? this.cacheable;\r\n\r\n if (cacheable) {\r\n const watchKey = `:watch(${expression})`;\r\n\r\n this.weakService.call(this, watchKey, () => {\r\n this.watchExpression(formGroup, expression\r\n , () => this.weakService.invalidate(this, expression));\r\n return true;\r\n });\r\n\r\n return this.weakService.call(this, expression, evaluate);\r\n }\r\n else {\r\n return evaluate();\r\n }\r\n }\r\n\r\n private evalTemplate(formGroup: FormGroup, expression: string): any {\r\n try {\r\n return this.feelService.evalTemplate(expression\r\n , this.getContext(formGroup));\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n private createProxy(formGroup: FormGroup | null\r\n , proxyFn: ((options: ProxyOptions) => void) | null = null): any {\r\n\r\n if (!formGroup) {\r\n return null;\r\n }\r\n\r\n const options = new ProxyOptions();\r\n\r\n options.extend = {\r\n parent: this.getParent(formGroup),\r\n getFormGroup: () => this.proxyService.getProxy(formGroup),\r\n getScope: () => this.scope ? this.scope.proxy() : null,\r\n controls: () => this.register ? this.register.proxy() : null,\r\n notifyInfo: (message: string, delay?: number) => this.toastService.notifyInfo(message, delay),\r\n notifySuccess: (message: string, delay?: number) => this.toastService.notifySuccess(message, delay),\r\n notifyWarning: (message: string, delay?: number) => this.toastService.notifyWarning(message, delay),\r\n notifyError: (message: string, delay?: number) => this.toastService.notifyError(message, delay)\r\n };\r\n\r\n if (proxyFn)\r\n proxyFn(options);\r\n \r\n return this.proxyService.getProxy(formGroup.value, options);\r\n }\r\n\r\n private getParent(formGroup: FormGroup) : FormGroup | null {\r\n let parent = formGroup.parent;\r\n\r\n while (parent instanceof FormArray) {\r\n parent = parent?.parent;\r\n }\r\n\r\n return parent as FormGroup | null;\r\n }\r\n\r\n private getContext(control: AbstractControl, options: EvaluateOptions = {}): Record<string, any> {\r\n\r\n const formGroup = control as FormGroup | null;\r\n \r\n const context = this.createProxy(formGroup, options.proxyFn) as Record<string, any>;\r\n\r\n return context;\r\n }\r\n\r\n private watchExpression(formGroup: FormGroup, expression: string, callback: () => void): void {\r\n const context = this.getContext(formGroup);\r\n const dependencies = this.feelService.getDependencies(expression, context);\r\n this.watchDependencies(formGroup, dependencies, callback);\r\n };\r\n\r\n private watchDependencies(formGroup: FormGroup, dependencies: (string | string[])[], callback: () => void): void {\r\n const parentName: string = \"parent\";\r\n\r\n const subscribe = (control: AbstractControl) => {\r\n control.valueChanges\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n setTimeout(() => {\r\n callback();\r\n });\r\n });\r\n }\r\n\r\n for (const dependence of dependencies) {\r\n if (Array.isArray(dependence)) {\r\n let targetForm: AbstractControl | null = formGroup;\r\n let controlPath = dependence;\r\n\r\n while (controlPath.length > 0 && controlPath[0] === parentName) {\r\n if (!targetForm.parent)\r\n break;\r\n targetForm = targetForm.parent;\r\n controlPath = controlPath.slice(1);\r\n }\r\n\r\n if (controlPath.length > 0 && targetForm) {\r\n const control = targetForm.get(controlPath);\r\n if (control) {\r\n subscribe(control);\r\n }\r\n }\r\n } else {\r\n const control = formGroup.get(dependence);\r\n if (control) {\r\n subscribe(control);\r\n }\r\n }\r\n } \r\n }\r\n}\r\n\r\nexport interface EvaluateOptions {\r\n cacheable?: boolean;\r\n proxyFn?: ProxyConfigFn;\r\n}\r\n","import { AbstractControl, FormGroup, FormArray, FormControl } from '@angular/forms';\r\n\r\nexport function patchForm(\r\n control: AbstractControl,\r\n value: any,\r\n options?: { emitEvent?: boolean; emitError?: boolean; emitWarn?: boolean; validateType?: boolean; fallbackValue?: any }\r\n): void {\r\n\r\n const defaultOptions = {\r\n emitEvent: true,\r\n validateType: false,\r\n fallbackValue: null\r\n };\r\n\r\n const warn = (message: string) => {\r\n if (options?.emitWarn)\r\n console.warn(`[patchForm] ${message}`)\r\n };\r\n\r\n const error = (message: string) => {\r\n if (options?.emitError)\r\n throw new Error(message);\r\n };\r\n\r\n const { emitEvent, validateType, fallbackValue }\r\n = { ...defaultOptions, ...options };\r\n\r\n if (control instanceof FormControl) {\r\n if (validateType && typeof value !== typeof control.value) {\r\n warn(`Value type mismatch: expected ${typeof control.value}, but received ${typeof value}`);\r\n\r\n if (fallbackValue !== null) {\r\n control.patchValue(fallbackValue, { emitEvent });\r\n return;\r\n }\r\n error('Invalid value type and no fallback value provided.');\r\n return;\r\n }\r\n control.patchValue(value, { emitEvent });\r\n }\r\n else if (control instanceof FormGroup) {\r\n Object.keys(value || {}).forEach((key) => {\r\n if (control.controls[key]) {\r\n patchForm(control.controls[key], value[key], options);\r\n } else {\r\n warn(`Key \"${key}\" not found in the FormGroup.`);\r\n }\r\n });\r\n }\r\n else if (control instanceof FormArray) {\r\n (value || []).forEach((item: any, index: number) => {\r\n if (control.at(index)) {\r\n patchForm(control.at(index), item, options);\r\n } else {\r\n warn(`Index ${index} not found in the FormArray. Adding dynamically...`);\r\n const newControl = (control as any).addItem();\r\n patchForm(newControl, item, options);\r\n }\r\n });\r\n }\r\n else {\r\n error('Unsupported AbstractControl type.');\r\n }\r\n}\r\n","interface Form {\r\n id: string;\r\n type: string;\r\n name: string;\r\n title: string;\r\n disabled: string | boolean | null;\r\n path: string | null;\r\n isTemplate: boolean | null;\r\n components: Component[];\r\n}\r\n\r\ninterface Component {\r\n id: string;\r\n layout: { columns: number | null, row: string };\r\n components?: Component[];\r\n [key: string]: any;\r\n}\r\n\r\ninterface RowComponent {\r\n id: string;\r\n layout: { columns: number | null, row: string };\r\n rows?: RowGroup[];\r\n [key: string]: any;\r\n}\r\n\r\ninterface RowGroup {\r\n row: string;\r\n components: RowComponent[];\r\n}\r\n\r\ninterface GroupedForm {\r\n id: string;\r\n title: string;\r\n isTemplate: boolean | null;\r\n rows: RowGroup[];\r\n [key: string]: any;\r\n}\r\n\r\nexport function groupByRow(forms: Form[]): GroupedForm[] {\r\n return forms.map(form => ({\r\n id: form.id,\r\n type: form.type,\r\n name: form.name,\r\n title: form.title,\r\n disabled: form.disabled,\r\n path: form.path,\r\n isTemplate: form.isTemplate,\r\n rows: groupRowsRecursively(form.components)\r\n }));\r\n}\r\n\r\nfunction groupRowsRecursively(components: Component[]): RowGroup[] {\r\n const groupedMap = new Map<string, RowComponent[]>();\r\n\r\n function processComponent(component: Component) {\r\n const row = component.layout.row;\r\n\r\n if (!groupedMap.has(row)) {\r\n groupedMap.set(row, []);\r\n }\r\n\r\n const { components, ...props } = component;\r\n\r\n groupedMap.get(row)!.push({\r\n ...props,\r\n rows: components ? groupRowsRecursively(components) : undefined\r\n });\r\n }\r\n\r\n components.forEach(component => processComponent(component));\r\n\r\n return Array.from(groupedMap.entries()).map(([row, components]) => ({\r\n row,\r\n components\r\n }));\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport interface CommandEvent {\r\n name: string;\r\n component: any,\r\n formGroup: FormGroup,\r\n event: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EventService {\r\n\r\n private commandSubject = new Subject<CommandEvent>();\r\n\r\n onCommand = this.commandSubject.asObservable();\r\n\r\n emitCommand(data: CommandEvent) {\r\n this.commandSubject.next(data);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class MetadataService {\r\n\r\n constructor() {\r\n \r\n }\r\n\r\n setSchema(schema: any) {\r\n this.schema = schema ?? { forms: [] };\r\n } \r\n\r\n getSchema(): any {\r\n return this.schema;\r\n }\r\n\r\n setForms(forms: any[]) {\r\n this.forms = forms ?? []; \r\n }\r\n\r\n getForms(): any[] {\r\n return this.forms;\r\n }\r\n\r\n getFormByName(name: string): any {\r\n return this.forms.find(form => form.name === name);\r\n }\r\n\r\n private schema: any = { forms: [] };\r\n\r\n private forms: any[] = [];\r\n\r\n}\r\n","import { Input, Directive, ElementRef, Renderer2, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[prefixAdorner], [suffixAdorner]',\r\n standalone: true\r\n})\r\nexport class AdornerDirective implements OnChanges, AfterViewInit {\r\n @Input() prefixAdorner: string | null = null;\r\n @Input() suffixAdorner: string | null = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.updatePrefix(this.prefixAdorner);\r\n this.updateSuffix(this.suffixAdorner); \r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"prefixAdorner\"]) {\r\n this.updatePrefix(changes[\"prefixAdorner\"].currentValue);\r\n }\r\n\r\n if (changes[\"suffixAdorner\"]) {\r\n this.updateSuffix(changes[\"suffixAdorner\"].currentValue);\r\n }\r\n }\r\n\r\n private getWrapper() {\r\n return this.el.nativeElement.querySelector('div.sirio-input-group');\r\n };\r\n\r\n private isPrepared(): boolean {\r\n return this.getWrapper() !== null;\r\n }\r\n\r\n private prepare(): any {\r\n if (this.isPrepared())\r\n return this.getWrapper();\r\n\r\n const inputElement = this.el.nativeElement.querySelector('input');\r\n\r\n if (!inputElement)\r\n return null;\r\n\r\n const wrapper = this.renderer.createElement('div');\r\n this.renderer.addClass(wrapper, 'sirio-input-group');\r\n\r\n const parent = inputElement.parentNode;\r\n this.renderer.insertBefore(parent, wrapper, inputElement);\r\n\r\n this.renderer.appendChild(wrapper, inputElement);\r\n\r\n return wrapper;\r\n }\r\n\r\n private updatePrefix(prefixAdorner: string | null)\r\n {\r\n const prefixText = this.normalizeText(prefixAdorner);\r\n\r\n this.remove(\"span.prefix\");\r\n \r\n if (prefixText !== null) {\r\n const wrapper = this.prepare();\r\n if (wrapper) {\r\n const inputElement = wrapper.querySelector('input');\r\n const prefixSpan = this.createSpanElement(prefixText);\r\n this.renderer.addClass(prefixSpan, \"prefix\")\r\n this.renderer.insertBefore(wrapper, prefixSpan, inputElement);\r\n } \r\n }\r\n }\r\n\r\n private updateSuffix(suffixAdorner: string | null) {\r\n const suffixText = this.normalizeText(suffixAdorner);\r\n\r\n this.remove(\"span.suffix\");\r\n\r\n if (suffixText !== null) {\r\n const wrapper = this.prepare();\r\n if (wrapper) {\r\n const suffixSpan = this.createSpanElement(suffixText);\r\n this.renderer.addClass(suffixSpan, \"suffix\")\r\n this.renderer.appendChild(wrapper, suffixSpan);\r\n }\r\n }\r\n }\r\n\r\n private remove(selector: string) {\r\n const wrapper = this.getWrapper();\r\n if (!wrapper)\r\n return;\r\n const span = wrapper.querySelector(selector);\r\n if (span)\r\n this.renderer.removeChild(wrapper, span);\r\n }\r\n\r\n private createSpanElement(adorner: string) {\r\n const outerSpan = this.renderer.createElement('span');\r\n this.renderer.addClass(outerSpan, 'sirio-input-group-text');\r\n \r\n const innerSpan = this.renderer.createElement('span');\r\n this.renderer.setAttribute(innerSpan, 'aria-hidden', 'true');\r\n\r\n const iconClass = this.getIconClassName(adorner);\r\n\r\n if (iconClass) {\r\n this.renderer.addClass(innerSpan, 'fas');\r\n this.renderer.addClass(innerSpan, iconClass);\r\n }\r\n else {\r\n const strongElement = this.renderer.createElement('strong');\r\n this.renderer.appendChild(innerSpan, strongElement);\r\n\r\n const text = this.renderer.createText(adorner);\r\n this.renderer.appendChild(strongElement, text);\r\n }\r\n\r\n this.renderer.appendChild(outerSpan, innerSpan);\r\n\r\n return outerSpan;\r\n };\r\n\r\n private getIconClassName(text: string) {\r\n\r\n switch (text) {\r\n case \"%\":\r\n return \"fa-percent\";\r\n\r\n case \"@\":\r\n return \"fa-envelope\";\r\n\r\n case \"€\":\r\n return \"fa-euro-sign\";\r\n }\r\n\r\n return null;\r\n };\r\n\r\n private normalizeText(text: string | null): string | null {\r\n\r\n if (text) {\r\n const trimmedValue = text.trim();\r\n return trimmedValue.length > 0 ? trimmedValue : null;\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges, ElementRef, Renderer2 } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[disableControl], [readonly]',\r\n standalone: true\r\n})\r\nexport class DisableDirective implements OnChanges {\r\n @Input() disableControl: boolean | null = null;\r\n @Input() readonly: boolean | null = null;\r\n @Input() placeholder: string | null = null;\r\n @Input() componentRef: any;\r\n\r\n constructor(private ngControl: NgControl\r\n , private el: ElementRef\r\n , private renderer: Renderer2) {\r\n }\r\n\r\n private disableClass: string = \"fp-disabled\";\r\n private readonlyClass: string = \"fp-readonly\";\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n\r\n if (changes[\"disableControl\"] || changes[\"readonly\"]) {\r\n if (this.ngControl.control) {\r\n if (this.disableControl) {\r\n this.ngControl.control.disable();\r\n this.toggleClass(true, this.disableClass);\r\n this.overridePlaceholder(false);\r\n } else {\r\n this.ngControl.control.enable();\r\n this.toggleClass(false, this.disableClass);\r\n const disabled = this.readonly === true;\r\n (this.ngControl.valueAccessor as any)?.setDisabledState(disabled);\r\n this.toggleClass(disabled, this.readonlyClass);\r\n this.overridePlaceholder(disabled);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private toggleClass(value: boolean, className: string) {\r\n if (value) {\r\n this.renderer.addClass(this.el.nativeElement, className);\r\n } else {\r\n this.renderer.removeClass(this.el.nativeElement, className);\r\n }\r\n }\r\n\r\n private overridePlaceholder(value: boolean) {\r\n if ('placeholder' in this.componentRef) {\r\n this.componentRef.placeholder = value\r\n ? \"-\"\r\n : this.placeholder;\r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[hide], [show]',\r\n standalone: true\r\n})\r\nexport class DisplayDirective implements OnChanges {\r\n @Input() hide: boolean | null = null;\r\n @Input() show: boolean | null = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"hide\"]) {\r\n const value = changes[\"hide\"].currentValue;\r\n if (value === true) {\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'none');\r\n } else if (value === false) {\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'block');\r\n }\r\n }\r\n\r\n if (changes[\"show\"]) {\r\n const value = changes[\"show\"].currentValue;\r\n if (value === true) {\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'block'); \r\n } else if (value === false) {\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'none');\r\n }\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FormArray, ControlContainer } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[repeat]',\r\n standalone: true\r\n})\r\nexport class RepeatDirective implements OnChanges {\r\n @Input() repeat: any = null;\r\n\r\n constructor(private controlContainer: ControlContainer) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"repeat\"]) {\r\n const formArray = this.controlContainer.control as FormArray; \r\n const value = changes[\"repeat\"].currentValue;\r\n if (Number.isInteger(value) && value >= 0) {\r\n (formArray as any).resize(value);\r\n }\r\n else {\r\n (formArray as any).resize(0);\r\n }\r\n }\r\n }\r\n}\r\n","import { Directive, Input, AfterViewInit, ElementRef, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[frameSecurity]',\r\n standalone: true\r\n})\r\nexport class FrameSecurityDirective implements AfterViewInit {\r\n @Input() frameSecurity: any = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit(): void {\r\n const frame = this.el.nativeElement;\r\n\r\n const sandbox = this.getSandBox(this.frameSecurity);\r\n\r\n if (sandbox)\r\n this.renderer.setAttribute(frame, 'sandbox', sandbox);\r\n\r\n const allow = this.getAllow(this.frameSecurity);\r\n\r\n if (allow)\r\n this.renderer.setAttribute(frame, 'allow', allow);\r\n }\r\n\r\n private getSandBox(security: any): string {\r\n let allowedProperties: string[] = [\r\n \"allowScripts\",\r\n \"allowSameOrigin\",\r\n \"allowForms\",\r\n \"allowModals\",\r\n \"allowPopups\",\r\n \"allowTopNavigation\",\r\n \"allowStorageAccessByUserActivation\"\r\n ];\r\n let sandBox = Object.entries(security)\r\n .filter(([key, value]) => value === true && allowedProperties.includes(key))\r\n .map(([key]) => this.camelToKebabCase(key))\r\n .join(' ');\r\n\r\n return sandBox;\r\n };\r\n\r\n private getAllow(security: any): string {\r\n let allowedProperties: string[] = [\r\n \"fullscreen\",\r\n \"geolocation\",\r\n \"camera\",\r\n \"microphone\"\r\n ];\r\n let allow = Object.entries(security)\r\n .filter(([key, value]) => value === true && allowedProperties.includes(key))\r\n .map(([key]) => key)\r\n .join(' ');\r\n\r\n return allow;\r\n };\r\n\r\n private camelToKebabCase(str: string): string {\r\n return str.replace(/[A-Z]/g, (match) => '-' + match.toLowerCase());\r\n }\r\n}\r\n","import { Directive, AfterViewInit, ElementRef, Host, Renderer2 } from '@angular/core';\r\nimport { SirioSelectComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[dropdown]',\r\n standalone: true\r\n})\r\nexport class DropdownDirective implements AfterViewInit {\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private renderer: Renderer2,\r\n \r\n @Host() private sirioSelect: SirioSelectComponent\r\n ) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.handleValue(null);\r\n this.handleValue(false);\r\n this.handleSearchable();\r\n }\r\n\r\n private handleValue(value: any): void {\r\n if (this.sirioSelect\r\n && this.sirioSelect.value === value\r\n && Array.isArray(this.sirioSelect.options)\r\n ) {\r\n const valueOption = this.sirioSelect.options.find(option => option.value === value);\r\n\r\n if (valueOption) {\r\n valueOption.isSelected = true;\r\n }\r\n }\r\n }\r\n\r\n private handleSearchable(): void {\r\n\r\n const searchable = this.el.nativeElement.querySelector('.searchable');\r\n if (searchable) {\r\n const dropDown = this.el.nativeElement.querySelector('.sirio-dropdown');\r\n const dropMenu = dropDown.querySelector('.sirio-dropdown-menu');\r\n const input = searchable.querySelector('input');\r\n this.renderer.insertBefore(dropDown, searchable, dropMenu);\r\n\r\n this.renderer.listen(input, 'blur', (event: KeyboardEvent) => {\r\n this.sirioSelect.panel.close();\r\n });\r\n\r\n this.renderer.listen(input, 'keyup', (event: KeyboardEvent) => {\r\n this.onKeyUp(event, input); \r\n });\r\n\r\n this.renderer.listen(input, 'keydown', (event: KeyboardEvent) => {\r\n this.onKeyDown(event);\r\n });\r\n\r\n this.sirioSelect.panel.panelOpened.subscribe(() => {\r\n this.activate(searchable);\r\n });\r\n\r\n this.sirioSelect.panel.panelClosed.subscribe(() => {\r\n this.deactivate(searchable);\r\n });\r\n\r\n } \r\n }\r\n\r\n private deactivate(element: HTMLElement): void {\r\n this.renderer.setStyle(element, 'display', 'none');\r\n }\r\n\r\n private activate(element: HTMLElement): void {\r\n let currentValue = \"\";\r\n\r\n if (this.sirioSelect.optionsSelected.length > 0) {\r\n currentValue = this.sirioSelect.optionsSelected[0].text\r\n }\r\n\r\n const input = element.querySelector(\"input\");\r\n\r\n if (!input)\r\n return;\r\n\r\n input.value = currentValue;\r\n\r\n const dropMenu = this.el.nativeElement.querySelector('.sirio-dropdown-menu');\r\n\r\n this.sirioSelect.options.forEach((option) => {\r\n this.show(option, true);\r\n if (currentValue == option.text) {\r\n dropMenu.scrollTop = this.native(option).offsetTop;\r\n } \r\n });\r\n\r\n this.renderer.setStyle(element, 'display', 'inline-block');\r\n\r\n setTimeout(() => {\r\n input.setSelectionRange(input.value.length, input.value.length);\r\n input.focus();\r\n });\r\n }\r\n\r\n private onKeyUp(event: KeyboardEvent, input: any) {\r\n const { code } = event;\r\n\r\n switch (code) {\r\n case 'Enter':\r\n case 'Space':\r\n case 'ArrowDown':\r\n case 'ArrowUp':\r\n case 'Escape':\r\n return;\r\n }\r\n\r\n const value = this.comparable(input.value);\r\n let firstMatch = true;\r\n\r\n this.sirioSelect.options.forEach((option, index) => {\r\n const match = this.comparable(option.text).includes(value);\r\n this.show(option, match);\r\n if (match && firstMatch) {\r\n option.setFocus();\r\n firstMatch = false;\r\n }\r\n else {\r\n option.removeFocus();\r\n }\r\n });\r\n }\r\n\r\n private onKeyDown(event: KeyboardEvent) {\r\n const panel = this.sirioSelect.panel;\r\n if (!panel) {\r\n return;\r\n }\r\n const panelIsOpen = panel.panelIsOpen;\r\n const { code } = event;\r\n if (panelIsOpen) {\r\n switch (code) {\r\n case 'Enter':\r\n case 'Space':\r\n if (panel.optionFocused) {\r\n panel.optionFocused?.onOptionSelected(event);\r\n }\r\n else {\r\n panel.close(event);\r\n event?.preventDefault();\r\n }\r\n break;\r\n case 'ArrowDown':\r\n this.scrollDown();\r\n event?.preventDefault();\r\n break;\r\n case 'ArrowUp':\r\n this.scrollUp();\r\n event?.preventDefault();\r\n break;\r\n case 'Escape':\r\n panel.close(event);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n if (!panelIsOpen) {\r\n switch (code) {\r\n case 'Enter':\r\n case 'Space':\r\n panel.open(event);\r\n event?.preventDefault();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private native(option: any) {\r\n return option.viewContainerRef.element.nativeElement;\r\n }\r\n\r\n private isHidden(option: any) {\r\n return this.native(option).style.display === 'none';\r\n }\r\n\r\n private show(option: any, value: boolean) {\r\n this.native(option).style.display = value ? '' : 'none';\r\n }\r\n\r\n private comparable(text: string) {\r\n return text.toLowerCase().trim();\r\n }\r\n\r\n private scrollDown() {\r\n const panel = this.sirioSelect.panel;\r\n if (!panel.optionFocused) {\r\n panel.scrollBarTop();\r\n panel.options.first.setFocus();\r\n return;\r\n }\r\n const nextOptionFocused = this.findNextVisibleOption(panel.optionFocusedIndex + 1, panel.options);\r\n panel.scrollBarDown();\r\n panel.optionFocused?.removeFocus();\r\n if (nextOptionFocused) {\r\n nextOptionFocused?.setFocus();\r\n return;\r\n }\r\n panel.scrollBarTop();\r\n const firstVisible = this.findNextVisibleOption(0, panel.options);\r\n if (firstVisible) {\r\n firstVisible.setFocus();\r\n }\r\n }\r\n\r\n private scrollUp() {\r\n const panel = this.sirioSelect.panel;\r\n if (!panel.optionFocused) {\r\n panel.scrollBarTop();\r\n panel.options.last.setFocus();\r\n return;\r\n } \r\n const nextOptionFocused = this.findPreviousVisibleOption(panel.optionFocusedIndex - 1, panel.options);\r\n if (nextOptionFocused) {\r\n panel.scrollBarUp();\r\n panel.optionFocused?.removeFocus();\r\n nextOptionFocused?.setFocus();\r\n return;\r\n }\r\n panel.optionFocused?.removeFocus();\r\n panel.scrollBarBottom();\r\n const lastVisible = this.findPreviousVisibleOption(panel.options.length - 1, panel.options);\r\n if (lastVisible) {\r\n lastVisible.setFocus();\r\n }\r\n }\r\n\r\n private findPreviousVisibleOption(startIndex: number, options: any): any | null {\r\n let i = startIndex;\r\n while (i >= 0) {\r\n const option = options.get(i);\r\n if (!this.isHidden(option)) {\r\n return option;\r\n }\r\n i--;\r\n }\r\n return null;\r\n }\r\n\r\n private findNextVisibleOption(startIndex: number, options: any): any | null {\r\n let i = startIndex;\r\n while (i < options.length) {\r\n const option = options.get(i);\r\n if (!this.isHidden(option)) {\r\n return option;\r\n }\r\n i++;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, Host, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { SirioTabComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[tabCount]',\r\n standalone: true\r\n})\r\nexport class TabDirective implements OnChanges {\r\n @Input() tabCount: number = 0;\r\n\r\n constructor(\r\n @Host() private sirioTab: SirioTabComponent\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"tabCount\"]) {\r\n const previous = changes[\"tabCount\"].previousValue;\r\n\r\n if (previous === undefined)\r\n return;\r\n\r\n const current = changes[\"tabCount\"].currentValue;\r\n\r\n setTimeout(() => {\r\n this.sirioTab.setContentItemIndex();\r\n this.sirioTab.showArrowIfNeeded();\r\n\r\n if (previous < current) {\r\n this.sirioTab.setActiveIndex(current - 1);\r\n } \r\n else {\r\n if (this.sirioTab.oldIndex == current) {\r\n // remove last\r\n this.sirioTab.setActiveIndex(current - 1);\r\n }\r\n else if (this.sirioTab.oldIndex < current) {\r\n // remove middle\r\n this.sirioTab.setActiveIndex(this.sirioTab.oldIndex);\r\n }\r\n else {\r\n // remove many\r\n this.sirioTab.setActiveIndex(current - 1);\r\n }\r\n } \r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Directive, Host, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { SirioAccordionComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[accordionCount]',\r\n standalone: true\r\n})\r\nexport class AccordionDirective implements OnChanges {\r\n @Input() accordionCount: number = 0;\r\n\r\n constructor(\r\n @Host() private sirioAccordion: SirioAccordionComponent\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"accordionCount\"]) {\r\n const previous = changes[\"accordionCount\"].previousValue;\r\n\r\n if (previous === undefined)\r\n return;\r\n\r\n const current = changes[\"accordionCount\"].currentValue;\r\n\r\n const oldIndex = this.sirioAccordion.panels.toArray().findIndex(panel => panel.panelIsOpen);\r\n\r\n setTimeout(() => {\r\n\r\n const event = new Event(\"\");\r\n\r\n this.sirioAccordion.closePanels(event);\r\n\r\n const panels = this.sirioAccordion.panels.toArray();\r\n\r\n const showPanel = (index: number) => panels[index].onPanelHeaderClicked(event);\r\n\r\n if (previous < current) {\r\n showPanel(current - 1);\r\n }\r\n else {\r\n if (oldIndex == current) {\r\n // remove last\r\n showPanel(current - 1);\r\n }\r\n else if (oldIndex < current) {\r\n // remove middle\r\n showPanel(oldIndex);\r\n }\r\n } \r\n\r\n }, 100); \r\n }\r\n }\r\n}\r\n","import { Directive, Input, OnChanges, SimpleChanges, Host } from '@angular/core';\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport { IRowsSource } from '../dataSources/interfaces';\r\n\r\n@Directive({\r\n selector: '[rowSource]',\r\n standalone: true\r\n})\r\nexport class GridDirective implements OnChanges {\r\n @Input() rowSource: any = null;\r\n \r\n constructor(\r\n @Host() private grid: AgGridAngular\r\n ) {\r\n\r\n grid.gridReady.subscribe(() => {\r\n this.isGridReady = true; \r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"rowSource\"]) {\r\n this.onRowChanges();\r\n }\r\n }\r\n\r\n private isGridReady: boolean = false;\r\n\r\n private onRowChanges(): void {\r\n if (this.isArray(this.rowSource)) {\r\n this.setRowData(this.rowSource);\r\n }\r\n else if (this.isDataSource(this.rowSource)) {\r\n this.setDataSource(this.rowSource);\r\n }\r\n else {\r\n this.setRowData([]);\r\n }\r\n }\r\n\r\n private setRowData(rowSource: any) {\r\n this.grid.rowModelType = 'clientSide';\r\n if (this.isGridReady) {\r\n this.grid.api.setGridOption('rowData', rowSource);\r\n }\r\n else {\r\n this.grid.rowData = rowSource;\r\n }\r\n }\r\n\r\n private setDataSource(rowSource: any) {\r\n this.grid.rowModelType = 'infinite';\r\n if (this.isGridReady) {\r\n this.grid.api.setGridOption('datasource', rowSource);\r\n }\r\n else {\r\n this.grid.datasource = rowSource;\r\n }\r\n }\r\n\r\n private isArray(rowSource: any): boolean {\r\n return Array.isArray(rowSource);\r\n }\r\n\r\n private isDataSource(obj: any): obj is IRowsSource {\r\n return typeof obj.getRows === \"function\";\r\n }\r\n}\r\n","import { ElementRef } from \"@angular/core\";\r\nimport { RegisterService } from \"../services/register.service\";\r\n\r\nexport class Control {\r\n constructor(\r\n public readonly name: string,\r\n private readonly metadata: any,\r\n private readonly componentRef: any,\r\n private readonly elementRef: ElementRef) {\r\n }\r\n\r\n getMetadata(): any {\r\n return this.metadata;\r\n }\r\n\r\n getComponentRef(): any {\r\n return this.componentRef;\r\n }\r\n\r\n getElementRef(): ElementRef {\r\n return this.elementRef;\r\n }\r\n}\r\n\r\nexport class ContainerControl extends Control {\r\n constructor(\r\n name: string,\r\n metadata: any,\r\n componentRef: any,\r\n elementRef: ElementRef,\r\n private register: RegisterService | undefined) {\r\n super(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n getControls() : Control[] {\r\n return this.register?.getControls() ?? [];\r\n }\r\n\r\n getControl(name: string): Control | undefined {\r\n return this.register?.getControl(name);\r\n }\r\n\r\n findControl<T extends Control>(name: string, type: new (...args: any[]) => T): T | null;\r\n\r\n findControl(name: string): Control | null;\r\n\r\n findControl<T extends Control>(name: string, type?: new (...args: any[]) => T): T | Control | null {\r\n\r\n const control = this.getControl(name);\r\n\r\n if (control) {\r\n if (!type) { \r\n return control;\r\n }\r\n else if (control instanceof type) {\r\n return control;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n for (const child of this.getControls()) {\r\n if (child instanceof ContainerControl) {\r\n const found = child.findControl(name, type as any);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nexport class ItemControl extends ContainerControl {\r\n\r\n constructor(\r\n name: string,\r\n public readonly index: number,\r\n metadata: any,\r\n componentRef: any,\r\n elementRef: ElementRef,\r\n register: RegisterService | undefined) {\r\n super(name, metadata, componentRef, elementRef, register);\r\n }\r\n\r\n}\r\n","import { ContainerControl } from \"./control\";\r\n\r\nexport class FormControl extends ContainerControl {\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioInputComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TextFieldControl extends Control {\r\n\r\n setRandomColor(): void {\r\n this.getInput().sirioInput.nativeElement.style.backgroundColor = this.getRandomColor(); \r\n }\r\n\r\n private getInput(): SirioInputComponent {\r\n return this.getComponentRef() as SirioInputComponent;\r\n }\r\n\r\n private getRandomColor(): string {\r\n const letters = '0123456789ABCDEF';\r\n let color = '#';\r\n\r\n for (let i = 0; i < 6; i++) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n\r\n return color;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioSelectComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class SelectControl extends Control {\r\n\r\n private getSelect(): SirioSelectComponent {\r\n return this.getComponentRef() as SirioSelectComponent;\r\n }\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioSelectComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TagListControl extends Control {\r\n\r\n private getSelect(): SirioSelectComponent {\r\n return this.getComponentRef() as SirioSelectComponent;\r\n }\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioInputComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class NumberControl extends Control {\r\n\r\n private getInput(): SirioInputComponent {\r\n return this.getComponentRef() as SirioInputComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioDatepickerComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class DateControl extends Control {\r\n\r\n private getDatePicker(): SirioDatepickerComponent {\r\n return this.getComponentRef() as SirioDatepickerComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioTimepickerComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TimeControl extends Control {\r\n\r\n private getTimePicker(): SirioTimepickerComponent {\r\n return this.getComponentRef() as SirioTimepickerComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioToggleComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class ToggleControl extends Control {\r\n\r\n private getToggle(): SirioToggleComponent {\r\n return this.getComponentRef() as SirioToggleComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioCheckboxComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class CheckBoxControl extends Control {\r\n\r\n private getCheckBox(): SirioCheckboxComponent {\r\n return this.getComponentRef() as SirioCheckboxComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioChipRadioGroupComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class ChipRadioControl extends Control {\r\n\r\n private getChipRadio(): SirioChipRadioGroupComponent {\r\n return this.getComponentRef() as SirioChipRadioGroupComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioRadioGroupComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class RadioControl extends Control {\r\n\r\n private getRadio(): SirioRadioGroupComponent {\r\n return this.getComponentRef() as SirioRadioGroupComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioChipCheckboxGroupComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class ChipCheckListControl extends Control {\r\n\r\n private getChipCheckBoxGroup(): SirioChipCheckboxGroupComponent {\r\n return this.getComponentRef() as SirioChipCheckboxGroupComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioCheckboxGroupComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class CheckListControl extends Control {\r\n\r\n private getCheckboxGroup(): SirioCheckboxGroupComponent {\r\n return this.getComponentRef() as SirioCheckboxGroupComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioInputComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TextAreaControl extends Control {\r\n\r\n private getInput(): SirioInputComponent {\r\n return this.getComponentRef() as SirioInputComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioFileUploadComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class FilePickerControl extends Control {\r\n\r\n private getFileUpload(): SirioFileUploadComponent {\r\n return this.getComponentRef() as SirioFileUploadComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class TextControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class HtmlControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class ImageControl extends Control {\r\n\r\n \r\n}\r\n","import { ContainerControl } from \"./control\";\r\nimport { SirioTabComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class TabControl extends ContainerControl {\r\n\r\n private getTab(): SirioTabComponent {\r\n return this.getComponentRef() as SirioTabComponent;\r\n }\r\n\r\n}\r\n","import { ContainerControl } from \"./control\";\r\nimport { SirioAccordionComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class AccordionControl extends ContainerControl {\r\n\r\n private getAccordion(): SirioAccordionComponent {\r\n return this.getComponentRef() as SirioAccordionComponent;\r\n }\r\n\r\n}\r\n","import { ContainerControl } from \"./control\";\r\n\r\nexport class DynamicListControl extends ContainerControl {\r\n\r\n \r\n}\r\n","import { ContainerControl } from \"./control\";\r\n\r\nexport class GroupControl extends ContainerControl {\r\n\r\n}\r\n","import { Control } from \"./control\";\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\n\r\n\r\nexport class TableControl extends Control {\r\n\r\n setFilter(filter: any): void {\r\n this.getGrid().api.setFilterModel(filter);\r\n }\r\n\r\n clearFilter(): void {\r\n this.getGrid().api.setFilterModel(null);\r\n }\r\n\r\n private getGrid(): AgGridAngular {\r\n return this.getComponentRef() as AgGridAngular;\r\n }\r\n}\r\n","import { Control } from \"./control\";\r\nimport { SirioButtonComponent } from \"ngx-sirio-lib\";\r\n\r\nexport class ButtonControl extends Control {\r\n\r\n private getButton(): SirioButtonComponent {\r\n return this.getComponentRef() as SirioButtonComponent;\r\n }\r\n\r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class SeparatorControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class SpacerControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class IFrameControl extends Control {\r\n\r\n \r\n}\r\n","import { Control } from \"./control\";\r\n\r\nexport class TooltipControl extends Control {\r\n\r\n}\r\n","import { ElementRef } from '@angular/core';\r\nimport { Control } from '../controls/control';\r\nimport { FormControl } from '../controls/form';\r\nimport { TextFieldControl } from '../controls/textfield';\r\nimport { SelectControl } from '../controls/select';\r\nimport { TagListControl } from '../controls/taglist';\r\nimport { NumberControl } from '../controls/number';\r\nimport { DateControl } from '../controls/date';\r\nimport { TimeControl } from '../controls/time';\r\nimport { ToggleControl } from '../controls/toggle';\r\nimport { CheckBoxControl } from '../controls/checkbox';\r\nimport { ChipRadioControl } from '../controls/chipradio';\r\nimport { RadioControl } from '../controls/radio';\r\nimport { ChipCheckListControl } from '../controls/chipchecklist';\r\nimport { CheckListControl } from '../controls/checklist';\r\nimport { TextAreaControl } from '../controls/textarea';\r\nimport { FilePickerControl } from '../controls/filepicker';\r\nimport { TextControl } from '../controls/text';\r\nimport { HtmlControl } from '../controls/html';\r\nimport { ImageControl } from '../controls/image';\r\nimport { TabControl } from '../controls/tab';\r\nimport { AccordionControl } from '../controls/accordion';\r\nimport { DynamicListControl } from '../controls/dynamiclist';\r\nimport { GroupControl } from '../controls/group';\r\nimport { TableControl } from '../controls/table';\r\nimport { ButtonControl } from '../controls/button';\r\nimport { SeparatorControl } from '../controls/separator';\r\nimport { SpacerControl } from '../controls/spacer';\r\nimport { IFrameControl } from '../controls/iframe';\r\nimport { TooltipControl } from '../controls/tooltip';\r\nimport { RegisterService } from '../services/register.service';\r\n\r\nexport function createControl(name: string\r\n , metadata: any\r\n , componentRef: any\r\n , elementRef: ElementRef\r\n , register: RegisterService | undefined) : Control {\r\n\r\n switch (metadata.type) {\r\n\r\n case \"default\":\r\n return new FormControl(name, metadata, componentRef, elementRef, register);\r\n\r\n case \"textfield\":\r\n return new TextFieldControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"select\":\r\n return new SelectControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"taglist\":\r\n return new TagListControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"number\":\r\n return new NumberControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"datetime\":\r\n switch (metadata.subtype) {\r\n case \"date\":\r\n return new DateControl(name, metadata, componentRef, elementRef);\r\n case \"time\":\r\n return new TimeControl(name, metadata, componentRef, elementRef);\r\n default:\r\n return new Control(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n case \"checkbox\":\r\n switch (metadata.subtype) {\r\n case \"toggle\":\r\n return new ToggleControl(name, metadata, componentRef, elementRef);\r\n default:\r\n return new CheckBoxControl(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n case \"radio\":\r\n switch (metadata.subtype) {\r\n case \"chip\":\r\n return new ChipRadioControl(name, metadata, componentRef, elementRef);\r\n default:\r\n return new RadioControl(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n case \"checklist\":\r\n switch (metadata.subtype) {\r\n case \"chip\":\r\n return new ChipCheckListControl(name, metadata, componentRef, elementRef);\r\n default:\r\n return new CheckListControl(name, metadata, componentRef, elementRef);\r\n }\r\n\r\n case \"textarea\":\r\n return new TextAreaControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"filepicker\":\r\n return new FilePickerControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"text\":\r\n return new TextControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"html\":\r\n return new HtmlControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"image\":\r\n return new ImageControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"dynamiclist\":\r\n switch (metadata.subtype) {\r\n case \"tab\":\r\n return new TabControl(name, metadata, componentRef, elementRef, register);\r\n case \"accordion\":\r\n return new AccordionControl(name, metadata, componentRef, elementRef, register);\r\n default:\r\n return new DynamicListControl(name, metadata, componentRef, elementRef, register);\r\n }\r\n\r\n case \"group\":\r\n return new GroupControl(name, metadata, componentRef, elementRef, register);\r\n\r\n case \"table\":\r\n return new TableControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"button\":\r\n return new ButtonControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"separator\":\r\n return new SeparatorControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"spacer\":\r\n return new SpacerControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"iframe\":\r\n return new IFrameControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"tooltip\":\r\n return new TooltipControl(name, metadata, componentRef, elementRef);\r\n\r\n case \"tab\":\r\n return new TabControl(name, metadata, componentRef, elementRef, register);\r\n\r\n case \"accordion\":\r\n return new AccordionControl(name, metadata, componentRef, elementRef, register);\r\n\r\n default:\r\n return new Control(name, metadata, componentRef, elementRef);\r\n }\r\n}\r\n","import {\r\n Directive, Input, ElementRef, AfterContentInit, OnDestroy\r\n , ContentChild, ContentChildren, QueryList, forwardRef\r\n} from '@angular/core';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { ProxyService } from '../services/proxy.service';\r\nimport { createControl } from '../controls/factory';\r\nimport { DynamicFieldsComponent } from '../dynamic-fields/dynamic-fields.component';\r\nimport { IDynamicFieldsComponent } from '../dynamic-fields/dynamic-fields.interface';\r\nimport { ItemControl } from '../controls/control';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[register]',\r\n standalone: true\r\n})\r\nexport class RegisterDirective implements AfterContentInit, OnDestroy {\r\n @Input() register: any = null;\r\n @Input() componentRef: any;\r\n @ContentChild(forwardRef(() => DynamicFieldsComponent)) dynamicField?: IDynamicFieldsComponent;\r\n @ContentChildren(forwardRef(() => DynamicFieldsComponent), { descendants: true }) itemFields!: QueryList<IDynamicFieldsComponent>;\r\n \r\n constructor(\r\n private el: ElementRef,\r\n private registerService: RegisterService,\r\n private proxyService: ProxyService\r\n ) { }\r\n\r\n ngAfterContentInit(): void {\r\n this.registerControl();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unregisterControl();\r\n\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n private destroy$ = new Subject<void>();\r\n\r\n private registerControl(): void {\r\n const name = this.getName();\r\n\r\n const register = (this.register.type === 'dynamiclist')\r\n ? this.createDynamicRegister(name, this.register, this.componentRef, this.el, this.itemFields)\r\n : this.dynamicField?.getRegister();\r\n\r\n const control = createControl(name, this.register, this.componentRef, this.el, register);\r\n this.registerService.register(name, control);\r\n\r\n }\r\n\r\n private unregisterControl(): void {\r\n this.registerService.unregister(this.getName());\r\n }\r\n\r\n private getName(): string {\r\n return this.register.name ?? this.register.id;\r\n }\r\n\r\n private createDynamicRegister(name: string, metadata: any, componentRef: any, el: ElementRef\r\n , itemFields: QueryList<IDynamicFieldsComponent>): RegisterService {\r\n\r\n const newRegister = new RegisterService(this.proxyService, null);\r\n\r\n const registerAll = (itemFields: QueryList<IDynamicFieldsComponent>) => {\r\n newRegister.unregisterAll();\r\n itemFields.forEach((itemField, index) => {\r\n const register = itemField.getRegister();\r\n const newName = `${name}-${index}`;\r\n const control = new ItemControl(newName, index, metadata, componentRef, el, register);\r\n newRegister.register(newName, control);\r\n });\r\n }\r\n\r\n registerAll(itemFields);\r\n\r\n itemFields.changes\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((itemFields: QueryList<IDynamicFieldsComponent>) => {\r\n registerAll(itemFields);\r\n });\r\n\r\n return newRegister;\r\n }\r\n}\r\n","import { Directive, AfterViewInit, Host } from '@angular/core';\r\nimport { SirioInputComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[updateBlur]',\r\n standalone: true\r\n})\r\nexport class UpdateBlurDirective implements AfterViewInit {\r\n\r\n constructor(@Host() private sirioInput: SirioInputComponent) { }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n if (this.sirioInput?.control?.updateOn === 'blur') {\r\n\r\n const writeValue = this.sirioInput.writeValue;\r\n\r\n this.sirioInput.writeValue = function (value: any, event = false) {\r\n writeValue.bind(this)(value, false);\r\n };\r\n\r\n this.sirioInput.onBlur = function (event: any) {\r\n writeValue.bind(this)(this.value, true);\r\n }\r\n }\r\n }\r\n}\r\n","import { Directive, Host } from '@angular/core';\r\nimport { SirioDatepickerComponent } from 'ngx-sirio-lib';\r\nimport { Datepicker } from 'vanillajs-datepicker';\r\n\r\n@Directive({\r\n selector: '[isoDate]',\r\n standalone: true\r\n})\r\nexport class DateDirective {\r\n\r\n constructor(@Host() private sirioDatepicker: SirioDatepickerComponent) {\r\n\r\n const registerOnChange = this.sirioDatepicker.registerOnChange.bind(this.sirioDatepicker);\r\n\r\n this.sirioDatepicker.registerOnChange = function (fn: (_: any) => void) {\r\n registerOnChange(function (value: any) {\r\n fn(dateToStore(value));\r\n });\r\n };\r\n\r\n const writeValue = this.sirioDatepicker.writeValue.bind(this.sirioDatepicker);\r\n\r\n this.sirioDatepicker.writeValue = function (value: any, event?: boolean, updateCalendar?: boolean) {\r\n writeValue(dateToDisplay(value), event, updateCalendar);\r\n };\r\n } \r\n}\r\n\r\nconst dislayFormat = 'dd/mm/yyyy';\r\nconst storeFormat = 'yyyy-mm-dd';\r\n\r\nfunction dateToDisplay(value: string): string | null {\r\n if (typeof value === \"string\") {\r\n const date = parseStore(value) ?? parseDisplay(value);\r\n return (date == null)\r\n ? value\r\n : Datepicker.formatDate(date, dislayFormat, 'it');\r\n }\r\n else {\r\n return null;\r\n } \r\n}\r\n\r\nfunction dateToStore(value: string): string | null {\r\n if (typeof value === \"string\") {\r\n const date = parseStore(value) ?? parseDisplay(value);\r\n return (date == null)\r\n ? null\r\n : Datepicker.formatDate(date, storeFormat, 'it');\r\n }\r\n else {\r\n return null;\r\n } \r\n}\r\n\r\nfunction parseDisplay(value: string): Date | null {\r\n const regex = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/;\r\n const match = value.match(regex);\r\n if (!match) return null;\r\n\r\n const day = parseInt(match[1], 10);\r\n const month = parseInt(match[2], 10);\r\n const year = parseInt(match[3], 10);\r\n\r\n const date = new Date(year, month - 1, day);\r\n\r\n if (\r\n date.getFullYear() === year &&\r\n date.getMonth() === month - 1 &&\r\n date.getDate() === day\r\n ) {\r\n return date;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction parseStore(value: string): Date | null {\r\n const regex = /^(\\d{4})-(\\d{2})-(\\d{2})(T\\d{2}:\\d{2}:\\d{2}(Z|[+-]\\d{2}:\\d{2})?)?$/;\r\n const match = value.match(regex);\r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const year = parseInt(match[1], 10);\r\n const month = parseInt(match[2], 10);\r\n const day = parseInt(match[3], 10);\r\n\r\n const date = new Date(year, month - 1, day);\r\n\r\n if (\r\n date.getFullYear() === year &&\r\n date.getMonth() === month - 1 &&\r\n date.getDate() === day\r\n ) {\r\n return date;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\n\r\n","import { Directive, Host, AfterViewInit, Input } from '@angular/core';\r\nimport { SirioInputComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[number]',\r\n standalone: true\r\n})\r\nexport class NumberDirective implements AfterViewInit {\r\n @Input() defaultValue: number | null = null;\r\n @Input() minimum: number | null = null;\r\n @Input() maximum: number | null = null;\r\n @Input() decimalDigits: number | null = null;\r\n\r\n constructor(@Host() private sirioInput: SirioInputComponent) {\r\n\r\n const registerOnChange = this.sirioInput.registerOnChange.bind(this.sirioInput);\r\n\r\n const coerceValue = (value: number | null): number | null => {\r\n const originalValue = value;\r\n\r\n if (value === null && this.defaultValue !== null) {\r\n value = this.defaultValue;\r\n }\r\n\r\n if (value != null) {\r\n if (this.minimum !== null && value < this.minimum) {\r\n value = this.minimum;\r\n }\r\n\r\n if (this.maximum !== null && value > this.maximum) {\r\n value = this.maximum;\r\n }\r\n\r\n if (this.decimalDigits != null && this.decimalDigits >= 0) {\r\n const factor = Math.pow(10, this.decimalDigits);\r\n value = Math.round(value * factor) / factor;\r\n }\r\n }\r\n \r\n if (originalValue !== value) { \r\n this.sirioInput.writeValue(value, false); \r\n }\r\n\r\n return value;\r\n };\r\n\r\n this.sirioInput.registerOnChange = function (fn: (_: any) => void) {\r\n registerOnChange(function (value: any) {\r\n fn(coerceValue(valueToStore(value))); \r\n });\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n const input = this.sirioInput.sirioInput.nativeElement;\r\n\r\n input.addEventListener('keydown', (event: Event) => {\r\n const e = event as KeyboardEvent;\r\n if (e.key === '.'\r\n || (e.key === ',' && !this.acceptDecimal())\r\n || (e.key === '-' && !this.acceptSign())) {\r\n e.preventDefault();\r\n }\r\n });\r\n\r\n input.addEventListener('paste', (event: Event) => {\r\n const e = event as ClipboardEvent;\r\n const text = e.clipboardData?.getData('text') || '';\r\n if (text.includes('.')\r\n || (text.includes(',') && !this.acceptDecimal())\r\n || (text.includes('-') && !this.acceptSign())) {\r\n event.preventDefault();\r\n }\r\n });\r\n \r\n }\r\n\r\n private acceptSign(): boolean {\r\n if (this.minimum !== null && this.minimum >= 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private acceptDecimal(): boolean {\r\n if (this.decimalDigits !== null && this.decimalDigits === 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n\r\nfunction valueToStore(value: string): number | null {\r\n if (typeof value === \"string\") {\r\n if (value.trim() === '') { \r\n return null;\r\n }\r\n const numericValue = parseFloat(value);\r\n if (isNaN(numericValue)) {\r\n return null;\r\n }\r\n return numericValue;\r\n }\r\n else if (typeof value === 'number') {\r\n return value as number;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n","import { Directive, Host, Renderer2, Input, OnChanges, AfterViewInit, SimpleChanges } from '@angular/core';\r\nimport { SirioInputComponent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[textcase], [maxlength]',\r\n standalone: true\r\n})\r\nexport class TextDirective implements OnChanges, AfterViewInit {\r\n @Input() textcase: '' | 'uppercase' | 'lowercase' = '';\r\n @Input() maxlength: number | null = null;\r\n\r\n constructor(@Host() private sirioInput: SirioInputComponent\r\n , private renderer: Renderer2) {\r\n\r\n const registerOnChange = this.sirioInput.registerOnChange.bind(this.sirioInput);\r\n\r\n const coerceValue = this.coerceValue.bind(this);\r\n\r\n this.sirioInput.registerOnChange = function (fn: (_: any) => void) {\r\n registerOnChange(function (value: any) {\r\n fn(coerceValue(value));\r\n });\r\n };\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.configureTextCase();\r\n this.configureMaxLength(); \r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"maxlength\"]) {\r\n this.configureMaxLength();\r\n }\r\n }\r\n\r\n private coerceValue(value: string): string\r\n {\r\n return this.applyMaxLength(\r\n this.applyCase(value));\r\n }\r\n\r\n private applyCase(value: string): string {\r\n if (this.textcase === \"uppercase\") {\r\n return value.toUpperCase();\r\n }\r\n else if (this.textcase === \"lowercase\") {\r\n return value.toLowerCase();\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private applyMaxLength(value: string): string {\r\n if (this.maxlength != null && value.length > this.maxlength) {\r\n return value.slice(0, Math.max(0, this.maxlength));\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private configureTextCase() {\r\n const inputElement = this.sirioInput.sirioInput?.nativeElement;\r\n if (inputElement && (this.textcase === 'uppercase' || this.textcase === 'lowercase')) {\r\n this.renderer.setStyle(inputElement, 'text-transform', this.textcase);\r\n\r\n inputElement.oninput = (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n const value = input.value;\r\n\r\n var newValue = this.coerceValue(value);\r\n\r\n if (newValue != value) {\r\n this.replaceInputValue(input, newValue);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private configureMaxLength() {\r\n const inputElement = this.sirioInput.sirioInput?.nativeElement;\r\n\r\n if (inputElement) {\r\n if (this.maxlength == null) {\r\n inputElement.removeAttribute('maxlength');\r\n } else {\r\n inputElement.maxLength = this.maxlength;\r\n }\r\n } \r\n }\r\n\r\n private replaceInputValue(input: HTMLInputElement, value: string): void {\r\n const start = input.selectionStart || 0;\r\n const end = input.selectionEnd || 0;\r\n\r\n input.value = value;\r\n\r\n setTimeout(() => {\r\n input.setSelectionRange(start, end);\r\n }, 0);\r\n }\r\n\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[disableForm]',\r\n standalone: true\r\n})\r\nexport class DisableFormDirective implements OnChanges {\r\n @Input('disableForm') config!: {\r\n disabled: boolean | null;\r\n formGroup: FormGroup;\r\n path: string;\r\n };\r\n\r\n constructor(\r\n private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef\r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n\r\n if (this.hasValue(this.config.path) && this.config.formGroup) {\r\n var formGroup = this.config.formGroup.get(this.config.path);\r\n if (formGroup instanceof FormGroup) {\r\n if (this.config.disabled) {\r\n formGroup.disable({ emitEvent: false });\r\n } else {\r\n formGroup.enable({ emitEvent: false });\r\n }\r\n }\r\n }\r\n \r\n this.viewContainer.clear();\r\n }\r\n\r\n private hasValue(value: string | null): boolean {\r\n return value != null && value.trim().length > 0;\r\n }\r\n}\r\n","import { Directive, Host, OnInit, OnDestroy } from '@angular/core';\r\nimport { SirioTabComponent, NgxSirioEvent } from 'ngx-sirio-lib';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[tabControl]',\r\n standalone: true\r\n})\r\nexport class TabControlDirective implements OnInit, OnDestroy {\r\n \r\n constructor(\r\n @Host() private sirioTab: SirioTabComponent\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.tabChangeSub = this.sirioTab.tabChange.subscribe(this.HandleIndexChange.bind(this));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.tabChangeSub?.unsubscribe();\r\n }\r\n\r\n private tabChangeSub!: Subscription;\r\n\r\n private HandleIndexChange(event: NgxSirioEvent<SirioTabComponent>) {\r\n const tab = event.component as any;\r\n if (event.data.newIndex === undefined) {\r\n tab.setActiveIndex(this.validateIndex(tab._savedIndex), true);\r\n }\r\n else {\r\n tab._savedIndex = event.data.newIndex;\r\n }\r\n }\r\n\r\n private validateIndex(index: number): number {\r\n if (index >= this.sirioTab.tabItems.length) {\r\n var firstTab = this.sirioTab.firstTabEnabled;\r\n if (firstTab) {\r\n index = firstTab.index;\r\n }\r\n }\r\n return index;\r\n }\r\n}\r\n","export const Texts = {\r\n TypeToSearch: \"Digita per cercare...\",\r\n Upload: \"Upload\",\r\n ScrollLeft: \"Scorri a sinistra\",\r\n ScrollRight: \"Scorri a destra\",\r\n AddItem: \"Aggiungi\",\r\n RemoveItem: \"Rimuovi\",\r\n PreviousSection: \"Sezione precedente\",\r\n NextSection: \"Sezione successiva\",\r\n Show: \"Visualizza\",\r\n Remove: \"Rimuovi\",\r\n Close: \"Chiudi\",\r\n Name: \"Nome\",\r\n Size: \"Dimensione\",\r\n Type: \"Tipo\",\r\n Actions: \"Azioni\",\r\n ReadMore: \"Leggi di più\",\r\n ReadLess: \"Leggi di meno\"\r\n};\r\n","import { Directive, ElementRef, Renderer2, Input, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\r\n\r\nimport { Texts } from '../locale/locale-it';\r\n\r\n@Directive({\r\n selector: '[collapse]',\r\n standalone: true\r\n})\r\nexport class CollapseDirective implements OnChanges, OnDestroy {\r\n @Input('collapse') maxHeight: number | null = null;\r\n\r\n private currentHeight: number | null = null;\r\n private button: HTMLButtonElement | null = null;\r\n private iconSpan: HTMLElement | null = null;\r\n private expanded = false;\r\n private viewInitialized = false;\r\n private timeoutFocusOut: any;\r\n private unlistenFocusOut!: () => void;\r\n\r\n constructor(private el: ElementRef\r\n , private renderer: Renderer2) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.viewInitialized = true;\r\n this.currentHeight = this.maxHeight;\r\n this.applyCollapseLogic();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['maxHeight']) {\r\n this.currentHeight = this.maxHeight;\r\n if (this.viewInitialized) {\r\n this.applyCollapseLogic();\r\n }\r\n }\r\n }\r\n\r\n private applyCollapseLogic(): void {\r\n \r\n this.resetStyles();\r\n \r\n this.resetButton();\r\n \r\n this.resetFocusHandler();\r\n\r\n if (this.maxHeight == null || this.maxHeight <= 0) {\r\n this.expanded = true;\r\n return;\r\n }\r\n\r\n this.expanded = false;\r\n\r\n this.applyStyle();\r\n\r\n const element = this.el.nativeElement as HTMLElement;\r\n\r\n if (element.scrollHeight > this.maxHeight) {\r\n this.applyButton();\r\n this.applyFocusHandler();\r\n }\r\n }\r\n\r\n private applyStyle() {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.renderer.setStyle(element, 'overflow', 'hidden');\r\n this.renderer.setStyle(element, 'max-height', `${this.maxHeight}px`);\r\n }\r\n\r\n private resetStyles() {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.renderer.setStyle(element, 'overflow', null);\r\n this.renderer.setStyle(element, 'max-height', null);\r\n }\r\n\r\n private applyButton(): void {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.button = this.renderer.createElement('button');\r\n this.renderer.addClass(this.button, 'sirio-btn');\r\n this.renderer.setStyle(this.button, 'padding', '0px');\r\n\r\n const text = this.renderer.createText(Texts.ReadMore);\r\n\r\n this.iconSpan = this.renderer.createElement('span');\r\n this.renderer.addClass(this.iconSpan, 'fa');\r\n this.renderer.addClass(this.iconSpan, 'fa-chevron-down');\r\n \r\n this.renderer.appendChild(this.button, text);\r\n this.renderer.appendChild(this.button, this.iconSpan);\r\n\r\n this.renderer.listen(this.button, 'click', () => this.toggleExpand());\r\n this.renderer.setStyle(this.button, 'margin-top', '8px');\r\n\r\n this.renderer.appendChild(element.parentNode, this.button);\r\n }\r\n\r\n private resetButton() {\r\n if (this.button && this.button.parentNode) {\r\n this.renderer.removeChild(this.button.parentNode, this.button);\r\n this.button = null;\r\n }\r\n }\r\n\r\n private applyFocusHandler() {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.unlistenFocusOut = this.renderer.listen(element, 'focusout', () => {\r\n clearTimeout(this.timeoutFocusOut);\r\n this.timeoutFocusOut = setTimeout(() => {\r\n if (!element.contains(document.activeElement)) {\r\n element.scrollTop = 0;\r\n console.log('NESSUN elemento interno ha più il focus');\r\n }\r\n }, 0);\r\n });\r\n }\r\n\r\n private resetFocusHandler() {\r\n if (this.unlistenFocusOut) {\r\n this.unlistenFocusOut();\r\n }\r\n clearTimeout(this.timeoutFocusOut);\r\n }\r\n\r\n private toggleExpand(): void {\r\n this.expanded = !this.expanded;\r\n if (this.expanded) {\r\n this.expand();\r\n } else {\r\n this.collapse();\r\n }\r\n }\r\n\r\n private expand(): void {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.renderer.setStyle(element, 'max-height', 'none');\r\n this.renderer.setStyle(element, 'overflow', 'visible');\r\n this.button!.childNodes[0].textContent = Texts.ReadLess;\r\n this.updateIcon('fa-chevron-up', 'fa-chevron-down');\r\n }\r\n\r\n private collapse(): void {\r\n const element = this.el.nativeElement as HTMLElement;\r\n this.renderer.setStyle(element, 'max-height', `${this.currentHeight}px`);\r\n this.renderer.setStyle(element, 'overflow', 'hidden');\r\n this.button!.childNodes[0].textContent = Texts.ReadMore;\r\n this.updateIcon('fa-chevron-down', 'fa-chevron-up');\r\n }\r\n\r\n private updateIcon(add: string, remove: string) {\r\n if (this.iconSpan) {\r\n this.renderer.removeClass(this.iconSpan, remove);\r\n this.renderer.addClass(this.iconSpan, add);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resetButton();\r\n this.resetFocusHandler();\r\n }\r\n}\r\n","import { Directive, Host } from '@angular/core';\r\nimport { SirioAccordionPanelComponent, NgxSirioEvent } from 'ngx-sirio-lib';\r\n\r\n@Directive({\r\n selector: '[accordionPanel]',\r\n standalone: true\r\n})\r\nexport class AccordionPanelDirective {\r\n\r\n constructor(\r\n @Host() panel: SirioAccordionPanelComponent\r\n ) {\r\n panel.opened.subscribe((event: NgxSirioEvent<SirioAccordionPanelComponent>) => {\r\n const element = (event.component.body as any).el.nativeElement;\r\n // delay height calculation to allow for DOM updates\r\n setTimeout(() => {\r\n const scrollHeight = element.scrollHeight;\r\n element.style.height = `${scrollHeight}px`;\r\n }, 0);\r\n }); \r\n }\r\n}\r\n","import { Component, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-template-wrapper',\r\n template: '',\r\n standalone: true\r\n})\r\nexport class TemplateWrapperComponent {\r\n @Input() template!: TemplateRef<any>;\r\n @Input() context: any = {};\r\n\r\n constructor() { }\r\n\r\n getTemplateRef(): TemplateRef<any> {\r\n const result = {\r\n createEmbeddedView: (context: any) => {\r\n return this.template.createEmbeddedView(this.context);\r\n }\r\n } as TemplateRef<any>;\r\n\r\n (result as any).createEmbeddedViewImpl = () => {\r\n return this.template.createEmbeddedView(this.context);\r\n }\r\n\r\n return result;\r\n } \r\n}\r\n","import { Component } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { ICellRendererParams } from 'ag-grid-community';\r\nimport { SirioButtonComponent } from 'ngx-sirio-lib';\r\nimport { ProgrammabilityService, EvaluateOptions } from '../services/programmability.service';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ProxyOptions } from '../services/proxy.service';\r\n\r\nimport { Texts } from '../locale/locale-it';\r\n\r\n@Component({\r\n templateUrl: './cell-templates/objectUrl.component.html',\r\n standalone: true\r\n})\r\nexport class ObjectURLRendererComponent implements ICellRendererAngularComp {\r\n params!: ICellRendererParams;\r\n\r\n Texts = Texts;\r\n\r\n agInit(params: ICellRendererParams): void {\r\n this.params = params;\r\n }\r\n\r\n onClick(event: Event) {\r\n const fileURL = URL.createObjectURL(this.params.data);\r\n window.open(fileURL, '_blank');\r\n setTimeout(() => {\r\n URL.revokeObjectURL(fileURL);\r\n }, 1000);\r\n }\r\n\r\n refresh(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\n@Component({\r\n templateUrl: './cell-templates/delete.component.html',\r\n standalone: true\r\n})\r\nexport class DeleteRowCellRenderer implements ICellRendererAngularComp {\r\n params: any;\r\n\r\n Texts = Texts;\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n }\r\n\r\n onClick(event: Event) {\r\n\r\n if ('remove' in this.params.data && typeof this.params.data.remove === 'function') {\r\n this.params.data.remove();\r\n }\r\n }\r\n\r\n refresh(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\n@Component({\r\n templateUrl: './cell-templates/actions.component.html',\r\n standalone: true,\r\n imports: [\r\n CommonModule, SirioButtonComponent\r\n ]\r\n})\r\nexport class ActionsCellRenderer implements ICellRendererAngularComp {\r\n\r\n constructor(private programmability: ProgrammabilityService) { }\r\n\r\n params: any;\r\n\r\n agInit(params: any): void {\r\n this.params = params;\r\n }\r\n\r\n refresh(): boolean {\r\n return false;\r\n }\r\n\r\n evaluateBoolean(value: boolean | string | null): boolean | null {\r\n\r\n const options: EvaluateOptions = {\r\n proxyFn: (options: ProxyOptions) => {\r\n options.extend[\"getParams\"] = () => this.params;\r\n options.extend[\"getData\"] = () => this.getData();\r\n }\r\n }\r\n\r\n return this.programmability.evaluateBoolean(this.getFormGroup(), value, options);\r\n }\r\n\r\n evaluateString(value: string | null): string {\r\n return this.programmability.evaluateString(this.getFormGroup(), value);\r\n }\r\n\r\n clickButton(action: any, event: any) {\r\n if (action.click) {\r\n\r\n const options: EvaluateOptions = {\r\n cacheable: false,\r\n proxyFn: (options: ProxyOptions) => {\r\n options.extend[\"getParams\"] = () => this.params;\r\n options.extend[\"getAction\"] = () => action;\r\n options.extend[\"getData\"] = () => this.getData();\r\n }\r\n }\r\n\r\n return this.programmability.evaluate(this.getFormGroup(), action.click, options);\r\n } \r\n }\r\n\r\n private getData(): any {\r\n return this.params.data;\r\n\r\n }\r\n\r\n private getFormGroup(): FormGroup {\r\n return this.params.formGroup as FormGroup;\r\n }\r\n}\r\n\r\n","<a [attr.aria-label]=\"Texts.Show\" title=\"{{ Texts.Show }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-paperclip\"></span>\r\n</a>\r\n","<a [attr.aria-label]=\"Texts.Remove\" title=\"{{ Texts.Remove }}\" href=\"javascript:void(0)\" (click)=\"onClick($event)\">\r\n <span class=\"fas fa-trash\"></span>\r\n</a>\r\n","<div class=\"btn-small-group\">\r\n <ng-container *ngFor=\"let action of params.component.actions\">\r\n <ngx-sirio-button class=\"btn-small\"\r\n [ariaLabel]=\"evaluateString(action.label)\"\r\n [title]=\"evaluateString(action.label)\"\r\n [color]=\"null\"\r\n [disabled]=\"evaluateBoolean(action.disabled)\"\r\n (clickEvent)=\"clickButton(action, $event)\"\r\n [icon]=\"evaluateString(action.icon)\">\r\n </ngx-sirio-button>\r\n </ng-container>\r\n</div>\r\n","import { SuppressKeyboardEventParams } from 'ag-grid-community';\r\n\r\nconst GRID_CELL_CLASSNAME = \"ag-cell\";\r\n\r\nfunction getEventPath(event: Event): HTMLElement[] {\r\n const path: HTMLElement[] = [];\r\n let currentTarget: any = event.target;\r\n while (currentTarget) {\r\n path.push(currentTarget);\r\n currentTarget = currentTarget.parentElement;\r\n }\r\n return path;\r\n}\r\n\r\nfunction getAllFocusableElementsOf(el: HTMLElement) {\r\n return Array.from<HTMLElement>(\r\n el.querySelectorAll(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\r\n )\r\n ).filter((focusableEl) => {\r\n return focusableEl.tabIndex !== -1 && !focusableEl.hasAttribute('disabled');\r\n });\r\n}\r\n\r\nexport const GridUtils = {\r\n navigateInsideCell({ event }: SuppressKeyboardEventParams<any>) {\r\n const { key, shiftKey } = event; \r\n const path = getEventPath(event);\r\n const isTabForward = key === \"Tab\" && shiftKey === false;\r\n const isTabBackward = key === \"Tab\" && shiftKey === true;\r\n let suppressEvent = false;\r\n // Handle cell children tabbing\r\n if (isTabForward || isTabBackward) {\r\n const eGridCell = path.find((el) => {\r\n if (el.classList === undefined) return false;\r\n return el.classList.contains(GRID_CELL_CLASSNAME);\r\n });\r\n if (!eGridCell) {\r\n return suppressEvent;\r\n }\r\n const focusableChildrenElements = getAllFocusableElementsOf(eGridCell);\r\n const lastCellChildEl =\r\n focusableChildrenElements[focusableChildrenElements.length - 1];\r\n const firstCellChildEl = focusableChildrenElements[0];\r\n // Suppress keyboard event if tabbing forward within the cell and the current focused element is not the last child\r\n if (focusableChildrenElements.length === 0) {\r\n return false;\r\n }\r\n const currentIndex = focusableChildrenElements.indexOf(\r\n document.activeElement as HTMLElement,\r\n );\r\n if (isTabForward) {\r\n const isLastChildFocused =\r\n lastCellChildEl && document.activeElement === lastCellChildEl;\r\n if (!isLastChildFocused) {\r\n suppressEvent = true;\r\n if (currentIndex !== -1 || document.activeElement === eGridCell) {\r\n event.preventDefault();\r\n focusableChildrenElements[currentIndex + 1].focus();\r\n }\r\n }\r\n }\r\n // Suppress keyboard event if tabbing backwards within the cell, and the current focused element is not the first child\r\n else {\r\n const cellHasFocusedChildren =\r\n eGridCell.contains(document.activeElement) &&\r\n eGridCell !== document.activeElement;\r\n // Manually set focus to the last child element if cell doesn't have focused children\r\n if (!cellHasFocusedChildren) {\r\n lastCellChildEl.focus();\r\n // Cancel keyboard press, so that it doesn't focus on the last child and then pass through the keyboard press to\r\n // move to the 2nd last child element\r\n event.preventDefault();\r\n }\r\n const isFirstChildFocused =\r\n firstCellChildEl && document.activeElement === firstCellChildEl;\r\n if (!isFirstChildFocused) {\r\n suppressEvent = true;\r\n if (currentIndex !== -1 || document.activeElement === eGridCell) {\r\n event.preventDefault();\r\n focusableChildrenElements[currentIndex - 1].focus();\r\n }\r\n }\r\n }\r\n }\r\n return suppressEvent;\r\n },\r\n\r\n \r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeResourceUrl } from '@angular/platform-browser';\r\nimport sanitizeHtml from 'sanitize-html';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SanitizeService {\r\n\r\n constructor(private sanitizer: DomSanitizer)\r\n {\r\n this.sanitizeOption = {\r\n allowedTags: sanitizeHtml.defaults.allowedTags.concat(['img']),\r\n allowedAttributes: {\r\n ...sanitizeHtml.defaults.allowedAttributes,\r\n '*': ['style']\r\n }\r\n };\r\n }\r\n\r\n sanitizeHtml(html: string): string {\r\n return sanitizeHtml(html, this.sanitizeOption);\r\n };\r\n\r\n sanitizeSafeHtml(html: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(this.sanitizeHtml(html));\r\n };\r\n\r\n sanitizeSafeUrl(url: string): SafeResourceUrl {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n\r\n toString(safeHtml: SafeHtml): string {\r\n return this.sanitizer.sanitize(1, safeHtml) || '';\r\n }\r\n\r\n private sanitizeOption!: sanitizeHtml.IOptions;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { marked } from 'marked';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MarkdownService {\r\n\r\n constructor() {\r\n\r\n marked.use({\r\n async: false,\r\n gfm: true,\r\n breaks: true\r\n });\r\n\r\n const renderer = new marked.Renderer();\r\n\r\n renderer.link = function (args) {\r\n return `<a href=\"${args.href}\" target=\"_blank\">${args.text}</a>`; \r\n };\r\n\r\n marked.setOptions({ renderer });\r\n }\r\n\r\n toHtml(text: string): string {\r\n return marked.parse(text ?? \"\") as string;\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport mimeDb from 'mime-db';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MimeService {\r\n\r\n constructor() { }\r\n\r\n getMimeTypes(extensions: string): string {\r\n return (extensions ?? \"\")\r\n .split(',')\r\n .map(ext => this.getMimeType(ext.trim()))\r\n .filter(mime => mime !== null)\r\n .join(', ');\r\n };\r\n\r\n private getMimeType(extension: string): string | null {\r\n const ext = extension.startsWith('.') ? extension.slice(1) : extension;\r\n for (const [mimeType, info] of Object.entries(mimeDb)) {\r\n if (info.extensions && info.extensions.includes(ext)) {\r\n return mimeType;\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n//import { FeelService } from '../services/feel.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormatterService {\r\n\r\n //constructor(private feelService: FeelService) { }\r\n\r\n constructor() { }\r\n\r\n formatCurrency(value: any, symbol: string | null = null): string {\r\n if (isNaN(value) || value === null || value === undefined) {\r\n return value;\r\n }\r\n\r\n const numberValue = parseFloat(value);\r\n if (isNaN(numberValue)) {\r\n return value;\r\n }\r\n\r\n const result = numberValue.toFixed(2).replace(\".\", \",\").replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n\r\n if (symbol) {\r\n return symbol + ' ' + result;\r\n }\r\n else {\r\n return result;\r\n }\r\n }\r\n\r\n formatDate(value: any): string {\r\n if (typeof value !== 'string' || !/^\\d{4}-\\d{2}-\\d{2}(T|$)/.test(value)) {\r\n return value;\r\n }\r\n\r\n const date = new Date(value);\r\n if (isNaN(date.getTime())) {\r\n return value;\r\n }\r\n\r\n const day = date.getDate().toString().padStart(2, '0');\r\n const month = (date.getMonth() + 1).toString().padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n return `${day}/${month}/${year}`;\r\n }\r\n\r\n formatInteger(value: any): string {\r\n if (isNaN(value) || value === null || value === undefined) {\r\n return value;\r\n }\r\n\r\n const numberValue = parseInt(value, 10);\r\n if (isNaN(numberValue)) {\r\n return value;\r\n }\r\n\r\n return numberValue.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\r\n }\r\n\r\n formatExpression(value: any, expression: string): string {\r\n return value as string;\r\n //const result = this.feelService.evalExpression(expression, { value: value }) as string;\r\n //return result;\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewEncapsulation, ElementRef, AfterViewInit } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { IDynamicFieldsComponent } from './dynamic-fields.interface';\r\nimport { FormGroup, FormControl, FormArray, AbstractControl } from '@angular/forms';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { SafeHtml, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { Datepicker } from 'vanillajs-datepicker';\r\nimport { SanitizeService } from '../services/sanitize.service';\r\nimport { MarkdownService } from '../services/markdown.service';\r\nimport { MimeService } from '../services/mime.service';\r\nimport { ProgrammabilityService } from '../services/programmability.service';\r\nimport { EventService, CommandEvent } from '../services/event.service';\r\nimport { FormatterService } from '../services/formatter.service';\r\nimport { WeakService } from '../services/weak.service';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { MetadataService } from '../services/metadata.service';\r\nimport { ButtonColors } from 'ngx-sirio-lib';\r\nimport { AdornerDirective } from '../directives/adorner.directive';\r\nimport { DisableDirective } from '../directives/disable.directive';\r\nimport { DisplayDirective } from '../directives/display.directive';\r\nimport { RepeatDirective } from '../directives/repeat.directive';\r\nimport { FrameSecurityDirective } from '../directives/framesecurity.directive';\r\nimport { DropdownDirective } from '../directives/dropdown.directive';\r\nimport { TabDirective } from '../directives/tab.directive';\r\nimport { AccordionDirective } from '../directives/accordion.directive';\r\nimport { GridDirective } from '../directives/grid.directive';\r\nimport { RegisterDirective } from '../directives/register.directive';\r\nimport { UpdateBlurDirective } from '../directives/updateblur.directive';\r\nimport { DateDirective } from '../directives/date.directive';\r\nimport { NumberDirective } from '../directives/number.directive';\r\nimport { TextDirective } from '../directives/text.directive';\r\nimport { DisableFormDirective } from '../directives/disableform.directive';\r\nimport { TabControlDirective } from '../directives/tabcontrol.directive';\r\nimport { CollapseDirective } from '../directives/collapse.directive';\r\nimport { AccordionPanelDirective } from '../directives/accordionpanel.directive';\r\nimport { TemplateWrapperComponent } from '../shared/template-wrapper/template-wrapper.component';\r\nimport { ObjectURLRendererComponent, DeleteRowCellRenderer, ActionsCellRenderer } from '../utils/gridCells';\r\nimport { isObservable, Observable, of } from 'rxjs';\r\n\r\nimport {\r\n SirioInputComponent, SirioValidationDirective\r\n , SirioSelectComponent, SirioSelectOptionComponent, SirioSelectPanelComponent\r\n , SirioCheckboxGroupComponent, SirioCheckboxComponent, SirioDatepickerComponent, SirioTimepickerComponent\r\n , SirioRadioGroupComponent, SirioRadioButtonComponent, SirioTabComponent, SirioTabItemComponent\r\n , SirioAccordionComponent, SirioAccordionPanelComponent, SirioAccordionHeaderComponent, SirioAccordionBodyComponent\r\n , SirioButtonComponent, SirioFileUploadComponent\r\n , SirioToggleComponent, SirioChipCheckboxGroupComponent, SirioChipRadioGroupComponent, SirioInputChipComponent\r\n , SirioAlertComponent, SirioAlertMessageComponent, SirioSliderComponent\r\n , SirioNotifyComponent, SirioNotifyBodyComponent, SirioNotifyActionComponent, SirioNotifyLinkComponent\r\n , SirioTooltipDirective\r\n , NgxSirioEvent\r\n} from 'ngx-sirio-lib';\r\n\r\nimport { AgGridAngular } from 'ag-grid-angular';\r\nimport {\r\n Module, PaginationModule, ClientSideRowModelModule, InfiniteRowModelModule\r\n , LocaleModule, CellStyleModule, ValidationModule\r\n , TextFilterModule, NumberFilterModule, DateFilterModule\r\n , ColDef, themeQuartz, iconSetAlpine, GridOptions, ValueFormatterParams\r\n , ClientSideRowModelApiModule\r\n , GridReadyEvent, ColumnAutoSizeModule, ColumnApiModule\r\n} from 'ag-grid-community';\r\nimport { AG_GRID_LOCALE_IT } from '@ag-grid-community/locale';\r\n\r\nimport { GridUtils } from '../utils/gridUtils';\r\n\r\nimport { Texts } from '../locale/locale-it';\r\n\r\n@Component({\r\n selector: 'app-dynamic-fields',\r\n templateUrl: './dynamic-fields.component.html',\r\n styleUrls: [\r\n './dynamic-fields.component.css'],\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule\r\n , AdornerDirective, DisableDirective, DisplayDirective, FrameSecurityDirective\r\n , DropdownDirective, UpdateBlurDirective, RepeatDirective, TabDirective, GridDirective\r\n , RegisterDirective, AccordionDirective, DateDirective, NumberDirective, TextDirective\r\n , DisableFormDirective, TabControlDirective, CollapseDirective, AccordionPanelDirective\r\n , SirioInputComponent, SirioValidationDirective\r\n , SirioSelectComponent, SirioSelectOptionComponent, SirioSelectPanelComponent\r\n , SirioCheckboxGroupComponent, SirioCheckboxComponent, SirioDatepickerComponent, SirioTimepickerComponent\r\n , SirioRadioGroupComponent, SirioRadioButtonComponent, SirioTabComponent, SirioTabItemComponent\r\n , SirioAccordionComponent, SirioAccordionPanelComponent, SirioAccordionHeaderComponent, SirioAccordionBodyComponent\r\n , SirioButtonComponent, SirioFileUploadComponent\r\n , SirioToggleComponent, SirioChipCheckboxGroupComponent, SirioChipRadioGroupComponent, SirioInputChipComponent\r\n , SirioAlertComponent, SirioAlertMessageComponent, SirioSliderComponent\r\n , SirioNotifyComponent, SirioNotifyBodyComponent, SirioNotifyActionComponent, SirioNotifyLinkComponent\r\n , SirioTooltipDirective\r\n , TemplateWrapperComponent\r\n , AgGridAngular],\r\n providers: [\r\n RegisterService,\r\n ProgrammabilityService\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DynamicFieldsComponent implements OnInit, AfterViewInit, IDynamicFieldsComponent {\r\n @Input() rows: Array<any> | undefined;\r\n @Input() formGroup!: FormGroup;\r\n\r\n Texts = Texts;\r\n\r\n constructor(private sanitizer: SanitizeService\r\n , private markdown: MarkdownService\r\n , private mime: MimeService\r\n , private programmability: ProgrammabilityService\r\n , private events: EventService\r\n , private formatter: FormatterService\r\n , private weak: WeakService\r\n , private register: RegisterService\r\n , private metadata: MetadataService\r\n , private el: ElementRef\r\n )\r\n {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.configureDatepicker();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.focusFirst();\r\n });\r\n }\r\n\r\n getRegister(): RegisterService {\r\n return this.register;\r\n }\r\n\r\n getClass(component: any): string {\r\n const colHost = \"col-host \";\r\n if (component.layout?.columns) {\r\n return colHost + \"col-md-\" + component.layout?.columns;\r\n }\r\n else {\r\n return colHost + \"col\";\r\n }\r\n }\r\n\r\n getTextFeedback(component: any): string {\r\n const control = this.formGroup.get(component.key) as FormControl;\r\n return !control || control.valid || !control.errors\r\n ? ''\r\n : control.errors['message'];\r\n }\r\n\r\n isWarning(component: any): boolean {\r\n const control = this.formGroup.get(component.key) as FormControl;\r\n return (control && control.errors && control.errors['warning']) || false\r\n }\r\n\r\n evaluateString(value: string | null): string {\r\n return this.programmability.evaluateString(this.formGroup, value); \r\n }\r\n\r\n evaluateBoolean(value: boolean | string | null): boolean | null {\r\n return this.programmability.evaluateBoolean(this.formGroup, value);\r\n }\r\n\r\n evaluateNumber(value: number | string | null): number | null {\r\n return this.programmability.evaluateNumber(this.formGroup, value);\r\n }\r\n\r\n evaluateUrl(value: string | null): SafeResourceUrl {\r\n const url = this.programmability.evaluateString(this.formGroup, value);\r\n const watchKey = `:safeUrl(${url})`;\r\n return this.weak.call(this.formGroup, watchKey, () => {\r\n return this.sanitizer.sanitizeSafeUrl(url);\r\n });\r\n }\r\n\r\n evaluateTemplate(value: string | null): string {\r\n return this.programmability.evaluateTemplate(this.formGroup, value);\r\n }\r\n\r\n evaluate(text: string | null, cacheable: boolean = true): any {\r\n return this.programmability.evaluate(this.formGroup, text, { cacheable: cacheable });\r\n }\r\n\r\n evaluateColor(value: string | null): ButtonColors | null {\r\n const color = this.evaluateString(value);\r\n const watchKey = `:buttonColor(${color})`;\r\n return this.weak.call(this.formGroup, watchKey, () => {\r\n if (color === \"ghost\")\r\n return null;\r\n const validColors: ButtonColors[] = ['primary', 'secondary', 'tertiary', 'tertiary-light', 'danger'];\r\n return validColors.includes(color as ButtonColors) ? (color as ButtonColors) : 'primary';\r\n });\r\n }\r\n\r\n evaluateConditional(conditional: any): boolean {\r\n const hide = this.evaluateBoolean(conditional?.hide);\r\n const show = this.evaluateBoolean(conditional?.show);\r\n \r\n return !(hide === true || show === false);\r\n }\r\n\r\n getTemplate(value: string): any {\r\n return this.metadata.getFormByName(value);\r\n }\r\n\r\n getFormGroup(control: AbstractControl | null): FormGroup {\r\n if (!(control instanceof FormGroup)) {\r\n throw new Error('Control is not a FormGroup');\r\n }\r\n return control;\r\n }\r\n\r\n getFormArray(control: AbstractControl | null): FormArray {\r\n if (!(control instanceof FormArray)) {\r\n throw new Error('Control is not a FormArray');\r\n }\r\n return control;\r\n }\r\n\r\n getControlFromPath(path: string | null): AbstractControl | null {\r\n const control = path\r\n ? this.formGroup.get(path)\r\n : this.formGroup;\r\n\r\n if (!control) { \r\n throw new Error(`FormGroup does not contain a control with path '${path}'`, { cause: this.formGroup });\r\n }\r\n return control;\r\n }\r\n\r\n toHTML(text: string): SafeHtml {\r\n const watchKey = `:safeHtml(${text})`;\r\n return this.weak.call(this.formGroup, watchKey, () => {\r\n const html = this.markdown.toHtml(text);\r\n return this.sanitizer.sanitizeSafeHtml(html);\r\n });\r\n };\r\n\r\n sanitize(html: string): SafeHtml {\r\n return this.sanitizer.sanitizeSafeHtml(html);\r\n };\r\n\r\n getMimeTypes(extensions: string): string {\r\n return this.mime.getMimeTypes(extensions);\r\n };\r\n\r\n clickButton(component: any, event: any) {\r\n if (component.click) {\r\n this.evaluate(component.click, false);\r\n }\r\n if (component.command) {\r\n const command: CommandEvent = {\r\n name: this.evaluateString(component.command),\r\n component: component,\r\n formGroup: this.formGroup,\r\n event: event\r\n };\r\n this.events.emitCommand(command);\r\n } \r\n }\r\n\r\n getValues(component: any): Observable<any> {\r\n if (component.values) {\r\n // Static\r\n return of(component.values);\r\n }\r\n else if (component.valuesKey) {\r\n // Field value\r\n const result = this.evaluate(component.valuesKey);\r\n return this.getAsObservable(result);\r\n }\r\n else if (component.valuesExpression) {\r\n // Expression\r\n const result = this.evaluate(component.valuesExpression);\r\n return this.getAsObservable(result);\r\n }\r\n else {\r\n // Nothing\r\n return of([]);\r\n } \r\n }\r\n\r\n getGridOptions(component: any): GridOptions {\r\n return this.weak.call(component, 'getGridOptions', () => {\r\n const columnDefs = this.getGridColumns(component);\r\n const pagination = this.getGridPaginable(component);\r\n const pageSize = this.getGridPageSize(component);\r\n const texts = this.getGridTexts();\r\n const theme = this.getGridTheme();\r\n return {\r\n defaultColDef: {\r\n floatingFilter: (component.floatingFilter === true),\r\n headerClass: (component.floatingFilter === true)\r\n ? 'show-filter' : 'hide-filter'\r\n },\r\n columnDefs: columnDefs,\r\n pagination: pagination,\r\n paginationPageSize: pageSize,\r\n paginationPageSizeSelector: [5, 10, 20, 50],\r\n localeText: texts,\r\n enableCellTextSelection: true,\r\n theme: theme,\r\n onGridReady: (params: GridReadyEvent) => {\r\n params.api.autoSizeColumns([\"actions\"]);\r\n }\r\n };\r\n });\r\n }\r\n\r\n getGridModules(component: any): Module[] {\r\n return this.weak.call(component, 'getGridModules', () => {\r\n return [\r\n ClientSideRowModelModule\r\n , InfiniteRowModelModule\r\n , PaginationModule\r\n , LocaleModule\r\n , CellStyleModule\r\n , ClientSideRowModelApiModule\r\n , TextFilterModule\r\n , NumberFilterModule\r\n , DateFilterModule\r\n , ColumnAutoSizeModule\r\n , ColumnApiModule\r\n , ValidationModule\r\n ];\r\n });\r\n }\r\n\r\n getGridData(component: any): Observable<any> {\r\n if (component.dataSource) {\r\n // Expression\r\n const result = this.evaluate(component.dataSource);\r\n return this.getAsObservable(result);\r\n }\r\n else {\r\n // Nothing\r\n return of([]);\r\n }\r\n }\r\n\r\n addItem(component: any) {\r\n const formArray = this.getFormArray(this.getControlFromPath(component.path));\r\n (formArray as any).addItem();\r\n }\r\n\r\n removeItem(component: any, index: number) {\r\n const formArray = this.getFormArray(this.getControlFromPath(component.path));\r\n formArray.removeAt(index);\r\n }\r\n\r\n createUploadTables(component: any): any {\r\n return this.weak.call(component, 'createUploadTables', () => {\r\n return [\r\n {\r\n components: [\r\n {\r\n \"type\": \"table\",\r\n \"layout\": {\r\n \"columns\": null\r\n },\r\n \"columns\": [\r\n {\r\n \"label\": Texts.Name,\r\n \"key\": \"name\",\r\n \"flex\": 1\r\n },\r\n {\r\n \"label\": Texts.Size,\r\n \"key\": \"size\",\r\n \"format\": \"integer\",\r\n \"align\": \"right\"\r\n },\r\n {\r\n \"label\": Texts.Type,\r\n \"key\": \"type\" \r\n },\r\n {\r\n \"key\": \"url\",\r\n \"label\": \"\",\r\n \"width\": 50,\r\n \"align\": \"center\",\r\n \"format\": \"objectURL\"\r\n },\r\n {\r\n \"label\": \"\",\r\n \"width\": 50,\r\n \"align\": \"center\",\r\n \"format\": \"deleteRow\"\r\n }\r\n ],\r\n \"dataSource\": \"=\" + component.key,\r\n \"height\": 200,\r\n \"conditional\": component.conditional,\r\n \"disabled\": component.disabled\r\n }\r\n ]\r\n }\r\n ];\r\n });\r\n }\r\n\r\n fileUploaded($event: NgxSirioEvent<SirioFileUploadComponent>) {\r\n const removeFile = (file: File) => {\r\n if ($event.component.control) {\r\n const newFiles = $event.component.fileList.filter(f => f !== file);\r\n $event.component.control.setValue(newFiles);\r\n addRemove(newFiles);\r\n return newFiles;\r\n }\r\n return [];\r\n }\r\n\r\n const addRemove = (files: File[]) => {\r\n files.forEach(file => {\r\n if (!('remove' in file)) {\r\n Object.defineProperty(file, 'remove', {\r\n value: function () {\r\n removeFile(this);\r\n },\r\n writable: false,\r\n enumerable: false\r\n });\r\n } \r\n }); \r\n };\r\n\r\n addRemove($event.component.fileList);\r\n }\r\n\r\n private focusFirst() {\r\n const focusableElements = this.el.nativeElement.querySelectorAll(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n\r\n for (let el of focusableElements) {\r\n if (!(el as HTMLElement).hasAttribute('disabled')) {\r\n (el as HTMLElement).focus();\r\n break;\r\n } \r\n }\r\n }\r\n\r\n private gridTexts = {\r\n ...AG_GRID_LOCALE_IT,\r\n \"pageSizeSelectorLabel\": \"Elementi per pagina:\",\r\n \"to\": \"-\",\r\n };\r\n\r\n private gridTheme = themeQuartz\r\n .withPart(iconSetAlpine)\r\n .withParams({\r\n backgroundColor: \"#FAFAFA\",\r\n borderColor: \"#D9E4F7\",\r\n browserColorScheme: \"light\",\r\n cellTextColor: \"#00121A\",\r\n columnBorder: true,\r\n fontFamily: \"inherit\",\r\n fontSize: 16,\r\n headerBackgroundColor: \"#002460\",\r\n headerColumnBorder: true,\r\n headerColumnResizeHandleColor: \"#F2F6FC\",\r\n headerColumnResizeHandleWidth: 2,\r\n headerFontSize: 16,\r\n headerFontWeight: 600,\r\n headerRowBorder: false,\r\n headerTextColor: \"#F2F6FC\",\r\n rowBorder: true\r\n });\r\n\r\n private getGridColumns(component: any): ColDef[] {\r\n if (Array.isArray(component.columns)) {\r\n const columns = component.columns.map((column: any) => ({\r\n field: column.key,\r\n headerName: column.label,\r\n resizable: column.resize === true,\r\n sortable: column.sort === true,\r\n filter: column.filter === true,\r\n suppressMovable: !(column.move === true),\r\n ...(column.flex === true && { flex: 1 }),\r\n ...(column.align === \"left\" && { cellStyle: { textAlign: 'left' } }),\r\n ...(column.align === \"center\" && { cellStyle: { textAlign: 'center' } }),\r\n ...(column.align === \"right\" && { cellStyle: { textAlign: 'right' } }),\r\n ...(typeof column.pinned === \"string\" && { pinned: column.pinned }),\r\n ...(typeof column.flex === \"number\" && { flex: column.flex }),\r\n ...(typeof column.width === \"number\" && { width: column.width }),\r\n ...(typeof column.minWidth === \"number\" && { minWidth: column.minWidth }),\r\n ...(typeof column.maxWidth === \"number\" && { maxWidth: column.maxWidth }),\r\n valueFormatter: this.getGridFormatter(column),\r\n cellRenderer: this.getGridRenderer(column)\r\n }));\r\n\r\n if (Array.isArray(component.actions) && component.actions.length > 0) {\r\n columns.push({\r\n colId: 'actions',\r\n headerName: Texts.Actions,\r\n resizable: false,\r\n cellDataType: false,\r\n pinned: \"right\",\r\n cellRendererParams: {\r\n component: component,\r\n formGroup: this.formGroup\r\n },\r\n cellRenderer: ActionsCellRenderer,\r\n suppressKeyboardEvent: GridUtils.navigateInsideCell\r\n });\r\n }\r\n\r\n return columns;\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n\r\n private getGridPaginable(component: any): boolean {\r\n return (typeof component.rowCount === 'number' && component.rowCount > 0);\r\n }\r\n\r\n private getGridPageSize(component: any) {\r\n if (typeof component.rowCount === 'number') {\r\n return component.rowCount;\r\n }\r\n }\r\n\r\n private getGridTexts() {\r\n return this.gridTexts;\r\n }\r\n\r\n private getGridTheme() {\r\n return this.gridTheme;\r\n }\r\n\r\n private getGridFormatter(column: any): ((param: ValueFormatterParams) => string) | undefined {\r\n if (column.format) {\r\n switch (column.format) {\r\n case 'integer':\r\n return params => this.formatter.formatInteger(params.value);\r\n case 'currency':\r\n return params => this.formatter.formatCurrency(params.value);\r\n case 'date':\r\n return params => this.formatter.formatDate(params.value);\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private getGridRenderer(column: any): any {\r\n if (column.format) {\r\n switch (column.format) {\r\n case 'objectURL':\r\n return ObjectURLRendererComponent;\r\n case \"deleteRow\":\r\n return DeleteRowCellRenderer;\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n private getAsObservable(value: any): Observable<any> {\r\n if (isObservable(value))\r\n return value;\r\n return of(value);\r\n }\r\n\r\n private configureDatepicker() {\r\n (Datepicker.locales as any)['it'] = {\r\n days: [\r\n 'Domenica',\r\n 'Lunedì',\r\n 'Martedì',\r\n 'Mercoledì',\r\n 'Giovedì',\r\n 'Venerdì',\r\n 'Sabato',\r\n ],\r\n daysMin: ['Dom', 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab'],\r\n months: [\r\n 'Gennaio',\r\n 'Febbraio',\r\n 'Marzo',\r\n 'Aprile',\r\n 'Maggio',\r\n 'Giugno',\r\n 'Luglio',\r\n 'Agosto',\r\n 'Settembre',\r\n 'Ottobre',\r\n 'Novembre',\r\n 'Dicembre',\r\n ],\r\n monthsShort: [\r\n 'Gen',\r\n 'Feb',\r\n 'Mar',\r\n 'Apr',\r\n 'Mag',\r\n 'Giu',\r\n 'Lug',\r\n 'Ago',\r\n 'Set',\r\n 'Ott',\r\n 'Nov',\r\n 'Dic',\r\n ],\r\n today: 'Oggi',\r\n clear: 'Pulisci',\r\n format: 'dd/mm/yyyy',\r\n weekStart: 1\r\n };\r\n };\r\n}\r\n","<ng-container *ngFor=\"let row of rows\" [formGroup]=\"formGroup\">\r\n <div class=\"row field-set\">\r\n <ng-container *ngFor=\"let component of row.components\">\r\n <ng-container [ngSwitch]=\"component.type\">\r\n <div [class]=\"getClass(component)\">\r\n <!-- #region textfield -->\r\n <ng-container *ngSwitchCase=\"'textfield'\">\r\n <ngx-sirio-input type=\"text\"\r\n ariaLabel=\"input\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [prefixAdorner]=\"evaluateString(component.appearance?.prefixAdorner)\"\r\n [suffixAdorner]=\"evaluateString(component.appearance?.suffixAdorner)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n [textcase]=\"component.textCase\"\r\n [maxlength]=\"evaluateNumber(component.maxLength)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #textfield\r\n [register]=\"component\"\r\n [componentRef]=\"textfield\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region select -->\r\n <ng-container *ngSwitchCase=\"'select'\">\r\n <ngx-sirio-select ariaLabel=\"select\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n dropdown\r\n #select\r\n [register]=\"component\"\r\n [componentRef]=\"select\">\r\n <ngx-sirio-select-panel ariaLabel=\"items\">\r\n <ngx-sirio-input *ngIf=\"component.searchable\" class=\"searchable\" type=\"text\" [placeholder]=\"Texts.TypeToSearch\"></ngx-sirio-input>\r\n <ngx-sirio-select-option *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">{{ option.label }}</ngx-sirio-select-option>\r\n </ngx-sirio-select-panel>\r\n </ngx-sirio-select>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region taglist -->\r\n <ng-container *ngSwitchCase=\"'taglist'\">\r\n <ngx-sirio-select ariaLabel=\"select\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [isMultiple]=\"true\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #taglist\r\n [register]=\"component\"\r\n [componentRef]=\"taglist\">\r\n <ngx-sirio-select-panel ariaLabel=\"items\">\r\n <ngx-sirio-select-option *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">{{ option.label }}</ngx-sirio-select-option>\r\n </ngx-sirio-select-panel>\r\n </ngx-sirio-select>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <ngx-sirio-input type=\"number\"\r\n ariaLabel=\"input\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [prefixAdorner]=\"evaluateString(component.appearance?.prefixAdorner)\"\r\n [suffixAdorner]=\"evaluateString(component.appearance?.suffixAdorner)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n number\r\n [defaultValue]=\"evaluateNumber(component.defaultValue)\"\r\n [minimum]=\"evaluateNumber(component.minimum)\"\r\n [maximum]=\"evaluateNumber(component.maximum)\"\r\n [decimalDigits]=\"evaluateNumber(component.decimalDigits)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #number\r\n [register]=\"component\"\r\n [componentRef]=\"number\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region datetime -->\r\n <ng-container *ngSwitchCase=\"'datetime'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ngx-sirio-datepicker ariaLabel=\"date\"\r\n [label]=\"evaluateString(component.dateLabel)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n isoDate\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #date\r\n [register]=\"component\"\r\n [componentRef]=\"date\">\r\n </ngx-sirio-datepicker>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region time -->\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <ngx-sirio-timepicker ariaLabel=\"time\"\r\n [label]=\"evaluateString(component.timeLabel)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #time\r\n [register]=\"component\"\r\n [componentRef]=\"time\">\r\n </ngx-sirio-timepicker>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region checkbox -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region toggle -->\r\n <ng-container *ngSwitchCase=\"'toggle'\">\r\n <ngx-sirio-toggle ariaLabel=\"checkbox\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #toggle\r\n [register]=\"component\"\r\n [componentRef]=\"toggle\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-toggle>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-checkbox ariaLabel=\"checkbox\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #checkbox\r\n [register]=\"component\"\r\n [componentRef]=\"checkbox\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-checkbox>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region radio -->\r\n <ng-container *ngSwitchCase=\"'radio'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region chip -->\r\n <ng-container *ngSwitchCase=\"'chip'\">\r\n <ngx-sirio-chip-radio-group ariaLabel=\"radio\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #chipradio\r\n [register]=\"component\"\r\n [componentRef]=\"chipradio\">\r\n <ngx-sirio-input-chip *ngFor=\"let option of (getValues(component) | async) || []\"\r\n type=\"radio\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-input-chip>\r\n </ngx-sirio-chip-radio-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-radio-group ariaLabel=\"radio\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #radio\r\n [register]=\"component\"\r\n [componentRef]=\"radio\">\r\n <ngx-sirio-radio-button *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-radio-button>\r\n </ngx-sirio-radio-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region checklist -->\r\n <ng-container *ngSwitchCase=\"'checklist'\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <!-- #region chip -->\r\n <ng-container *ngSwitchCase=\"'chip'\">\r\n <ngx-sirio-chip-checkbox-group ariaLabel=\"checklist\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #chipcheckbox\r\n [register]=\"component\"\r\n [componentRef]=\"chipcheckbox\">\r\n <ngx-sirio-input-chip *ngFor=\"let option of (getValues(component) | async) || []\"\r\n type=\"checkbox\"\r\n [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-input-chip>\r\n </ngx-sirio-chip-checkbox-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <ngx-sirio-checkbox-group ariaLabel=\"checklist\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #checkbox\r\n [register]=\"component\"\r\n [componentRef]=\"checkbox\">\r\n <ngx-sirio-checkbox *ngFor=\"let option of (getValues(component) | async) || []\" [value]=\"option.value\">\r\n {{ option.label }}\r\n </ngx-sirio-checkbox>\r\n </ngx-sirio-checkbox-group>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region textarea -->\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <ngx-sirio-input type=\"textarea\"\r\n ariaLabel=\"textarea\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [placeholder]=\"component.placeholder || ''\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [formControlName]=\"component.key\"\r\n [textcase]=\"component.textCase\"\r\n [maxlength]=\"evaluateNumber(component.maxLength)\"\r\n updateBlur\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #textarea\r\n [register]=\"component\"\r\n [componentRef]=\"textarea\">\r\n </ngx-sirio-input>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region filepicker -->\r\n <ng-container *ngSwitchCase=\"'filepicker'\">\r\n <ngx-sirio-file-upload ariaLabel=\"filepicker\"\r\n [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [accept]=\"getMimeTypes(component.accept)\"\r\n [multiple]=\"evaluateBoolean(component.multiple)\"\r\n (fileUploadedEvent)=\"fileUploaded($event)\"\r\n [showFilelist]=\"!component.showDetails\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n #filepicker\r\n [register]=\"component\"\r\n [componentRef]=\"filepicker\">\r\n <span class=\"fas fa-arrow-up\" aria-hidden=\"true\"></span>\r\n {{ Texts.Upload }}\r\n </ngx-sirio-file-upload>\r\n <ng-container *ngIf=\"component.showDetails\">\r\n <app-dynamic-fields [formGroup]=\"formGroup\" [rows]=\"createUploadTables(component)\"></app-dynamic-fields>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [collapse]=\"component.collapseTo\"\r\n #text\r\n [register]=\"component\"\r\n [componentRef]=\"text\">\r\n <!--Reset View Context-->\r\n <div tabindex=\"0\" style=\"display:none\"></div>\r\n <div class=\"flex\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n <ng-container *ngIf=\"component.tooltip\">\r\n <app-template-wrapper #tooltipWrapper [template]=\"tooltipTemplate\" [context]=\"{ component: component }\"></app-template-wrapper>\r\n <button class=\"sirio-label-popover fas fa-info-circle\"\r\n sirioTooltip\r\n [hasPopover]=\"true\"\r\n [customTemplate]=\"tooltipWrapper.getTemplateRef()\"></button>\r\n <ng-template #tooltipTemplate let-component=\"component\">\r\n <div class=\"sirio-tooltip-body\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.tooltip))\">\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region html -->\r\n <ng-container *ngSwitchCase=\"'html'\">\r\n <div class=\"html-paragraph\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [innerHTML]=\"sanitize(evaluateTemplate(component.content))\"\r\n #html\r\n [register]=\"component\"\r\n [componentRef]=\"html\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region image -->\r\n <ng-container *ngSwitchCase=\"'image'\">\r\n <img [src]=\"evaluateString(component.source)\"\r\n [alt]=\"evaluateString(component.alt)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n style=\"width: 100%;height: 100%;\"\r\n #image\r\n [register]=\"component\"\r\n [componentRef]=\"image\">\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region dynamiclist -->\r\n <ng-container *ngSwitchCase=\"'dynamiclist'\">\r\n <ng-container [formArrayName]=\"component.path\" [repeat]=\"evaluateNumber(component.repetitions)\">\r\n <ng-container [ngSwitch]=\"component.subtype\">\r\n <ng-container *ngIf=\"getFormArray(formGroup.get(component.path)).controls.length > 0\">\r\n <!-- #region tab -->\r\n <ng-container *ngSwitchCase=\"'tab'\">\r\n <div [register]=\"component\"\r\n [componentRef]=\"dynamiclisttab\">\r\n <ngx-sirio-tab [leftArrowLabel]=\"Texts.ScrollLeft\"\r\n [rightArrowLabel]=\"Texts.ScrollRight\"\r\n [tabCount]=\"getFormArray(formGroup.get(component.path)).controls.length\"\r\n #dynamiclisttab>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <ngx-sirio-tab-item [label]=\"component.label + ' ' + (i + 1)\">\r\n <ng-container *ngIf=\"i === dynamiclisttab.activeIndex\">\r\n <div [ngClass]=\"{\r\n'group-top': component.verticalAlignment === 'start',\r\n'group-center': component.verticalAlignment === 'center',\r\n'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container> \r\n </ngx-sirio-tab-item>\r\n </ng-container>\r\n </ngx-sirio-tab>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region accordion -->\r\n <ng-container *ngSwitchCase=\"'accordion'\">\r\n <div [register]=\"component\"\r\n [componentRef]=\"dynamiclistaccordion\">\r\n <ngx-sirio-accordion [accordionCount]=\"getFormArray(formGroup.get(component.path)).controls.length\"\r\n #dynamiclistaccordion>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <ngx-sirio-accordion-panel #panel accordionPanel>\r\n <ngx-sirio-accordion-header>\r\n <span [innerText]=\"component.label + ' ' + (i + 1)\"></span>\r\n </ngx-sirio-accordion-header>\r\n <ngx-sirio-accordion-body>\r\n <ng-container *ngIf=\"panel.panelIsOpen\">\r\n <div [ngClass]=\"{\r\n'group-top': component.verticalAlignment === 'start',\r\n'group-center': component.verticalAlignment === 'center',\r\n'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ngx-sirio-accordion-body>\r\n </ngx-sirio-accordion-panel>\r\n </ng-container>\r\n </ngx-sirio-accordion>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region default -->\r\n <ng-container *ngSwitchDefault>\r\n <div [ngClass]=\"{'group-outline': component.showOutline === true}\"\r\n #dynamiclist\r\n [register]=\"component\"\r\n [componentRef]=\"dynamiclist\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <ng-container *ngFor=\"let item of getFormArray(formGroup.get(component.path)).controls; let i = index;\" [formGroupName]=\"i\">\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(item)\" [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <div style=\"text-align:right\">\r\n <ngx-sirio-button (click)=\"removeItem(component, i)\" class=\"remove-item\" [color]=\"null\" icon=\"fas fa-trash\">{{ Texts.RemoveItem }}</ngx-sirio-button>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n </ng-container>\r\n <ng-container *ngIf=\"component.allowAddRemove\">\r\n <ngx-sirio-button (click)=\"addItem(component)\" class=\"add-item\" [color]=\"null\" icon=\"fas fa-plus\">{{ Texts.AddItem }}</ngx-sirio-button>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region group -->\r\n <ng-container *ngSwitchCase=\"'group'\">\r\n <div [ngClass]=\"{\r\n 'group-outline': component.showOutline === true,\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <div #group\r\n [register]=\"component\"\r\n [componentRef]=\"group\">\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(component.path))\"\r\n [rows]=\"component.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region table -->\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <ng-container *ngSwitchCase=\"'table'\">\r\n <label>{{ evaluateString(component.label) }}</label>\r\n <ag-grid-angular [modules]=\"getGridModules(component)\"\r\n [gridOptions]=\"getGridOptions(component)\"\r\n [rowSource]=\"(getGridData(component) | async) || []\"\r\n [style.height.px]=\"component.height\"\r\n #table\r\n [register]=\"component\"\r\n [componentRef]=\"table\" />\r\n </ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n <!-- #region button -->\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <ngx-sirio-button (clickEvent)=\"clickButton(component, $event)\"\r\n [color]=\"evaluateColor(component.color)\"\r\n [icon]=\"evaluateString(component.icon)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [disabled]=\"evaluateBoolean(component.disabled)\"\r\n #button\r\n [register]=\"component\"\r\n [componentRef]=\"button\">\r\n {{ evaluateString(component.label) }}\r\n </ngx-sirio-button>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region separator -->\r\n <ng-container *ngSwitchCase=\"'separator'\">\r\n <div class=\"separator\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #separator\r\n [register]=\"component\"\r\n [componentRef]=\"separator\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region spacer -->\r\n <ng-container *ngSwitchCase=\"'spacer'\">\r\n <div style=\"width: 100%\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [style.height.px]=\"component.height\"\r\n #spacer\r\n [register]=\"component\"\r\n [componentRef]=\"spacer\">\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region iframe -->\r\n <ng-container *ngSwitchCase=\"'iframe'\">\r\n <div [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\">\r\n <label [for]=\"component.id\">{{ evaluateString(component.label) }}</label>\r\n <iframe [src]=\"evaluateUrl(component.url)\"\r\n [title]=\"evaluateString(component.label)\"\r\n [style.width]=\"'100%'\"\r\n [style.height.px]=\"component.height\"\r\n [frameSecurity]=\"component.security\"\r\n #iframe\r\n [register]=\"component\"\r\n [componentRef]=\"iframe\">\r\n </iframe>\r\n </div>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region alert -->\r\n <ng-container *ngSwitchCase=\"'alert'\">\r\n <ngx-sirio-alert [type]=\"component.role\"\r\n [labelClose]=\"Texts.Close\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #alert\r\n [register]=\"component\"\r\n [componentRef]=\"alert\">\r\n <ngx-sirio-alert-message>\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </ngx-sirio-alert-message>\r\n </ngx-sirio-alert>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region notice -->\r\n <ng-container *ngSwitchCase=\"'notice'\">\r\n <ngx-sirio-notify [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n #notice\r\n [register]=\"component\"\r\n [componentRef]=\"notice\">\r\n <ngx-sirio-notify-body [title]=\"evaluateString(component.title)\">\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </ngx-sirio-notify-body>\r\n </ngx-sirio-notify>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region range -->\r\n <ng-container *ngSwitchCase=\"'range'\">\r\n <ngx-sirio-slider [label]=\"evaluateString(component.label)\"\r\n [labelPopover]=\"evaluateString(component.tooltip)\"\r\n [textHelp]=\"evaluateString(component.description)\"\r\n [textFeedback]=\"getTextFeedback(component)\"\r\n [readonly]=\"evaluateBoolean(component.readonly)\"\r\n [disableControl]=\"evaluateBoolean(component.disabled)\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n [formControlName]=\"component.key\"\r\n validation\r\n [canValidate]=\"true\"\r\n [isWarning]=\"isWarning(component)\"\r\n [showWhenValid]=\"false\"\r\n [min]=\"evaluateNumber(component.range?.min) ?? 0\"\r\n [max]=\"evaluateNumber(component.range?.max) ?? 0\"\r\n #range\r\n [register]=\"component\"\r\n [componentRef]=\"range\">\r\n </ngx-sirio-slider>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region tooltip -->\r\n <ng-container *ngSwitchCase=\"'tooltip'\">\r\n <app-template-wrapper #tooltipWrapper [template]=\"tooltipTemplate\" [context]=\"{ component: component }\"></app-template-wrapper>\r\n <button class=\"sirio-label-popover fas fa-info-circle\"\r\n [hide]=\"evaluateBoolean(component.conditional?.hide)\"\r\n [show]=\"evaluateBoolean(component.conditional?.show)\"\r\n sirioTooltip\r\n [hasPopover]=\"true\"\r\n [customTemplate]=\"tooltipWrapper.getTemplateRef()\"\r\n #tooltip\r\n [register]=\"component\"\r\n [componentRef]=\"tooltip\"></button>\r\n <ng-template #tooltipTemplate let-component=\"component\">\r\n <div class=\"sirio-tooltip-body\">\r\n <p *ngIf=\"component.title\" class=\"sirio-tooltip-heading sirio-space-down\">\r\n {{ evaluateString(component.title) }}\r\n </p>\r\n <div class=\"text-paragraph\"\r\n [innerHTML]=\"toHTML(evaluateTemplate(component.text))\">\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region tab -->\r\n <ng-container *ngSwitchCase=\"'tab'\">\r\n <ngx-sirio-tab #tab\r\n [register]=\"component\"\r\n [componentRef]=\"tab\"\r\n [leftArrowLabel]=\"Texts.ScrollLeft\"\r\n [rightArrowLabel]=\"Texts.ScrollRight\"\r\n tabControl>\r\n <ng-container *ngFor=\"let panel of component.panels\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(panel.disabled),\r\n formGroup: formGroup,\r\n path: panel.path\r\n }\">\r\n </ng-container>\r\n <ngx-sirio-tab-item [label]=\"evaluateString(panel.label)\"\r\n [disabled]=\"evaluateBoolean(panel.disabled) ?? false\"\r\n *ngIf=\"evaluateConditional(panel.conditional)\">\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(panel.path))\"\r\n [rows]=\"getTemplate(panel.template)?.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ngx-sirio-tab-item>\r\n </ng-container>\r\n </ngx-sirio-tab>\r\n </ng-container>\r\n <!-- #endregion -->\r\n <!-- #region accordion -->\r\n <ng-container *ngSwitchCase=\"'accordion'\">\r\n <ngx-sirio-accordion\r\n #accordion\r\n [register]=\"component\"\r\n [componentRef]=\"accordion\">\r\n <ng-container *ngFor=\"let panel of component.panels\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(panel.disabled),\r\n formGroup: formGroup,\r\n path: panel.path\r\n }\">\r\n </ng-container>\r\n <ngx-sirio-accordion-panel *ngIf=\"evaluateConditional(panel.conditional)\"\r\n [disabled]=\"evaluateBoolean(panel.disabled)\">\r\n <ngx-sirio-accordion-header>\r\n <span [innerText]=\"evaluateString(panel.label)\"></span>\r\n </ngx-sirio-accordion-header>\r\n <ngx-sirio-accordion-body>\r\n <div [ngClass]=\"{\r\n 'group-top': component.verticalAlignment === 'start',\r\n 'group-center': component.verticalAlignment === 'center',\r\n 'group-bottom': component.verticalAlignment === 'end'}\">\r\n <div>\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(getControlFromPath(panel.path))\"\r\n [rows]=\"getTemplate(panel.template)?.rows\"></app-dynamic-fields>\r\n </div>\r\n </div>\r\n </ngx-sirio-accordion-body>\r\n </ngx-sirio-accordion-panel>\r\n </ng-container>\r\n </ngx-sirio-accordion> \r\n </ng-container>\r\n <!-- #endregion -->\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n","/// <reference path=\"../types/typings.d.ts\" />\r\n\r\nimport {\r\n Component, Input, Output, OnChanges, OnDestroy \r\n , SimpleChanges, ViewEncapsulation, EventEmitter\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport {\r\n FormBuilder, FormGroup, FormControlOptions, AbstractControl\r\n , ValidatorFn, Validators, ValidationErrors,\r\n FormArray\r\n} from '@angular/forms';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { ProgrammabilityService } from '../services/programmability.service';\r\nimport { patchForm } from '../utils/patchForm';\r\nimport { groupByRow } from '../utils/groupByRow';\r\nimport { CommandEvent, EventService } from '../services/event.service';\r\nimport { MetadataService } from '../services/metadata.service';\r\nimport { DynamicFieldsComponent } from '../dynamic-fields/dynamic-fields.component';\r\nimport {\r\n SirioSidenavMobileComponent, SirioSidenavComponent, SirioSidenavItemComponent\r\n , SirioButtonComponent, SirioStepperProgressBarComponent, SirioStepperProgressItemComponent\r\n , SirioStepperProgressStatus\r\n} from 'ngx-sirio-lib';\r\nimport { RegisterService } from '../services/register.service';\r\nimport { RegisterDirective } from '../directives/register.directive';\r\nimport { DisableFormDirective } from '../directives/disableform.directive';\r\nimport { Control } from '../controls/control'; \r\n\r\nimport { Texts } from '../locale/locale-it';\r\n\r\n@Component({\r\n selector: 'app-dynamic-form',\r\n templateUrl: './dynamic-form.component.html',\r\n styleUrls: [\r\n '../shared/bootstrap-grid.scss',\r\n './dynamic-form.component.css'\r\n ],\r\n standalone: true,\r\n imports: [CommonModule, ReactiveFormsModule\r\n , RegisterDirective, DisableFormDirective\r\n , SirioSidenavMobileComponent, SirioSidenavComponent, SirioSidenavItemComponent\r\n , SirioButtonComponent, SirioStepperProgressBarComponent, SirioStepperProgressItemComponent\r\n , DynamicFieldsComponent],\r\n providers: [\r\n EventService, ProgrammabilityService, RegisterService, MetadataService\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DynamicFormComponent implements OnChanges, OnDestroy {\r\n @Input() schema: any;\r\n @Input() formGroup!: FormGroup;\r\n @Input() value: any = {};\r\n @Input() showNav: boolean = true;\r\n @Input() showNavButton: boolean = true;\r\n @Input() showProgress: boolean = false;\r\n @Input() progressStatus: boolean = true;\r\n @Output() valueChange = new EventEmitter<any>();\r\n @Output() initialized = new EventEmitter<FormGroup>();\r\n @Output() onCommand = new EventEmitter<CommandEvent>();\r\n @Output() activeNavChange = new EventEmitter<any>();\r\n\r\n constructor(private fb: FormBuilder\r\n , private programmability: ProgrammabilityService\r\n , private events: EventService\r\n , private registerService: RegisterService\r\n , private metadata: MetadataService\r\n ) { }\r\n\r\n Texts = Texts;\r\n\r\n ngOnDestroy(): void {\r\n this.clearHandlers();\r\n }\r\n\r\n private internalChange = false;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['schema']) {\r\n if (!this.formGroup) {\r\n this.formGroup = this.fb.group({});\r\n }\r\n\r\n this.clearControls();\r\n\r\n this.clearHandlers();\r\n\r\n const schema = changes['schema'].currentValue;\r\n\r\n const allForms = groupByRow(schema.forms ?? []);\r\n\r\n this.metadata.setSchema(schema);\r\n\r\n this.metadata.setForms(allForms);\r\n\r\n this._forms = allForms.filter(item => item.isTemplate !== true);;\r\n\r\n this.buildForm();\r\n\r\n this.defaultValue = this.formGroup.value;\r\n\r\n if (this.value) {\r\n patchForm(this.formGroup, this.value); \r\n }\r\n\r\n if (this.initialized)\r\n this.initialized.emit(this.formGroup);\r\n\r\n this.registerHandlers(); \r\n }\r\n\r\n if (changes['value']) {\r\n if (this.internalChange) {\r\n this.internalChange = false;\r\n } else {\r\n this.formGroup.reset(this.defaultValue, { emitEvent: false });\r\n patchForm(this.formGroup, this.value, {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n }\r\n\r\n get forms(): Array<any> {\r\n return this._forms;\r\n }\r\n\r\n canPrevious(): boolean {\r\n return this.getPrevious() != -1; \r\n }\r\n\r\n goPrevious() {\r\n if (this.canPrevious()) {\r\n this.activeNav = this.getPrevious();\r\n }\r\n }\r\n\r\n canNext(): boolean {\r\n return this.getNext() != -1; \r\n }\r\n\r\n goNext() {\r\n if (this.canNext()) { \r\n this.activeNav = this.getNext();\r\n }\r\n }\r\n\r\n getControls(): Control[] {\r\n return this.registerService.getControls();\r\n }\r\n\r\n getControl(name: string): Control | undefined {\r\n return this.registerService.getControl(name);\r\n }\r\n\r\n get activeNav(): number {\r\n return this._activeNav;\r\n }\r\n\r\n @Input()\r\n set activeNav(value: number) {\r\n if (value >= 0 && value < this.getMaxNav()) {\r\n this._activeNav = value;\r\n }\r\n setTimeout(() => {\r\n this.activeNavChange.emit(this._activeNav);\r\n });\r\n }\r\n\r\n getFormGroup(path: string | null): FormGroup {\r\n const control = path ? this.formGroup.get(path) : this.formGroup;\r\n if (!(control instanceof FormGroup)) {\r\n throw new Error('Control is not a FormGroup');\r\n }\r\n return control;\r\n }\r\n\r\n getFormStatus(form: any, index: number): SirioStepperProgressStatus {\r\n\r\n const current = index == this.activeNav;\r\n\r\n if (this.progressStatus && !current && this.hasValue(form.path)) {\r\n const formGroup = this.getFormGroup(form.path);\r\n return formGroup.valid ? \"success\" : \"error\";\r\n }\r\n else {\r\n return \"active\";\r\n } \r\n }\r\n\r\n activateForm(title: string) {\r\n const index = this.forms.findIndex(form => form.title === title);\r\n if (index != -1)\r\n this.activeNav = index;\r\n }\r\n\r\n evaluateBoolean(value: boolean | string | null): boolean | null {\r\n return this.programmability.evaluateBoolean(this.formGroup, value);\r\n }\r\n\r\n private valueChangesSubscription: Subscription | null = null;\r\n private onCommandSubscription: Subscription | null = null;\r\n\r\n private _forms: Array<any> = [];\r\n\r\n private _activeNav: number = 0;\r\n\r\n private defaultValue: any = { };\r\n\r\n private getNext(): number {\r\n let index = this.activeNav + 1;\r\n const max = this.getMaxNav();\r\n\r\n while (index < max) {\r\n if (!this.isDisabled(index)) {\r\n return index;\r\n }\r\n index++;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n private getPrevious(): number {\r\n let index = this.activeNav - 1;\r\n\r\n while (index >= 0) {\r\n if (!this.isDisabled(index)) {\r\n return index;\r\n }\r\n index--;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n private getMaxNav(): number {\r\n return this._forms.length ?? 0; \r\n };\r\n\r\n private isDisabled(index: number): boolean {\r\n var form = this._forms[index];\r\n\r\n if (!form)\r\n return false;\r\n\r\n return this.evaluateBoolean(form.disabled) ?? false;\r\n }\r\n \r\n private clearControls(): void {\r\n Object.keys(this.formGroup.controls).forEach(key => {\r\n this.formGroup.removeControl(key);\r\n });\r\n }\r\n\r\n private registerHandlers(): void {\r\n this.valueChangesSubscription = this.formGroup.valueChanges.subscribe((value) => {\r\n this.internalChange = true;\r\n this.valueChange.emit(value);\r\n });\r\n\r\n this.onCommandSubscription = this.events.onCommand.subscribe((data) => {\r\n if (this.onCommand)\r\n this.onCommand.emit(data);\r\n });\r\n };\r\n\r\n private clearHandlers(): void {\r\n if (this.valueChangesSubscription) {\r\n this.valueChangesSubscription.unsubscribe();\r\n }\r\n\r\n if (this.onCommandSubscription) {\r\n this.onCommandSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n private buildForm() {\r\n this.forms.forEach((form: any) => {\r\n const currentGroup = this.applyPath(this.fb, this.formGroup, form.path);\r\n form.rows?.forEach((row: any) => {\r\n this.addControls(this.fb, currentGroup, row.components);\r\n });\r\n });\r\n }\r\n\r\n private addControls(formBuilder: FormBuilder, formGroup: FormGroup, components: Array<any>) {\r\n let formComponent = this;\r\n\r\n components?.forEach((component: any) => {\r\n if (this.isFormComponent(component)) {\r\n let defaultValue = this.getDefaultValue(component);\r\n const validators = this.getValidators(formGroup, component);\r\n const options: FormControlOptions = {\r\n validators: validators || [],\r\n updateOn: this.getUpdateOn(component) || \"change\"\r\n };\r\n const control = formBuilder.control(defaultValue, options);\r\n formGroup.addControl(component.key, control);\r\n }\r\n else if (this.isContainerComponent(component)) {\r\n const containers = this.getContainers(component);\r\n containers?.forEach((container: { path: any; rows: any }) => {\r\n const currentGroup = this.applyPath(formBuilder, formGroup, container.path);\r\n container.rows?.forEach((row: any) => {\r\n formComponent.addControls(formBuilder, currentGroup, row.components);\r\n });\r\n });\r\n }\r\n else if (this.isArrayComponent(component)) {\r\n const itemComponent = this.getArrayItem(component);\r\n\r\n if (itemComponent.path) {\r\n const formArray = this.createFormArray(formBuilder, formGroup, itemComponent);\r\n formGroup.addControl(itemComponent.path, formArray);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private createFormArray(formBuilder: FormBuilder, formGroup: FormGroup, itemComponent: any): FormArray {\r\n const formComponent = this;\r\n\r\n const formArray = formBuilder.array<FormGroup>([]);\r\n\r\n formGroup.addControl(itemComponent.path, formArray);\r\n\r\n const createItem = function (): FormGroup {\r\n let newGroup = formBuilder.group({});\r\n itemComponent.rows?.forEach((row: any) => {\r\n formComponent.addControls(formBuilder, newGroup, row.components);\r\n });\r\n return newGroup;\r\n };\r\n\r\n const resizeFormArray = this.resizeFormArray;\r\n\r\n const addItem = function (this: FormArray) {\r\n let newGroup = createItem();\r\n this.push(newGroup);\r\n return newGroup;\r\n };\r\n\r\n const prepareArray = (array: any) => {\r\n array.addItem = addItem;\r\n array.resize = resize;\r\n }\r\n\r\n const resize = function (this: FormArray, size: number) {\r\n const newArray = resizeFormArray(this, size, createItem);\r\n prepareArray(newArray);\r\n formGroup.setControl(itemComponent.path, newArray);\r\n };\r\n\r\n prepareArray(formArray);\r\n\r\n return formArray;\r\n }\r\n\r\n private resizeFormArray(formArray: FormArray, size: number, createItem: () => FormGroup) : FormArray {\r\n if (formArray.length < size) {\r\n const newArray = new FormArray(formArray.controls);\r\n while (formArray.length < size) {\r\n newArray.push(createItem());\r\n }\r\n return newArray;\r\n }\r\n else if (formArray.length > size) {\r\n return new FormArray(formArray.controls.slice(0, size));\r\n }\r\n else {\r\n return formArray;\r\n }\r\n }\r\n\r\n private applyPath(formBuilder: FormBuilder, formGroup: FormGroup, path: string) {\r\n if (!path) {\r\n return formGroup;\r\n }\r\n let currentGroup: FormGroup = formGroup;\r\n this.splitPath(path).forEach((segment) => {\r\n const existGroup = currentGroup.get(segment);\r\n if (existGroup instanceof FormGroup) {\r\n currentGroup = existGroup;\r\n return;\r\n }\r\n else if (existGroup) {\r\n throw new Error(`Cannot create form group because an element with path ${segment} already exists`);\r\n }\r\n else {\r\n const segmentGroup = formBuilder.group({});\r\n currentGroup.addControl(segment, segmentGroup);\r\n currentGroup = segmentGroup;\r\n } \r\n });\r\n return currentGroup;\r\n }\r\n\r\n private getValidators(formGroup: FormGroup, component: any): ValidatorFn[] | null {\r\n\r\n const validators: ValidatorFn[] = [];\r\n\r\n if (component?.validate?.required === true) {\r\n validators.push(Validators.required);\r\n }\r\n\r\n if (!Array.isArray(component.validations)) {\r\n if (validators.length == 0)\r\n return null;\r\n return validators;\r\n }\r\n\r\n component.validations?.forEach((item: any) => {\r\n if (!this.programmability.isExpression(item.expression))\r\n return;\r\n\r\n if (item.type === \"validate\") {\r\n validators.push(this.validateFn(formGroup, item));\r\n }\r\n else if (item.type === \"invalidate\") {\r\n validators.push(this.invalidateFn(formGroup, item));\r\n } \r\n });\r\n\r\n if (validators.length == 0)\r\n return null;\r\n\r\n return validators;\r\n }\r\n\r\n private validateFn(formGroup: FormGroup, item: any): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n\r\n //if (!control.touched)\r\n // return null;\r\n\r\n var valid = this.programmability.evaluateUnary(formGroup, item.expression, control.value);\r\n\r\n if (!valid) {\r\n return { error: true, message: item.message };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n private invalidateFn(formGroup: FormGroup, item: any): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n\r\n //if (!control.touched)\r\n // return null;\r\n\r\n var invalid = this.programmability.evaluateUnary(formGroup, item.expression, control.value);\r\n\r\n if (invalid) {\r\n return { error: true, message: item.message };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n private isFormComponent(component: any): boolean {\r\n switch (component.type) {\r\n case \"checkbox\":\r\n case \"checklist\":\r\n case \"datetime\":\r\n case \"filepicker\":\r\n case \"number\":\r\n case \"radio\":\r\n case \"select\":\r\n case \"taglist\":\r\n case \"textarea\":\r\n case \"textfield\":\r\n case \"range\":\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private isContainerComponent(component: any): boolean {\r\n switch (component.type) {\r\n case \"group\":\r\n case \"tab\":\r\n case \"accordion\":\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private isArrayComponent(component: any): boolean {\r\n switch (component.type) {\r\n case \"dynamiclist\":\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n \r\n private getArrayItem(component: any): { path: any; rows: any } {\r\n if (component.type === 'dynamiclist') {\r\n return { path: component.path, rows: component.rows };\r\n }\r\n else {\r\n return { path: null, rows: [] };\r\n }\r\n }\r\n\r\n private getContainers(component: any): { path: any; rows: any }[] {\r\n if (component.type === 'group') {\r\n return [{ path: component.path, rows: component.rows }];\r\n }\r\n else if (component.type === 'tab'\r\n || component.type === 'accordion') {\r\n return component.panels.map((panel: any) => ({\r\n path: panel.path,\r\n rows: this.metadata.getFormByName(panel.template)?.rows ?? []\r\n }));\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n\r\n private getUpdateOn(component: any): any {\r\n switch (component.type) {\r\n case \"number\":\r\n case \"textarea\":\r\n case \"textfield\":\r\n return \"blur\";\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private getDefaultValue(component: any): any {\r\n switch (component.type) {\r\n case \"textarea\":\r\n case \"textfield\":\r\n case \"radio\":\r\n case \"select\":\r\n return component.defaultValue as string;\r\n case \"number\":\r\n return component.defaultValue as number;\r\n case \"checkbox\":\r\n return component.defaultValue as boolean;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private splitPath(path: string): string[] {\r\n if (!path) {\r\n return [];\r\n }\r\n return path\r\n .split('.')\r\n .map(segment => segment.trim())\r\n .filter(segment => segment.length > 0);\r\n }\r\n\r\n private hasValue(value: string | null): boolean {\r\n return value != null && value.trim().length > 0;\r\n }\r\n}\r\n","<form [formGroup]=\"formGroup\" class=\"ngs\">\r\n\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n\r\n <!-- #region progress -->\r\n <ngx-sirio-stepper-progress-bar *ngIf=\"showProgress\"\r\n (eventClick)=\"activateForm($event.data.label)\"\r\n [hasDropdown]=\"true\"\r\n [dropDownLabel]=\"Texts.Show\">\r\n <ng-container *ngFor=\"let form of forms, let formIndex = index\">\r\n <ngx-sirio-stepper-progress-item *ngIf=\"!evaluateBoolean(form.disabled)\"\r\n [hasNavigation]=\"true\"\r\n [status]=\"getFormStatus(form,formIndex)\"\r\n [label]=\"form.title\" />\r\n </ng-container>\r\n </ngx-sirio-stepper-progress-bar>\r\n <!-- #endregion -->\r\n\r\n <!-- #region form disable -->\r\n <ng-container *ngFor=\"let form of forms\">\r\n <ng-container *disableForm=\"{\r\n disabled: evaluateBoolean(form.disabled),\r\n formGroup: formGroup,\r\n path: form.path\r\n }\">\r\n </ng-container>\r\n </ng-container>\r\n <!-- #endregion -->\r\n\r\n <ng-container *ngIf=\"showNav\">\r\n\r\n <div class=\"col-md-4\">\r\n\r\n <!-- #region sidenav -->\r\n <ng-template #sidenavTemplate>\r\n <ngx-sirio-sidenav>\r\n <ng-container *ngFor=\"let form of forms, let sectionIndex = index\">\r\n <ng-container *ngIf=\"!evaluateBoolean(form.disabled)\">\r\n <ngx-sirio-sidenav-item [isActive]=\"activeNav == sectionIndex\" (click)=\"activeNav = sectionIndex\">\r\n {{ form.title }}\r\n </ngx-sirio-sidenav-item>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-sirio-sidenav>\r\n </ng-template>\r\n\r\n <ngx-sirio-sidenav-mobile class=\"d-block d-lg-none\"\r\n openMenuLabel=\"Apri Menu\"\r\n openMenuAriaLabel=\"Apri Menu\"\r\n closeMenuLabel=\"Chiudi Menu\"\r\n closeMenuAriaLabel=\"Chiudi Menu\">\r\n <ng-container *ngTemplateOutlet=\"sidenavTemplate\"></ng-container>\r\n </ngx-sirio-sidenav-mobile>\r\n <div class=\"d-none d-lg-block\">\r\n <ng-container *ngTemplateOutlet=\"sidenavTemplate\"></ng-container>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n </div>\r\n\r\n <div class=\"col-md-1\">\r\n <div class=\"separator-horizontal\"></div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n <div class=\"content-element-form\" [ngClass]=\"showNav ? 'col-md-11' : 'col-md-16'\">\r\n\r\n <ng-container *ngFor=\"let form of forms, let sectionIndex = index\">\r\n <div *ngIf=\"activeNav == sectionIndex && !evaluateBoolean(form.disabled)\"\r\n #default\r\n [register]=\"form\"\r\n [componentRef]=\"default\">\r\n <app-dynamic-fields [formGroup]=\"getFormGroup(form.path)\" [rows]=\"form.rows\"></app-dynamic-fields>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"showNavButton\">\r\n\r\n <div class=\"row section-navs\">\r\n <div class=\"col-8 col-md-8\">\r\n <ngx-sirio-button [color]=\"null\" [disabled]=\"!canNext()\" (click)=\"goNext()\" class=\"nextSection\">\r\n {{ Texts.NextSection }}\r\n <span class=\"fa-solid fa-chevron-right\" style=\"margin-left: 10px\"></span>\r\n </ngx-sirio-button>\r\n </div>\r\n <div class=\"col-8 col-md-8\">\r\n <ngx-sirio-button [color]=\"null\" [disabled]=\"!canPrevious()\" (click)=\"goPrevious()\" class=\"prevSection\">\r\n <span class=\"fa-solid fa-chevron-left\" style=\"margin-right: 10px\"></span>\r\n {{ Texts.PreviousSection }}\r\n </ngx-sirio-button>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n</form>\r\n\r\n\r\n\r\n","export function extractFiles(data: any)\r\n : { data: any; files: File[] }\r\n{\r\n let files: File[] = [];\r\n\r\n const rewrite = (obj: any): any => {\r\n if (Array.isArray(obj)) {\r\n return obj.map(item => rewrite(item));\r\n }\r\n else if (obj instanceof File) {\r\n files.push(obj);\r\n return {\r\n name: obj.name,\r\n size: obj.size,\r\n type: obj.type,\r\n lastModified: obj.lastModified,\r\n _fileIndex: files.length - 1\r\n };\r\n }\r\n else if (typeof obj === 'object' && obj !== null) {\r\n const rewritten: any = {};\r\n for (const key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n rewritten[key] = rewrite(obj[key]);\r\n }\r\n }\r\n return rewritten;\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n return { data: rewrite(data), files: files };\r\n}\r\n","import { extractFiles } from \"./extractFiles\";\r\n\r\nexport function toFormData(data: any): FormData\r\n{\r\n const formData = new FormData();\r\n\r\n var result = extractFiles(data);\r\n\r\n formData.append(\"data\", JSON.stringify(result.data));\r\n \r\n result.files.forEach((file) => {\r\n formData.append(\"files\", file);\r\n });\r\n\r\n return formData;\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { IGetRowsParams } from 'ag-grid-community';\r\nimport { IRowsSource } from './interfaces';\r\n\r\nexport class ODataSource implements IRowsSource {\r\n constructor(private url: string\r\n , private http: HttpClient) {\r\n }\r\n\r\n getRows(params: IGetRowsParams) {\r\n const queryString = this.getQueryString(params);\r\n\r\n let queryUrl = `${this.url}${queryString}`\r\n\r\n this.http.get<any>(queryUrl, { observe: 'response' }).subscribe({\r\n next: response => {\r\n const data = response.body ?? [];\r\n const count = response.headers.get('X-Total-Count');\r\n params.successCallback(data, this.toNumber(count));\r\n },\r\n error: error => {\r\n console.log(error);\r\n params.failCallback();\r\n }\r\n });\r\n }\r\n\r\n private getQueryString(params: IGetRowsParams): string {\r\n let queryParams = new HttpParams();\r\n queryParams = this.addCount(queryParams);\r\n queryParams = this.addSkipAndTake(params, queryParams);\r\n queryParams = this.addOrderBy(params, queryParams);\r\n queryParams = this.addFilterBy(params, queryParams);\r\n\r\n const queryString = queryParams.toString();\r\n return queryString ? \"?\" + queryString : queryString;\r\n }\r\n\r\n private addCount(queryParams: HttpParams): HttpParams {\r\n return queryParams.set(\"$count\", \"true\");\r\n }\r\n\r\n private addSkipAndTake(params: IGetRowsParams, queryParams: HttpParams): HttpParams {\r\n return queryParams\r\n .set(\"$top\", `${params.endRow - params.startRow}`)\r\n .set(\"$skip\", `${params.startRow}`);\r\n }\r\n\r\n private addOrderBy(params: IGetRowsParams, queryParams: HttpParams): HttpParams {\r\n if (!params.sortModel || params.sortModel.length === 0) {\r\n return queryParams;\r\n }\r\n\r\n const orderByParams = params.sortModel\r\n .map(sort => `${sort.colId} ${sort.sort}`)\r\n .join(\",\");\r\n\r\n return queryParams.set(\"$orderby\", orderByParams);\r\n }\r\n\r\n private addFilterBy(params: IGetRowsParams, queryParams: HttpParams): HttpParams {\r\n\r\n const filterModel = params.filterModel;\r\n\r\n if (!filterModel || Object.keys(filterModel).length === 0) {\r\n return queryParams;\r\n }\r\n\r\n const filters: string[] = [];\r\n\r\n for (const column in filterModel) {\r\n const filter = filterModel[column];\r\n\r\n const condition = this.getCondition(column, filter);\r\n\r\n if (condition) {\r\n filters.push(condition);\r\n }\r\n }\r\n\r\n return queryParams.set(\"$filter\", filters.join(\" and \"));\r\n }\r\n\r\n private getCondition(column: string, filter: any): string | null {\r\n\r\n if (filter.operator === \"AND\" || filter.operator === \"OR\") {\r\n if (Array.isArray(filter.conditions)) {\r\n return \"(\" + filter.conditions.map((subfilter: any) => this.getCondition(column, subfilter))\r\n .join(` ${filter.operator.toLowerCase()} `) + \")\";\r\n }\r\n return null;\r\n }\r\n\r\n const value = filter.filter;\r\n\r\n switch (filter.filterType) {\r\n case \"text\":\r\n const text = (value ?? \"\").replace(/'/g, \"''\");\r\n if (filter.type === \"contains\") {\r\n return `contains(${column}, '${text}')`;\r\n } else if (filter.type === \"notContains\") {\r\n return `not contains(${column}, '${text}')`;\r\n } else if (filter.type === \"equals\") {\r\n return `${column} eq '${text}'`;\r\n } else if (filter.type === \"notEqual\") {\r\n return `${column} ne '${text}'`;\r\n } else if (filter.type === \"startsWith\") {\r\n return `startswith(${column}, '${text}')`;\r\n } else if (filter.type === \"endsWith\") {\r\n return `endswith(${column}, '${text}')`;\r\n } else if (filter.type === \"blank\") {\r\n return `${column} eq null`;\r\n } else if (filter.type === \"notBlank\") {\r\n return `${column} ne null`;\r\n }\r\n break;\r\n\r\n case \"number\":\r\n if (filter.type === \"equals\") {\r\n return `${column} eq ${value}`;\r\n } else if (filter.type === \"greaterThan\") {\r\n return `${column} gt ${value}`;\r\n } else if (filter.type === \"lessThan\") {\r\n return `${column} lt ${value}`;\r\n } else if (filter.type === \"greaterThanOrEqual\") {\r\n return `${column} ge ${value}`;\r\n } else if (filter.type === \"lessThanOrEqual\") {\r\n return `${column} le ${value}`;\r\n }\r\n break;\r\n\r\n case \"date\":\r\n return `${column} eq ${value}`; // Modifica se OData usa formati ISO\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private toNumber(value: string | null): number | undefined {\r\n if (!value)\r\n return undefined;\r\n const num = parseFloat(value);\r\n return isNaN(num) ? undefined : num;\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport class RestDataSource<T, T2 = T> {\r\n private params: Record<string, any> = {};\r\n private mapFn?: (data: T) => T2;\r\n\r\n constructor(private http: HttpClient\r\n , private baseUrl: string) { }\r\n\r\n setParam(key: string, value: any): RestDataSource<T, T2> {\r\n if (value !== undefined && value !== null) {\r\n this.params[key] = value;\r\n } else {\r\n delete this.params[key];\r\n }\r\n return this;\r\n }\r\n\r\n setParams(params: Record<string, any>): RestDataSource<T, T2> {\r\n this.params = { ...params };\r\n return this;\r\n }\r\n\r\n setMapFunction(mapFn: (data: T) => T2): RestDataSource<T, T2> {\r\n this.mapFn = mapFn;\r\n return this;\r\n }\r\n\r\n getMapFunction(): ((data: T) => T2) | undefined {\r\n return this.mapFn;\r\n }\r\n\r\n getParam(key: string): any {\r\n return this.params[key];\r\n }\r\n\r\n getParams(): Record<string, any> {\r\n return this.params;\r\n }\r\n\r\n getData(): Observable<T2[]> {\r\n let httpParams = new HttpParams();\r\n\r\n Object.keys(this.params).forEach(key => {\r\n if (this.params[key] !== undefined && this.params[key] !== null) {\r\n httpParams = httpParams.set(key, this.params[key].toString());\r\n }\r\n });\r\n\r\n return this.http.get<T[]>(this.baseUrl, { params: httpParams }).pipe(\r\n map(responseArray =>\r\n this.mapFn ? responseArray.map(item => this.mapFn!(item)) : responseArray as unknown as T2[]\r\n )\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ODataSource } from '../dataSources/odata';\r\nimport { RestDataSource } from '../dataSources/rest';\r\nimport { IRowsSource } from '../dataSources/interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataService {\r\n\r\n constructor(\r\n private http: HttpClient)\r\n { }\r\n\r\n queryOData(url: string): IRowsSource {\r\n return this.createOData(url);\r\n }\r\n\r\n createRest(url: string): RestDataSource<any, any>;\r\n createRest<T>(url: string): RestDataSource<T, T>;\r\n createRest<T, T2>(url: string): RestDataSource<T, T2>;\r\n createRest<T = any, T2 = T>(url: string): RestDataSource<T, T2> {\r\n return new RestDataSource<T, T2>(this.http, url);\r\n }\r\n\r\n private createOData(url: string): IRowsSource {\r\n return new ODataSource(url, this.http);\r\n }\r\n\r\n}\r\n","/*\r\n * Public API Surface of sirio\r\n */\r\n\r\nexport * from './lib/dynamic-form/dynamic-form.component';\r\n\r\nexport * from './lib/utils/toFormData';\r\n\r\nexport * from './lib/services/data.service';\r\nexport * from './lib/services/scope.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["evaluateTemplate","evaluate","i1.ProxyService","i1.FeelService","i2.WeakService","i3.ProxyService","i4.ToastService","i5.RegisterService","i6.ScopeService","FormControl","i1","takeUntil","i1.RegisterService","i2.ProxyService","i1.ProgrammabilityService","i1.SanitizeService","i2.MarkdownService","i3.MimeService","i4.ProgrammabilityService","i5.EventService","i6.FormatterService","i7.WeakService","i8.RegisterService","i9.MetadataService","i11","i2.ProgrammabilityService","i3.EventService","i4.RegisterService","i5.MetadataService","i6"],"mappings":"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"}