ngx-histaff-alpha 5.8.4 → 5.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-DCHxg6s_.mjs → ngx-histaff-alpha-ai-hint-for-table.component-Bl1_9vY4.mjs} +3 -3
  2. package/fesm2022/{ngx-histaff-alpha-ai-hint-for-table.component-DCHxg6s_.mjs.map → ngx-histaff-alpha-ai-hint-for-table.component-Bl1_9vY4.mjs.map} +1 -1
  3. package/fesm2022/{ngx-histaff-alpha-core-form-design.component-CXNzmSny.mjs → ngx-histaff-alpha-core-form-design.component-BsuF_N7l.mjs} +21 -36
  4. package/fesm2022/ngx-histaff-alpha-core-form-design.component-BsuF_N7l.mjs.map +1 -0
  5. package/fesm2022/{ngx-histaff-alpha-core-sticker-collection.component-xJf23oNZ.mjs → ngx-histaff-alpha-core-sticker-collection.component-CzNeWEKx.mjs} +3 -3
  6. package/fesm2022/{ngx-histaff-alpha-core-sticker-collection.component-xJf23oNZ.mjs.map → ngx-histaff-alpha-core-sticker-collection.component-CzNeWEKx.mjs.map} +1 -1
  7. package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-CQaUSyCv.mjs → ngx-histaff-alpha-core-toast-loading.component-qnsnXPsb.mjs} +2 -2
  8. package/fesm2022/{ngx-histaff-alpha-core-toast-loading.component-CQaUSyCv.mjs.map → ngx-histaff-alpha-core-toast-loading.component-qnsnXPsb.mjs.map} +1 -1
  9. package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-BkieVBeP.mjs → ngx-histaff-alpha-core-workflow-consume.component-BN02d212.mjs} +2 -2
  10. package/fesm2022/{ngx-histaff-alpha-core-workflow-consume.component-BkieVBeP.mjs.map → ngx-histaff-alpha-core-workflow-consume.component-BN02d212.mjs.map} +1 -1
  11. package/fesm2022/{ngx-histaff-alpha-db-settings.component-B9sdPdJ9.mjs → ngx-histaff-alpha-db-settings.component-ry9dgeRJ.mjs} +5 -5
  12. package/fesm2022/{ngx-histaff-alpha-db-settings.component-B9sdPdJ9.mjs.map → ngx-histaff-alpha-db-settings.component-ry9dgeRJ.mjs.map} +1 -1
  13. package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-BQwUS9QM.mjs → ngx-histaff-alpha-design-wrapper.component-roeU--fl.mjs} +5 -5
  14. package/fesm2022/{ngx-histaff-alpha-design-wrapper.component-BQwUS9QM.mjs.map → ngx-histaff-alpha-design-wrapper.component-roeU--fl.mjs.map} +1 -1
  15. package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-y33fAvyI.mjs → ngx-histaff-alpha-design-wrapper.route-CCL5c5Sx.mjs} +5 -5
  16. package/fesm2022/{ngx-histaff-alpha-design-wrapper.route-y33fAvyI.mjs.map → ngx-histaff-alpha-design-wrapper.route-CCL5c5Sx.mjs.map} +1 -1
  17. package/fesm2022/{ngx-histaff-alpha-live-form.component-Cx0yq535.mjs → ngx-histaff-alpha-live-form.component-C0U0MDM-.mjs} +2 -2
  18. package/fesm2022/{ngx-histaff-alpha-live-form.component-Cx0yq535.mjs.map → ngx-histaff-alpha-live-form.component-C0U0MDM-.mjs.map} +1 -1
  19. package/fesm2022/{ngx-histaff-alpha-ngx-histaff-alpha-Dp3mPmnt.mjs → ngx-histaff-alpha-ngx-histaff-alpha-BdR4YDv8.mjs} +132 -15
  20. package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-BdR4YDv8.mjs.map +1 -0
  21. package/fesm2022/ngx-histaff-alpha-tracker-studio.component-BuX2TDAX.mjs +24 -0
  22. package/fesm2022/ngx-histaff-alpha-tracker-studio.component-BuX2TDAX.mjs.map +1 -0
  23. package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-C2NZ1DwP.mjs → ngx-histaff-alpha-wf-form-assign.component-BG4Gf3_M.mjs} +2 -2
  24. package/fesm2022/{ngx-histaff-alpha-wf-form-assign.component-C2NZ1DwP.mjs.map → ngx-histaff-alpha-wf-form-assign.component-BG4Gf3_M.mjs.map} +1 -1
  25. package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-Dtoh3ZXQ.mjs → ngx-histaff-alpha-wf-instance-status.component-D9tzZDZg.mjs} +2 -2
  26. package/fesm2022/{ngx-histaff-alpha-wf-instance-status.component-Dtoh3ZXQ.mjs.map → ngx-histaff-alpha-wf-instance-status.component-D9tzZDZg.mjs.map} +1 -1
  27. package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DCHDKGpf.mjs → ngx-histaff-alpha-wf-instance-step-react.component-BgTxKMRa.mjs} +3 -3
  28. package/fesm2022/{ngx-histaff-alpha-wf-instance-step-react.component-DCHDKGpf.mjs.map → ngx-histaff-alpha-wf-instance-step-react.component-BgTxKMRa.mjs.map} +1 -1
  29. package/fesm2022/ngx-histaff-alpha.mjs +1 -1
  30. package/lib/app/libraries/core-form-design/field-setting/mandatory-props/mandatory-props.component.d.ts +3 -1
  31. package/lib/app/libraries/core-navigation-tracker/core-navigation-tracker/core-navigation-tracker.component.d.ts +2 -0
  32. package/lib/app/libraries/core-navigation-tracker/core-rbac-dom-watcher/core-rbac-dom-watcher.component.d.ts +22 -0
  33. package/lib/app/libraries/core-navigation-tracker/coreNavigationTracker.routes.d.ts +2 -0
  34. package/lib/app/libraries/core-navigation-tracker/tracker-studio/tracker-studio.component.d.ts +7 -0
  35. package/package.json +1 -1
  36. package/public-api.d.ts +1 -0
  37. package/fesm2022/ngx-histaff-alpha-core-form-design.component-CXNzmSny.mjs.map +0 -1
  38. package/fesm2022/ngx-histaff-alpha-ngx-histaff-alpha-Dp3mPmnt.mjs.map +0 -1
