onshore-forms 1.0.6 → 1.0.7

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.
@@ -25,10 +25,10 @@ import * as i2$2 from 'primeng/inputtext';
25
25
  import { InputTextModule } from 'primeng/inputtext';
26
26
  import * as i3$3 from 'primeng/colorpicker';
27
27
  import { ColorPickerModule } from 'primeng/colorpicker';
28
- import * as i4$1 from 'primeng/dropdown';
29
- import { DropdownModule } from 'primeng/dropdown';
30
28
  import * as i5$1 from 'primeng/multiselect';
31
29
  import { MultiSelectModule } from 'primeng/multiselect';
30
+ import * as i4$1 from 'primeng/select';
31
+ import { SelectModule } from 'primeng/select';
32
32
  import * as i7 from 'primeng/dialog';
33
33
  import { DialogModule } from 'primeng/dialog';
34
34
  import { ImageCropperComponent } from 'ngx-image-cropper';
@@ -786,11 +786,11 @@ class OnshoreFormDropdownItemComponent {
786
786
  this.ngControl.valueAccessor = this;
787
787
  }
788
788
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: OnshoreFormDropdownItemComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
789
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: OnshoreFormDropdownItemComponent, isStandalone: true, selector: "onshore-form-dropdown-item", inputs: { formTemplate: "formTemplate", multiple: "multiple", showClear: "showClear", group: "group", selectionLimit: "selectionLimit", minLength: "minLength", optionLabel: "optionLabel", optionGroupLabel: "optionGroupLabel", dataKey: "dataKey", actionButtonDisabled: "actionButtonDisabled", options: "options" }, outputs: { valueChange: "valueChange", actionButtonClick: "actionButtonClick" }, usesOnChanges: true, ngImport: i0, template: "<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-dropdown *ngIf=\"!multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n [showClear]=\"showClear && formTemplate?.placeholder\"\n (onClear)=\"clearSelection()\"\n optionDisabled=\"disabled\"\n appendTo=\"body\">\n </p-dropdown>\n\n <p-multiSelect *ngIf=\"multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [showClear]=\"showClear\"\n [selectionLimit]=\"selectionLimit\"\n [minlength]=\"minLength\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n (onClear)=\"clearSelection()\"\n [selectedItemsLabel]=\"'form.dropdownControl.selectedItems' | translate\"\n optionDisabled=\"disabled\"\n appendTo=\"body\"></p-multiSelect>\n\n</onshore-form-item-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OnshoreFormItemContainer, selector: "onshore-form-item-container", inputs: ["formTemplate", "ngControl", "actionButtonDisabled"], outputs: ["actionButtonClick", "lockIsChanged"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i4$1.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i5$1.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
789
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.3", type: OnshoreFormDropdownItemComponent, isStandalone: true, selector: "onshore-form-dropdown-item", inputs: { formTemplate: "formTemplate", multiple: "multiple", showClear: "showClear", group: "group", selectionLimit: "selectionLimit", minLength: "minLength", optionLabel: "optionLabel", optionGroupLabel: "optionGroupLabel", dataKey: "dataKey", actionButtonDisabled: "actionButtonDisabled", options: "options" }, outputs: { valueChange: "valueChange", actionButtonClick: "actionButtonClick" }, usesOnChanges: true, ngImport: i0, template: "<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-select *ngIf=\"!multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n [showClear]=\"showClear && formTemplate?.placeholder\"\n (onClear)=\"clearSelection()\"\n optionDisabled=\"disabled\"\n appendTo=\"body\">\n </p-select>\n\n <p-multiSelect *ngIf=\"multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [showClear]=\"showClear\"\n [selectionLimit]=\"selectionLimit\"\n [minlength]=\"minLength\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n (onClear)=\"clearSelection()\"\n [selectedItemsLabel]=\"'form.dropdownControl.selectedItems' | translate\"\n optionDisabled=\"disabled\"\n appendTo=\"body\"></p-multiSelect>\n\n</onshore-form-item-container>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OnshoreFormItemContainer, selector: "onshore-form-item-container", inputs: ["formTemplate", "ngControl", "actionButtonDisabled"], outputs: ["actionButtonClick", "lockIsChanged"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i4$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i5$1.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
790
790
  }
791
791
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.3", ngImport: i0, type: OnshoreFormDropdownItemComponent, decorators: [{
792
792
  type: Component,