@@ -2,8 +2,8 @@ import * as i0 from '@angular/core';
2
2
  import { input, signal, inject, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import * as i1 from '@angular/forms';
4
4
  import { FormControl, ReactiveFormsModule } from '@angular/forms';
5
- import { c as BaseComponent, C as CoreWorkflowService, T as TranslatePipe, f as TooltipDirective } from './ngx-histaff-alpha-ngx-histaff-alpha-Dp3mPmnt.mjs';
6
- import { D as DbService } from './ngx-histaff-alpha-core-toast-loading.component-CQaUSyCv.mjs';
5
+ import { e as BaseComponent, b as CoreWorkflowService, T as TranslatePipe, g as TooltipDirective } from './ngx-histaff-alpha-ngx-histaff-alpha-BdR4YDv8.mjs';
6
+ import { D as DbService } from './ngx-histaff-alpha-core-toast-loading.component-qnsnXPsb.mjs';
7
7
  import { take } from 'rxjs';
8
8
 
9
9
  class AiHintForTableComponent extends BaseComponent {
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
51
51
  }] });
52
52
 
53
53
  export { AiHintForTableComponent };
54
- //# sourceMappingURL=ngx-histaff-alpha-ai-hint-for-table.component-DCHxg6s_.mjs.map
54
+ //# sourceMappingURL=ngx-histaff-alpha-ai-hint-for-table.component-Bl1_9vY4.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-histaff-alpha-ai-hint-for-table.component-DCHxg6s_.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/db-settings/ai-hint-for-table/ai-hint-for-table.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/db-settings/ai-hint-for-table/ai-hint-for-table.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, input, signal } from '@angular/core';\r\nimport { IWorkflowSchemaTable } from '../../interfaces/IWorkflowSchema';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslatePipe } from '../../../../app-pipes/translate.pipe';\r\nimport { TooltipDirective } from '../../../tooltip/tooltip.directive';\r\nimport { BaseComponent } from '../../../base-component/base/base.component';\r\nimport { DbService } from '../../../../services/db.service';\r\nimport { CoreWorkflowService } from '../../core-workflow.service';\r\nimport { take } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ai-hint-for-table',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n TranslatePipe,\r\n TooltipDirective,\r\n ReactiveFormsModule,\r\n ],\r\n templateUrl: './ai-hint-for-table.component.html',\r\n styleUrl: './ai-hint-for-table.component.scss'\r\n})\r\nexport class AiHintForTableComponent extends BaseComponent {\r\n $table = input.required<IWorkflowSchemaTable>()\r\n\r\n $editing = signal(false);\r\n hintControl = new FormControl('');\r\n\r\n dbs = inject(DbService);\r\n wfs = inject(CoreWorkflowService);\r\n\r\n override ngOnInit() {\r\n this.subscriptions.push(\r\n this.mls.lang$.subscribe(x => this.lang = x)\r\n )\r\n this.hintControl.setValue(this.$table().hintForAi || '');\r\n }\r\n\r\n startEditing(): void {\r\n this.$editing.set(true);\r\n }\r\n\r\n save(): void {\r\n this.$editing.set(false);\r\n this.wfs.$workflowDbSchema.update(current => {\r\n const founds = current.filter(x => x.id === this.$table().id);\r\n if (founds) {\r\n founds[0].hintForAi = this.hintControl.getRawValue() ?? ''\r\n }\r\n return [...current];\r\n })\r\n this.dbs.updateTableHint(this.$table().table, this.hintControl.getRawValue() ?? '')\r\n .pipe(take(1))\r\n .subscribe({\r\n next: () => console.log('Hint saved'),\r\n error: err => console.error('Failed to save hint', err)\r\n });\r\n }\r\n}\r\n","<span class=\"ai-table-hint-wrapper\">\r\n @if (!$editing()) {\r\n <i\r\n class=\"feather feather-more-vertical ai-table-icon\"\r\n [appTooltip]=\"'Edit Hint for AI' | translate : lang\" [showAnyway]=\"true\"\r\n (click)=\"startEditing()\">\r\n </i>\r\n } @else {\r\n <input\r\n type=\"text\"\r\n class=\"form-control form-control-sm ai-table-hint-input\"\r\n [formControl]=\"hintControl\"\r\n (blur)=\"save()\"\r\n (keydown.enter)=\"save()\" />\r\n }\r\n</span>\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-histaff-alpha-ai-hint-for-table.component-Bl1_9vY4.mjs","sources":["../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/db-settings/ai-hint-for-table/ai-hint-for-table.component.ts","../../../projects/ngx-histaff-alpha/src/lib/app/libraries/core-workflow-builder/db-settings/ai-hint-for-table/ai-hint-for-table.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, inject, input, signal } from '@angular/core';\r\nimport { IWorkflowSchemaTable } from '../../interfaces/IWorkflowSchema';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslatePipe } from '../../../../app-pipes/translate.pipe';\r\nimport { TooltipDirective } from '../../../tooltip/tooltip.directive';\r\nimport { BaseComponent } from '../../../base-component/base/base.component';\r\nimport { DbService } from '../../../../services/db.service';\r\nimport { CoreWorkflowService } from '../../core-workflow.service';\r\nimport { take } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ai-hint-for-table',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n TranslatePipe,\r\n TooltipDirective,\r\n ReactiveFormsModule,\r\n ],\r\n templateUrl: './ai-hint-for-table.component.html',\r\n styleUrl: './ai-hint-for-table.component.scss'\r\n})\r\nexport class AiHintForTableComponent extends BaseComponent {\r\n $table = input.required<IWorkflowSchemaTable>()\r\n\r\n $editing = signal(false);\r\n hintControl = new FormControl('');\r\n\r\n dbs = inject(DbService);\r\n wfs = inject(CoreWorkflowService);\r\n\r\n override ngOnInit() {\r\n this.subscriptions.push(\r\n this.mls.lang$.subscribe(x => this.lang = x)\r\n )\r\n this.hintControl.setValue(this.$table().hintForAi || '');\r\n }\r\n\r\n startEditing(): void {\r\n this.$editing.set(true);\r\n }\r\n\r\n save(): void {\r\n this.$editing.set(false);\r\n this.wfs.$workflowDbSchema.update(current => {\r\n const founds = current.filter(x => x.id === this.$table().id);\r\n if (founds) {\r\n founds[0].hintForAi = this.hintControl.getRawValue() ?? ''\r\n }\r\n return [...current];\r\n })\r\n this.dbs.updateTableHint(this.$table().table, this.hintControl.getRawValue() ?? '')\r\n .pipe(take(1))\r\n .subscribe({\r\n next: () => console.log('Hint saved'),\r\n error: err => console.error('Failed to save hint', err)\r\n });\r\n }\r\n}\r\n","<span class=\"ai-table-hint-wrapper\">\r\n @if (!$editing()) {\r\n <i\r\n class=\"feather feather-more-vertical ai-table-icon\"\r\n [appTooltip]=\"'Edit Hint for AI' | translate : lang\" [showAnyway]=\"true\"\r\n (click)=\"startEditing()\">\r\n </i>\r\n } @else {\r\n <input\r\n type=\"text\"\r\n class=\"form-control form-control-sm ai-table-hint-input\"\r\n [formControl]=\"hintControl\"\r\n (blur)=\"save()\"\r\n (keydown.enter)=\"save()\" />\r\n }\r\n</span>\r\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ChangeDetectorRef, Component, signal, effect, HostListener, ChangeDetectionStrategy, Injectable, computed, ViewContainerRef, Input, EventEmitter, Output, viewChild, Renderer2, input, isDevMode } from '@angular/core';
2
+ import { inject, ChangeDetectorRef, Component, signal, effect, HostListener, ChangeDetectionStrategy, Injectable, computed, viewChild, ViewContainerRef, Input, EventEmitter, Output, Renderer2, input, isDevMode } from '@angular/core';
3
3
  import { trigger, state, transition, style, animate } from '@angular/animations';