793
- args: [{ selector: 'onshore-form-dropdown-item', imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, DropdownModule, MultiSelectModule, FormsModule, ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-dropdown *ngIf=\"!multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n [showClear]=\"showClear && formTemplate?.placeholder\"\n (onClear)=\"clearSelection()\"\n optionDisabled=\"disabled\"\n appendTo=\"body\">\n </p-dropdown>\n\n <p-multiSelect *ngIf=\"multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [showClear]=\"showClear\"\n [selectionLimit]=\"selectionLimit\"\n [minlength]=\"minLength\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n (onClear)=\"clearSelection()\"\n [selectedItemsLabel]=\"'form.dropdownControl.selectedItems' | translate\"\n optionDisabled=\"disabled\"\n appendTo=\"body\"></p-multiSelect>\n\n</onshore-form-item-container>\n" }]
793
+ args: [{ selector: 'onshore-form-dropdown-item', imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, SelectModule, MultiSelectModule, FormsModule, ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-select *ngIf=\"!multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n [showClear]=\"showClear && formTemplate?.placeholder\"\n (onClear)=\"clearSelection()\"\n optionDisabled=\"disabled\"\n appendTo=\"body\">\n </p-select>\n\n <p-multiSelect *ngIf=\"multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [showClear]=\"showClear\"\n [selectionLimit]=\"selectionLimit\"\n [minlength]=\"minLength\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n (onClear)=\"clearSelection()\"\n [selectedItemsLabel]=\"'form.dropdownControl.selectedItems' | translate\"\n optionDisabled=\"disabled\"\n appendTo=\"body\"></p-multiSelect>\n\n</onshore-form-item-container>\n" }]
794
794
  }], ctorParameters: () => [{ type: i1$2.NgControl, decorators: [{
795
795
  type: Self
796
796
  }, {
@@ -1075,6 +1075,7 @@ class OnshoreFormImageItemComponent {
1075
1075
  else {
1076
1076
  this.imageCleared.emit();
1077
1077
  }
1078
+ this.ngControl?.control?.reset();
1078
1079
  this.ngControl?.control?.setValue(null);
1079
1080
  this.ngControl?.control?.markAsDirty();
1080
1081
  this.cdr.markForCheck();
@@ -1 +1 @@
1
- {"version":3,"file":"onshore-forms.mjs","sources":["../../../projects/onshore-forms/src/lib/enums/form.enums.ts","../../../projects/onshore-forms/src/lib/onshore-forms.service.ts","../../../projects/onshore-forms/src/lib/validators/form.validators.ts","../../../projects/onshore-forms/src/lib/components/form-validation-output/form-validation-output.component.ts","../../../projects/onshore-forms/src/lib/components/form-validation-output/form-validation-output.component.html","../../../projects/onshore-forms/src/lib/components/form-item-container/form-item-container.component.ts","../../../projects/onshore-forms/src/lib/components/form-item-container/form-item-container.component.html","../../../projects/onshore-forms/src/lib/components/form-autocomplete-item/form-autocomplete-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-autocomplete-item/form-autocomplete-item.component.html","../../../projects/onshore-forms/src/lib/components/form-checkbox-item/form-checkbox-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-checkbox-item/form-checkbox-item.component.html","../../../projects/onshore-forms/src/lib/components/form-colorpicker-item/form-colorpicker-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-colorpicker-item/form-colorpicker-item.component.html","../../../projects/onshore-forms/src/lib/components/form-dropdown-item/form-dropdown-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-dropdown-item/form-dropdown-item.component.html","../../../projects/onshore-forms/src/lib/components/image-placeholder/image-placeholder.component.ts","../../../projects/onshore-forms/src/lib/components/image-placeholder/image-placeholder.component.html","../../../projects/onshore-forms/src/lib/components/image-chooser/image-chooser.component.ts","../../../projects/onshore-forms/src/lib/components/image-chooser/image-chooser.component.html","../../../projects/onshore-forms/src/lib/components/webcam/webcam.component.ts","../../../projects/onshore-forms/src/lib/components/webcam/webcam.component.html","../../../projects/onshore-forms/src/lib/components/form-image-item/form-image-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-image-item/form-image-item.component.html","../../../projects/onshore-forms/src/lib/components/form-input-item/form-input-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-input-item/form-input-item.component.html","../../../projects/onshore-forms/src/lib/components/form-switch-item/form-switch-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-switch-item/form-switch-item.component.html","../../../projects/onshore-forms/src/lib/components/form-datetime-item/form-datetime-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-datetime-item/form-datetime-item.component.html","../../../projects/onshore-forms/src/lib/components/form-sort-item/form-sort-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-sort-item/form-sort-item.component.html","../../../projects/onshore-forms/src/public-api.ts","../../../projects/onshore-forms/src/onshore-forms.ts"],"sourcesContent":["export enum OnshoreFormTemplateType {\r\n text = 'text',\r\n textarea = 'textarea',\r\n editor = 'editor',\r\n password = 'password',\r\n number = 'number',\r\n email = 'email',\r\n phone = 'phone',\r\n regexp = 'regexp',\r\n select = 'select',\r\n switch = 'switch',\r\n check = 'check',\r\n radio = 'radio',\r\n image = 'image',\r\n autocomplete = 'autocomplete',\r\n color = 'color',\r\n date = 'date',\r\n time = 'time',\r\n datetime = 'datetime',\r\n sort = 'sort',\r\n subform = 'subform'\r\n}\r\n\r\nexport enum OnshoreFormTemplateLayout {\r\n vertical = 'vertical',\r\n horizontal = 'horizontal',\r\n auto = 'auto'\r\n}\r\n\r\nexport enum OnshoreImageError {\r\n none = '',\r\n fileType = 'fileType',\r\n ratio = 'ratio',\r\n size = 'size',\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { OnshoreFormTemplateType } from './enums/form.enums';\nimport { OnshoreFormArrayDefault, OnshoreFormTemplateItem } from './models/form.models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnshoreFormsService {\n\n _form: FormGroup;\n _formTemplate: OnshoreFormTemplateItem[];\n _formValidations: string[] = [];\n\n subscriptions: Array<Subscription> = [];\n\n public isLoading$: Subject<boolean> = new Subject<boolean>();\n\n constructor() {\n this._form = new FormGroup({}, {updateOn: 'change'});\n this._formTemplate = [];\n }\n\n public get form(): FormGroup {\n return this._form;\n }\n\n public get formValues() {\n return this._form?.value;\n }\n\n public patchForm(value: any) {\n this._form?.patchValue(value);\n }\n\n public resetForm() {\n this._form?.reset();\n this._form?.updateValueAndValidity({ onlySelf: false, emitEvent: true });\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n\n this._form = null!;\n this._formTemplate = null!;\n }\n\n public resetFormControl(name: string, touched: boolean = false) {\n this._form?.get(name)?.reset();\n if(touched) {\n this._form?.get(name)?.markAsTouched();\n this._form?.get(name)?.markAsDirty();\n }\n this._form?.get(name)?.updateValueAndValidity({ onlySelf: false, emitEvent: true });\n }\n\n public generateForm(formTemplate: OnshoreFormTemplateItem[]): FormGroup | null {\n this._formTemplate = formTemplate;\n this._form = new FormGroup({}, {updateOn: 'change'});\n this._form = this.iterateNestedForm(this._form, formTemplate);\n return this._form;\n }\n\n public formTemplate(name: string, formTemplate: OnshoreFormTemplateItem[] = this._formTemplate): OnshoreFormTemplateItem {\n let template: OnshoreFormTemplateItem;\n\n if(formTemplate) {\n for(let i = 0; i < formTemplate?.length; i++) {\n const item = formTemplate[i];\n if(item.name === name) {\n template = item;\n i = formTemplate.length;\n }else if(item.subformArray) {\n const arrayTemplate = this.formTemplate(name, item.subformArray);\n if(arrayTemplate) template = arrayTemplate;\n }else if(item.subformObject) {\n const objectTemplate = this.formTemplate(name, item.subformObject);\n if(objectTemplate) template = objectTemplate;\n }\n }\n }\n\n return template!;\n }\n\n public formControl(name: string, formGroup: FormGroup | null = this._form): FormControl {\n return formGroup?.get(name) as FormControl;\n }\n\n public formArray(name: string): FormArray {\n return this._form?.get(name) as FormArray;\n }\n\n public formGroup(form: FormGroup, name: string): FormGroup {\n return form.get(name) as FormGroup;\n }\n\n public addFormArrayItem(formArray: FormArray, item: OnshoreFormTemplateItem, defaultValues: OnshoreFormArrayDefault[]): FormGroup {\n let formControls = <any>{};\n\n if(item) {\n item.subformArray?.forEach((subitem: OnshoreFormTemplateItem) => {\n if(subitem.type == OnshoreFormTemplateType.subform) {\n if (item.subformArray) {\n formControls[subitem.name] = new FormArray([]);\n formControls[subitem.name].setParent(formControls[subitem.name]);\n this.subscribeNestedFormArray(formControls[subitem.name] as FormArray);\n }\n if (item.subformObject) {\n formControls[subitem.name] = new FormGroup({});\n this.subscribeNestedFormGroup(formControls[subitem.name] as FormGroup);\n }\n } else {\n const defaultValue = defaultValues?.find(value => value.name === subitem.name)?.value;\n if(defaultValue) subitem.default = defaultValue.value;\n\n formControls[subitem.name] = new FormControl(defaultValue ?? (subitem.default !== undefined ? subitem.default : ''), {\n validators: subitem.validators || [],\n updateOn: 'change'\n });\n formControls[subitem.name].updateValueAndValidity({ onlySelf: false, emitEvent: true });\n }\n });\n }\n\n const formGroup = new FormGroup(formControls);\n formGroup.setParent(formArray);\n\n formArray.push(formGroup);\n\n this.subscribeNestedFormGroup(formGroup);\n\n return formGroup;\n }\n\n public removeFormArrayItem(form: FormArray, index: number) {\n form.removeAt(index);\n }\n\n public setFormValidations(validations: string[] = []) {\n this._formValidations = validations;\n }\n\n public enable() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.enabled = true;\n });\n setTimeout(() => {\n this._form?.enable({onlySelf: true, emitEvent: false});\n }, 100);\n }\n\n public disable() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.enabled = false;\n });\n setTimeout(() => {\n this._form?.disable({onlySelf: true, emitEvent: false});\n }, 100);\n }\n\n public setError(control: string, error: Object) {\n const errors = {...this.formControl(control).errors ?? {}, ...error} ;\n this.formControl(control).setErrors(errors);\n }\n\n public setLoader(loaders$: Subject<boolean>[]) {\n loaders$.forEach($loader => {\n this.subscriptions.push($loader.subscribe(isLoading => {\n isLoading ? this.disable() : this.enable();\n this.isLoading$.next(isLoading);\n }));\n });\n }\n\n public lock(lockSubfields: boolean = true) {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.locked = true;\n if(item.subformArray && lockSubfields) {\n item.subformArray.forEach( subitem => {\n subitem.locked = true;\n });\n }\n });\n }\n\n public unlock() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.locked = false;\n if(item.subformArray) {\n item.subformArray.forEach( subitem => {\n subitem.locked = false;\n });\n }\n });\n }\n\n iterateNestedForm(form: FormGroup, formTemplate: OnshoreFormTemplateItem[]): any {\n formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n if(item.type === OnshoreFormTemplateType.subform) {\n if(item.subformArray) {\n form.controls[item.name] = new FormArray([]);\n form.controls[item.name].setParent(form);\n this.subscribeNestedFormArray(form.controls[item.name] as FormArray);\n }\n if(item.subformObject) {\n form.controls[item.name] = new FormGroup({});\n form.controls[item.name] = this.iterateNestedForm(form.controls[item.name] as FormGroup, item.subformObject) as FormGroup;\n this.subscribeNestedFormGroup(form.controls[item.name] as FormGroup);\n }\n } else {\n form.addControl(item.name, new FormControl(item.default !== undefined ? item.default : '', {\n validators: item.validators || [],\n updateOn: 'change'\n }));\n }\n });\n return form;\n }\n\n subscribeNestedFormArray(nestedFormItem: FormArray) {\n this.subscriptions.push(nestedFormItem.valueChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n this.subscriptions.push(nestedFormItem.statusChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n }\n\n subscribeNestedFormGroup(nestedFormItem: FormGroup) {\n this.subscriptions.push(nestedFormItem.valueChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n this.subscriptions.push(nestedFormItem.statusChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n }\n\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport class OnshoreValidators {\n static slug: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^[A-Za-z0-9\\._-]{2,20}$/.test(control.value) ? null : { slug: true };\n }\n\n static numeric: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^[0-9]*$/.test(control.value) ? null : { numeric: true };\n }\n\n static email: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,10})?$/.test(control.value) ? null : { email: true };\n }\n\n static cleanComment: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /[A-Z]{5}\\d{4}[A-Z]{1}/.test(control.value) ? null : { cleanComment: true };\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input, OnChanges, SimpleChanges\n} from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'onshore-form-validation-output',\n imports: [CommonModule],\n templateUrl: './form-validation-output.component.html',\n styleUrls: ['./form-validation-output.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormValidationOutputComponent implements OnChanges {\n @Input() validationErrors!: ValidationErrors | null;\n @Input() validationItems!: string[];\n\n validationTranslation: string = '';\n\n ngOnChanges(changes: SimpleChanges) {\n this.validationTranslation = '';\n if(changes['validationErrors'].currentValue && this.validationErrors) {\n Object.keys(this.validationErrors!).forEach(error => {\n const exists = Object.values(this.validationItems ?? []).filter( validationItem => validationItem == error);\n if(exists && exists.length > 0) {\n this.validationTranslation += this.translate.instant('form.validation.' + error) + '<br>';\n } else {\n const errorValues = this.validationErrors![error];\n this.validationTranslation += this.translate.instant('form.validation.' + error, errorValues) + '<br>';\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n constructor(private cdr: ChangeDetectorRef,\n private translate: TranslateService,) {\n\n }\n}\n","<small [style]=\"{color: 'var(--inputtext-invalid-placeholder-color)' }\"\n *ngIf=\"validationTranslation\"\n [innerHTML]=\"validationTranslation\">\n</small>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, ElementRef, EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit, Output,\n SimpleChanges, ViewChild\n} from '@angular/core';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateLayout } from '../../enums/form.enums';\nimport { NgControl } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ToggleButtonModule } from 'primeng/togglebutton';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { ButtonModule } from 'primeng/button';\nimport { OnshoreFormValidationOutputComponent } from '../form-validation-output/form-validation-output.component';\n\n@Component({\n selector: 'onshore-form-item-container',\n imports: [CommonModule, OnshoreFormValidationOutputComponent, TranslateModule, ToggleButtonModule, TooltipModule, ButtonModule],\n templateUrl: './form-item-container.component.html',\n styleUrls: ['./form-item-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormItemContainer implements OnInit, OnChanges, AfterViewInit {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() ngControl!: NgControl;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n @Output() lockIsChanged = new EventEmitter();\n\n @ViewChild('formContainer') formContainer!: ElementRef;\n\n disabled: boolean = false;\n tempLockValue: any;\n\n OnshoreFormTemplateLayout = OnshoreFormTemplateLayout;\n\n layout: OnshoreFormTemplateLayout | undefined = OnshoreFormTemplateLayout.auto;\n\n enabled(enable: boolean = true) {\n setTimeout(() => {\n if(enable) {\n this.ngControl?.control?.enable();\n } else {\n this.ngControl?.control?.disable();\n }\n this.disabled = !enable;\n this.cdr.markForCheck();\n }, 100);\n }\n\n lockChanged(unlocked: boolean) {\n if(unlocked && this.formTemplate.enabled) {\n this.tempLockValue = this.ngControl?.control?.value;\n this.enabled(true);\n this.disabled = false;\n this.lockIsChanged.emit(unlocked);\n } else {\n this.enabled(false);\n this.disabled = true;\n this.ngControl?.control?.setValue(this.tempLockValue);\n this.tempLockValue = null;\n this.lockIsChanged.emit(unlocked);\n }\n\n this.cdr.markForCheck();\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize() {\n const conatinerWidth = this.formContainer?.nativeElement.offsetWidth;\n if(conatinerWidth > 500 && this.formTemplate.layout === OnshoreFormTemplateLayout.auto && this.layout !== OnshoreFormTemplateLayout.horizontal) {\n this.layout = OnshoreFormTemplateLayout.horizontal;\n this.cdr.markForCheck();\n }\n if(conatinerWidth <= 500 && this.formTemplate.layout === OnshoreFormTemplateLayout.auto && this.layout !== OnshoreFormTemplateLayout.vertical) {\n this.layout = OnshoreFormTemplateLayout.vertical;\n this.cdr.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.ngControl?.control?.valueChanges.subscribe(value => {\n this.cdr.markForCheck();\n });\n this.ngControl?.control?.statusChanges.subscribe(status => {\n this.cdr.markForCheck();\n });\n\n this.enabled(this.formTemplate.enabled);\n this.disabled = !this.formTemplate.enabled;\n\n if(this.formTemplate.locked) {\n this.enabled(false);\n this.disabled = true;\n }\n\n this.layout = this.formTemplate.layout;\n\n setTimeout(() => {\n this.cdr.markForCheck();\n }, 100);\n }\n\n ngAfterViewInit() {\n this.onWindowResize();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const previousValue = changes['formTemplate']?.previousValue;\n const currentValue = changes['formTemplate']?.currentValue;\n\n if(currentValue) {\n\n if(previousValue?.enabled !== currentValue?.enabled) {\n this.enabled(currentValue?.enabled);\n this.disabled = !currentValue?.enabled;\n }\n\n if(previousValue?.locked !== currentValue?.locked) {\n if(currentValue.locked) {\n this.enabled(false);\n this.disabled = true;\n } else {\n this.enabled(currentValue.enabled);\n this.disabled = currentValue.enabled;\n }\n }\n\n if(previousValue?.layout !== currentValue?.layout) {\n this.layout = this.formTemplate.layout;\n this.onWindowResize();\n }\n\n if(previousValue?.labelStyle !== currentValue?.labelStyle) {\n this.onWindowResize();\n }\n\n this.cdr.markForCheck();\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n\n }\n}\n","<div [class.mb-4]=\"!formTemplate.noGap\" #formContainer>\n <div class=\"flex w-full\"\n [class.flex-column]=\"layout == OnshoreFormTemplateLayout.vertical\"\n [class.flex-row]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.justify-content-between]=\"layout == OnshoreFormTemplateLayout.horizontal\">\n\n <div #formLabel\n [hidden]=\"!formTemplate.label || formTemplate.label == ''\"\n class=\"flex justify-content-between\"\n [style]=\"formTemplate.labelStyle ?? 'min-width: 200px; max-height: 36px'\">\n\n <span *ngIf=\"formTemplate.label && formTemplate.label != ''\" [class.mr-2]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.align-self-center]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.mb-2]=\"layout == OnshoreFormTemplateLayout.vertical\">\n {{formTemplate.label}}\n <small *ngIf=\"formTemplate.required\"\n [style]=\"{color: 'var(--inputtext-invalid-placeholder-color)' }\">*</small>\n </span>\n\n <div *ngIf=\"formTemplate.tooltip && layout == OnshoreFormTemplateLayout.vertical\" [pTooltip]=\"formTemplate.tooltip\" [escape]=\"false\" [tooltipPosition]=\"'left'\" appendTo=\"body\"><i class=\"fa fa-circle-question text-color\"></i></div>\n\n </div>\n\n <div class=\"flex w-full\">\n <p-toggleButton\n *ngIf=\"formTemplate.locked\"\n (onChange)=\"lockChanged($event.checked)\"\n onIcon=\"fa fa-lock-open\"\n offIcon=\"fa fa-lock\"\n class=\"mr-2\"\n [disabled]=\"!formTemplate.enabled\">\n </p-toggleButton>\n\n <div class=\"w-full overflow-hidden align-self-center\">\n <ng-content></ng-content>\n </div>\n\n <button *ngIf=\"formTemplate.actionButton\"\n class=\"ml-2 onshore-button-light\"\n [style]=\"{'height': '37px', 'min-width': '38px'}\"\n pButton\n [disabled]=\"actionButtonDisabled\"\n [icon]=\"formTemplate.actionButtonIcon\"\n (click)=\"actionButtonClick.emit()\">\n </button>\n </div>\n\n <div *ngIf=\"formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal\" class=\"ml-2 align-self-center\" [pTooltip]=\"formTemplate.tooltip\" [tooltipPosition]=\"'left'\" [escape]=\"false\"><i class=\"fa fa-circle-question primary-color\"></i></div>\n </div>\n\n <div *ngIf=\"ngControl.control.touched || ngControl.control.dirty\" [style]=\"{'margin-left': layout == OnshoreFormTemplateLayout.horizontal ? (formLabel?.clientWidth + (formTemplate.locked ? 60 : 0)) + 'px' : (formTemplate.locked ? 60 : 0) + 'px', 'margin-right': formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal ? '16px' : '0px'}\">\n <onshore-form-validation-output\n [validationItems]=\"formTemplate.validationItems\"\n [validationErrors]=\"ngControl.control.errors\">\n </onshore-form-validation-output>\n </div>\n\n <div *ngIf=\"formTemplate.description\" class=\"mt-2\" [style]=\"{'margin-left': layout == OnshoreFormTemplateLayout.horizontal ? (formLabel?.clientWidth + (formTemplate.locked ? 60 : 0)) + 'px' : (formTemplate.locked ? 60 : 0) + 'px', 'margin-right': formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal ? '16px' : '0px'}\">\n <small class=\"text-color\"><i class=\"fa fa-info-circle primary-color\"></i> {{formTemplate.description}}</small>\n </div>\n\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit,\n Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormAutocompleteItem, OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { AutoCompleteModule, AutoCompleteSelectEvent } from 'primeng/autocomplete';\nimport { updatePreset } from '@primeng/themes';\nimport { FluidModule } from 'primeng/fluid';\n\n@Component({\n selector: 'onshore-form-autocomplete-item',\n imports: [CommonModule, OnshoreFormItemContainer, AutoCompleteModule, FormsModule, ReactiveFormsModule, FluidModule],\n templateUrl: './form-autocomplete-item.component.html',\n styleUrls: ['./form-autocomplete-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormAutocompleteItemComponent implements ControlValueAccessor, OnDestroy, OnInit, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() public multiple: boolean = false;\n @Input() public searchedData: OnshoreFormAutocompleteItem[] = [];\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() onSearch: EventEmitter<string> = new EventEmitter();\n @Output() onSelect: EventEmitter<OnshoreFormAutocompleteItem> = new EventEmitter();\n @Output() onClear: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n selected(event: AutoCompleteSelectEvent) {\n const selectedItem: OnshoreFormAutocompleteItem = event.value;\n this.onSelect.emit(selectedItem.data);\n this.cdr.markForCheck();\n }\n\n searchClear() {\n this.searchedData = [];\n this.ngControl.reset();\n this.onClear.emit();\n }\n\n searchPrepare(term: any) {\n if(term.query != '') {\n this.search(term.query);\n }else{\n this.searchedData = [];\n this.ngControl.reset();\n this.onClear.emit();\n }\n }\n\n async search(searchTerm: string) {\n this.onSearch.emit(searchTerm);\n this.cdr.markForCheck();\n }\n\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {}\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeLayoutPreset() {\n console.log(\"changeLayoutPreset\");\n updatePreset({\n components: {\n autocomplete: {\n root: {\n focusRing: {\n width: '100%',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n }\n }\n }\n },\n })\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n constructor(private cdr: ChangeDetectorRef,\n @Self() @Optional() public ngControl: NgControl) {\n\n this.ngControl.valueAccessor = this;\n //this.changeLayoutPreset();\n }\n\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <p-fluid>\n <p-autoComplete [placeholder]=\"formTemplate.placeholder\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n (onSelect)=\"selected($event)\"\n (onUnselect)=\"selected($event)\"\n (onClear)=\"searchClear()\"\n [suggestions]=\"searchedData\"\n (completeMethod)=\"searchPrepare($event)\"\n [disabled]=\"disabled\"\n [minLength]=\"2\"\n [multiple]=\"multiple\"\n [delay]=\"1000\"\n [unique]=\"true\"\n optionLabel=\"firstLineLabel\"\n dataKey=\"data\"\n class=\"w-full\">\n <ng-template let-item pTemplate=\"item\">\n <div *ngIf=\"item.firstLineLabel\">\n <span class=\"mr-1\">\n <b>{{item.firstLineLabel}}</b><br>\n </span>\n </div>\n <div *ngIf=\"item.secondLineLabel\"><span>{{item.secondLineLabel}} </span></div>\n <div *ngIf=\"item.thirdLineLabel\"><span>{{item.thirdLineLabel}} </span></div>\n </ng-template>\n </p-autoComplete>\n </p-fluid>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { CheckboxModule } from 'primeng/checkbox';\n\n@Component({\n selector: 'onshore-form-checkbox-item',\n imports: [CommonModule, OnshoreFormItemContainer, CheckboxModule, FormsModule, ReactiveFormsModule], templateUrl: './form-checkbox-item.component.html',\n styleUrls: ['./form-checkbox-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormCheckboxItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeCheck(value: any) {\n this.ngControl.control?.setValue(value.checked);\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value !== true && this.ngControl.control?.value !== false && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <div class=\"p-field-checkbox flex\">\n <p-checkbox\n class=\"align-self-start mt-1\"\n [name]=\"formTemplate.name\"\n [formControl]=\"formControl\"\n [binary]=\"true\"\n [disabled]=\"disabled\"\n [inputId]=\"formTemplate.name\"\n [value]=\"ngControl.control.value\"\n (onChange)=\"changeCheck($event)\">\n </p-checkbox>\n\n <label class=\"mb-0 ml-2 text-color\"\n [for]=\"formTemplate.name\">\n {{formTemplate.hint}}\n </label>\n </div>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ColorPickerModule } from 'primeng/colorpicker';\nimport { updatePreset } from '@primeng/themes';\n@Component({\n selector: 'onshore-form-colorpicker-item',\n imports: [CommonModule, OnshoreFormItemContainer, InputTextModule, ColorPickerModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-colorpicker-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormColorpickerItemComponent implements OnInit, OnChanges, ControlValueAccessor, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n colorPickerValue = '';\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeColor() {\n this.ngControl.control?.setValue(this.colorPickerValue);\n this.ngControl?.control?.markAsDirty();\n this.cdr.markForCheck();\n }\n\n changeInput(input: any) {\n this.colorPickerValue = input.target?.value;\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n\n changeLayoutPreset() {\n console.log(\"changeLayoutPreset\");\n updatePreset({\n components: {\n colorpicker: {\n preview: {\n height: '37px',\n width: '37px'\n }\n }\n },\n })\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.colorPickerValue = this.formTemplate.default;\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.colorPickerValue = this.ngControl.control?.value;\n this.cdr.markForCheck();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n this.changeLayoutPreset();\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <div class=\"flex w-full\">\n\n <input class=\"w-full mr-2\"\n type=\"text\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [formControl]=\"formControl\"\n [disabled]=\"disabled\"\n pInputText\n [value]=\"ngControl.control.value\"\n (input)=\"changeInput($event)\"/>\n\n <p-colorPicker [(ngModel)]=\"colorPickerValue\"\n format=\"hex\" [inline]=\"false\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n [baseZIndex]=\"99999\"\n (onChange)=\"changeColor()\">\n </p-colorPicker>\n </div>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'onshore-form-dropdown-item',\n imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, DropdownModule, MultiSelectModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-dropdown-item.component.html',\n styleUrls: ['./form-dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormDropdownItemComponent implements OnInit, OnChanges, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() multiple: boolean | undefined = false;\n @Input() showClear: boolean | undefined = false;\n @Input() group: boolean | undefined = false;\n @Input() selectionLimit?: number = 0\n @Input() minLength?: number = 0;\n @Input() optionLabel?: string = '';\n @Input() optionGroupLabel?: string = '';\n @Input() dataKey?: string = '';\n @Input() actionButtonDisabled: boolean = false;\n @Input() options: any[] = [];\n\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean | undefined = false;\n\n // ControlValueAccessor interface\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n clearSelection() {\n this.ngControl.control?.reset();\n this.ngControl.control?.setValue(this.multiple ? [] : '');\n this.cdr.markForCheck();\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnInit(): void {\n if((!this.ngControl.control?.value || this.ngControl.control?.value == '' || this.ngControl.control?.value == undefined) && !this.multiple) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const currentOptions = changes['options']?.currentValue ?? changes['formTemplate']?.currentValue?.options;\n //const previousOptions = changes['options']?.previousValue ?? changes['formTemplate']?.previousValue?.options;\n\n if(!this.options && currentOptions) {\n this.options = currentOptions;\n }\n\n this.cdr.markForCheck();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-dropdown *ngIf=\"!multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n [showClear]=\"showClear && formTemplate?.placeholder\"\n (onClear)=\"clearSelection()\"\n optionDisabled=\"disabled\"\n appendTo=\"body\">\n </p-dropdown>\n\n <p-multiSelect *ngIf=\"multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [showClear]=\"showClear\"\n [selectionLimit]=\"selectionLimit\"\n [minlength]=\"minLength\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n (onClear)=\"clearSelection()\"\n [selectedItemsLabel]=\"'form.dropdownControl.selectedItems' | translate\"\n optionDisabled=\"disabled\"\n appendTo=\"body\"></p-multiSelect>\n\n</onshore-form-item-container>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'onshore-image-placeholder',\n imports: [CommonModule],\n templateUrl: './image-placeholder.component.html',\n styleUrls: ['./image-placeholder.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreImagePlaceholderComponent {\n\n @Input() public placeholderIcon: string = '';\n @Input() public placeholderImage: string = '';\n @Input() public image: string = '';\n @Input() public imageStyle: string = '';\n @Input() public placeholderStyle: string = '';\n @Input() public showLoader: boolean = true;\n\n imageLoaded = false;\n\n loadReady() {\n this.imageLoaded = true;\n this.showLoader = false;\n }\n\n abort() {\n this.imageLoaded = false;\n this.showLoader = false;\n }\n\n constructor() {}\n\n}\n","<div [hidden]=\"!imageLoaded || !image\">\n <img [style]=\"imageStyle\" [src]=\"image\" (load)=\"loadReady()\" (abort)=\"abort()\" />\n</div>\n\n<div *ngIf=\"!imageLoaded || !image\" class=\"flex justify-content-center align-items-center\" [style]=\"placeholderStyle\" [class.bg-gray-200]=\"placeholderIcon\" [class.p-2]=\"placeholderIcon\">\n <i *ngIf=\"placeholderIcon\" [class]=\"'text-muted fa ' + placeholderIcon\" [class.opacity-20]=\"showLoader && image\"></i>\n <img *ngIf=\"placeholderImage\" [src]=\"placeholderImage\" [class.opacity-20]=\"showLoader && image\" class=\"h-full\" />\n <i *ngIf=\"showLoader && image\" class=\"fas fa-circle-notch fa-spin fa-2x absolute\"></i>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport { ImageCroppedEvent, ImageCropperComponent } from 'ngx-image-cropper';\nimport { OnshoreImageError } from '../../enums/form.enums';\nimport { OnshoreFormImageSettings } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n selector: 'onshore-image-chooser',\n imports: [CommonModule, TranslateModule, ButtonModule, InputTextModule, ImageCropperComponent, FormsModule, ReactiveFormsModule],\n templateUrl: './image-chooser.component.html',\n styleUrls: ['./image-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreImageChooserComponent {\n\n drag = false;\n image = '';\n finalImage = '';\n imageErrorType = OnshoreImageError;\n imageError: OnshoreImageError = OnshoreImageError.none;\n\n @Input() imageSettings: OnshoreFormImageSettings | undefined = undefined;\n\n @Output() choosen: EventEmitter<string> = new EventEmitter();\n @Output() canceled: EventEmitter<boolean> = new EventEmitter();\n\n clear() {\n this.image = '';\n this.finalImage = '';\n this.imageError = OnshoreImageError.none;\n }\n\n public fileChange(event: Event): void {\n this.imageError = OnshoreImageError.none;\n const target = event.target as HTMLInputElement;\n const file: File | undefined | null = target?.files ? target?.files[0] : null;\n const maxFileSize = this.imageSettings?.maxFileSize || 0;\n const imageWidth = this.imageSettings?.imageWidth || 0;\n const imageHeight = this.imageSettings?.imageHeight || 0;\n\n if (file?.type != 'image/png' && file?.type != 'image/jpeg' && file?.type != 'image/webp') {\n this.imageError = OnshoreImageError.fileType;\n return;\n }\n\n if (file?.size > maxFileSize) {\n this.imageError = OnshoreImageError.size;\n return;\n }\n\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n\n const img = new Image();\n img.src = window.URL.createObjectURL(file);\n img.onload = () => {\n\n const originalWidth = img.width;\n const originalHeight = img.height;\n\n if (originalWidth >= imageWidth && originalHeight >= imageHeight) {\n this.image = reader.result?.toString() || '';\n } else {\n this.imageError = OnshoreImageError.ratio;\n }\n this.cdr.markForCheck();\n\n }\n\n };\n }\n\n\n\n }\n\n public imageCropped(event: ImageCroppedEvent): void {\n //const croppedImage: SafeUrl = this.sanitizer.bypassSecurityTrustUrl(event.objectUrl || '') || '';\n if(event.blob) {\n this.blobToBase64(event.blob).then(result => {\n //this.finalImage = String(result).split(',')[1] || '';\n this.finalImage = String(result) || '';\n })\n }\n }\n\n public imageCroppedReady(): void {\n this.choosen.emit(this.finalImage);\n this.clear();\n }\n\n blobToBase64(blob: Blob): Promise<string | ArrayBuffer | null> {\n return new Promise((resolve, _) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n}\n","<div class=\"flex flex-column justify-content-center align-items-center w-full\">\n\n <div *ngIf=\"!image\" class=\"flex justify-content-center flex-column align-items-center w-full\">\n <div\n class=\"onshore-image-upload flex flex-column justify-content-between align-items-center rounded-lg px-4 pb-4 relative m-3\"\n [class.onshore-border-gray-3]=\"drag\"\n [class.onshore-border-danger]=\"imageError != imageErrorType.none\">\n <i class=\"fa fa-image fa-5x text-color\"></i>\n <small class=\"text-color mb-4\">{{'form.imageControl.dropImageLabel' | translate}}</small>\n\n <p-button [severity]=\"'primary'\"\n [label]=\"'form.imageControl.imageChooserFileButton' | translate\">\n </p-button>\n\n <input\n (change)=\"fileChange($event)\"\n *ngIf=\"!image\"\n accept=\"image/png, image/jpeg, image/webp\"\n class=\"absolute w-full h-full bottom-0 cursor-pointer\"\n style=\"opacity: 0\"\n type=\"file\"\n (dragenter)=\"drag = true\"\n (dragleave)=\"drag = false\"\n (dragend)=\"drag = false\"\n />\n </div>\n </div>\n\n <div class=\"flex flex-column relative align-items-center w-full\" *ngIf=\"image\">\n <image-cropper\n class=\"m-3\"\n [style]=\"'align-items: center; height: ' + (imageSettings.cropperPreviewHeight * this.imageSettings.aspectRatio) + 'px; width: ' + (imageSettings.cropperPreviewWidth * this.imageSettings.aspectRatio) + 'px'\"\n [class.onshore-cropper-circle]=\"this.imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"this.imageSettings.imageQuality\"\n [alignImage]=\"this.imageSettings.alignImage\"\n [backgroundColor]=\"this.imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"this.imageSettings.containWithinAspectRatio\"\n [format]=\"this.imageSettings.format\"\n [aspectRatio]=\"this.imageSettings.aspectRatio\"\n [resizeToHeight]=\"this.imageSettings.imageWidth * this.imageSettings.aspectRatio\"\n [resizeToWidth]=\"this.imageSettings.imageHeight * this.imageSettings.aspectRatio\">\n </image-cropper>\n </div>\n\n <div *ngIf=\"imageError\"class=\"pb-2 text-wrap text-center\"\n [style]=\"{color: 'var(--inputtext-invalid-placeholder-color)' }\">\n <small *ngIf=\"imageError == imageErrorType.ratio\">{{'form.imageControl.imageErrorRatio' | translate: {resizeToWidth: this.imageSettings.imageWidth, resizeToHeight: this.imageSettings.imageHeight} }}</small>\n <small *ngIf=\"imageError == imageErrorType.fileType\">{{'form.imageControl.imageErrorFileType' | translate}}</small>\n <small *ngIf=\"imageError == imageErrorType.size\">{{'form.imageControl.imageErrorSize' | translate}}</small>\n </div>\n</div>\n\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2 gap-2\">\n <p-button [severity]=\"'secondary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n icon=\"fa fa-times\"\n [label]=\"'form.imageControl.imageChooserCancelButton' | translate\"\n (click)=\"clear(); canceled.emit(true)\">\n </p-button>\n\n <p-button [severity]=\"'primary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n [label]=\"'form.imageControl.imageChooserSelectButton' | translate\"\n icon=\"fa fa-check\"\n [disabled]=\"!image\"\n (click)=\"imageCroppedReady()\">\n </p-button>\n </div>\n</p-footer>\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { WebcamImage, WebcamModule } from 'ngx-webcam';\nimport { ImageCroppedEvent, ImageCropperComponent } from 'ngx-image-cropper';\nimport { OnshoreFormImageSettings } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'onshore-webcam',\n imports: [CommonModule, TranslateModule, ButtonModule, ImageCropperComponent, WebcamModule],\n templateUrl: './webcam.component.html',\n styleUrls: ['./webcam.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WebcamComponent {\n\n @Input() imageSettings: OnshoreFormImageSettings | undefined = undefined;\n\n @Output() shot: EventEmitter<string> = new EventEmitter();\n @Output() canceled: EventEmitter<boolean> = new EventEmitter();\n\n image = '';\n finalImage = '';\n\n public trigger: Subject<void> = new Subject<void>();\n\n public camImageShot(webcamImage: WebcamImage): void {\n this.image = webcamImage.imageAsDataUrl;\n this.cdr.markForCheck();\n }\n\n public imageCropped(event: ImageCroppedEvent): void {\n if(event.blob) {\n this.blobToBase64(event.blob).then(result => {\n //this.finalImage = String(result).split(',')[1] || '';\n this.finalImage = String(result) || '';\n })\n }\n }\n\n public imageCroppedReady(): void {\n this.shot.emit(this.finalImage);\n }\n\n\n public get triggerObservable(): Observable<void> {\n return this.trigger.asObservable();\n }\n\n public triggerSnapshot(): void {\n this.trigger.next();\n }\n\n blobToBase64(blob: Blob): Promise<string | ArrayBuffer | null> {\n return new Promise((resolve, _) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n}\n","<div class=\"flex w-full justify-content-center align-items-center overflow-hidden p-2\">\n <webcam *ngIf=\"!image || image == ''\"\n [mirrorImage]=\"'never'\"\n [height]=\"imageSettings.webcamWidth * this.imageSettings.aspectRatio\"\n [width]=\"imageSettings.webcamHeight * this.imageSettings.aspectRatio\"\n [allowCameraSwitch]=\"true\"\n [trigger]=\"triggerObservable\"\n [imageQuality]=\"imageSettings.imageQuality / 100\"\n (imageCapture)=\"camImageShot($event)\">\n </webcam>\n\n <image-cropper *ngIf=\"image && image != ''\"\n class=\"m-3\" [style]=\"'height: ' + (imageSettings.cropperPreviewWidth * this.imageSettings.aspectRatio) + 'px; width: ' + (imageSettings.cropperPreviewHeight * this.imageSettings.aspectRatio) + 'px'\"\n [class.onshore-cropper-circle]=\"imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageSettings.imageQuality\"\n [alignImage]=\"imageSettings.alignImage\"\n [backgroundColor]=\"imageSettings?.backgroundColor\"\n [containWithinAspectRatio]=\"imageSettings?.containWithinAspectRatio\"\n [format]=\"imageSettings.format\"\n [aspectRatio]=\"imageSettings.aspectRatio\"\n [resizeToHeight]=\"imageSettings.imageHeight * this.imageSettings.aspectRatio\"\n [resizeToWidth]=\"this.imageSettings.imageWidth * this.imageSettings.aspectRatio\">\n </image-cropper>\n</div>\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center gap-2 mt-2\">\n\n <p-button [severity]=\"'secondary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n icon=\"fa fa-times\"\n [label]=\"'global.cancel' | translate\"\n (click)=\"canceled.emit(true)\">\n </p-button>\n\n <p-button *ngIf=\"!image || image == ''\"\n [severity]=\"'primary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n [label]=\"'form.imageControl.webcamSmileButton' | translate\"\n icon=\"fa fa-laugh-wink\"\n (click)=\"triggerSnapshot()\">\n </p-button>\n\n <p-button *ngIf=\"image && image != ''\"\n [severity]=\"'primary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n [label]=\"'global.use' | translate\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </p-button>\n </div>\n</p-footer>\n\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit,\n Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { OnshoreFormImageSettings, OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateLayout } from '../../enums/form.enums';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { OnshoreImagePlaceholderComponent } from '../image-placeholder/image-placeholder.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { OnshoreImageChooserComponent } from '../image-chooser/image-chooser.component';\nimport { WebcamComponent } from '../webcam/webcam.component';\nimport { FluidModule } from 'primeng/fluid';\n\n@Component({\n selector: 'onshore-form-image-item',\n imports: [CommonModule, OnshoreFormItemContainer, FluidModule, OnshoreImagePlaceholderComponent, OnshoreImageChooserComponent, WebcamComponent, TranslateModule, ButtonModule, DialogModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-image-item.component.html',\n styleUrls: ['./form-image-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormImageItemComponent implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() imageSettings: OnshoreFormImageSettings | undefined = undefined;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() imageDeleted: EventEmitter<string> = new EventEmitter();\n @Output() imageCleared: EventEmitter<any> = new EventEmitter();\n @Output() imageReady: EventEmitter<string> = new EventEmitter();\n @Output() selectFromMedia: EventEmitter<any> = new EventEmitter();\n @Output() isLoading: EventEmitter<boolean> = new EventEmitter();\n\n OnshoreFormTemplateLayout = OnshoreFormTemplateLayout;\n\n defaultImageSettings: OnshoreFormImageSettings = {\n imageWidth: 400,\n imageHeight: 400,\n containWithinAspectRatio: false,\n aspectRatio: 1 / 1,\n imageSelectionEnabled: true,\n webcamSelectionEnabled: true,\n mediaSelectionEnabled: true,\n deleteEnabled: true,\n placeholderImage: '',\n placeholderIcon: 'fa fa-image fa-10x',\n containerWidth: 250,\n containerHeight: 250,\n imageQuality: 100,\n format: 'png',\n alignImage: 'center',\n cropperPreviewWidth: 400,\n cropperPreviewHeight: 400,\n webcamWidth: 400,\n webcamHeight: 400,\n circleCropper: false,\n maxFileSize: 6400000,\n backgroundColor: 'white'\n };\n\n image: string | undefined = '';\n disabled = false;\n webcamDialogVisible: boolean = false;\n imageChooserDialogVisible: boolean = false;\n\n subscriptions: Array<Subscription> = [];\n\n getFileImage(image: any) {\n this.imageChooserDialogVisible = false;\n if(image) {\n this.image = image;\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.image);\n this.ngControl?.control?.markAsDirty();\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }, 500);\n }\n }\n\n getWebcamImage(image: any) {\n this.webcamDialogVisible = false;\n if(image) {\n this.image = image;\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.image);\n this.ngControl?.control?.markAsDirty();\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }, 500);\n }\n }\n\n removeImage() {\n this.image = '';\n setTimeout(() => {\n if(this.image && !this.image.includes('base64')) {\n this.imageDeleted.emit(this.image);\n } else {\n this.imageCleared.emit();\n }\n\n this.ngControl?.control?.setValue(null);\n this.ngControl?.control?.markAsDirty();\n\n this.cdr.markForCheck();\n }, 500);\n }\n\n public writeValue(obj: any): void {\n if(obj && !obj.includes('base64')) {\n this.image = obj;\n }\n if(obj == null) {\n this.image = '';\n }\n\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.image = this.ngControl.value;\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {}\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n ngOnInit(): void {\n if(this.ngControl?.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl?.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n this.ngControl?.control?.disable();\n this.image = undefined;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const imageSettings: OnshoreFormImageSettings = changes['imageSettings']?.currentValue;\n\n this.imageSettings = {\n ...this.defaultImageSettings,\n ...imageSettings,\n placeholderIcon: imageSettings?.placeholderImage ? '' : (imageSettings?.placeholderIcon ?? this.defaultImageSettings.placeholderIcon)\n };\n\n //this.removeImage();\n this.cdr.markForCheck();\n }\n\n constructor(public cdr: ChangeDetectorRef,\n @Self() @Optional() public ngControl: NgControl,\n public dialogService: DialogService) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\" [ngControl]=\"ngControl\">\n <div class=\"w-full flex align-items-center gap-2\" [class.flex-column]=\"formTemplate.layout === OnshoreFormTemplateLayout.vertical\">\n\n <div class=\"onshore-border-gray-4 border-solid border-1 overflow-hidden\"\n [style]=\"'background-color: white; width: ' + imageSettings.containerWidth + 'px; height: ' + imageSettings.containerHeight + 'px'\">\n <onshore-image-placeholder\n class=\"w-full\"\n [image]=\"image\"\n [imageStyle]=\"'width: 100%; height: 100%'\"\n [placeholderIcon]=\"imageSettings.placeholderIcon\"\n [placeholderImage]=\"imageSettings.placeholderImage\"\n [placeholderStyle]=\"'width: 100%; height: 100%'\">\n </onshore-image-placeholder>\n </div>\n\n <div>\n <p-fluid class=\"flex flex-column\">\n <p-button *ngIf=\"imageSettings.imageSelectionEnabled\"\n [severity]=\"'secondary'\"\n icon=\"fa fa-image\"\n [label]=\"'form.imageControl.uploadImageButton' | translate\"\n class=\"mb-2 w-full\"\n [disabled]=\"disabled\"\n (click)=\"imageChooserDialogVisible = true; cdr.detectChanges()\">\n </p-button>\n\n <p-button *ngIf=\"imageSettings.webcamSelectionEnabled\"\n [severity]=\"'secondary'\"\n icon=\"fa fa-camera\"\n [label]=\"'form.imageControl.webcamImageButton' | translate\"\n class=\"mb-2 w-full\"\n [disabled]=\"disabled\"\n (click)=\"webcamDialogVisible = true\">\n </p-button>\n\n <p-button *ngIf=\"imageSettings.mediaSelectionEnabled\"\n [severity]=\"'secondary'\"\n icon=\"fa fa-photo-video\"\n [label]=\"'form.imageControl.mediaImageButton' | translate\"\n class=\"mb-2 w-full\"\n [disabled]=\"disabled\"\n (click)=\"selectFromMedia.emit()\">\n </p-button>\n\n <p-button *ngIf=\"imageSettings.deleteEnabled\"\n [severity]=\"'secondary'\"\n icon=\"fa fa-eraser\"\n [label]=\"'form.imageControl.removeImageButton' | translate\"\n (click)=\"removeImage()\"\n class=\"w-full\"\n [disabled]=\"!image || disabled\">\n </p-button>\n </p-fluid>\n </div>\n\n </div>\n</onshore-form-item-container>\n\n<p-dialog [header]=\"'form.imageControl.uploadImageTitle' | translate\" [(visible)]=\"imageChooserDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" appendTo=\"body\">\n <onshore-image-chooser\n (choosen)=\"getFileImage($event)\"\n (canceled)=\"imageChooserDialogVisible = false\"\n [imageSettings]=\"imageSettings\">\n </onshore-image-chooser>\n</p-dialog>\n\n<p-dialog [header]=\"'form.imageControl.webacmImageTitle' | translate\" [(visible)]=\"webcamDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" appendTo=\"body\">\n <onshore-webcam\n *ngIf=\"webcamDialogVisible\"\n (shot)=\"getWebcamImage($event)\"\n (canceled)=\"webcamDialogVisible = false\"\n [imageSettings]=\"imageSettings\"></onshore-webcam>\n</p-dialog>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TextareaModule } from 'primeng/textarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputGroupModule } from 'primeng/inputgroup';\nimport { InputGroupAddonModule } from 'primeng/inputgroupaddon';\nimport { ButtonModule } from 'primeng/button';\nimport { FluidModule } from 'primeng/fluid';\n\n@Component({\n selector: 'onshore-form-input-item',\n imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, TextareaModule, InputTextModule, InputNumberModule, FormsModule, ReactiveFormsModule, InputGroupModule, InputGroupAddonModule, ButtonModule, FluidModule],\n templateUrl: './form-input-item.component.html',\n styleUrls: ['./form-input-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormInputItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() step?: number = 1;\n @Input() min?: number = 0;\n @Input() max?: number = 999999;\n @Input() minLength?: number = 0;\n @Input() maxLength?: number = 999999;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n passwordVisible: boolean = false;\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n // @ts-ignore\n onNumberInput(event) {\n this.ngControl.control?.setValue(event.value);\n this.ngControl?.control?.markAsDirty();\n this.cdr.markForCheck();\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <p-fluid>\n <p-inputgroup>\n\n <textarea *ngIf=\"formTemplate.type == OnshoreFormTemplateType.textarea\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n [rows]=\"3\"\n [cols]=\"30\"\n pTextarea\n [autoResize]=\"true\"\n [formControl]=\"formControl\"\n [class.p-invalid]=\"ngControl.control?.touched && ngControl.control?.invalid\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"></textarea>\n\n <input *ngIf=\"formTemplate.type == OnshoreFormTemplateType.text || formTemplate.type == OnshoreFormTemplateType.email || formTemplate.type == OnshoreFormTemplateType.phone\"\n [type]=\"formTemplate.type\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n pInputText\n [formControl]=\"formControl\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"/>\n\n <input *ngIf=\"formTemplate.type == OnshoreFormTemplateType.password\"\n [type]=\"passwordVisible ? 'text' : formTemplate.type\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n pInputText\n [formControl]=\"formControl\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"/>\n\n <p-inputgroup-addon *ngIf=\"formTemplate.inputAddon\">\n <i [class]=\"formTemplate.inputAddon\"></i>\n </p-inputgroup-addon>\n\n <p-inputgroup-addon *ngIf=\"formTemplate.type == OnshoreFormTemplateType.password\" class=\"cursor-pointer\" (click)=\"passwordVisible = !passwordVisible\">\n <i [class]=\"passwordVisible ? 'fa fa-eye' : 'fa fa-eye-slash'\"></i>\n </p-inputgroup-addon>\n\n </p-inputgroup>\n\n <p-inputNumber *ngIf=\"formTemplate.type == OnshoreFormTemplateType.number\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n [formControl]=\"formControl\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [step]=\"step ?? 1\"\n [min]=\"min\"\n [max]=\"max\"\n [showButtons]=\"true\"\n [buttonLayout]=\"formTemplate.inputNumberVertical ? 'vertical' : 'horizontal'\"\n spinnerMode=\"horizontal\"\n (onInput)=\"onNumberInput($event)\">\n <ng-template #incrementbuttonicon>\n <span class=\"fa fa-plus\"></span>\n </ng-template>\n <ng-template #decrementbuttonicon>\n <span class=\"fa fa-minus\"></span>\n </ng-template>\n </p-inputNumber>\n </p-fluid>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputSwitchModule } from 'primeng/inputswitch';\n\n@Component({\n selector: 'onshore-form-switch-item',\n imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, InputSwitchModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-switch-item.component.html',\n styleUrls: ['./form-switch-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormSwitchItemComponent implements OnInit, ControlValueAccessor, OnDestroy, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnInit(): void {\n this.ngControl.control?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n skip(1)\n ).subscribe(newValue => {\n this.valueChange.emit(this.ngControl.control?.value);\n });\n\n if(this.ngControl.control?.value == undefined && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <div class=\"h-full align-items-center mt-1\">\n <p-inputSwitch [name]=\"formTemplate.name\"\n [formControl]=\"formControl\"\n [disabled]=\"disabled\"\n [inputId]=\"formTemplate.name\">\n </p-inputSwitch>\n </div>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FluidModule } from 'primeng/fluid';\nimport { DatePicker } from 'primeng/datepicker';\n\n@Component({\n selector: 'onshore-form-datetime-item',\n imports: [CommonModule, OnshoreFormItemContainer, DatePicker, FormsModule, ReactiveFormsModule, FluidModule],\n templateUrl: './form-datetime-item.component.html',\n styleUrls: ['./form-datetime-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormDatetimeItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value !== true && this.ngControl.control?.value !== false && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <p-fluid>\n <p-datePicker class=\"w-full\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n [formControl]=\"formControl\"\n dateFormat=\"dd.mm.yy\"\n dataType=\"string\"\n hourFormat=\"24\"\n [timeOnly]=\"formTemplate.type == OnshoreFormTemplateType.time\"\n [showTime]=\"formTemplate.type == OnshoreFormTemplateType.datetime\"\n [defaultDate]=\"formTemplate.default\"\n appendTo=\"body\">\n </p-datePicker>\n </p-fluid>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'onshore-form-sort-item',\n imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-sort-item.component.html',\n styleUrls: ['./form-sort-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormSortItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n sortItems?: any[] = [];\n tempLockValue?: any[] | undefined = [];\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n disabled: boolean = false;\n\n sortItemsChanged(event: any[]) {\n this.sortItems = event;\n this.ngControl?.control?.setValue(event);\n this.ngControl?.control?.markAsDirty();\n this.cdr.markForCheck();\n }\n\n lockChanged(unlocked: boolean) {\n if(unlocked && this.formTemplate.enabled) {\n this.tempLockValue = this.ngControl?.control?.value;\n } else {\n this.ngControl?.control?.setValue(this.tempLockValue);\n this.sortItems = this.tempLockValue;\n this.tempLockValue = undefined;\n }\n this.cdr.markForCheck();\n }\n\n // ControlValueAccessor interface\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n\n registerOnTouched(fn: any): void {}\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n this.ngControl.control?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n skip(1)\n ).subscribe(newValue => {\n this.ngControl?.control?.setValue(newValue);\n });\n\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.sortItems = this.formTemplate.default;\n } else {\n this.sortItems = this.ngControl.control?.value;\n }\n this.cdr.markForCheck();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\"\n (lockIsChanged)=\"lockChanged($event)\">\n\n <!--<div *ngIf=\"formTemplate.type == OnshoreFormTemplateType.sort\"\n class=\"w-full\" [dragula]=\"ngControl.enabled\"\n [dragulaModel]=\"sortItems\"\n (dragulaModelChange)=\"sortItemsChanged($event)\">\n <div [class.cursor-move]=\"ngControl.enabled\"\n style=\"border-radius: 3px\"\n class=\"onshore-sort-item flex justify-content-between align-items-center onshore-border-gray-4 border-solid border-1 p-2 mb-2 onshore-background-color-white\" *ngFor=\"let item of sortItems\">\n <span [class.onshore-color-blocked]=\"!ngControl.enabled\">{{ item.label }}</span>\n <i [class.onshore-color-blocked]=\"!ngControl.enabled\" class=\"fa fa-arrows-v\"></i>\n </div>\n </div>-->\n\n</onshore-form-item-container>\n\n","/*\n * Public API Surface of onshore-forms\n */\n\nexport * from './lib/onshore-forms.service';\nexport * from './lib/enums/form.enums';\nexport * from './lib/models/form.models';\nexport * from './lib/validators/form.validators';\nexport * from './lib/components/form-autocomplete-item/form-autocomplete-item.component';\nexport * from './lib/components/form-checkbox-item/form-checkbox-item.component';\nexport * from './lib/components/form-colorpicker-item/form-colorpicker-item.component';\nexport * from './lib/components/form-dropdown-item/form-dropdown-item.component';\nexport * from './lib/components/form-image-item/form-image-item.component';\nexport * from './lib/components/form-input-item/form-input-item.component';\nexport * from './lib/components/form-switch-item/form-switch-item.component';\nexport * from './lib/components/form-datetime-item/form-datetime-item.component';\nexport * from './lib/components/form-sort-item/form-sort-item.component';\nexport * from './lib/components/form-validation-output/form-validation-output.component';\nexport * from './lib/components/form-item-container/form-item-container.component';\nexport * from './lib/components/image-placeholder/image-placeholder.component';\nexport * from './lib/components/image-chooser/image-chooser.component';\nexport * from './lib/components/webcam/webcam.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i4","i3","i5","i7","i8"],"mappings":"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"}
1
+ {"version":3,"file":"onshore-forms.mjs","sources":["../../../projects/onshore-forms/src/lib/enums/form.enums.ts","../../../projects/onshore-forms/src/lib/onshore-forms.service.ts","../../../projects/onshore-forms/src/lib/validators/form.validators.ts","../../../projects/onshore-forms/src/lib/components/form-validation-output/form-validation-output.component.ts","../../../projects/onshore-forms/src/lib/components/form-validation-output/form-validation-output.component.html","../../../projects/onshore-forms/src/lib/components/form-item-container/form-item-container.component.ts","../../../projects/onshore-forms/src/lib/components/form-item-container/form-item-container.component.html","../../../projects/onshore-forms/src/lib/components/form-autocomplete-item/form-autocomplete-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-autocomplete-item/form-autocomplete-item.component.html","../../../projects/onshore-forms/src/lib/components/form-checkbox-item/form-checkbox-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-checkbox-item/form-checkbox-item.component.html","../../../projects/onshore-forms/src/lib/components/form-colorpicker-item/form-colorpicker-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-colorpicker-item/form-colorpicker-item.component.html","../../../projects/onshore-forms/src/lib/components/form-dropdown-item/form-dropdown-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-dropdown-item/form-dropdown-item.component.html","../../../projects/onshore-forms/src/lib/components/image-placeholder/image-placeholder.component.ts","../../../projects/onshore-forms/src/lib/components/image-placeholder/image-placeholder.component.html","../../../projects/onshore-forms/src/lib/components/image-chooser/image-chooser.component.ts","../../../projects/onshore-forms/src/lib/components/image-chooser/image-chooser.component.html","../../../projects/onshore-forms/src/lib/components/webcam/webcam.component.ts","../../../projects/onshore-forms/src/lib/components/webcam/webcam.component.html","../../../projects/onshore-forms/src/lib/components/form-image-item/form-image-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-image-item/form-image-item.component.html","../../../projects/onshore-forms/src/lib/components/form-input-item/form-input-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-input-item/form-input-item.component.html","../../../projects/onshore-forms/src/lib/components/form-switch-item/form-switch-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-switch-item/form-switch-item.component.html","../../../projects/onshore-forms/src/lib/components/form-datetime-item/form-datetime-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-datetime-item/form-datetime-item.component.html","../../../projects/onshore-forms/src/lib/components/form-sort-item/form-sort-item.component.ts","../../../projects/onshore-forms/src/lib/components/form-sort-item/form-sort-item.component.html","../../../projects/onshore-forms/src/public-api.ts","../../../projects/onshore-forms/src/onshore-forms.ts"],"sourcesContent":["export enum OnshoreFormTemplateType {\r\n text = 'text',\r\n textarea = 'textarea',\r\n editor = 'editor',\r\n password = 'password',\r\n number = 'number',\r\n email = 'email',\r\n phone = 'phone',\r\n regexp = 'regexp',\r\n select = 'select',\r\n switch = 'switch',\r\n check = 'check',\r\n radio = 'radio',\r\n image = 'image',\r\n autocomplete = 'autocomplete',\r\n color = 'color',\r\n date = 'date',\r\n time = 'time',\r\n datetime = 'datetime',\r\n sort = 'sort',\r\n subform = 'subform'\r\n}\r\n\r\nexport enum OnshoreFormTemplateLayout {\r\n vertical = 'vertical',\r\n horizontal = 'horizontal',\r\n auto = 'auto'\r\n}\r\n\r\nexport enum OnshoreImageError {\r\n none = '',\r\n fileType = 'fileType',\r\n ratio = 'ratio',\r\n size = 'size',\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { OnshoreFormTemplateType } from './enums/form.enums';\nimport { OnshoreFormArrayDefault, OnshoreFormTemplateItem } from './models/form.models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnshoreFormsService {\n\n _form: FormGroup;\n _formTemplate: OnshoreFormTemplateItem[];\n _formValidations: string[] = [];\n\n subscriptions: Array<Subscription> = [];\n\n public isLoading$: Subject<boolean> = new Subject<boolean>();\n\n constructor() {\n this._form = new FormGroup({}, {updateOn: 'change'});\n this._formTemplate = [];\n }\n\n public get form(): FormGroup {\n return this._form;\n }\n\n public get formValues() {\n return this._form?.value;\n }\n\n public patchForm(value: any) {\n this._form?.patchValue(value);\n }\n\n public resetForm() {\n this._form?.reset();\n this._form?.updateValueAndValidity({ onlySelf: false, emitEvent: true });\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n\n this._form = null!;\n this._formTemplate = null!;\n }\n\n public resetFormControl(name: string, touched: boolean = false) {\n this._form?.get(name)?.reset();\n if(touched) {\n this._form?.get(name)?.markAsTouched();\n this._form?.get(name)?.markAsDirty();\n }\n this._form?.get(name)?.updateValueAndValidity({ onlySelf: false, emitEvent: true });\n }\n\n public generateForm(formTemplate: OnshoreFormTemplateItem[]): FormGroup | null {\n this._formTemplate = formTemplate;\n this._form = new FormGroup({}, {updateOn: 'change'});\n this._form = this.iterateNestedForm(this._form, formTemplate);\n return this._form;\n }\n\n public formTemplate(name: string, formTemplate: OnshoreFormTemplateItem[] = this._formTemplate): OnshoreFormTemplateItem {\n let template: OnshoreFormTemplateItem;\n\n if(formTemplate) {\n for(let i = 0; i < formTemplate?.length; i++) {\n const item = formTemplate[i];\n if(item.name === name) {\n template = item;\n i = formTemplate.length;\n }else if(item.subformArray) {\n const arrayTemplate = this.formTemplate(name, item.subformArray);\n if(arrayTemplate) template = arrayTemplate;\n }else if(item.subformObject) {\n const objectTemplate = this.formTemplate(name, item.subformObject);\n if(objectTemplate) template = objectTemplate;\n }\n }\n }\n\n return template!;\n }\n\n public formControl(name: string, formGroup: FormGroup | null = this._form): FormControl {\n return formGroup?.get(name) as FormControl;\n }\n\n public formArray(name: string): FormArray {\n return this._form?.get(name) as FormArray;\n }\n\n public formGroup(form: FormGroup, name: string): FormGroup {\n return form.get(name) as FormGroup;\n }\n\n public addFormArrayItem(formArray: FormArray, item: OnshoreFormTemplateItem, defaultValues: OnshoreFormArrayDefault[]): FormGroup {\n let formControls = <any>{};\n\n if(item) {\n item.subformArray?.forEach((subitem: OnshoreFormTemplateItem) => {\n if(subitem.type == OnshoreFormTemplateType.subform) {\n if (item.subformArray) {\n formControls[subitem.name] = new FormArray([]);\n formControls[subitem.name].setParent(formControls[subitem.name]);\n this.subscribeNestedFormArray(formControls[subitem.name] as FormArray);\n }\n if (item.subformObject) {\n formControls[subitem.name] = new FormGroup({});\n this.subscribeNestedFormGroup(formControls[subitem.name] as FormGroup);\n }\n } else {\n const defaultValue = defaultValues?.find(value => value.name === subitem.name)?.value;\n if(defaultValue) subitem.default = defaultValue.value;\n\n formControls[subitem.name] = new FormControl(defaultValue ?? (subitem.default !== undefined ? subitem.default : ''), {\n validators: subitem.validators || [],\n updateOn: 'change'\n });\n formControls[subitem.name].updateValueAndValidity({ onlySelf: false, emitEvent: true });\n }\n });\n }\n\n const formGroup = new FormGroup(formControls);\n formGroup.setParent(formArray);\n\n formArray.push(formGroup);\n\n this.subscribeNestedFormGroup(formGroup);\n\n return formGroup;\n }\n\n public removeFormArrayItem(form: FormArray, index: number) {\n form.removeAt(index);\n }\n\n public setFormValidations(validations: string[] = []) {\n this._formValidations = validations;\n }\n\n public enable() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.enabled = true;\n });\n setTimeout(() => {\n this._form?.enable({onlySelf: true, emitEvent: false});\n }, 100);\n }\n\n public disable() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.enabled = false;\n });\n setTimeout(() => {\n this._form?.disable({onlySelf: true, emitEvent: false});\n }, 100);\n }\n\n public setError(control: string, error: Object) {\n const errors = {...this.formControl(control).errors ?? {}, ...error} ;\n this.formControl(control).setErrors(errors);\n }\n\n public setLoader(loaders$: Subject<boolean>[]) {\n loaders$.forEach($loader => {\n this.subscriptions.push($loader.subscribe(isLoading => {\n isLoading ? this.disable() : this.enable();\n this.isLoading$.next(isLoading);\n }));\n });\n }\n\n public lock(lockSubfields: boolean = true) {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.locked = true;\n if(item.subformArray && lockSubfields) {\n item.subformArray.forEach( subitem => {\n subitem.locked = true;\n });\n }\n });\n }\n\n public unlock() {\n this._formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n item.locked = false;\n if(item.subformArray) {\n item.subformArray.forEach( subitem => {\n subitem.locked = false;\n });\n }\n });\n }\n\n iterateNestedForm(form: FormGroup, formTemplate: OnshoreFormTemplateItem[]): any {\n formTemplate.forEach((item: OnshoreFormTemplateItem) => {\n if(item.type === OnshoreFormTemplateType.subform) {\n if(item.subformArray) {\n form.controls[item.name] = new FormArray([]);\n form.controls[item.name].setParent(form);\n this.subscribeNestedFormArray(form.controls[item.name] as FormArray);\n }\n if(item.subformObject) {\n form.controls[item.name] = new FormGroup({});\n form.controls[item.name] = this.iterateNestedForm(form.controls[item.name] as FormGroup, item.subformObject) as FormGroup;\n this.subscribeNestedFormGroup(form.controls[item.name] as FormGroup);\n }\n } else {\n form.addControl(item.name, new FormControl(item.default !== undefined ? item.default : '', {\n validators: item.validators || [],\n updateOn: 'change'\n }));\n }\n });\n return form;\n }\n\n subscribeNestedFormArray(nestedFormItem: FormArray) {\n this.subscriptions.push(nestedFormItem.valueChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n this.subscriptions.push(nestedFormItem.statusChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n }\n\n subscribeNestedFormGroup(nestedFormItem: FormGroup) {\n this.subscriptions.push(nestedFormItem.valueChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n this.subscriptions.push(nestedFormItem.statusChanges.subscribe(() => {\n this.form?.updateValueAndValidity({ onlySelf: true, emitEvent: false });\n }));\n }\n\n}\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport class OnshoreValidators {\n static slug: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^[A-Za-z0-9\\._-]{2,20}$/.test(control.value) ? null : { slug: true };\n }\n\n static numeric: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^[0-9]*$/.test(control.value) ? null : { numeric: true };\n }\n\n static email: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,10})?$/.test(control.value) ? null : { email: true };\n }\n\n static cleanComment: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n return /[A-Z]{5}\\d{4}[A-Z]{1}/.test(control.value) ? null : { cleanComment: true };\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input, OnChanges, SimpleChanges\n} from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'onshore-form-validation-output',\n imports: [CommonModule],\n templateUrl: './form-validation-output.component.html',\n styleUrls: ['./form-validation-output.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreFormValidationOutputComponent implements OnChanges {\n @Input() validationErrors!: ValidationErrors | null;\n @Input() validationItems!: string[];\n\n validationTranslation: string = '';\n\n ngOnChanges(changes: SimpleChanges) {\n this.validationTranslation = '';\n if(changes['validationErrors'].currentValue && this.validationErrors) {\n Object.keys(this.validationErrors!).forEach(error => {\n const exists = Object.values(this.validationItems ?? []).filter( validationItem => validationItem == error);\n if(exists && exists.length > 0) {\n this.validationTranslation += this.translate.instant('form.validation.' + error) + '<br>';\n } else {\n const errorValues = this.validationErrors![error];\n this.validationTranslation += this.translate.instant('form.validation.' + error, errorValues) + '<br>';\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n constructor(private cdr: ChangeDetectorRef,\n private translate: TranslateService,) {\n\n }\n}\n","<small [style]=\"{color: 'var(--inputtext-invalid-placeholder-color)' }\"\n *ngIf=\"validationTranslation\"\n [innerHTML]=\"validationTranslation\">\n</small>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, ElementRef, EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnInit, Output,\n SimpleChanges, ViewChild\n} from '@angular/core';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateLayout } from '../../enums/form.enums';\nimport { NgControl } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ToggleButtonModule } from 'primeng/togglebutton';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { ButtonModule } from 'primeng/button';\nimport { OnshoreFormValidationOutputComponent } from '../form-validation-output/form-validation-output.component';\n\n@Component({\n selector: 'onshore-form-item-container',\n imports: [CommonModule, OnshoreFormValidationOutputComponent, TranslateModule, ToggleButtonModule, TooltipModule, ButtonModule],\n templateUrl: './form-item-container.component.html',\n styleUrls: ['./form-item-container.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormItemContainer implements OnInit, OnChanges, AfterViewInit {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() ngControl!: NgControl;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n @Output() lockIsChanged = new EventEmitter();\n\n @ViewChild('formContainer') formContainer!: ElementRef;\n\n disabled: boolean = false;\n tempLockValue: any;\n\n OnshoreFormTemplateLayout = OnshoreFormTemplateLayout;\n\n layout: OnshoreFormTemplateLayout | undefined = OnshoreFormTemplateLayout.auto;\n\n enabled(enable: boolean = true) {\n setTimeout(() => {\n if(enable) {\n this.ngControl?.control?.enable();\n } else {\n this.ngControl?.control?.disable();\n }\n this.disabled = !enable;\n this.cdr.markForCheck();\n }, 100);\n }\n\n lockChanged(unlocked: boolean) {\n if(unlocked && this.formTemplate.enabled) {\n this.tempLockValue = this.ngControl?.control?.value;\n this.enabled(true);\n this.disabled = false;\n this.lockIsChanged.emit(unlocked);\n } else {\n this.enabled(false);\n this.disabled = true;\n this.ngControl?.control?.setValue(this.tempLockValue);\n this.tempLockValue = null;\n this.lockIsChanged.emit(unlocked);\n }\n\n this.cdr.markForCheck();\n }\n\n @HostListener('window:resize', ['$event'])\n onWindowResize() {\n const conatinerWidth = this.formContainer?.nativeElement.offsetWidth;\n if(conatinerWidth > 500 && this.formTemplate.layout === OnshoreFormTemplateLayout.auto && this.layout !== OnshoreFormTemplateLayout.horizontal) {\n this.layout = OnshoreFormTemplateLayout.horizontal;\n this.cdr.markForCheck();\n }\n if(conatinerWidth <= 500 && this.formTemplate.layout === OnshoreFormTemplateLayout.auto && this.layout !== OnshoreFormTemplateLayout.vertical) {\n this.layout = OnshoreFormTemplateLayout.vertical;\n this.cdr.markForCheck();\n }\n }\n\n ngOnInit(): void {\n this.ngControl?.control?.valueChanges.subscribe(value => {\n this.cdr.markForCheck();\n });\n this.ngControl?.control?.statusChanges.subscribe(status => {\n this.cdr.markForCheck();\n });\n\n this.enabled(this.formTemplate.enabled);\n this.disabled = !this.formTemplate.enabled;\n\n if(this.formTemplate.locked) {\n this.enabled(false);\n this.disabled = true;\n }\n\n this.layout = this.formTemplate.layout;\n\n setTimeout(() => {\n this.cdr.markForCheck();\n }, 100);\n }\n\n ngAfterViewInit() {\n this.onWindowResize();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const previousValue = changes['formTemplate']?.previousValue;\n const currentValue = changes['formTemplate']?.currentValue;\n\n if(currentValue) {\n\n if(previousValue?.enabled !== currentValue?.enabled) {\n this.enabled(currentValue?.enabled);\n this.disabled = !currentValue?.enabled;\n }\n\n if(previousValue?.locked !== currentValue?.locked) {\n if(currentValue.locked) {\n this.enabled(false);\n this.disabled = true;\n } else {\n this.enabled(currentValue.enabled);\n this.disabled = currentValue.enabled;\n }\n }\n\n if(previousValue?.layout !== currentValue?.layout) {\n this.layout = this.formTemplate.layout;\n this.onWindowResize();\n }\n\n if(previousValue?.labelStyle !== currentValue?.labelStyle) {\n this.onWindowResize();\n }\n\n this.cdr.markForCheck();\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n\n }\n}\n","<div [class.mb-4]=\"!formTemplate.noGap\" #formContainer>\n <div class=\"flex w-full\"\n [class.flex-column]=\"layout == OnshoreFormTemplateLayout.vertical\"\n [class.flex-row]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.justify-content-between]=\"layout == OnshoreFormTemplateLayout.horizontal\">\n\n <div #formLabel\n [hidden]=\"!formTemplate.label || formTemplate.label == ''\"\n class=\"flex justify-content-between\"\n [style]=\"formTemplate.labelStyle ?? 'min-width: 200px; max-height: 36px'\">\n\n <span *ngIf=\"formTemplate.label && formTemplate.label != ''\" [class.mr-2]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.align-self-center]=\"layout == OnshoreFormTemplateLayout.horizontal\"\n [class.mb-2]=\"layout == OnshoreFormTemplateLayout.vertical\">\n {{formTemplate.label}}\n <small *ngIf=\"formTemplate.required\"\n [style]=\"{color: 'var(--inputtext-invalid-placeholder-color)' }\">*</small>\n </span>\n\n <div *ngIf=\"formTemplate.tooltip && layout == OnshoreFormTemplateLayout.vertical\" [pTooltip]=\"formTemplate.tooltip\" [escape]=\"false\" [tooltipPosition]=\"'left'\" appendTo=\"body\"><i class=\"fa fa-circle-question text-color\"></i></div>\n\n </div>\n\n <div class=\"flex w-full\">\n <p-toggleButton\n *ngIf=\"formTemplate.locked\"\n (onChange)=\"lockChanged($event.checked)\"\n onIcon=\"fa fa-lock-open\"\n offIcon=\"fa fa-lock\"\n class=\"mr-2\"\n [disabled]=\"!formTemplate.enabled\">\n </p-toggleButton>\n\n <div class=\"w-full overflow-hidden align-self-center\">\n <ng-content></ng-content>\n </div>\n\n <button *ngIf=\"formTemplate.actionButton\"\n class=\"ml-2 onshore-button-light\"\n [style]=\"{'height': '37px', 'min-width': '38px'}\"\n pButton\n [disabled]=\"actionButtonDisabled\"\n [icon]=\"formTemplate.actionButtonIcon\"\n (click)=\"actionButtonClick.emit()\">\n </button>\n </div>\n\n <div *ngIf=\"formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal\" class=\"ml-2 align-self-center\" [pTooltip]=\"formTemplate.tooltip\" [tooltipPosition]=\"'left'\" [escape]=\"false\"><i class=\"fa fa-circle-question primary-color\"></i></div>\n </div>\n\n <div *ngIf=\"ngControl.control.touched || ngControl.control.dirty\" [style]=\"{'margin-left': layout == OnshoreFormTemplateLayout.horizontal ? (formLabel?.clientWidth + (formTemplate.locked ? 60 : 0)) + 'px' : (formTemplate.locked ? 60 : 0) + 'px', 'margin-right': formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal ? '16px' : '0px'}\">\n <onshore-form-validation-output\n [validationItems]=\"formTemplate.validationItems\"\n [validationErrors]=\"ngControl.control.errors\">\n </onshore-form-validation-output>\n </div>\n\n <div *ngIf=\"formTemplate.description\" class=\"mt-2\" [style]=\"{'margin-left': layout == OnshoreFormTemplateLayout.horizontal ? (formLabel?.clientWidth + (formTemplate.locked ? 60 : 0)) + 'px' : (formTemplate.locked ? 60 : 0) + 'px', 'margin-right': formTemplate.tooltip && layout == OnshoreFormTemplateLayout.horizontal ? '16px' : '0px'}\">\n <small class=\"text-color\"><i class=\"fa fa-info-circle primary-color\"></i> {{formTemplate.description}}</small>\n </div>\n\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit,\n Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormAutocompleteItem, OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { AutoCompleteModule, AutoCompleteSelectEvent } from 'primeng/autocomplete';\nimport { updatePreset } from '@primeng/themes';\nimport { FluidModule } from 'primeng/fluid';\n\n@Component({\n selector: 'onshore-form-autocomplete-item',\n imports: [CommonModule, OnshoreFormItemContainer, AutoCompleteModule, FormsModule, ReactiveFormsModule, FluidModule],\n templateUrl: './form-autocomplete-item.component.html',\n styleUrls: ['./form-autocomplete-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormAutocompleteItemComponent implements ControlValueAccessor, OnDestroy, OnInit, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() public multiple: boolean = false;\n @Input() public searchedData: OnshoreFormAutocompleteItem[] = [];\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() onSearch: EventEmitter<string> = new EventEmitter();\n @Output() onSelect: EventEmitter<OnshoreFormAutocompleteItem> = new EventEmitter();\n @Output() onClear: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n selected(event: AutoCompleteSelectEvent) {\n const selectedItem: OnshoreFormAutocompleteItem = event.value;\n this.onSelect.emit(selectedItem.data);\n this.cdr.markForCheck();\n }\n\n searchClear() {\n this.searchedData = [];\n this.ngControl.reset();\n this.onClear.emit();\n }\n\n searchPrepare(term: any) {\n if(term.query != '') {\n this.search(term.query);\n }else{\n this.searchedData = [];\n this.ngControl.reset();\n this.onClear.emit();\n }\n }\n\n async search(searchTerm: string) {\n this.onSearch.emit(searchTerm);\n this.cdr.markForCheck();\n }\n\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {}\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeLayoutPreset() {\n console.log(\"changeLayoutPreset\");\n updatePreset({\n components: {\n autocomplete: {\n root: {\n focusRing: {\n width: '100%',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n }\n }\n }\n },\n })\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n constructor(private cdr: ChangeDetectorRef,\n @Self() @Optional() public ngControl: NgControl) {\n\n this.ngControl.valueAccessor = this;\n //this.changeLayoutPreset();\n }\n\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <p-fluid>\n <p-autoComplete [placeholder]=\"formTemplate.placeholder\"\n appendTo=\"body\"\n [formControl]=\"formControl\"\n (onSelect)=\"selected($event)\"\n (onUnselect)=\"selected($event)\"\n (onClear)=\"searchClear()\"\n [suggestions]=\"searchedData\"\n (completeMethod)=\"searchPrepare($event)\"\n [disabled]=\"disabled\"\n [minLength]=\"2\"\n [multiple]=\"multiple\"\n [delay]=\"1000\"\n [unique]=\"true\"\n optionLabel=\"firstLineLabel\"\n dataKey=\"data\"\n class=\"w-full\">\n <ng-template let-item pTemplate=\"item\">\n <div *ngIf=\"item.firstLineLabel\">\n <span class=\"mr-1\">\n <b>{{item.firstLineLabel}}</b><br>\n </span>\n </div>\n <div *ngIf=\"item.secondLineLabel\"><span>{{item.secondLineLabel}} </span></div>\n <div *ngIf=\"item.thirdLineLabel\"><span>{{item.thirdLineLabel}} </span></div>\n </ng-template>\n </p-autoComplete>\n </p-fluid>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { CheckboxModule } from 'primeng/checkbox';\n\n@Component({\n selector: 'onshore-form-checkbox-item',\n imports: [CommonModule, OnshoreFormItemContainer, CheckboxModule, FormsModule, ReactiveFormsModule], templateUrl: './form-checkbox-item.component.html',\n styleUrls: ['./form-checkbox-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormCheckboxItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeCheck(value: any) {\n this.ngControl.control?.setValue(value.checked);\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value !== true && this.ngControl.control?.value !== false && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <div class=\"p-field-checkbox flex\">\n <p-checkbox\n class=\"align-self-start mt-1\"\n [name]=\"formTemplate.name\"\n [formControl]=\"formControl\"\n [binary]=\"true\"\n [disabled]=\"disabled\"\n [inputId]=\"formTemplate.name\"\n [value]=\"ngControl.control.value\"\n (onChange)=\"changeCheck($event)\">\n </p-checkbox>\n\n <label class=\"mb-0 ml-2 text-color\"\n [for]=\"formTemplate.name\">\n {{formTemplate.hint}}\n </label>\n </div>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ColorPickerModule } from 'primeng/colorpicker';\nimport { updatePreset } from '@primeng/themes';\n@Component({\n selector: 'onshore-form-colorpicker-item',\n imports: [CommonModule, OnshoreFormItemContainer, InputTextModule, ColorPickerModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-colorpicker-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormColorpickerItemComponent implements OnInit, OnChanges, ControlValueAccessor, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n colorPickerValue = '';\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n changeColor() {\n this.ngControl.control?.setValue(this.colorPickerValue);\n this.ngControl?.control?.markAsDirty();\n this.cdr.markForCheck();\n }\n\n changeInput(input: any) {\n this.colorPickerValue = input.target?.value;\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n\n changeLayoutPreset() {\n console.log(\"changeLayoutPreset\");\n updatePreset({\n components: {\n colorpicker: {\n preview: {\n height: '37px',\n width: '37px'\n }\n }\n },\n })\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.colorPickerValue = this.formTemplate.default;\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.colorPickerValue = this.ngControl.control?.value;\n this.cdr.markForCheck();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n this.changeLayoutPreset();\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <div class=\"flex w-full\">\n\n <input class=\"w-full mr-2\"\n type=\"text\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [formControl]=\"formControl\"\n [disabled]=\"disabled\"\n pInputText\n [value]=\"ngControl.control.value\"\n (input)=\"changeInput($event)\"/>\n\n <p-colorPicker [(ngModel)]=\"colorPickerValue\"\n format=\"hex\" [inline]=\"false\"\n appendTo=\"body\"\n [disabled]=\"disabled\"\n [baseZIndex]=\"99999\"\n (onChange)=\"changeColor()\">\n </p-colorPicker>\n </div>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SelectModule } from 'primeng/select';\n\n@Component({\n selector: 'onshore-form-dropdown-item',\n imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, SelectModule, MultiSelectModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-dropdown-item.component.html',\n styleUrls: ['./form-dropdown-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormDropdownItemComponent implements OnInit, OnChanges, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() multiple: boolean | undefined = false;\n @Input() showClear: boolean | undefined = false;\n @Input() group: boolean | undefined = false;\n @Input() selectionLimit?: number = 0\n @Input() minLength?: number = 0;\n @Input() optionLabel?: string = '';\n @Input() optionGroupLabel?: string = '';\n @Input() dataKey?: string = '';\n @Input() actionButtonDisabled: boolean = false;\n @Input() options: any[] = [];\n\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean | undefined = false;\n\n // ControlValueAccessor interface\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n clearSelection() {\n this.ngControl.control?.reset();\n this.ngControl.control?.setValue(this.multiple ? [] : '');\n this.cdr.markForCheck();\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnInit(): void {\n if((!this.ngControl.control?.value || this.ngControl.control?.value == '' || this.ngControl.control?.value == undefined) && !this.multiple) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const currentOptions = changes['options']?.currentValue ?? changes['formTemplate']?.currentValue?.options;\n //const previousOptions = changes['options']?.previousValue ?? changes['formTemplate']?.previousValue?.options;\n\n if(!this.options && currentOptions) {\n this.options = currentOptions;\n }\n\n this.cdr.markForCheck();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n\n <p-select *ngIf=\"!multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n [showClear]=\"showClear && formTemplate?.placeholder\"\n (onClear)=\"clearSelection()\"\n optionDisabled=\"disabled\"\n appendTo=\"body\">\n </p-select>\n\n <p-multiSelect *ngIf=\"multiple\"\n class=\"w-full\"\n [options]=\"options\"\n [formControl]=\"formControl\"\n [name]=\"formTemplate?.name\"\n [placeholder]=\"formTemplate?.placeholder\"\n [disabled]=\"disabled\"\n [showClear]=\"showClear\"\n [selectionLimit]=\"selectionLimit\"\n [minlength]=\"minLength\"\n [optionLabel]=\"optionLabel\"\n [dataKey]=\"dataKey\"\n [optionGroupLabel]=\"optionGroupLabel\"\n [group]=\"group\"\n (onClear)=\"clearSelection()\"\n [selectedItemsLabel]=\"'form.dropdownControl.selectedItems' | translate\"\n optionDisabled=\"disabled\"\n appendTo=\"body\"></p-multiSelect>\n\n</onshore-form-item-container>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'onshore-image-placeholder',\n imports: [CommonModule],\n templateUrl: './image-placeholder.component.html',\n styleUrls: ['./image-placeholder.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreImagePlaceholderComponent {\n\n @Input() public placeholderIcon: string = '';\n @Input() public placeholderImage: string = '';\n @Input() public image: string = '';\n @Input() public imageStyle: string = '';\n @Input() public placeholderStyle: string = '';\n @Input() public showLoader: boolean = true;\n\n imageLoaded = false;\n\n loadReady() {\n this.imageLoaded = true;\n this.showLoader = false;\n }\n\n abort() {\n this.imageLoaded = false;\n this.showLoader = false;\n }\n\n constructor() {}\n\n}\n","<div [hidden]=\"!imageLoaded || !image\">\n <img [style]=\"imageStyle\" [src]=\"image\" (load)=\"loadReady()\" (abort)=\"abort()\" />\n</div>\n\n<div *ngIf=\"!imageLoaded || !image\" class=\"flex justify-content-center align-items-center\" [style]=\"placeholderStyle\" [class.bg-gray-200]=\"placeholderIcon\" [class.p-2]=\"placeholderIcon\">\n <i *ngIf=\"placeholderIcon\" [class]=\"'text-muted fa ' + placeholderIcon\" [class.opacity-20]=\"showLoader && image\"></i>\n <img *ngIf=\"placeholderImage\" [src]=\"placeholderImage\" [class.opacity-20]=\"showLoader && image\" class=\"h-full\" />\n <i *ngIf=\"showLoader && image\" class=\"fas fa-circle-notch fa-spin fa-2x absolute\"></i>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport { ImageCroppedEvent, ImageCropperComponent } from 'ngx-image-cropper';\nimport { OnshoreImageError } from '../../enums/form.enums';\nimport { OnshoreFormImageSettings } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n selector: 'onshore-image-chooser',\n imports: [CommonModule, TranslateModule, ButtonModule, InputTextModule, ImageCropperComponent, FormsModule, ReactiveFormsModule],\n templateUrl: './image-chooser.component.html',\n styleUrls: ['./image-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OnshoreImageChooserComponent {\n\n drag = false;\n image = '';\n finalImage = '';\n imageErrorType = OnshoreImageError;\n imageError: OnshoreImageError = OnshoreImageError.none;\n\n @Input() imageSettings: OnshoreFormImageSettings | undefined = undefined;\n\n @Output() choosen: EventEmitter<string> = new EventEmitter();\n @Output() canceled: EventEmitter<boolean> = new EventEmitter();\n\n clear() {\n this.image = '';\n this.finalImage = '';\n this.imageError = OnshoreImageError.none;\n }\n\n public fileChange(event: Event): void {\n this.imageError = OnshoreImageError.none;\n const target = event.target as HTMLInputElement;\n const file: File | undefined | null = target?.files ? target?.files[0] : null;\n const maxFileSize = this.imageSettings?.maxFileSize || 0;\n const imageWidth = this.imageSettings?.imageWidth || 0;\n const imageHeight = this.imageSettings?.imageHeight || 0;\n\n if (file?.type != 'image/png' && file?.type != 'image/jpeg' && file?.type != 'image/webp') {\n this.imageError = OnshoreImageError.fileType;\n return;\n }\n\n if (file?.size > maxFileSize) {\n this.imageError = OnshoreImageError.size;\n return;\n }\n\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n\n const img = new Image();\n img.src = window.URL.createObjectURL(file);\n img.onload = () => {\n\n const originalWidth = img.width;\n const originalHeight = img.height;\n\n if (originalWidth >= imageWidth && originalHeight >= imageHeight) {\n this.image = reader.result?.toString() || '';\n } else {\n this.imageError = OnshoreImageError.ratio;\n }\n this.cdr.markForCheck();\n\n }\n\n };\n }\n\n\n\n }\n\n public imageCropped(event: ImageCroppedEvent): void {\n //const croppedImage: SafeUrl = this.sanitizer.bypassSecurityTrustUrl(event.objectUrl || '') || '';\n if(event.blob) {\n this.blobToBase64(event.blob).then(result => {\n //this.finalImage = String(result).split(',')[1] || '';\n this.finalImage = String(result) || '';\n })\n }\n }\n\n public imageCroppedReady(): void {\n this.choosen.emit(this.finalImage);\n this.clear();\n }\n\n blobToBase64(blob: Blob): Promise<string | ArrayBuffer | null> {\n return new Promise((resolve, _) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n}\n","<div class=\"flex flex-column justify-content-center align-items-center w-full\">\n\n <div *ngIf=\"!image\" class=\"flex justify-content-center flex-column align-items-center w-full\">\n <div\n class=\"onshore-image-upload flex flex-column justify-content-between align-items-center rounded-lg px-4 pb-4 relative m-3\"\n [class.onshore-border-gray-3]=\"drag\"\n [class.onshore-border-danger]=\"imageError != imageErrorType.none\">\n <i class=\"fa fa-image fa-5x text-color\"></i>\n <small class=\"text-color mb-4\">{{'form.imageControl.dropImageLabel' | translate}}</small>\n\n <p-button [severity]=\"'primary'\"\n [label]=\"'form.imageControl.imageChooserFileButton' | translate\">\n </p-button>\n\n <input\n (change)=\"fileChange($event)\"\n *ngIf=\"!image\"\n accept=\"image/png, image/jpeg, image/webp\"\n class=\"absolute w-full h-full bottom-0 cursor-pointer\"\n style=\"opacity: 0\"\n type=\"file\"\n (dragenter)=\"drag = true\"\n (dragleave)=\"drag = false\"\n (dragend)=\"drag = false\"\n />\n </div>\n </div>\n\n <div class=\"flex flex-column relative align-items-center w-full\" *ngIf=\"image\">\n <image-cropper\n class=\"m-3\"\n [style]=\"'align-items: center; height: ' + (imageSettings.cropperPreviewHeight * this.imageSettings.aspectRatio) + 'px; width: ' + (imageSettings.cropperPreviewWidth * this.imageSettings.aspectRatio) + 'px'\"\n [class.onshore-cropper-circle]=\"this.imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"this.imageSettings.imageQuality\"\n [alignImage]=\"this.imageSettings.alignImage\"\n [backgroundColor]=\"this.imageSettings.backgroundColor\"\n [containWithinAspectRatio]=\"this.imageSettings.containWithinAspectRatio\"\n [format]=\"this.imageSettings.format\"\n [aspectRatio]=\"this.imageSettings.aspectRatio\"\n [resizeToHeight]=\"this.imageSettings.imageWidth * this.imageSettings.aspectRatio\"\n [resizeToWidth]=\"this.imageSettings.imageHeight * this.imageSettings.aspectRatio\">\n </image-cropper>\n </div>\n\n <div *ngIf=\"imageError\"class=\"pb-2 text-wrap text-center\"\n [style]=\"{color: 'var(--inputtext-invalid-placeholder-color)' }\">\n <small *ngIf=\"imageError == imageErrorType.ratio\">{{'form.imageControl.imageErrorRatio' | translate: {resizeToWidth: this.imageSettings.imageWidth, resizeToHeight: this.imageSettings.imageHeight} }}</small>\n <small *ngIf=\"imageError == imageErrorType.fileType\">{{'form.imageControl.imageErrorFileType' | translate}}</small>\n <small *ngIf=\"imageError == imageErrorType.size\">{{'form.imageControl.imageErrorSize' | translate}}</small>\n </div>\n</div>\n\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center mt-2 gap-2\">\n <p-button [severity]=\"'secondary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n icon=\"fa fa-times\"\n [label]=\"'form.imageControl.imageChooserCancelButton' | translate\"\n (click)=\"clear(); canceled.emit(true)\">\n </p-button>\n\n <p-button [severity]=\"'primary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n [label]=\"'form.imageControl.imageChooserSelectButton' | translate\"\n icon=\"fa fa-check\"\n [disabled]=\"!image\"\n (click)=\"imageCroppedReady()\">\n </p-button>\n </div>\n</p-footer>\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n Output\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { WebcamImage, WebcamModule } from 'ngx-webcam';\nimport { ImageCroppedEvent, ImageCropperComponent } from 'ngx-image-cropper';\nimport { OnshoreFormImageSettings } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\n\n@Component({\n selector: 'onshore-webcam',\n imports: [CommonModule, TranslateModule, ButtonModule, ImageCropperComponent, WebcamModule],\n templateUrl: './webcam.component.html',\n styleUrls: ['./webcam.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WebcamComponent {\n\n @Input() imageSettings: OnshoreFormImageSettings | undefined = undefined;\n\n @Output() shot: EventEmitter<string> = new EventEmitter();\n @Output() canceled: EventEmitter<boolean> = new EventEmitter();\n\n image = '';\n finalImage = '';\n\n public trigger: Subject<void> = new Subject<void>();\n\n public camImageShot(webcamImage: WebcamImage): void {\n this.image = webcamImage.imageAsDataUrl;\n this.cdr.markForCheck();\n }\n\n public imageCropped(event: ImageCroppedEvent): void {\n if(event.blob) {\n this.blobToBase64(event.blob).then(result => {\n //this.finalImage = String(result).split(',')[1] || '';\n this.finalImage = String(result) || '';\n })\n }\n }\n\n public imageCroppedReady(): void {\n this.shot.emit(this.finalImage);\n }\n\n\n public get triggerObservable(): Observable<void> {\n return this.trigger.asObservable();\n }\n\n public triggerSnapshot(): void {\n this.trigger.next();\n }\n\n blobToBase64(blob: Blob): Promise<string | ArrayBuffer | null> {\n return new Promise((resolve, _) => {\n const reader = new FileReader();\n reader.onloadend = () => resolve(reader.result);\n reader.readAsDataURL(blob);\n });\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n}\n","<div class=\"flex w-full justify-content-center align-items-center overflow-hidden p-2\">\n <webcam *ngIf=\"!image || image == ''\"\n [mirrorImage]=\"'never'\"\n [height]=\"imageSettings.webcamWidth * this.imageSettings.aspectRatio\"\n [width]=\"imageSettings.webcamHeight * this.imageSettings.aspectRatio\"\n [allowCameraSwitch]=\"true\"\n [trigger]=\"triggerObservable\"\n [imageQuality]=\"imageSettings.imageQuality / 100\"\n (imageCapture)=\"camImageShot($event)\">\n </webcam>\n\n <image-cropper *ngIf=\"image && image != ''\"\n class=\"m-3\" [style]=\"'height: ' + (imageSettings.cropperPreviewWidth * this.imageSettings.aspectRatio) + 'px; width: ' + (imageSettings.cropperPreviewHeight * this.imageSettings.aspectRatio) + 'px'\"\n [class.onshore-cropper-circle]=\"imageSettings.circleCropper\"\n (imageCropped)=\"imageCropped($event)\"\n [imageBase64]=\"image\"\n [imageQuality]=\"imageSettings.imageQuality\"\n [alignImage]=\"imageSettings.alignImage\"\n [backgroundColor]=\"imageSettings?.backgroundColor\"\n [containWithinAspectRatio]=\"imageSettings?.containWithinAspectRatio\"\n [format]=\"imageSettings.format\"\n [aspectRatio]=\"imageSettings.aspectRatio\"\n [resizeToHeight]=\"imageSettings.imageHeight * this.imageSettings.aspectRatio\"\n [resizeToWidth]=\"this.imageSettings.imageWidth * this.imageSettings.aspectRatio\">\n </image-cropper>\n</div>\n\n<p-footer>\n <div class=\"flex justify-content-end align-items-center gap-2 mt-2\">\n\n <p-button [severity]=\"'secondary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n icon=\"fa fa-times\"\n [label]=\"'global.cancel' | translate\"\n (click)=\"canceled.emit(true)\">\n </p-button>\n\n <p-button *ngIf=\"!image || image == ''\"\n [severity]=\"'primary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n [label]=\"'form.imageControl.webcamSmileButton' | translate\"\n icon=\"fa fa-laugh-wink\"\n (click)=\"triggerSnapshot()\">\n </p-button>\n\n <p-button *ngIf=\"image && image != ''\"\n [severity]=\"'primary'\"\n [raised]=\"true\"\n [rounded]=\"true\"\n [label]=\"'global.use' | translate\"\n icon=\"fa fa-check\"\n (click)=\"imageCroppedReady()\">\n </p-button>\n </div>\n</p-footer>\n\n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit,\n Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { OnshoreFormImageSettings, OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateLayout } from '../../enums/form.enums';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { OnshoreImagePlaceholderComponent } from '../image-placeholder/image-placeholder.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { DialogModule } from 'primeng/dialog';\nimport { OnshoreImageChooserComponent } from '../image-chooser/image-chooser.component';\nimport { WebcamComponent } from '../webcam/webcam.component';\nimport { FluidModule } from 'primeng/fluid';\n\n@Component({\n selector: 'onshore-form-image-item',\n imports: [CommonModule, OnshoreFormItemContainer, FluidModule, OnshoreImagePlaceholderComponent, OnshoreImageChooserComponent, WebcamComponent, TranslateModule, ButtonModule, DialogModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-image-item.component.html',\n styleUrls: ['./form-image-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormImageItemComponent implements ControlValueAccessor, OnInit, OnDestroy, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() imageSettings: OnshoreFormImageSettings | undefined = undefined;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() imageDeleted: EventEmitter<string> = new EventEmitter();\n @Output() imageCleared: EventEmitter<any> = new EventEmitter();\n @Output() imageReady: EventEmitter<string> = new EventEmitter();\n @Output() selectFromMedia: EventEmitter<any> = new EventEmitter();\n @Output() isLoading: EventEmitter<boolean> = new EventEmitter();\n\n OnshoreFormTemplateLayout = OnshoreFormTemplateLayout;\n\n defaultImageSettings: OnshoreFormImageSettings = {\n imageWidth: 400,\n imageHeight: 400,\n containWithinAspectRatio: false,\n aspectRatio: 1 / 1,\n imageSelectionEnabled: true,\n webcamSelectionEnabled: true,\n mediaSelectionEnabled: true,\n deleteEnabled: true,\n placeholderImage: '',\n placeholderIcon: 'fa fa-image fa-10x',\n containerWidth: 250,\n containerHeight: 250,\n imageQuality: 100,\n format: 'png',\n alignImage: 'center',\n cropperPreviewWidth: 400,\n cropperPreviewHeight: 400,\n webcamWidth: 400,\n webcamHeight: 400,\n circleCropper: false,\n maxFileSize: 6400000,\n backgroundColor: 'white'\n };\n\n image: string | undefined = '';\n disabled = false;\n webcamDialogVisible: boolean = false;\n imageChooserDialogVisible: boolean = false;\n\n subscriptions: Array<Subscription> = [];\n\n getFileImage(image: any) {\n this.imageChooserDialogVisible = false;\n if(image) {\n this.image = image;\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.image);\n this.ngControl?.control?.markAsDirty();\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }, 500);\n }\n }\n\n getWebcamImage(image: any) {\n this.webcamDialogVisible = false;\n if(image) {\n this.image = image;\n setTimeout(() => {\n this.ngControl?.control?.setValue(this.image);\n this.ngControl?.control?.markAsDirty();\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }, 500);\n }\n }\n\n removeImage() {\n this.image = '';\n setTimeout(() => {\n if(this.image && !this.image.includes('base64')) {\n this.imageDeleted.emit(this.image);\n } else {\n this.imageCleared.emit();\n }\n this.ngControl?.control?.reset();\n this.ngControl?.control?.setValue(null);\n this.ngControl?.control?.markAsDirty();\n\n this.cdr.markForCheck();\n }, 500);\n }\n\n public writeValue(obj: any): void {\n if(obj && !obj.includes('base64')) {\n this.image = obj;\n }\n if(obj == null) {\n this.image = '';\n }\n\n this.imageReady.emit(this.image);\n this.cdr.markForCheck();\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.image = this.ngControl.value;\n this.cdr.markForCheck();\n }\n }\n\n public registerOnTouched(fn: any): void {}\n\n public setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n ngOnInit(): void {\n if(this.ngControl?.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl?.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((subscription: Subscription) => {\n subscription.unsubscribe();\n });\n this.ngControl?.control?.disable();\n this.image = undefined;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const imageSettings: OnshoreFormImageSettings = changes['imageSettings']?.currentValue;\n\n this.imageSettings = {\n ...this.defaultImageSettings,\n ...imageSettings,\n placeholderIcon: imageSettings?.placeholderImage ? '' : (imageSettings?.placeholderIcon ?? this.defaultImageSettings.placeholderIcon)\n };\n\n //this.removeImage();\n this.cdr.markForCheck();\n }\n\n constructor(public cdr: ChangeDetectorRef,\n @Self() @Optional() public ngControl: NgControl,\n public dialogService: DialogService) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\" [ngControl]=\"ngControl\">\n <div class=\"w-full flex align-items-center gap-2\" [class.flex-column]=\"formTemplate.layout === OnshoreFormTemplateLayout.vertical\">\n\n <div class=\"onshore-border-gray-4 border-solid border-1 overflow-hidden\"\n [style]=\"'background-color: white; width: ' + imageSettings.containerWidth + 'px; height: ' + imageSettings.containerHeight + 'px'\">\n <onshore-image-placeholder\n class=\"w-full\"\n [image]=\"image\"\n [imageStyle]=\"'width: 100%; height: 100%'\"\n [placeholderIcon]=\"imageSettings.placeholderIcon\"\n [placeholderImage]=\"imageSettings.placeholderImage\"\n [placeholderStyle]=\"'width: 100%; height: 100%'\">\n </onshore-image-placeholder>\n </div>\n\n <div>\n <p-fluid class=\"flex flex-column\">\n <p-button *ngIf=\"imageSettings.imageSelectionEnabled\"\n [severity]=\"'secondary'\"\n icon=\"fa fa-image\"\n [label]=\"'form.imageControl.uploadImageButton' | translate\"\n class=\"mb-2 w-full\"\n [disabled]=\"disabled\"\n (click)=\"imageChooserDialogVisible = true; cdr.detectChanges()\">\n </p-button>\n\n <p-button *ngIf=\"imageSettings.webcamSelectionEnabled\"\n [severity]=\"'secondary'\"\n icon=\"fa fa-camera\"\n [label]=\"'form.imageControl.webcamImageButton' | translate\"\n class=\"mb-2 w-full\"\n [disabled]=\"disabled\"\n (click)=\"webcamDialogVisible = true\">\n </p-button>\n\n <p-button *ngIf=\"imageSettings.mediaSelectionEnabled\"\n [severity]=\"'secondary'\"\n icon=\"fa fa-photo-video\"\n [label]=\"'form.imageControl.mediaImageButton' | translate\"\n class=\"mb-2 w-full\"\n [disabled]=\"disabled\"\n (click)=\"selectFromMedia.emit()\">\n </p-button>\n\n <p-button *ngIf=\"imageSettings.deleteEnabled\"\n [severity]=\"'secondary'\"\n icon=\"fa fa-eraser\"\n [label]=\"'form.imageControl.removeImageButton' | translate\"\n (click)=\"removeImage()\"\n class=\"w-full\"\n [disabled]=\"!image || disabled\">\n </p-button>\n </p-fluid>\n </div>\n\n </div>\n</onshore-form-item-container>\n\n<p-dialog [header]=\"'form.imageControl.uploadImageTitle' | translate\" [(visible)]=\"imageChooserDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" appendTo=\"body\">\n <onshore-image-chooser\n (choosen)=\"getFileImage($event)\"\n (canceled)=\"imageChooserDialogVisible = false\"\n [imageSettings]=\"imageSettings\">\n </onshore-image-chooser>\n</p-dialog>\n\n<p-dialog [header]=\"'form.imageControl.webacmImageTitle' | translate\" [(visible)]=\"webcamDialogVisible\" [modal]=\"true\" [style]=\"{'max-width': '50vw'}\" appendTo=\"body\">\n <onshore-webcam\n *ngIf=\"webcamDialogVisible\"\n (shot)=\"getWebcamImage($event)\"\n (canceled)=\"webcamDialogVisible = false\"\n [imageSettings]=\"imageSettings\"></onshore-webcam>\n</p-dialog>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TextareaModule } from 'primeng/textarea';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { InputNumberModule } from 'primeng/inputnumber';\nimport { InputGroupModule } from 'primeng/inputgroup';\nimport { InputGroupAddonModule } from 'primeng/inputgroupaddon';\nimport { ButtonModule } from 'primeng/button';\nimport { FluidModule } from 'primeng/fluid';\n\n@Component({\n selector: 'onshore-form-input-item',\n imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, TextareaModule, InputTextModule, InputNumberModule, FormsModule, ReactiveFormsModule, InputGroupModule, InputGroupAddonModule, ButtonModule, FluidModule],\n templateUrl: './form-input-item.component.html',\n styleUrls: ['./form-input-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormInputItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() step?: number = 1;\n @Input() min?: number = 0;\n @Input() max?: number = 999999;\n @Input() minLength?: number = 0;\n @Input() maxLength?: number = 999999;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n passwordVisible: boolean = false;\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n // @ts-ignore\n onNumberInput(event) {\n this.ngControl.control?.setValue(event.value);\n this.ngControl?.control?.markAsDirty();\n this.cdr.markForCheck();\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <p-fluid>\n <p-inputgroup>\n\n <textarea *ngIf=\"formTemplate.type == OnshoreFormTemplateType.textarea\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n [rows]=\"3\"\n [cols]=\"30\"\n pTextarea\n [autoResize]=\"true\"\n [formControl]=\"formControl\"\n [class.p-invalid]=\"ngControl.control?.touched && ngControl.control?.invalid\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"></textarea>\n\n <input *ngIf=\"formTemplate.type == OnshoreFormTemplateType.text || formTemplate.type == OnshoreFormTemplateType.email || formTemplate.type == OnshoreFormTemplateType.phone\"\n [type]=\"formTemplate.type\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n pInputText\n [formControl]=\"formControl\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"/>\n\n <input *ngIf=\"formTemplate.type == OnshoreFormTemplateType.password\"\n [type]=\"passwordVisible ? 'text' : formTemplate.type\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n pInputText\n [formControl]=\"formControl\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [minLength]=\"minLength\"\n [maxLength]=\"maxLength\"/>\n\n <p-inputgroup-addon *ngIf=\"formTemplate.inputAddon\">\n <i [class]=\"formTemplate.inputAddon\"></i>\n </p-inputgroup-addon>\n\n <p-inputgroup-addon *ngIf=\"formTemplate.type == OnshoreFormTemplateType.password\" class=\"cursor-pointer\" (click)=\"passwordVisible = !passwordVisible\">\n <i [class]=\"passwordVisible ? 'fa fa-eye' : 'fa fa-eye-slash'\"></i>\n </p-inputgroup-addon>\n\n </p-inputgroup>\n\n <p-inputNumber *ngIf=\"formTemplate.type == OnshoreFormTemplateType.number\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n [formControl]=\"formControl\"\n [autocomplete]=\"'prevent-template-' + formTemplate.name\"\n [step]=\"step ?? 1\"\n [min]=\"min\"\n [max]=\"max\"\n [showButtons]=\"true\"\n [buttonLayout]=\"formTemplate.inputNumberVertical ? 'vertical' : 'horizontal'\"\n spinnerMode=\"horizontal\"\n (onInput)=\"onNumberInput($event)\">\n <ng-template #incrementbuttonicon>\n <span class=\"fa fa-plus\"></span>\n </ng-template>\n <ng-template #decrementbuttonicon>\n <span class=\"fa fa-minus\"></span>\n </ng-template>\n </p-inputNumber>\n </p-fluid>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputSwitchModule } from 'primeng/inputswitch';\n\n@Component({\n selector: 'onshore-form-switch-item',\n imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, InputSwitchModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-switch-item.component.html',\n styleUrls: ['./form-switch-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormSwitchItemComponent implements OnInit, ControlValueAccessor, OnDestroy, OnChanges {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter();\n @Output() actionButtonClick = new EventEmitter();\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnInit(): void {\n this.ngControl.control?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n skip(1)\n ).subscribe(newValue => {\n this.valueChange.emit(this.ngControl.control?.value);\n });\n\n if(this.ngControl.control?.value == undefined && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <div class=\"h-full align-items-center mt-1\">\n <p-inputSwitch [name]=\"formTemplate.name\"\n [formControl]=\"formControl\"\n [disabled]=\"disabled\"\n [inputId]=\"formTemplate.name\">\n </p-inputSwitch>\n </div>\n\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { CalendarModule } from 'primeng/calendar';\nimport { FluidModule } from 'primeng/fluid';\nimport { DatePicker } from 'primeng/datepicker';\n\n@Component({\n selector: 'onshore-form-datetime-item',\n imports: [CommonModule, OnshoreFormItemContainer, DatePicker, FormsModule, ReactiveFormsModule, FluidModule],\n templateUrl: './form-datetime-item.component.html',\n styleUrls: ['./form-datetime-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormDatetimeItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n disabled: boolean = false;\n\n // ControlValueAccessor interface\n writeValue(obj: any): void {}\n registerOnChange(fn: any): void {}\n registerOnTouched(fn: any): void {}\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n get formControl(): FormControl {\n return this.ngControl.control as FormControl;\n }\n\n ngOnInit(): void {\n if(this.ngControl.control?.value !== true && this.ngControl.control?.value !== false && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.cdr.markForCheck();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\">\n <p-fluid>\n <p-datePicker class=\"w-full\"\n [name]=\"formTemplate.name\"\n [placeholder]=\"formTemplate.placeholder ?? ''\"\n [disabled]=\"disabled\"\n [formControl]=\"formControl\"\n dateFormat=\"dd.mm.yy\"\n dataType=\"string\"\n hourFormat=\"24\"\n [timeOnly]=\"formTemplate.type == OnshoreFormTemplateType.time\"\n [showTime]=\"formTemplate.type == OnshoreFormTemplateType.datetime\"\n [defaultDate]=\"formTemplate.default\"\n appendTo=\"body\">\n </p-datePicker>\n </p-fluid>\n</onshore-form-item-container>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, EventEmitter,\n Input, OnChanges, OnDestroy,\n OnInit, Optional, Output,\n Self, SimpleChanges\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { OnshoreFormTemplateItem } from '../../models/form.models';\nimport { OnshoreFormTemplateType } from '../../enums/form.enums';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { OnshoreFormItemContainer } from '../form-item-container/form-item-container.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'onshore-form-sort-item',\n imports: [CommonModule, OnshoreFormItemContainer, TranslateModule, FormsModule, ReactiveFormsModule],\n templateUrl: './form-sort-item.component.html',\n styleUrls: ['./form-sort-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class OnshoreFormSortItemComponent implements OnInit, ControlValueAccessor, OnChanges, OnDestroy {\n @Input() formTemplate!: OnshoreFormTemplateItem;\n @Input() actionButtonDisabled: boolean = false;\n\n @Output() actionButtonClick = new EventEmitter();\n\n sortItems?: any[] = [];\n tempLockValue?: any[] | undefined = [];\n\n OnshoreFormTemplateType = OnshoreFormTemplateType;\n\n disabled: boolean = false;\n\n sortItemsChanged(event: any[]) {\n this.sortItems = event;\n this.ngControl?.control?.setValue(event);\n this.ngControl?.control?.markAsDirty();\n this.cdr.markForCheck();\n }\n\n lockChanged(unlocked: boolean) {\n if(unlocked && this.formTemplate.enabled) {\n this.tempLockValue = this.ngControl?.control?.value;\n } else {\n this.ngControl?.control?.setValue(this.tempLockValue);\n this.sortItems = this.tempLockValue;\n this.tempLockValue = undefined;\n }\n this.cdr.markForCheck();\n }\n\n // ControlValueAccessor interface\n public writeValue(obj: any): void {\n if(obj) {\n this.cdr.markForCheck();\n }\n }\n\n public registerOnChange(fn: any): void {\n if(this.ngControl.value) {\n this.cdr.markForCheck();\n }\n }\n\n registerOnTouched(fn: any): void {}\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnInit(): void {\n this.ngControl.control?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n skip(1)\n ).subscribe(newValue => {\n this.ngControl?.control?.setValue(newValue);\n });\n\n if(this.ngControl.control?.value == '' && this.formTemplate.default != undefined) {\n this.ngControl.control?.setValue(this.formTemplate.default);\n this.sortItems = this.formTemplate.default;\n } else {\n this.sortItems = this.ngControl.control?.value;\n }\n this.cdr.markForCheck();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.cdr.markForCheck();\n }\n\n ngOnDestroy() {\n this.ngControl.control?.disable();\n }\n\n constructor(@Self() @Optional() public ngControl: NgControl,\n private cdr: ChangeDetectorRef) {\n this.ngControl.valueAccessor = this;\n }\n}\n","<onshore-form-item-container [formTemplate]=\"formTemplate\"\n [ngControl]=\"ngControl\"\n (actionButtonClick)=\"actionButtonClick.emit()\"\n [actionButtonDisabled]=\"actionButtonDisabled\"\n (lockIsChanged)=\"lockChanged($event)\">\n\n <!--<div *ngIf=\"formTemplate.type == OnshoreFormTemplateType.sort\"\n class=\"w-full\" [dragula]=\"ngControl.enabled\"\n [dragulaModel]=\"sortItems\"\n (dragulaModelChange)=\"sortItemsChanged($event)\">\n <div [class.cursor-move]=\"ngControl.enabled\"\n style=\"border-radius: 3px\"\n class=\"onshore-sort-item flex justify-content-between align-items-center onshore-border-gray-4 border-solid border-1 p-2 mb-2 onshore-background-color-white\" *ngFor=\"let item of sortItems\">\n <span [class.onshore-color-blocked]=\"!ngControl.enabled\">{{ item.label }}</span>\n <i [class.onshore-color-blocked]=\"!ngControl.enabled\" class=\"fa fa-arrows-v\"></i>\n </div>\n </div>-->\n\n</onshore-form-item-container>\n\n","/*\n * Public API Surface of onshore-forms\n */\n\nexport * from './lib/onshore-forms.service';\nexport * from './lib/enums/form.enums';\nexport * from './lib/models/form.models';\nexport * from './lib/validators/form.validators';\nexport * from './lib/components/form-autocomplete-item/form-autocomplete-item.component';\nexport * from './lib/components/form-checkbox-item/form-checkbox-item.component';\nexport * from './lib/components/form-colorpicker-item/form-colorpicker-item.component';\nexport * from './lib/components/form-dropdown-item/form-dropdown-item.component';\nexport * from './lib/components/form-image-item/form-image-item.component';\nexport * from './lib/components/form-input-item/form-input-item.component';\nexport * from './lib/components/form-switch-item/form-switch-item.component';\nexport * from './lib/components/form-datetime-item/form-datetime-item.component';\nexport * from './lib/components/form-sort-item/form-sort-item.component';\nexport * from './lib/components/form-validation-output/form-validation-output.component';\nexport * from './lib/components/form-item-container/form-item-container.component';\nexport * from './lib/components/image-placeholder/image-placeholder.component';\nexport * from './lib/components/image-chooser/image-chooser.component';\nexport * from './lib/components/webcam/webcam.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i4","i3","i5","i7","i8"],"mappings":"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"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.6",
2
+ "version": "1.0.7",
3
3
  "name": "onshore-forms",
4
4
  "description": "OnShore Angular Form Builder",
5
5
  "author": {