4
- import { m as CoreFormDesignService, C as CoreWorkflowService, B as BaseEditComponent, h as AlertService, z as AppConfigService, K as EnumCorePageEditMode, L as EnumCoreButtonVNSCode, R as READONLY_WORKFLOW_FIELDS, O as noneAutoClosedAlertOptions, o as DialogService, M as MultiLanguageService, d as CorePageHeaderComponent, P as CoreFormComponent, Q as CoreButtonGroupVnsComponent, T as TranslatePipe, E as EnumFormBaseContolType, c as BaseComponent, U as EnumCoreTablePipeType, V as CoreCheckboxComponent, q as CoreDropdownComponent, f as TooltipDirective, G as GptService, k as alertOptions, x as CoreRadioGroupComponent, W as HtmlTooltipDirective, X as EnumFormDesignMode, p as DomService, J as JsonService, y as ApplicationHelpService, a as EnumCoreFormControlSeekerSourceType, H as HotKeysDirective, Y as CoreControlComponent, i as TableCellPipe, r as CoreChecklistComponent, t as CoreFormControlSeekerComponent, Z as CoreAttachmentComponent, s as CoreDatePickerComponent, _ as CoreMonthSelectorComponent, u as CoreCurrencyInputComponent } from './ngx-histaff-alpha-ngx-histaff-alpha-Dp3mPmnt.mjs';
4
+ import { n as CoreFormDesignService, b as CoreWorkflowService, B as BaseEditComponent, i as AlertService, K as AppConfigService, L as EnumCorePageEditMode, O as EnumCoreButtonVNSCode, R as READONLY_WORKFLOW_FIELDS, P as noneAutoClosedAlertOptions, p as DialogService, M as MultiLanguageService, C as CorePageHeaderComponent, Q as CoreFormComponent, U as CoreButtonGroupVnsComponent, T as TranslatePipe, E as EnumFormBaseContolType, e as BaseComponent, V as EnumCoreTablePipeType, W as CoreCheckboxComponent, r as CoreDropdownComponent, g as TooltipDirective, G as GptService, l as alertOptions, y as CoreRadioGroupComponent, X as HtmlTooltipDirective, Y as EnumFormDesignMode, q as DomService, J as JsonService, z as ApplicationHelpService, c as EnumCoreFormControlSeekerSourceType, H as HotKeysDirective, Z as CoreControlComponent, j as TableCellPipe, s as CoreChecklistComponent, u as CoreFormControlSeekerComponent, _ as CoreAttachmentComponent, t as CoreDatePickerComponent, $ as CoreMonthSelectorComponent, v as CoreCurrencyInputComponent } from './ngx-histaff-alpha-ngx-histaff-alpha-BdR4YDv8.mjs';
5
5
  import * as i1 from '@angular/forms';
6
6
  import { FormsModule, FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
7
7
  import { NgStyle, AsyncPipe, NgTemplateOutlet } from '@angular/common';
8
8
  import { BehaviorSubject, catchError, of, filter, distinctUntilChanged, tap, switchMap } from 'rxjs';
9
9
  import { Router, ActivatedRoute } from '@angular/router';
10
- import { CoreStickerCollectionComponent } from './ngx-histaff-alpha-core-sticker-collection.component-xJf23oNZ.mjs';
11
- import { D as DbService, C as CoreToastLoadingComponent } from './ngx-histaff-alpha-core-toast-loading.component-CQaUSyCv.mjs';
10
+ import { CoreStickerCollectionComponent } from './ngx-histaff-alpha-core-sticker-collection.component-CzNeWEKx.mjs';
11
+ import { D as DbService, C as CoreToastLoadingComponent } from './ngx-histaff-alpha-core-toast-loading.component-qnsnXPsb.mjs';
12
12
  import { EnumTranslateKey } from 'alpha-global-constants';
13
- import { L as LiveFormComponent } from './ngx-histaff-alpha-live-form.component-Cx0yq535.mjs';
13
+ import { L as LiveFormComponent } from './ngx-histaff-alpha-live-form.component-C0U0MDM-.mjs';
14
14
 
15
15
  const slideFromTopFadeIn = trigger('slideFromTopFadeIn', [
16
16
  state('in', style({ opacity: 1, transform: 'translateY(0)' })),
@@ -340,50 +340,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
340
340
  class MandatoryPropsComponent extends BasePropsComponent {
341
341
  constructor() {
342
342
  super(...arguments);
343
+ this.$fieldInputRef = viewChild('fieldInput');
343
344
  this.afs = inject(CoreFormDesignService);
344
345
  this.$isNormalField = computed(() => this.afs.$currentControl()?.type !== 'calculated');
345
346
  this.$typedField = computed(() => {
346
347
  const control = this.$control();
347
- return AttachmentFieldHelperService.isAttachment(control)
348
+ const field = AttachmentFieldHelperService.isAttachment(control)
348
349
  ? control.assignTo || ''
349
350
  : control.field;
351
+ return field;
350
352
  });
351
353
  }
352
- setTypedField(val) {
353
- const control = this.$control();
354
- const context = this.$formContext();
355
- const toCamelCase = (input) => {
356
- return input
357
- .replace(/[^a-zA-Z0-9 ]/g, ' ') // remove special characters
358
- .replace(/([a-z])([A-Z])/g, '$1 $2') // split camelCase
359
- .replace(/\s+/g, ' ') // collapse multiple spaces
360
- .trim()
361
- .split(' ')
362
- .map((word, index) => index === 0
363
- ? word.toLowerCase()
364
- : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
365
- .join('');
366
- };
367
- const corrected = toCamelCase(val);
368
- const current = AttachmentFieldHelperService.isAttachment(control)
369
- ? control.assignTo || ''
370
- : control.field;
371
- if (current === corrected)
372
- return;
373
- if (AttachmentFieldHelperService.isAttachment(control)) {
374
- AttachmentFieldHelperService.handleFieldNameChangeForAttachment(control, context, corrected);
375
- }
376
- else {
377
- control.field = corrected;
354
+ onFieldChange(val) {
355
+ this.setControlProp('field', val);
356
+ const expected = this.$typedField();
357
+ const actual = this.$fieldInputRef()?.nativeElement.value;
358
+ if (!!actual && actual !== expected) {
359
+ console.warn('Manual fix: input mismatch detected. Forcing value reset.');
360
+ this.$fieldInputRef().nativeElement.value = expected;
378
361
  }
379
- this.patchControl(control);
380
362
  }
381
363
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MandatoryPropsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
382
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: MandatoryPropsComponent, isStandalone: true, selector: "mandatory-props", usesInheritance: true, ngImport: i0, template: "<div class=\"setting-group mandatory-group\" [ngStyle]=\"{ padding: '15px', maxWidth: '352px' }\">\r\n\r\n <div class=\"setting-row\">\r\n <label>Field</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$typedField()\" (ngModelChange)=\"setControlProp('field', $event)\" />\r\n </div>\r\n\r\n <div class=\"setting-row\">\r\n <label>Label</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$control()?.label\" (ngModelChange)=\"setControlProp('label', $event)\" />\r\n </div>\r\n\r\n @if ($isNormalField()) {\r\n\r\n <div class=\"setting-row\">\r\n <label>Flex Size</label>\r\n <input class=\"form-control\" type=\"number\" [ngModel]=\"$control()?.flexSize\" (ngModelChange)=\"setControlProp('flexSize', $event)\" />\r\n </div>\r\n\r\n <div class=\"setting-row\">\r\n <label>Default</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$control()?.value\" (ngModelChange)=\"setControlProp('value', $event)\" />\r\n </div>\r\n }\r\n\r\n</div>", styles: [".setting-group{display:flex;flex-direction:column}.setting-row{display:flex;justify-content:flex-start;align-items:center;height:50px}.setting-row label{width:30%}.setting-row .control-wrapper,.setting-row input,.setting-row .readonly-field{width:65%}.setting-row .readonly-field{font-style:italic;color:#666}.setting-row input.validator-value{text-align:right}.setting-row input.validator-value.pattern{text-align:left}.setting-row .control-wrapper{display:flex;align-items:center;justify-content:flex-start}.validator-group .setting-row{justify-content:flex-start}.validator-group .setting-row input{margin-left:15px;width:100%}.tiny-lock{margin-left:6px;font-size:12px;color:#888}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
364
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.5", type: MandatoryPropsComponent, isStandalone: true, selector: "mandatory-props", viewQueries: [{ propertyName: "$fieldInputRef", first: true, predicate: ["fieldInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"setting-group mandatory-group\" [ngStyle]=\"{ padding: '15px', maxWidth: '352px' }\">\r\n\r\n <div class=\"setting-row\">\r\n <label>Field: {{ $typedField() }}</label>\r\n <!-- <input class=\"form-control\" type=\"text\" \r\n [ngModel]=\"$typedField()\" \r\n (focus)=\"capturePreviousField()\"\r\n (ngModelChange)=\"setControlProp('field', $event, previousFieldName)\" /> -->\r\n <input #fieldInput class=\"form-control\" type=\"text\" \r\n [ngModel]=\"$typedField()\" \r\n (ngModelChange)=\"onFieldChange($event)\" />\r\n </div>\r\n\r\n <div class=\"setting-row\">\r\n <label>Label</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$control()?.label\" (ngModelChange)=\"setControlProp('label', $event)\" />\r\n </div>\r\n\r\n @if ($isNormalField()) {\r\n\r\n <div class=\"setting-row\">\r\n <label>Flex Size</label>\r\n <input class=\"form-control\" type=\"number\" [ngModel]=\"$control()?.flexSize\" (ngModelChange)=\"setControlProp('flexSize', $event)\" />\r\n </div>\r\n\r\n <div class=\"setting-row\">\r\n <label>Default</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$control()?.value\" (ngModelChange)=\"setControlProp('value', $event)\" />\r\n </div>\r\n }\r\n\r\n</div>", styles: [".setting-group{display:flex;flex-direction:column}.setting-row{display:flex;justify-content:flex-start;align-items:center;height:50px}.setting-row label{width:30%}.setting-row .control-wrapper,.setting-row input,.setting-row .readonly-field{width:65%}.setting-row .readonly-field{font-style:italic;color:#666}.setting-row input.validator-value{text-align:right}.setting-row input.validator-value.pattern{text-align:left}.setting-row .control-wrapper{display:flex;align-items:center;justify-content:flex-start}.validator-group .setting-row{justify-content:flex-start}.validator-group .setting-row input{margin-left:15px;width:100%}.tiny-lock{margin-left:6px;font-size:12px;color:#888}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
383
365
  }
384
366
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImport: i0, type: MandatoryPropsComponent, decorators: [{
385
367
  type: Component,
386
- args: [{ selector: 'mandatory-props', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgStyle, FormsModule], template: "<div class=\"setting-group mandatory-group\" [ngStyle]=\"{ padding: '15px', maxWidth: '352px' }\">\r\n\r\n <div class=\"setting-row\">\r\n <label>Field</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$typedField()\" (ngModelChange)=\"setControlProp('field', $event)\" />\r\n </div>\r\n\r\n <div class=\"setting-row\">\r\n <label>Label</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$control()?.label\" (ngModelChange)=\"setControlProp('label', $event)\" />\r\n </div>\r\n\r\n @if ($isNormalField()) {\r\n\r\n <div class=\"setting-row\">\r\n <label>Flex Size</label>\r\n <input class=\"form-control\" type=\"number\" [ngModel]=\"$control()?.flexSize\" (ngModelChange)=\"setControlProp('flexSize', $event)\" />\r\n </div>\r\n\r\n <div class=\"setting-row\">\r\n <label>Default</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$control()?.value\" (ngModelChange)=\"setControlProp('value', $event)\" />\r\n </div>\r\n }\r\n\r\n</div>", styles: [".setting-group{display:flex;flex-direction:column}.setting-row{display:flex;justify-content:flex-start;align-items:center;height:50px}.setting-row label{width:30%}.setting-row .control-wrapper,.setting-row input,.setting-row .readonly-field{width:65%}.setting-row .readonly-field{font-style:italic;color:#666}.setting-row input.validator-value{text-align:right}.setting-row input.validator-value.pattern{text-align:left}.setting-row .control-wrapper{display:flex;align-items:center;justify-content:flex-start}.validator-group .setting-row{justify-content:flex-start}.validator-group .setting-row input{margin-left:15px;width:100%}.tiny-lock{margin-left:6px;font-size:12px;color:#888}\n"] }]
368
+ args: [{ selector: 'mandatory-props', changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgStyle, FormsModule], template: "<div class=\"setting-group mandatory-group\" [ngStyle]=\"{ padding: '15px', maxWidth: '352px' }\">\r\n\r\n <div class=\"setting-row\">\r\n <label>Field: {{ $typedField() }}</label>\r\n <!-- <input class=\"form-control\" type=\"text\" \r\n [ngModel]=\"$typedField()\" \r\n (focus)=\"capturePreviousField()\"\r\n (ngModelChange)=\"setControlProp('field', $event, previousFieldName)\" /> -->\r\n <input #fieldInput class=\"form-control\" type=\"text\" \r\n [ngModel]=\"$typedField()\" \r\n (ngModelChange)=\"onFieldChange($event)\" />\r\n </div>\r\n\r\n <div class=\"setting-row\">\r\n <label>Label</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$control()?.label\" (ngModelChange)=\"setControlProp('label', $event)\" />\r\n </div>\r\n\r\n @if ($isNormalField()) {\r\n\r\n <div class=\"setting-row\">\r\n <label>Flex Size</label>\r\n <input class=\"form-control\" type=\"number\" [ngModel]=\"$control()?.flexSize\" (ngModelChange)=\"setControlProp('flexSize', $event)\" />\r\n </div>\r\n\r\n <div class=\"setting-row\">\r\n <label>Default</label>\r\n <input class=\"form-control\" type=\"text\" [ngModel]=\"$control()?.value\" (ngModelChange)=\"setControlProp('value', $event)\" />\r\n </div>\r\n }\r\n\r\n</div>", styles: [".setting-group{display:flex;flex-direction:column}.setting-row{display:flex;justify-content:flex-start;align-items:center;height:50px}.setting-row label{width:30%}.setting-row .control-wrapper,.setting-row input,.setting-row .readonly-field{width:65%}.setting-row .readonly-field{font-style:italic;color:#666}.setting-row input.validator-value{text-align:right}.setting-row input.validator-value.pattern{text-align:left}.setting-row .control-wrapper{display:flex;align-items:center;justify-content:flex-start}.validator-group .setting-row{justify-content:flex-start}.validator-group .setting-row input{margin-left:15px;width:100%}.tiny-lock{margin-left:6px;font-size:12px;color:#888}\n"] }]
387
369
  }] });
388
370
 
389
371
  class OptionalPropsComponent extends BasePropsComponent {
@@ -1616,6 +1598,9 @@ class CoreFormDesignComponent extends BaseComponent {
1616
1598
  label: this.generateLabelNameFor(template),
1617
1599
  value: null
1618
1600
  });
1601
+ if (normalized.controlType === EnumFormBaseContolType.CALCULATED) {
1602
+ normalized.returnType = 'number';
1603
+ }
1619
1604
  this.coreFormDesignService.$placeholderSections.update(sections => {
1620
1605
  const section = sections[sectionIndex];
1621
1606
  const row = section?.rows[rowIndex];
@@ -2068,4 +2053,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.5", ngImpor
2068
2053
  }], ctorParameters: () => [{ type: MultiLanguageService }] });
2069
2054
 
2070
2055
  export { CoreFormDesignComponent };
2071
- //# sourceMappingURL=ngx-histaff-alpha-core-form-design.component-CXNzmSny.mjs.map
2056
+ //# sourceMappingURL=ngx-histaff-alpha-core-form-design.component-BsuF_N7l.mjs.map