@seniorsistemas/angular-components 18.1.0-feature-sds-276-69157a05 → 18.1.0-feature-sds-276-e3f599ca

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dynamic-form/dynamic-form/components/grid/row/row.component.d.ts +1 -1
  2. package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +5 -5
  3. package/dynamic-form/dynamic-form/components/structure/fieldset/fieldset.component.d.ts +1 -1
  4. package/dynamic-form/dynamic-form/components/structure/section/section.component.d.ts +1 -1
  5. package/dynamic-form/dynamic-form/dynamic-form.component.d.ts +12 -1
  6. package/dynamic-form/dynamic-form/dynamic-form.d.ts +3 -7
  7. package/dynamic-form/dynamic-form/dynamic-form.directive.d.ts +1 -1
  8. package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +6 -74
  9. package/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.d.ts +4 -4
  10. package/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.d.ts +2 -2
  11. package/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.d.ts +2 -2
  12. package/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.d.ts +2 -2
  13. package/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.d.ts +2 -2
  14. package/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.d.ts +1 -1
  15. package/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.d.ts +3 -2
  16. package/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.d.ts +1 -1
  17. package/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.d.ts +1 -1
  18. package/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.d.ts +1 -1
  19. package/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.d.ts +1 -1
  20. package/dynamic-form/dynamic-form/form-field/fields/checkbox/checkbox-field.component.d.ts +1 -1
  21. package/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.d.ts +1 -1
  22. package/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.d.ts +1 -1
  23. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -1
  24. package/dynamic-form/dynamic-form/form-field/fields/file-upload/file-upload-field.component.d.ts +1 -1
  25. package/dynamic-form/dynamic-form/form-field/fields/lookup/lookup-field.component.d.ts +1 -1
  26. package/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.d.ts +1 -1
  27. package/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.d.ts +1 -1
  28. package/dynamic-form/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.d.ts +1 -1
  29. package/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.d.ts +1 -1
  30. package/dynamic-form/dynamic-form/form-field/fields/select/select-field.component.d.ts +1 -1
  31. package/dynamic-form/dynamic-form/form-field/fields/slider/slider-field.component.d.ts +1 -1
  32. package/dynamic-form/dynamic-form/form-field/fields/star-rating/star-rating-field.component.d.ts +1 -1
  33. package/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.d.ts +1 -1
  34. package/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.d.ts +1 -1
  35. package/dynamic-form/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.d.ts +1 -1
  36. package/dynamic-form/public-api.d.ts +3 -3
  37. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +3 -3
  38. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +5 -5
  39. package/esm2022/custom-fields/lib/custom-fields/models/custom-field-type.mjs +3 -3
  40. package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +11 -9
  41. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +66 -39
  42. package/esm2022/dynamic-form/dynamic-form/components/structure/fieldset/fieldset.component.mjs +5 -4
  43. package/esm2022/dynamic-form/dynamic-form/components/structure/section/section.component.mjs +4 -4
  44. package/esm2022/dynamic-form/dynamic-form/dynamic-form.component.mjs +15 -4
  45. package/esm2022/dynamic-form/dynamic-form/dynamic-form.directive.mjs +6 -5
  46. package/esm2022/dynamic-form/dynamic-form/dynamic-form.mjs +4 -8
  47. package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +6 -268
  48. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/autocomplete-field.mjs +1 -1
  49. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/bignumber-field.mjs +1 -1
  50. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/currency-field.mjs +1 -1
  51. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/field.mjs +1 -1
  52. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/lookup-field.mjs +1 -1
  53. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/number-field.mjs +1 -1
  54. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/select-field.mjs +1 -1
  55. package/esm2022/dynamic-form/dynamic-form/form-field/configurations/fields/text-field.mjs +1 -1
  56. package/esm2022/dynamic-form/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.mjs +7 -6
  57. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +32 -17
  58. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +9 -8
  59. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +10 -7
  60. package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +4 -4
  61. package/esm2022/dynamic-form/dynamic-form/form-field/fields/calendar/calendar-field.component.mjs +10 -8
  62. package/esm2022/dynamic-form/dynamic-form/form-field/fields/checkbox/checkbox-field.component.mjs +5 -3
  63. package/esm2022/dynamic-form/dynamic-form/form-field/fields/chips/chips-field.component.mjs +11 -9
  64. package/esm2022/dynamic-form/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.mjs +6 -4
  65. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +11 -10
  66. package/esm2022/dynamic-form/dynamic-form/form-field/fields/file-upload/file-upload-field.component.mjs +6 -6
  67. package/esm2022/dynamic-form/dynamic-form/form-field/fields/lookup/lookup-field.component.mjs +7 -6
  68. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +27 -12
  69. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +22 -10
  70. package/esm2022/dynamic-form/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.mjs +8 -6
  71. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +17 -9
  72. package/esm2022/dynamic-form/dynamic-form/form-field/fields/select/select-field.component.mjs +7 -6
  73. package/esm2022/dynamic-form/dynamic-form/form-field/fields/slider/slider-field.component.mjs +8 -6
  74. package/esm2022/dynamic-form/dynamic-form/form-field/fields/star-rating/star-rating-field.component.mjs +6 -5
  75. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +25 -11
  76. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area/text-area-field.component.mjs +8 -6
  77. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.mjs +8 -6
  78. package/esm2022/dynamic-form/public-api.mjs +14 -13
  79. package/esm2022/dynamic-form/src/optional-fields/editor/public-api.mjs +1 -18
  80. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.mjs +3 -5
  81. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +2 -2
  82. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  83. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +6 -6
  84. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  85. package/fesm2022/seniorsistemas-angular-components-dynamic-form-src-optional-fields-editor.mjs +0 -18
  86. package/fesm2022/seniorsistemas-angular-components-dynamic-form-src-optional-fields-editor.mjs.map +1 -1
  87. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +1877 -2000
  88. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  89. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +7 -8
  90. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  91. package/package.json +13 -13
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-dynamic-form.mjs","sources":["../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/field-label/field-label.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/field-label/field-label.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/registry.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure/structure.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.directive.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/lookup/lookup.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/lookup/lookup.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/services/form-field-utils.service.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/button-field/button-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/button-field/button-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/chips/chips-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/chips/chips-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/currency/currency-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/currency/currency-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/number/number-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/number/number-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/password/password-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/password/password-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/select/select-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/select/select-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text/text-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text/text-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/section/section.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/section/section.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/fieldset/fieldset.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/fieldset/fieldset.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/star-rating/star-rating-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/star-rating/star-rating-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/slider/slider-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/slider/slider-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/field-size.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/grid/row/row.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/grid/row/row.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.module.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/radio-button-field.ts","../../projects/angular-components/dynamic-form/src/lib/public-api.ts","../../projects/angular-components/dynamic-form/src/lib/seniorsistemas-angular-components-dynamic-form.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { FieldConfig } from '../../form-field/configurations/fields/field';\nimport { NgClass } from '@angular/common';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\n\n@Component({\n selector: 's-field-label',\n templateUrl: './field-label.component.html',\n imports: [NgClass, InfoSignModule],\n standalone: true,\n})\nexport class FieldLabelComponent {\n @Input({ required: true })\n public field!: FieldConfig;\n\n @Input()\n public fieldContainerRef: HTMLElement | null | undefined = null;\n}\n\n","@if (field.label) {\n <span>\n <label\n *sInfoSign=\"\n field.infoSign ?? '';\n displayTime: field.displayTimeInfoSign ?? 0;\n focusedInputRef: fieldContainerRef;\n useFocusedInputRef: field.useInfoSignFocusedInputRef ?? false\n \"\n [for]=\"field.name\"\n class=\"inline-block\"\n [ngClass]=\"{ required: field.required?.() }\"\n >\n {{ field.label }}\n </label>\n </span>\n}\n\n","import { Type } from '@angular/core';\nimport { FieldType } from '../form-field/configurations/fields/field';\nimport { StructureType } from './structure/structure';\n\nexport class FormDynamicRegistry {\n private static fields = new Map<FieldType | StructureType, Type<any>>();\n\n static registerField(component: Type<any>, ...types: (FieldType | StructureType)[]) {\n types.forEach((type) => {\n this.fields.set(type, component);\n });\n }\n\n static resolveField(type: FieldType | StructureType) {\n return this.fields.get(type);\n }\n}\n\n","import { ComponentRef, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\nimport { DynamicType } from './form-field/configurations/fields/field';\n\nimport { BaseStructureComponentConfig } from './components/structure/base-structure-component';\nimport { FormDynamicRegistry } from './configurations/registry';\nimport { DynamicStructure as FieldDynamicStructure } from './configurations/structure/structure';\nimport { BaseFieldComponentConfig } from './form-field/fields/base-field-component';\n\nexport abstract class DynamicForm {\n group: FormGroup;\n errorMessages: any;\n\n abstract createComponent(viewContainerRef: ViewContainerRef): any;\n abstract updateVariables(component: ComponentRef<any>): void;\n abstract getComponent(): any;\n\n constructor({ group, errorMessages }: { group: FormGroup; errorMessages: any }) {\n this.group = group;\n this.errorMessages = errorMessages;\n }\n}\n\nexport class DynamicField extends DynamicForm {\n field: DynamicType;\n\n constructor({ group, field, errorMessages }: { group: FormGroup; field: DynamicType; errorMessages: any }) {\n super({\n group,\n errorMessages,\n });\n this.field = field;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component = viewContainerRef.createComponent(\n this.getComponent(),\n ) as ComponentRef<BaseFieldComponentConfig>;\n component.setInput('field', this.field);\n\n if (!isNullOrUndefined(this.field?.name) && 'formControl' in component.instance) {\n // Must be this way because some teams use name like \"e070emp.codemp\"\n component.setInput('formControl', this.group?.['controls'][this.field.name]);\n }\n\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n if (isNullOrUndefined(this.field?.name)) return;\n component.setInput('field', this.field);\n if ('formControl' in component.instance) {\n component.setInput('formControl', this.group?.['controls'][this.field.name]);\n }\n }\n\n public getComponent() {\n if (isNullOrUndefined(this.field)) {\n throw new Error(`Field is null or undefined.`);\n }\n\n const fieldType = this.field.type;\n const component = FormDynamicRegistry.resolveField(fieldType);\n if (component) {\n return component;\n } else {\n throw new Error(`Trying to use an unsupported type (${this.field?.type}).`);\n }\n }\n}\n\nexport class DynamicStructure extends DynamicForm {\n config: FieldDynamicStructure;\n\n constructor({\n group,\n config,\n errorMessages,\n }: {\n group: FormGroup;\n config: FieldDynamicStructure;\n errorMessages: any;\n }) {\n super({\n group,\n errorMessages,\n });\n\n this.config = config;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component = viewContainerRef.createComponent(\n this.getComponent(),\n ) as ComponentRef<BaseStructureComponentConfig>;\n component.setInput('config', this.config);\n component.setInput('group', this.group);\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.setInput('config', this.config);\n component.setInput('group', this.group);\n }\n\n public getComponent() {\n const structureType = this.config.type;\n const component = FormDynamicRegistry.resolveField(structureType);\n if (component) {\n return component;\n } else {\n throw new Error(`Trying to use an unsupported type (${this.config?.type}).`);\n }\n }\n}\n\n","import { DynamicType } from '../../form-field/configurations/fields/field';\n\nexport interface StructureConfig {\n type: StructureType;\n configs: (DynamicType | DynamicStructure)[];\n header?: string;\n}\n\nexport interface StructureTypeMap {}\nexport type StructureType = keyof StructureTypeMap;\nexport type DynamicStructure = StructureTypeMap[keyof StructureTypeMap];\n\nexport const STRUCTURE_TYPES_LIST: StructureType[] = ['fieldset', 'row', 'section'];\n\n","import { ComponentRef, Directive, inject, Input, OnChanges, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\nimport { DynamicField, DynamicForm, DynamicStructure } from './dynamic-form';\n\nimport {\n DynamicStructure as FieldDynamicStructure,\n STRUCTURE_TYPES_LIST,\n StructureType,\n} from './configurations/structure/structure';\nimport { DynamicType } from './form-field/configurations/fields/field';\n\n@Directive({ selector: '[sDynamicForm]' })\nexport class DynamicFormDirective implements OnInit, OnChanges, OnDestroy {\n private id?: string;\n private config!: FieldDynamicStructure | DynamicType;\n private group!: FormGroup;\n private errorMessages?: FormGroup;\n private directiveConfig?: DynamicForm;\n\n @Input()\n set sDynamicForm(context: {\n id?: string;\n config: FieldDynamicStructure | DynamicType;\n group: FormGroup;\n errorMessages?: any;\n }) {\n const { id, config, group, errorMessages } = context;\n this.id = id;\n this.config = config;\n this.group = group;\n this.errorMessages = errorMessages;\n }\n\n public component: ComponentRef<any> | null = null;\n\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n public ngOnInit() {\n if (this.isField(this.config)) {\n if (!this.config.id && this.id) {\n this.config.id = this.id + '-' + this.config.name;\n }\n\n this.directiveConfig = new DynamicField({\n group: this.group,\n field: this.config,\n errorMessages: this.errorMessages,\n });\n } else if (this.isStructure(this.config)) {\n this.directiveConfig = new DynamicStructure({\n group: this.group,\n config: this.config,\n errorMessages: this.errorMessages,\n });\n } else throw new Error(`Trying to use an unsupported type (${this.getType}).`);\n\n this.component = this.directiveConfig.createComponent(this.viewContainerRef);\n if (!isNullOrUndefined(this.component) && this.isStructure(this.config)) {\n this.component.setInput('id', this.id);\n this.component.setInput('errorMessages', this.errorMessages);\n }\n }\n\n public ngOnChanges() {\n if (this.component) {\n this.directiveConfig?.updateVariables(this.component);\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public ngOnDestroy(): void {\n this.component?.destroy();\n }\n\n private isField(config: FieldDynamicStructure | DynamicType): config is DynamicType {\n return !this.isStructure(config);\n }\n\n private isStructure(config: FieldDynamicStructure | DynamicType): config is FieldDynamicStructure {\n return STRUCTURE_TYPES_LIST.includes(config.type as StructureType);\n }\n\n private get getType() {\n return this.config.type;\n }\n}\n\n","import { Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicStructure } from './configurations/structure/structure';\nimport { DynamicType } from './form-field/configurations/fields/field';\n\n@Component({\n selector: 's-dynamic-form',\n templateUrl: './dynamic-form.component.html',\n styleUrls: ['dynamic-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DynamicFormComponent {\n id = input<string>();\n\n configs = input<DynamicStructure[]>([]);\n\n /**\n * @deprecated Use `configs` input instead. Este campo será removido em versões futuras.\n */\n fields = input<DynamicType[]>();\n\n private dynamicTypeToStructure = computed(() => {\n const fields = this.fields();\n if (fields && fields.length) {\n return dynamicTypeToDynamicStructure(fields);\n }\n return undefined;\n });\n\n conf = computed(() => (this.dynamicTypeToStructure() ? this.dynamicTypeToStructure() : this.configs()));\n\n form = input.required<FormGroup>();\n\n errorMessages = input<any>({});\n}\n\nexport const dynamicTypeToDynamicStructure = (dynamicTypes: DynamicType[]): DynamicStructure[] => {\n const dynamicStructure: DynamicStructure[] = [\n {\n type: 'row',\n fields: dynamicTypes,\n },\n ];\n return dynamicStructure;\n};\n\n","@for (config of conf(); track $index) {\n <ng-container\n *sDynamicForm=\"{\n id: id(),\n config,\n group: form(),\n errorMessages: errorMessages(),\n }\"\n >\n </ng-container>\n}\n","import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n input,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n viewChild,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { MaskConfig } from '@seniorsistemas/ng2-currency-mask';\nimport { Hotkey, HotkeysService } from 'angular2-hotkeys';\nimport BigNumber from 'bignumber.js';\nimport { SortMeta } from 'primeng/api';\nimport { AutoComplete, AutoCompleteCompleteEvent } from 'primeng/autocomplete';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DefaultFilter } from './types/default-filter';\nimport { LabelOptions } from './types/label-options';\n\nimport { LoadingStateIndicators } from '@seniorsistemas/angular-components/loading-state';\nimport { CalendarLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { CheckDisabled } from '@seniorsistemas/angular-components/shared';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { CurrencyFieldConfig } from '../../form-field/configurations/fields/currency-field';\nimport { DynamicType } from '../../form-field/configurations/fields/field';\nimport { SelectFieldConfig } from '../../form-field/configurations/fields/select-field';\nimport { BignumberFieldConfig } from '../../form-field/configurations/fields/bignumber-field';\nimport { NumberFieldConfig } from '../../form-field/configurations/fields/number-field';\nimport { TextFieldConfig } from '../../form-field/configurations/fields/text-field';\nimport { DynamicStructure } from '../../configurations/structure/structure';\nimport { dynamicTypeToDynamicStructure } from '../../dynamic-form.component';\n\n@Component({\n selector: 's-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => LookupComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapseContent', [\n state(\n 'hidden',\n style({\n width: '10px',\n padding: 0,\n }),\n ),\n state(\n 'visible',\n style({\n width: '*',\n }),\n ),\n transition('visible <=> hidden', [\n group([query('@childCollapseContent', animateChild()), animate('{{transitionParams}}')]),\n ]),\n ]),\n trigger('childCollapseContent', [\n state(\n ':leave',\n style({\n opacity: 0,\n }),\n ),\n state(\n ':enter',\n style({\n opacity: 1,\n }),\n ),\n transition('* <=> *', animate('{{transitionParams}}')),\n ]),\n ],\n})\nexport class LookupComponent implements ControlValueAccessor, OnChanges, OnInit, OnDestroy {\n private readonly lookupDialogContainer = viewChild<ElementRef<HTMLElement>>('dialogContainer');\n protected rowType = 'Row';\n public indicatorLogo = LoadingStateIndicators.Logo;\n public static nextId = 0;\n\n @Input()\n public formControlName?: string;\n\n @Input()\n public id = `s-lookup-${LookupComponent.nextId++}`;\n\n @Input()\n public autocompleteForceSelection = true;\n\n @Input()\n public multiple = false;\n\n @Input({ required: true })\n public dataKey!: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showSearch = true;\n\n @Input()\n public lookupSuggestions: any[] = [];\n\n @Input()\n public lookupDisplayField?: string;\n\n @Input()\n public lookupDisplayFieldTooltip = false;\n\n @Input()\n public lookupEmptyMessage?: string;\n\n @Input({ transform: (value: string | undefined) => value ?? 'body' })\n public lookupAppendTo? = 'body';\n\n @Input()\n public searchEmptyDescription?: string;\n\n @Input()\n public searchGridData: any[] = [];\n\n @Input()\n public searchTotalRecords = 0;\n\n @Input()\n public searchFields: DynamicType[] = [];\n\n @Input()\n public searchGridFields: DynamicType[] = [];\n\n @Input()\n public multiSortMeta: SortMeta[] = [];\n\n @Input()\n public placeholder?: string;\n\n @Input()\n public sortableColumnsDisabled: string[] = [];\n\n @Input()\n public lookupRowProps: string[] = [];\n\n @Input()\n public defaultFilter: DefaultFilter[] = [];\n\n @Input()\n public showAddOption = false;\n\n @Input()\n public showEditOption = false;\n\n @Input()\n public showRemoveOption = false;\n\n dialogFullScreen = input(false);\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onLookupRequest = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onSearchRequest = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onFocus = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onBlur = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onKeyUp = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onSelect = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onUnselect = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onClear = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onAdd = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onEdit = new EventEmitter<unknown>();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onRemove = new EventEmitter<unknown[]>();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onClearButtonClick = new EventEmitter<void>();\n\n @ViewChild(Table, { static: false })\n public table: Table | null = null;\n\n @ViewChild(AutoComplete, { static: false })\n public autocomplete: AutoComplete | null = null;\n\n @Input()\n public labelOptions?: Partial<LabelOptions>;\n\n public value: any;\n public loading = false;\n public animating = false;\n public dialogVisible = false;\n public collapsed = false;\n public selected: any[] = [];\n public formGroupDialog!: FormGroup<any>;\n public transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n protected searchFieldsDynamicStructure: DynamicStructure[] = [];\n\n private onChange?: Function;\n private onTouched?: Function;\n private originalFormValues = {};\n private readonly ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly hotkeysService: HotkeysService,\n protected readonly translateService: TranslateService,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n if (!this.searchGridFields.length) {\n this.searchGridFields = this.searchFields.map((item) => {\n return { ...item };\n });\n }\n this.searchFields = this.searchFields.map((value) => {\n return {\n ...value,\n // size: { sm: 12, md: 12, lg: 12, xl: 12 },// TODO.. Fazer o Size funcionar!\n };\n });\n\n this.searchFieldsDynamicStructure = dynamicTypeToDynamicStructure(this.searchFields);\n\n this.searchGridFields = this.searchGridFields.map((gridField) => {\n const gridType = gridField.type;\n if (gridField.label) {\n (gridField as any)['width'] = this.getColWidth(gridField.label);\n }\n\n if (gridType === 'calendar' || gridType === 'date' || gridType === 'time') {\n const calendarOptions = new CalendarLocaleOptions({ ...gridField.calendarLocaleOptions });\n\n if (calendarOptions?.dateFormat) {\n switch (gridField.type) {\n case 'date':\n calendarOptions.dateFormat = this._convertToMomentDateFormat(calendarOptions.dateFormat);\n break;\n case 'time':\n calendarOptions.dateFormat = this._convertToMomentHourFormat(\n calendarOptions.hourFormat!,\n calendarOptions.dateFormat,\n );\n break;\n }\n gridField.calendarLocaleOptions = calendarOptions;\n }\n }\n\n return gridField;\n });\n\n const hasFieldWithDotInName = this.searchFields.some((field) => field.name.includes('.'));\n if (hasFieldWithDotInName) {\n const fieldsWithDot = this.searchFields\n .filter((item) => item.name.includes('.'))\n .map((item) => item.name)\n .join();\n throw new Error(`This fields: [${fieldsWithDot}] can't have dot in their names, please replace.`);\n }\n const formGroup = this.searchFields.reduce((result: { [key: string]: FormControl }, field) => {\n if (field.name) {\n const defaultValue = 'defaultValue' in field ? field.defaultValue : undefined;\n result[field.name] = new FormControl(defaultValue);\n (this.originalFormValues as any)[field.name] = defaultValue;\n }\n return result;\n }, {});\n\n this.formGroupDialog = new FormGroup(formGroup);\n\n this._subscribeEvents();\n }\n\n public printRecordTotalizer(): string {\n if (this.labelOptions?.searchTotalRecordsLabel) {\n return this.labelOptions?.searchTotalRecordsLabel;\n }\n\n const recordLabel = this.labelOptions?.recordLabel\n ? `${this.searchTotalRecords} ${this.labelOptions?.recordLabel}`\n : this.translateService.instant('platform.angular_components.total_record', {\n count: this.searchTotalRecords,\n });\n\n const recordsLabel = this.labelOptions?.recordsLabel\n ? `${this.searchTotalRecords} ${this.labelOptions?.recordsLabel}`\n : this.translateService.instant('platform.angular_components.total_records', {\n count: this.searchTotalRecords,\n });\n\n return this.searchTotalRecords === 1 ? recordLabel : recordsLabel;\n }\n\n private _convertToMomentHourFormat(hourFormat: string, format: string) {\n if (format === 'dd/mm/yy') {\n // valor padrão para o format.\n return 'LTS';\n }\n\n if (hourFormat === '12') {\n return format\n .replace(/\\bH\\b/, 'h') // hour (12 hour time) (no leading zero)\n .replace(/\\bHH\\b/, 'hh'); // hour (12 hour time)\n }\n\n if (hourFormat === '24') {\n return format\n .replace(/\\bh\\b/, 'H') // hour (24 hour time) (no leading zero)\n .replace(/\\bhh\\b/, 'HH'); // hour (24 hour time)\n }\n\n return format;\n }\n\n private _convertToMomentDateFormat(format: string): string {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, 'D') // day of month (no leading zero)\n .replace(/\\bdd\\b/, 'DD') // day of month\n .replace(/\\bo\\b/, 'DDD') // day of the year (no leading zero)\n .replace(/\\boo\\b/, 'DDDD') // day of the year\n .replace(/\\bM\\b/, 'MMM') // month name short\n .replace(/\\bMM\\b/, 'MMMM') // month name long\n .replace(/\\bm\\b/, 'M') // month of year (no leading)\n .replace(/\\bmm\\b/, 'MM') // month of year\n .replace(/\\by\\b/, 'YY') // year (two digits)\n .replace(/\\byy\\b/, 'YYYY'); // year (four digits)\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (this.dialogVisible && changes['searchGridData']) {\n this.loading = false;\n }\n\n this._setFocusFilter();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public getGridData() {\n return this.searchGridData;\n }\n\n public getLookupSuggestions() {\n return this.lookupSuggestions;\n }\n\n protected makeSearchRequestParams(event: any) {\n const filters = this.formGroupDialog?.getRawValue();\n const params = { ...event, filterData: filters };\n const { multiSortMeta } = event;\n this.multiSortMeta = multiSortMeta || this.multiSortMeta;\n\n return params;\n }\n\n public lazyLoadGrid(event: any) {\n // Ao definir uma ordenação na tabela do lookup esse método é chamado 2 vezes https://github.com/primefaces/primeng/issues/5480\n const params = this.makeSearchRequestParams(event);\n this.onSearchRequest.next(params);\n }\n\n public onCompleteMethod(event: AutoCompleteCompleteEvent): void {\n if (!this.autocompleteForceSelection) {\n this.onChange?.(this.value === '' ? null : this.value);\n }\n\n this.onLookupRequest.next(event.query);\n }\n\n public setDefaultFilters() {\n if (!this.defaultFilter) return;\n\n this.defaultFilter\n .filter(({ field }) => this.formGroupDialog?.contains(field) && !this.formGroupDialog?.get([field])?.dirty)\n .forEach(({ value, field }) => {\n this.formGroupDialog?.get([field])?.patchValue(value instanceof Function ? value() : value);\n });\n }\n\n @CheckDisabled()\n public async showDialog() {\n this.setDefaultFilters();\n this.searchGridData = [];\n this.onTouched?.();\n this.hotkeysService.pause([...this.hotkeysService.hotkeys]);\n this.setHotkeys();\n\n let selected: any = [];\n if (this.multiple && this.value) {\n selected = selected.concat(this.value);\n } else if (this.value) {\n selected = [this.value];\n }\n this.selected = selected;\n\n this.loading = true;\n this.dialogVisible = true;\n }\n\n setInputs(componentRef: any, configs: any, form: any) {\n componentRef.instance.configs = configs;\n componentRef.instance.form = form;\n\n // chame ngOnChanges manualmente se necessário\n if (typeof componentRef.instance.ngOnChanges === 'function') {\n componentRef.instance.ngOnChanges();\n }\n }\n\n onVisibleChange(visibilityState: boolean) {\n if (visibilityState) {\n return;\n }\n this.hideDialog();\n }\n public hideDialog() {\n if (!this.autocomplete) {\n return;\n }\n const { inputEL, multiInputEl } = this.autocomplete;\n this.dialogVisible = false;\n this.collapsed = false;\n this.hotkeysService.unpause([...this.hotkeysService.pausedHotkeys]);\n if (this.multiple) {\n multiInputEl?.nativeElement?.focus();\n } else {\n inputEL?.nativeElement?.focus();\n }\n }\n\n public search() {\n this.resetTable();\n this.collapsed = true;\n const dialogContainer = this.lookupDialogContainer()?.nativeElement;\n if (dialogContainer) {\n dialogContainer.scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n public clear() {\n this.formGroupDialog?.reset(this.originalFormValues);\n this.resetTable();\n this.onClearButtonClick.emit();\n }\n\n protected resetTable() {\n this.table?.reset();\n }\n\n public select() {\n if (!this.selected.length) return;\n\n const selected = this.selected && (this.multiple ? this.selected : this.selected[0]);\n this.value = selected;\n this.onSelect.next(selected);\n this.hideDialog();\n }\n\n public onSelectionChange(selected: any) {\n if (!selected) return;\n if (Array.isArray(selected)) this.selected = selected;\n else this.selected = [selected];\n }\n\n public registerOnChange(onChange: Function) {\n this.onChange = (value: any) => {\n this.writeValue(value);\n onChange(value);\n };\n }\n\n public registerOnTouched(onTouched: Function) {\n this.onTouched = onTouched;\n }\n\n public writeValue(value: any) {\n this.value = value;\n }\n\n public setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n public getFieldValue(obj: any, path: string) {\n return path.split('.').reduce((result, prop) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public getBadgeFromValue(value: unknown, field: SelectFieldConfig) {\n const options = typeof field.options === 'function' ? field.options() : field.options;\n return options?.find((opt) => opt.value === value)?.badge;\n }\n\n public getLabelForValue(value: unknown, field: SelectFieldConfig) {\n const options = typeof field.options === 'function' ? field.options() : field.options;\n if (!options) return `${value}`;\n\n const option = options.find((opt) => opt.value === value);\n return option ? option.label : `${value}`;\n }\n\n public isBooleanValue(obj: any, path: string) {\n const value = this.getFieldValue(obj, path);\n if (value === true || value === false) return true;\n else return false;\n }\n\n public getFieldWidth(col: any) {\n return col.width;\n }\n\n public getBooleanLabel(obj: any, path: string, optionsLabel: BooleanOptionsLabel | undefined) {\n if (!optionsLabel) {\n return;\n }\n if (this.getFieldValue(obj, path)) {\n return optionsLabel.true;\n } else {\n return optionsLabel.false;\n }\n }\n\n public isNumber(obj: any, path: string) {\n return !new BigNumber(this.getFieldValue(obj, path)).isNaN();\n }\n\n public setHotkeys() {\n const clearHotkey = this.newHotkey('alt+shift+l', this.clear.bind(this));\n const findHotkey = this.newHotkey('alt+shift+f', this.search.bind(this));\n const hideHotkey = this.newHotkey('alt+shift+c', this.hideDialog.bind(this));\n const selectHotkey = this.newHotkey('alt+shift+s', this.select.bind(this));\n\n const bindedHotkeys = [clearHotkey, findHotkey, hideHotkey, selectHotkey];\n bindedHotkeys.forEach((hotkey: Hotkey) => this.hotkeysService.add(hotkey));\n }\n\n private newHotkey(combo: string, fn: Function): Hotkey {\n return new Hotkey(combo, () => {\n fn();\n return false;\n }, ['INPUT', 'SELECT', 'TEXTAREA']);\n }\n\n public filterToggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n /**\n * Calculate the table column size. The minimum value is 14.286em, which is equals to 200px duo to the current font size.\n * @param label Column name.\n */\n public getColWidth(label: string) {\n const size = label.length;\n if (size < 14.286) return `14.286em`;\n return `${size}em`;\n }\n\n public getScale(scale: any): number {\n return this.isFunction(scale) ? scale() : scale;\n }\n\n private isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public getIntegerMaskConfig(col: BignumberFieldConfig | NumberFieldConfig): MaskConfig {\n return {\n scale: 0,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: '',\n };\n }\n\n public getDoubleMaskConfig(col: NumberFieldConfig | BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: '',\n };\n }\n\n public getMoneyMaskConfig(col: CurrencyFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public getNumberMaskConfig(col: NumberFieldConfig | BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public parseValueMaskValue(col: DynamicType, rowData: any) {\n if (this.fieldHasMask(col)) {\n const _mask = col.mask;\n const isFunction = this.isFunction(_mask);\n return isFunction ? (_mask as Function)({ value: rowData }) : _mask;\n }\n }\n\n public fieldHasMask(field: DynamicType): field is NumberFieldConfig | BignumberFieldConfig | TextFieldConfig {\n return (\n field.type === 'number' ||\n field.type === 'bigNumber' ||\n field.type === 'decimal' ||\n field.type === 'text' ||\n field.type === 'binary'\n );\n }\n\n public onTableRowDoubleClick(rowData: any): void {\n this.selected = [rowData];\n this.select();\n }\n\n private _setFocusFilter() {\n if (this.dialogVisible && !this.collapsed) {\n const input = this.lookupDialogContainer()?.nativeElement.querySelector('input');\n if (input) {\n (input as HTMLInputElement).focus();\n }\n }\n }\n\n private _subscribeEvents(): void {\n this.onSearchRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => (this.loading = true));\n\n this.onSelect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange?.(this.value));\n\n this.onUnselect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange?.(this.value));\n\n this.onClear.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n if (this.multiple) {\n return;\n }\n this.onChange?.(null);\n });\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched?.();\n });\n\n this.onBlur.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: Event) => {\n if (isNullOrUndefined(this.lookupDisplayField)) return;\n\n const target = event.target as HTMLInputElement;\n const currentValue = this.value && this.value[this.lookupDisplayField];\n const { value } = target;\n\n if (this.multiple || !currentValue || currentValue == value) return;\n\n const newValue = '';\n target.value = newValue;\n this.onChange?.(newValue);\n });\n }\n}\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n\n","<div [ngClass]=\"{ inputgroup: showSearch }\">\n <p-autoComplete\n #autocomplete\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [dataKey]=\"dataKey\"\n [multiple]=\"multiple\"\n [inputId]=\"id + '-autocomplete'\"\n [forceSelection]=\"autocompleteForceSelection\"\n [suggestions]=\"getLookupSuggestions()\"\n (completeMethod)=\"onCompleteMethod($event)\"\n (onSelect)=\"onSelect.next($event)\"\n (onBlur)=\"onBlur.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onUnselect)=\"onUnselect.next($event)\"\n (onClear)=\"onClear.next($event)\"\n (onKeyUp)=\"onKeyUp.next($event)\"\n [field]=\"lookupDisplayField\"\n [emptyMessage]=\"lookupEmptyMessage\"\n [dropdown]=\"!showSearch\"\n [appendTo]=\"lookupAppendTo\"\n [placeholder]=\"placeholder || ' '\"\n [autoHighlight]=\"true\"\n inputStyleClass=\"mousetrap\"\n >\n </p-autoComplete>\n @if (showSearch) {\n <button\n class=\"button-addon\"\n [class.button-addon--disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (click)=\"showDialog()\"\n >\n <i class=\"fa fa-search\"></i>\n </button>\n }\n</div>\n\n<s-dialog\n [(visible)]=\"dialogVisible\"\n (visibleChange)=\"onVisibleChange($event!)\"\n [header]=\"labelOptions?.searchTitle || 'platform.angular_components.advanced_search' | translate\"\n contentClassName=\"s-lookup-modal\"\n [size]=\"dialogFullScreen() ? 'fullscreen' : 'xl'\"\n>\n @if (dialogVisible) {\n <div\n class=\"s-lookup-modal-container\"\n #dialogContainer\n >\n @if (searchFields && searchFields.length) {\n <div\n class=\"filter\"\n [@collapseContent]=\"\n collapsed\n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\n \"\n (@collapseContent.done)=\"onToggleDone()\"\n >\n <form\n [formGroup]=\"formGroupDialog\"\n novalidate\n autocomplete=\"off\"\n >\n @if (!collapsed) {\n <div\n class=\"form-content\"\n [@childCollapseContent]=\"\n collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\n \"\n >\n <div class=\"filter-title sds-section-title\">\n {{ labelOptions?.filterTitle || 'platform.angular_components.filters' | translate }}\n </div>\n <div class=\"form-fields\">\n <s-dynamic-form\n [configs]=\"searchFieldsDynamicStructure\"\n [form]=\"formGroupDialog\"\n >\n </s-dynamic-form>\n </div>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button\n [id]=\"id + '-filter-button'\"\n type=\"submit\"\n [label]=\"\n labelOptions?.filterLabel || 'platform.angular_components.filter'\n | translate\n \"\n (clicked)=\"search()\"\n sTooltip=\"(ALT + SHIFT + F)\"\n >\n </s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"\n labelOptions?.clearLabel || 'platform.angular_components.clear'\n | translate\n \"\n (clicked)=\"clear()\"\n priority=\"link\"\n sTooltip=\"(ALT + SHIFT + L)\"\n >\n </s-button>\n </div>\n </div>\n </div>\n }\n </form>\n </div>\n }\n @if (searchFields && searchFields.length) {\n <div class=\"filter-toggle\">\n <button\n [id]=\"id + '-filter-toggle-button'\"\n type=\"button\"\n (click)=\"filterToggle()\"\n >\n <span\n class=\"fa\"\n [ngClass]=\"{ 'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed }\"\n aria-hidden=\"true\"\n >\n </span>\n </button>\n </div>\n }\n @let isEmptyContent = !searchTotalRecords && !loading;\n <div\n class=\"content\"\n #contentContainer\n [ngClass]=\"{ 'empty-content': isEmptyContent }\"\n >\n @if (isEmptyContent) {\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n [title]=\"\n labelOptions?.searchEmptyTitle || 'platform.angular_components.no_records_found' | translate\n \"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\"\n >\n </s-empty-state>\n }\n <div class=\"content-child\">\n <p-table\n [dataKey]=\"dataKey\"\n [value]=\"getGridData()\"\n [columns]=\"searchGridFields\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n sortMode=\"multiple\"\n [totalRecords]=\"searchTotalRecords\"\n [rows]=\"10\"\n [selection]=\"selected\"\n (onLazyLoad)=\"lazyLoadGrid($event)\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\"\n *sLoadingState=\"{ loading: loading, indicator: indicatorLogo }\"\n >\n <ng-template pTemplate=\"caption\">\n <div>\n @if (showAddOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.add' | translate\"\n (clicked)=\"onAdd.emit()\"\n >\n </s-button>\n }\n @if (showEditOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.edit' | translate\"\n [disabled]=\"selected.length !== 1\"\n (clicked)=\"onEdit.emit(this.selected[0])\"\n >\n </s-button>\n }\n @if (showRemoveOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.remove' | translate\"\n [disabled]=\"!selected.length\"\n (clicked)=\"onRemove.emit(this.selected)\"\n >\n </s-button>\n }\n </div>\n </ng-template>\n <ng-template\n pTemplate=\"colgroup\"\n let-columns\n >\n <colgroup>\n @if (multiple) {\n <col style=\"width: 50px\" />\n }\n\n @for (col of columns; track $index) {\n <col [style.width]=\"col.width\" />\n }\n </colgroup>\n </ng-template>\n <ng-template\n pTemplate=\"header\"\n let-columns\n >\n <tr>\n @if (multiple) {\n <th style=\"width: 50px\">\n <s-table-header-checkbox\n [useAllObject]=\"lookupRowProps ? false : true\"\n [rowProps]=\"lookupRowProps\"\n >\n </s-table-header-checkbox>\n </th>\n }\n @for (col of columns; track $index) {\n <th\n [style.width]=\"col.width\"\n [pSortableColumn]=\"col.name\"\n [pSortableColumnDisabled]=\"sortableColumnsDisabled.includes(col.name)\"\n >\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n @if (!sortableColumnsDisabled.includes(col.name)) {\n <p-sortIcon [field]=\"col.name\"> </p-sortIcon>\n }\n </div>\n </th>\n }\n </tr>\n </ng-template>\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns\n let-rowIndex=\"rowIndex\"\n >\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick\n (onDoubleClick)=\"onTableRowDoubleClick(rowData)\"\n >\n @if (multiple) {\n <td\n style=\"width: 50px\"\n tabindex=\"0\"\n >\n <p-tableCheckbox\n [value]=\"rowData\"\n [pSelectableRow]=\"rowData\"\n >\n </p-tableCheckbox>\n </td>\n }\n @for (col of searchGridFields; track $index) {\n <td\n [style.width]=\"getFieldWidth(col)\"\n [ngSwitch]=\"col.type\"\n tabindex=\"0\"\n >\n @switch (col.type) {\n @case ('boolean') {\n <ng-container\n *ngIf=\"isBooleanValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getBooleanLabel(rowData, col.name, col.optionsLabel)\n }}</span>\n </ng-container>\n }\n @case ('date') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | localizedDate\n : col.calendarLocaleOptions?.dateFormat || 'L'\n | async\n }}</span>\n </ng-container>\n }\n @case ('dateTime') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name) | localizedDate | async\n }}</span>\n </ng-container>\n }\n @case ('localDateTime') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name) | localizedDate | async\n }}</span>\n </ng-container>\n }\n @case ('time') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | localizedTime\n : col.calendarLocaleOptions?.dateFormat || 'LTS'\n | async\n }}</span>\n </ng-container>\n }\n @case ('number') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getIntegerMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('decimal') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getDoubleMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('currency') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getMoneyMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('bigNumber') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getNumberMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('select') {\n <ng-container\n *ngIf=\"\n getLabelForValue(getFieldValue(rowData, col.name), col);\n else emptyTemplate\n \"\n >\n <ng-container\n *ngIf=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col);\n then withBadge;\n else withoutBadge\n \"\n ></ng-container>\n <ng-template #withBadge>\n <s-badge\n [text]=\"\n getLabelForValue(getFieldValue(rowData, col.name), col)\n \"\n [color]=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col)\n ?.color\n \"\n [type]=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col)\n ?.type\n \"\n [iconClass]=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col)\n ?.iconClass\n \"\n [iconPosition]=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col)\n ?.iconPosition\n \"\n >\n </s-badge>\n </ng-template>\n <ng-template #withoutBadge>\n <span>\n {{\n getLabelForValue(getFieldValue(rowData, col.name), col)\n }}\n </span>\n </ng-template>\n </ng-container>\n }\n @default {\n @if (fieldHasMask(col) && parseValueMaskValue(col, rowData)) {\n <ng-container\n *ngIf=\"\n isNumber(rowData, col.name) ||\n getFieldValue(rowData, col.name)\n \"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | sMaskFormatter: parseValueMaskValue(col, rowData)\n }}</span>\n </ng-container>\n } @else {\n <ng-container\n *ngIf=\"\n isNumber(rowData, col.name) ||\n getFieldValue(rowData, col.name);\n else emptyTemplate\n \"\n >\n <span>{{ getFieldValue(rowData, col.name) }}</span>\n </ng-container>\n }\n }\n }\n </td>\n }\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [attr.data-hidden]=\"loading\">\n {{ printRecordTotalizer() }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n </div>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"flex w-full justify-end\">\n <s-button\n [id]=\"id + '-cancel-button'\"\n type=\"button\"\n priority=\"link\"\n [label]=\"labelOptions?.cancelLabel || 'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n >\n </s-button>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"labelOptions?.selectLabel || 'platform.angular_components.select' | translate\"\n (clicked)=\"select()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n [disabled]=\"!selected.length\"\n >\n </s-button>\n </div>\n </ng-template>\n }\n</s-dialog>\n\n<ng-template #emptyTemplate>\n <span class=\"sds-empty-value\">\n {{ labelOptions?.emptyFieldLabel || 'platform.angular_components.not_informed' | translate }}\n </span>\n</ng-template>\n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n OnInit,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AutocompleteFieldConfig } from '../../configurations/fields/autocomplete-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n templateUrl: 'autocomplete-field.component.html',\n})\nexport class AutocompleteFieldComponent implements BaseFieldComponentConfig, AfterViewInit, OnInit {\n private readonly destroyRef = inject(DestroyRef);\n suggestions: unknown[] = [];\n field = input.required<AutocompleteFieldConfig>();\n\n formControl = input.required<FormControl>();\n\n public inputRef: HTMLElement | null = null;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) {}\n\n ngOnInit(): void {\n const suggestionsObservable = this.field().suggestionsObservable;\n if (suggestionsObservable)\n suggestionsObservable\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((suggestions) => (this.suggestions = suggestions));\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div [sTooltip]=\"_field.tooltip\">\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple!\"\n [placeholder]=\"_field.placeholder\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"suggestions\"\n [dataKey]=\"_field.dataKey!\"\n (onLookupRequest)=\"_field.onSearch ? _field.onSearch($event) : null\"\n [lookupDisplayField]=\"_field.displayField\"\n [showSearch]=\"false\"\n [lookupAppendTo]=\"_field.appendTo\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onUnselect)=\"_field.onUnselect ? _field.onUnselect($event) : null\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n >\n </s-lookup>\n</div>\n\n","import { Injectable } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class FormFieldUtilsService {\n isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n trigger(callback: any) {\n return callback();\n }\n\n fieldPropertyIsDisabled<T extends { disabled?: Function | boolean }>(fieldProperty: T): boolean {\n if (!isNullOrUndefined(fieldProperty)) {\n return typeof fieldProperty.disabled === 'function' ? fieldProperty.disabled() : !!fieldProperty.disabled;\n }\n return false;\n }\n\n getFieldPropertyMask(fieldData: Function | string) {\n return typeof fieldData === 'function' ? fieldData() : fieldData;\n }\n\n getFieldProperty<T, K>(property: T | K, defaultResponse?: K) {\n const response = typeof property === 'function' ? (property as Function)() : property;\n return defaultResponse ? (response ?? defaultResponse) : response;\n }\n\n switchEmptyStringToNull(formControl: FormControl, onDestroy$: Subject<void>) {\n formControl.valueChanges.pipe(takeUntil(onDestroy$)).subscribe((value: unknown) => {\n if (value === '') {\n formControl.setValue(null, { emitEvent: false });\n }\n });\n }\n}\n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\n\nimport { LocaleService, NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { BignumberFieldConfig } from '../../configurations/fields/bignumber-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'bignumber-field.component.html',\n styleUrls: ['./bignumber-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class BignumberFieldComponent implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<BignumberFieldConfig>();\n\n formControl = input.required<FormControl>();\n\n fieldUtils = inject(FormFieldUtilsService);\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n const field = this.field();\n field.scale = field.scale ?? 2;\n field.numberLocaleOptions = field.numberLocaleOptions ?? new NumberLocaleOptions();\n field.autoClear = field.autoClear ?? true;\n field.alignTo = field.scale ? 'right' : 'left';\n field.allowNegative = field.allowNegative ?? true;\n\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field().onFocus) {\n this.field().onFocus?.(event);\n }\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field().onInput) {\n this.field().onInput?.(event);\n }\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field().onComplete) {\n this.field().onComplete?.(event);\n }\n });\n this.onScale();\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field().numberLocaleOptions?.decimalSeparator) {\n this.field().numberLocaleOptions = {\n ...this.field().numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator() ?? '',\n };\n }\n\n if (!this.field().numberLocaleOptions?.thousandsSeparator) {\n this.field().numberLocaleOptions = {\n ...this.field().numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator() ?? '',\n };\n }\n\n if (!this.field().numberLocaleOptions?.currencySymbol) {\n this.field().numberLocaleOptions = {\n ...this.field().numberLocaleOptions,\n currencySymbol:\n this.field().type === 'number' || this.field().type === 'decimal' ? '' : 'R$',\n };\n }\n },\n error: () =>\n (this.field().numberLocaleOptions = this.field().numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: this.field().type === 'number' || this.field().type === 'decimal' ? '' : 'R$',\n }),\n });\n }\n\n private onScale(): void {\n // Currently, this component is used for the following types\n // 'number', 'decimal', 'bigNumber'\n if (isNullOrUndefined(this.field().scale)) {\n this.field().scale = this.field().type === 'number' ? 0 : 2;\n }\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n@if (_field.mask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [autoClear]=\"_field.autoClear\"\n >\n </p-inputMask>\n} @else {\n <div class=\"ui-inputgroup\">\n @if (_field.leftAddon) {\n @if (_field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"_field.leftAddon.label\"\n [iconClass]=\"_field.leftAddon.icon\"\n [priority]=\"_field.leftAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.leftAddon)\"\n (clicked)=\"_field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.leftAddon.label) {\n <span>\n {{ _field.leftAddon.label }}\n </span>\n }\n @if (!_field.leftAddon.label) {\n <span [ngClass]=\"_field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sBignumberInput\n [allowNegative]=\"_field.allowNegative\"\n [precision]=\"\n fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\n \"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"_field.alignTo ?? 'left'\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n @if (_field.rightAddon) {\n @if (_field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"_field.rightAddon.label\"\n [iconClass]=\"_field.rightAddon.icon\"\n [priority]=\"_field.rightAddon.priority!\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.rightAddon)\"\n (clicked)=\"_field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.rightAddon.label) {\n <span>\n {{ _field.rightAddon.label }}\n </span>\n } @else {\n <span [ngClass]=\"_field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n\n","import { Component, input } from '@angular/core';\nimport { ButtonFieldConfig } from '../../configurations/fields/button-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n selector: 's-button-field',\n templateUrl: './button-field.component.html',\n styleUrl: './button-field.component.scss',\n})\nexport class ButtonFieldComponent implements BaseFieldComponentConfig {\n field = input.required<ButtonFieldConfig>();\n\n clickedButton($event: Event) {\n if (this.field().onClick) {\n this.field().onClick?.($event);\n }\n }\n\n handleMouseEnter() {\n if (this.field().mouseEnter) {\n this.field().mouseEnter?.(this.field());\n }\n }\n\n handleMouseLeave() {\n if (this.field().mouseLeave) {\n this.field().mouseLeave?.(this.field());\n }\n }\n}\n\n","@let _field = field();\n<section\n [class.full-width]=\"_field.fullWidth\"\n [class.fit-content]=\"!_field.fullWidth\"\n>\n <s-button\n #button\n [label]=\"_field.label\"\n [priority]=\"_field.priority ?? 'default'\"\n [iconClass]=\"_field.iconClass\"\n [disabled]=\"_field.disabled ?? false\"\n [auxiliary]=\"_field.auxiliary ?? false\"\n [caret]=\"_field.caret ?? false\"\n [id]=\"_field.id\"\n [tooltip]=\"_field.tooltip ? _field.tooltip : button.tooltip\"\n (clicked)=\"clickedButton($event)\"\n [iconColor]=\"_field.iconColor\"\n [badge]=\"_field.badge\"\n [animation]=\"_field.animation\"\n [slide]=\"_field.slide ?? false\"\n [menuOptions]=\"_field.menuOptions ?? []\"\n [baseZIndex]=\"_field.baseZIndex ?? 0\"\n [styleClass]=\"_field.styleClass ? _field.styleClass : button.styleClass\"\n [rightIconClass]=\"_field.rightIconClass\"\n [tooltipPosition]=\"_field.tooltipPosition ? _field.tooltipPosition : button.tooltipPosition\"\n [type]=\"_field.type\"\n [size]=\"_field.size\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n >\n </s-button>\n</section>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, inject, input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { PrimeNG } from 'primeng/config';\nimport { DatePicker } from 'primeng/datepicker';\nimport { CalendarFieldConfig } from '../../configurations/fields/calendar-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'calendar-field.component.html',\n})\nexport class CalendarFieldComponent implements BaseFieldComponentConfig, AfterViewInit, OnInit {\n field = input.required<CalendarFieldConfig>();\n\n formControl = input.required<FormControl>();\n\n private readonly translateService = inject(TranslateService);\n\n public locale = {\n firstDayOfWeek: 0,\n dayNames: [\n this.translateService.instant('platform.angular_components.sunday'),\n this.translateService.instant('platform.angular_components.monday'),\n this.translateService.instant('platform.angular_components.tuesday'),\n this.translateService.instant('platform.angular_components.wednesday'),\n this.translateService.instant('platform.angular_components.thursday'),\n this.translateService.instant('platform.angular_components.friday'),\n this.translateService.instant('platform.angular_components.saturday'),\n ],\n dayNamesShort: [\n this.translateService.instant('platform.angular_components.sunday_short'),\n this.translateService.instant('platform.angular_components.monday_short'),\n this.translateService.instant('platform.angular_components.tuesday_short'),\n this.translateService.instant('platform.angular_components.wednesday_short'),\n this.translateService.instant('platform.angular_components.thursday_short'),\n this.translateService.instant('platform.angular_components.friday_short'),\n this.translateService.instant('platform.angular_components.saturday_short'),\n ],\n dayNamesMin: [\n this.translateService.instant('platform.angular_components.sunday_min'),\n this.translateService.instant('platform.angular_components.monday_min'),\n this.translateService.instant('platform.angular_components.tuesday_min'),\n this.translateService.instant('platform.angular_components.wednesday_min'),\n this.translateService.instant('platform.angular_components.thursday_min'),\n this.translateService.instant('platform.angular_components.friday_min'),\n this.translateService.instant('platform.angular_components.saturday_min'),\n ],\n monthNames: [\n this.translateService.instant('platform.angular_components.january'),\n this.translateService.instant('platform.angular_components.february'),\n this.translateService.instant('platform.angular_components.march'),\n this.translateService.instant('platform.angular_components.april'),\n this.translateService.instant('platform.angular_components.may'),\n this.translateService.instant('platform.angular_components.june'),\n this.translateService.instant('platform.angular_components.july'),\n this.translateService.instant('platform.angular_components.august'),\n this.translateService.instant('platform.angular_components.september'),\n this.translateService.instant('platform.angular_components.october'),\n this.translateService.instant('platform.angular_components.november'),\n this.translateService.instant('platform.angular_components.december'),\n ],\n monthNamesShort: [\n this.translateService.instant('platform.angular_components.january_short'),\n this.translateService.instant('platform.angular_components.february_short'),\n this.translateService.instant('platform.angular_components.march_short'),\n this.translateService.instant('platform.angular_components.april_short'),\n this.translateService.instant('platform.angular_components.may_short'),\n this.translateService.instant('platform.angular_components.june_short'),\n this.translateService.instant('platform.angular_components.july_short'),\n this.translateService.instant('platform.angular_components.august_short'),\n this.translateService.instant('platform.angular_components.september_short'),\n this.translateService.instant('platform.angular_components.october_short'),\n this.translateService.instant('platform.angular_components.november_short'),\n this.translateService.instant('platform.angular_components.december_short'),\n ],\n today: this.translateService.instant('platform.angular_components.today'),\n clear: this.translateService.instant('platform.angular_components.clear'),\n dateFormat: this.translateService.instant('platform.angular_components.date_format'),\n hourFormat: this.translateService.instant('platform.angular_components.hour_format'),\n };\n\n private primengConfig = inject(PrimeNG);\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n const field = this.field();\n if (field.showSeconds === null || field.showSeconds === undefined) {\n switch (field.type) {\n case 'dateTime':\n case 'localDateTime':\n case 'time':\n field.showSeconds = true;\n break;\n }\n }\n\n const _locale = field.calendarLocaleOptions || this.locale;\n this.primengConfig.setTranslation({\n ..._locale,\n });\n }\n\n @ViewChild('calendar') calendar: DatePicker | null = null;\n\n public inputRef: HTMLInputElement | undefined;\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.calendar?.inputfieldViewChild?.nativeElement;\n }\n\n get timeOnly() {\n return this.field()?.type === 'time';\n }\n\n get showTime() {\n const type = this.field()?.type;\n return type === 'localDateTime' || type === 'dateTime' || type === 'time';\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n >\n </s-field-label>\n}\n\n<div [sTooltip]=\"_field.tooltip\">\n <!-- Remover as propriedades [showTransitionOptions] e [hideTransitionOptions] quando atualizar para o PrimeNG v10, esses atributos foram\n usados para remover um bug ocasionado pela animação do componente p-datepicker, bug explicado nas issues: #ERPROM-5534, #ERPROM-8248 e #DSN-1045. -->\n\n <!-- A diretiva sCalendarMask não está suportando seleção múltipla. A forma como ela foi escrita não permite identificar a quantidade de datas\n que estão sendo selecionadas. Removi o uso dela quando está com selectionMode=multiple. Analisar a removeção completa desta diretiva. -->\n @if (_field.selectionMode !== 'multiple') {\n <p-datepicker\n #calendar\n sCalendarMask\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"_field.selectionMode\"\n [rangeSeparator]=\"_field.rangeSeparator ? _field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"_field.showSeconds\"\n [showOnFocus]=\"_field.showOnFocus\"\n [formControl]=\"formControl()\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"_field.minDate\"\n [maxDate]=\"_field.maxDate\"\n [defaultDate]=\"_field.defaultDate ? _field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n _field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n _field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"_field.view ? _field.view : calendar.view\"\n [placeholder]=\"_field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"_field.appendTo\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onClose)=\"_field.onClose ? _field.onClose($event) : null\"\n (onTodayClick)=\"_field.onTodayClick ? _field.onTodayClick($event) : null\"\n (onClearClick)=\"_field.onClearClick ? _field.onClearClick($event) : null\"\n (onMonthChange)=\"_field.onMonthChange ? _field.onMonthChange($event) : null\"\n (onYearChange)=\"_field.onYearChange ? _field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n } @else {\n <!-- A única diferença deste bloco é a remoção da diretiva sCalendarMask. -->\n <p-datepicker\n #calendar\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"_field.selectionMode\"\n [rangeSeparator]=\"_field.rangeSeparator ? _field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"_field.showSeconds\"\n [showOnFocus]=\"_field.showOnFocus\"\n [formControl]=\"formControl()\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"_field.minDate\"\n [maxDate]=\"_field.maxDate\"\n [defaultDate]=\"_field.defaultDate ? _field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n _field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n _field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"_field.view ? _field.view : calendar.view\"\n [placeholder]=\"_field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"_field.appendTo\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onClose)=\"_field.onClose ? _field.onClose($event) : null\"\n (onTodayClick)=\"_field.onTodayClick ? _field.onTodayClick($event) : null\"\n (onClearClick)=\"_field.onClearClick ? _field.onClearClick($event) : null\"\n (onMonthChange)=\"_field.onMonthChange ? _field.onMonthChange($event) : null\"\n (onYearChange)=\"_field.onYearChange ? _field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n }\n</div>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { CheckboxFieldConfig } from '../../configurations/fields/checkbox-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'checkbox-field.component.html',\n})\nexport class CheckboxFieldComponent implements BaseFieldComponentConfig {\n field = input.required<CheckboxFieldConfig>();\n formControl = input.required<FormControl>();\n}\n\n","<s-checkbox-list\n [data]=\"field().data\"\n [formControl]=\"formControl()\"\n>\n</s-checkbox-list>\n\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { AfterViewInit, ChangeDetectorRef, Component, ElementRef, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { ChipsFieldConfig } from '../../configurations/fields/chips-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: './chips-field.component.html',\n styleUrls: ['./chips-field.component.scss'],\n})\nexport class ChipsFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n field = input.required<ChipsFieldConfig>();\n formControl = input.required<FormControl>();\n\n public feedbackMessageVisible = false;\n public copyButtonVisible = true;\n public inputRef: HTMLElement | null = null;\n\n constructor(\n private readonly clipboard: Clipboard,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) {}\n\n public onCopyFieldContent(): void {\n if (this.formControl().value) {\n this.copyButtonVisible = false;\n this.feedbackMessageVisible = true;\n\n setTimeout(() => {\n this.feedbackMessageVisible = false;\n this.copyButtonVisible = true;\n }, 3000);\n\n const content = this.formControl().value.join(this.field().separator || '\\n');\n\n this.clipboard.copy(content);\n\n if (this.field().onCopy) {\n this.field().onCopy?.(content);\n }\n }\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div class=\"chips-field-wrapper\">\n <div style=\"width: 100%\">\n @if (_field.keyFilter) {\n <s-chips\n [inputId]=\"_field.id || _field.name\"\n [formControl]=\"formControl()\"\n [placeholder]=\"_field.placeholder\"\n [allowDuplicated]=\"false\"\n [addOnTab]=\"true\"\n [addOnBlur]=\"true\"\n (onAdd)=\"_field.onAdd ? _field.onAdd($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onChipClick)=\"_field.onChipClick ? _field.onChipClick($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [keyFilter]=\"_field.keyFilter\"\n >\n <ng-template\n let-item\n pTemplate=\"item\"\n >\n <span\n class=\"chip-content\"\n [sTooltip]=\"item\"\n >\n {{ item }}\n </span>\n </ng-template>\n </s-chips>\n } @else {\n <s-chips\n [inputId]=\"_field.id || _field.name\"\n [formControl]=\"formControl()\"\n [placeholder]=\"_field.placeholder\"\n [allowDuplicated]=\"false\"\n [addOnTab]=\"true\"\n [addOnBlur]=\"true\"\n (onAdd)=\"_field.onAdd ? _field.onAdd($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onChipClick)=\"_field.onChipClick ? _field.onChipClick($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n >\n <ng-template\n let-item\n pTemplate=\"item\"\n >\n <span\n class=\"chip-content\"\n [sTooltip]=\"item\"\n >\n {{ item }}\n </span>\n </ng-template>\n </s-chips>\n }\n </div>\n\n @if (_field.showCopyButton && formControl().value?.length > 0 && copyButtonVisible) {\n <button\n class=\"copy-content-button\"\n (click)=\"onCopyFieldContent()\"\n >\n {{ 'platform.angular_components.copy_field_content' | translate }}\n </button>\n }\n\n @if (feedbackMessageVisible) {\n <span class=\"feedback-message\">\n {{ 'platform.angular_components.copied_to_clipboard' | translate }}\n </span>\n }\n</div>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { CountryPhonePickerConfig } from '../../configurations/fields/country-phone-picker-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: './country-phone-picker-field.component.html',\n})\nexport class CountryPhonePickerFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n field = input.required<CountryPhonePickerConfig>();\n formControl = input.required<FormControl>();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n\n","@let _field = field();\n@if (countryPhonePicker.phoneInput?.nativeElement) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"countryPhonePicker.phoneInput?.nativeElement\"\n ></s-field-label>\n}\n\n<s-country-phone-picker\n #countryPhonePicker\n [formControl]=\"formControl()\"\n [ordination]=\"_field.ordination\"\n [countries]=\"_field.countries\"\n (selected)=\"_field.onSelected($event)\"\n (focusLost)=\"_field.onFocusLost ? _field.onFocusLost($event) : null\"\n>\n</s-country-phone-picker>\n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnInit,\n viewChild,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { currencies, CurrencyService } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { InputMask } from 'primeng/inputmask';\nimport { first } from 'rxjs/operators';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { CurrencyFieldConfig } from '../../configurations/fields/currency-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\n\n/**\n * @deprecated Should use bignumber instead\n */\n@Component({\n templateUrl: 'currency-field.component.html',\n})\nexport class CurrencyFieldComponent implements BaseFieldComponentConfig, OnInit, AfterViewInit {\n private readonly inputRefComponent = viewChild<ElementRef | InputMask>('inputRef');\n field = input.required<CurrencyFieldConfig>();\n formControl = input.required<FormControl>();\n\n fieldUtils = inject(FormFieldUtilsService);\n\n public currencies = currencies;\n public mask?: string;\n\n public inputRef = computed(() => {\n const inputRef = this.inputRefComponent();\n if (!inputRef) {\n return undefined;\n }\n if (inputRef instanceof InputMask) {\n return inputRef.input;\n } else {\n return inputRef.nativeElement;\n }\n });\n\n constructor(\n readonly currencyService: CurrencyService,\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.onLocaleService();\n const field = this.field();\n this.mask = typeof field.mask === 'function' ? field.mask() : field.mask;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field().numberLocaleOptions?.decimalSeparator) {\n this.field().numberLocaleOptions = {\n currencySymbol: this.field().numberLocaleOptions?.currencySymbol,\n thousandsSeparator: this.field().numberLocaleOptions?.thousandsSeparator,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field().numberLocaleOptions?.thousandsSeparator) {\n this.field().numberLocaleOptions = {\n currencySymbol: this.field().numberLocaleOptions!.currencySymbol,\n decimalSeparator: this.field().numberLocaleOptions!.decimalSeparator,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field().numberLocaleOptions?.currencySymbol) {\n this.field().numberLocaleOptions = {\n decimalSeparator: this.field().numberLocaleOptions!.decimalSeparator,\n thousandsSeparator: this.field().numberLocaleOptions!.thousandsSeparator,\n currencySymbol: 'R$',\n };\n }\n },\n error: () =>\n (this.field().numberLocaleOptions = this.field().numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: 'R$',\n }),\n });\n }\n\n parseAlignTo(field: CurrencyFieldConfig) {\n return field.alignTo === 'right' ? NumberAlignmentOption.RIGHT : NumberAlignmentOption.LEFT;\n }\n}\n\n","@let _field = field();\n@if (inputRef()) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!_field.mask;\n<div\n class=\"[input-is-invalid>.button-container>.button-container]:border-[1px] [input-is-invalid>.button-container>.button-container]:border-r-0 [input-is-invalid>.button-container>.button-container]:border-criticality-red [input-is-invalid>.button-container>input]:border-[1px] [input-is-invalid>.button-container>input]:border-criticality-red [input-has-focus>.button-container]:border-[1px] [input-has-focus>.button-container]:border-r-0 [input-has-focus>.button-container]:border-primary flex h-[35px] w-full\"\n [ngClass]=\"{\n '[&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-r-0 [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-criticality-red [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-criticality-red':\n hasMask,\n }\"\n>\n @if (_field.currency || _field.numberLocaleOptions?.currencySymbol) {\n <div\n class=\"button-container flex h-full min-w-10 items-center justify-center rounded-l-[3px] border border-r-0 border-[#c1c1cc] px-[8px]\"\n >\n <span class=\"text-[#212533]\">\n {{\n _field.currency\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\n : _field.numberLocaleOptions?.currencySymbol\n }}\n </span>\n </div>\n }\n\n @if (hasMask) {\n <p-inputMask\n class=\"input-mask\"\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n [mask]=\"mask\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap !rounded-l-[0px]\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\n (onInput)=\"_field.onInput ? _field.onInput($event) : null\"\n ></p-inputMask>\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n class=\"h-full w-full rounded-r-[3px] border border-[#c1c1cc] p-2 outline-none focus:border-[1px] focus:border-primary\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n sNumberInput\n [precision]=\"\n _field.precision\n ? fieldUtils.isFunction(_field.precision)\n ? fieldUtils.trigger(_field.precision)\n : _field.precision\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].precision\n : 15\n \"\n [scale]=\"\n _field.scale\n ? fieldUtils.isFunction(_field.scale)\n ? fieldUtils.trigger(_field.scale)\n : _field.scale\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"parseAlignTo(_field)\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n />\n }\n</div>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, HostListener, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { BlobFieldConfig } from '../../configurations/fields/blob-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'file-upload-field.component.html',\n})\nexport class FileUploadFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n field = input.required<BlobFieldConfig>();\n formControl = input.required<FormControl>();\n\n public inputRef: HTMLInputElement | null = null;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) {}\n\n @HostListener('click')\n public onClick(): void {\n this.dispatchFocusInputRef();\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.inputRef?.dispatchEvent(new Event('blur'));\n }\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input') as HTMLInputElement;\n }\n\n private dispatchFocusInputRef(): void {\n this.inputRef?.dispatchEvent(new Event('focus'));\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<s-file-upload\n [id]=\"_field.id || _field.name\"\n [accept]=\"_field.accept\"\n [files]=\"_field.files\"\n [multiple]=\"_field.multiple\"\n [chooseLabel]=\"_field.chooseLabel\"\n [removeLabel]=\"_field.removeLabel\"\n [cancelLabel]=\"_field.cancelLabel\"\n [successTooltip]=\"_field.successTooltip\"\n (uploadHandler)=\"_field.onUploadFile($event, _field)\"\n (removeFile)=\"_field.onRemoveFile($event.file, _field)\"\n (cancelUpload)=\"_field.onCancelUpload($event, _field)\"\n (downloadFile)=\"_field.onDownloadFile($event, _field)\"\n [formControl]=\"formControl()\"\n [showFileUploadDate]=\"_field.showFileUploadDate\"\n>\n</s-file-upload>\n\n","import { Component, DestroyRef, inject, input, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { LookupFieldConfig } from '../../configurations/fields/lookup-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { delay } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n templateUrl: 'lookup-field.component.html',\n})\nexport class LookupFieldComponent implements BaseFieldComponentConfig, OnInit {\n private readonly _destroyRef = inject(DestroyRef);\n protected gridData: any[] = [];\n protected searchTotalRecords: number = 0;\n protected lookupSuggestions: any[] = [];\n protected searchTotalRecordsLabel: string = '';\n\n field = input.required<LookupFieldConfig>();\n formControl = input.required<FormControl>();\n\n ngOnInit(): void {\n this.setLookupData();\n }\n\n private setLookupData() {\n const field = this.field();\n field.suggestionsObservable\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((suggestions) => (this.lookupSuggestions = suggestions));\n field.searchObservable\n .pipe(takeUntilDestroyed(this._destroyRef), delay(0))\n .subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this.gridData = gridData;\n this.searchTotalRecords = totalRecords;\n this.searchTotalRecordsLabel = searchTotalRecordsLabel as string;\n });\n }\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n>\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple ?? false\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"lookupSuggestions\"\n [dataKey]=\"_field.dataKey\"\n [placeholder]=\"_field.placeholder\"\n [showSearch]=\"_field.showSearch ?? true\"\n [searchFields]=\"_field.searchFields\"\n [searchGridFields]=\"_field.searchGridFields\"\n [searchGridData]=\"gridData\"\n (onLookupRequest)=\"_field.onLookupRequest($event)\"\n (onSearchRequest)=\"_field.onSearchRequest($event)\"\n [lookupDisplayField]=\"_field.lookupDisplayField\"\n [searchTotalRecords]=\"searchTotalRecords\"\n [labelOptions]=\"{\n recordsLabel: _field.recordsLabel,\n recordLabel: _field.recordLabel,\n emptyFieldLabel: _field.emptyFieldLabel,\n selectLabel: _field.selectLabel,\n cancelLabel: _field.cancelLabel,\n clearLabel: _field.clearLabel,\n filterLabel: _field.filterLabel,\n filterTitle: _field.filterTitle,\n searchTotalRecordsLabel: searchTotalRecordsLabel,\n searchEmptyTitle: _field.searchEmptyTitle,\n searchTitle: _field.searchTitle,\n }\"\n (onSelect)=\"_field.onSelect?.($event)\"\n (onUnselect)=\"_field.onUnselect?.($event)\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupAppendTo]=\"_field.appendTo\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n [defaultFilter]=\"_field.defaultFilter ?? []\"\n [autocompleteForceSelection]=\"_field.autocompleteForceSelection ?? true\"\n [showAddOption]=\"_field.showAddOption ?? false\"\n [showEditOption]=\"_field.showEditOption ?? false\"\n [showRemoveOption]=\"_field.showRemoveOption ?? false\"\n [sortableColumnsDisabled]=\"_field.sortableColumnsDisabled ?? []\"\n (onAdd)=\"_field.onAdd ? _field.onAdd() : null\"\n (onEdit)=\"_field.onEdit ? _field.onEdit($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onClearButtonClick)=\"_field.onClearButtonClick ? _field.onClearButtonClick() : null\"\n >\n </s-lookup>\n</div>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { NumberAlignmentOption } from '@seniorsistemas/angular-components/number-input';\nimport { Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { NumberFieldConfig } from '../../configurations/fields/number-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'number-field.component.html',\n styleUrls: ['./number-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NumberFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig, AfterViewInit {\n field = input.required<NumberFieldConfig>();\n formControl = input.required<FormControl>();\n\n fieldUtils = inject(FormFieldUtilsService);\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n public inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly elementRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field().onFocus) {\n this.field().onFocus?.(event);\n }\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field().onInput) {\n this.field().onInput?.(event);\n }\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field().onComplete) {\n this.field().onComplete?.(event);\n }\n });\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get numberAlignmentOption() {\n return NumberAlignmentOption;\n }\n\n private onLocaleService(): void {\n const field = this.field();\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!field.numberLocaleOptions?.decimalSeparator) {\n field.numberLocaleOptions = {\n ...field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator() ?? '',\n };\n }\n\n if (!field.numberLocaleOptions?.thousandsSeparator) {\n field.numberLocaleOptions = {\n ...field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator() ?? '',\n };\n }\n\n if (!field.numberLocaleOptions?.currencySymbol) {\n field.numberLocaleOptions = {\n ...field.numberLocaleOptions,\n currencySymbol: 'R$',\n };\n }\n },\n error: () =>\n (field.numberLocaleOptions = field.numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: 'R$',\n }),\n });\n }\n\n private setInputRef(): void {\n const input = this.elementRef.nativeElement.querySelector('input');\n this.inputRef = input;\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef.nativeElement\"\n />\n}\n\n@let hasMask = !!_field.mask;\n@if (hasMask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"_field.mask ? fieldUtils.getFieldPropertyMask(_field.mask) : null\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n >\n </p-inputMask>\n} @else if (!hasMask) {\n <div class=\"ui-inputgroup\">\n @if (_field.leftAddon) {\n @if (_field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"_field.leftAddon.label\"\n [iconClass]=\"_field.leftAddon.icon\"\n [priority]=\"_field.leftAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.leftAddon)\"\n (clicked)=\"_field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.leftAddon.label) {\n <span>{{ _field.leftAddon.label }}</span>\n } @else if (!_field.leftAddon.label) {\n <span [ngClass]=\"_field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n @if (\n _field.type === 'legacyNumber' && _field.localizedNumber && _field.alignTo === numberAlignmentOption.LEFT\n ) {\n <ng-container *ngTemplateOutlet=\"localizedNumber\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n }\n\n @if (_field.rightAddon) {\n @if (_field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"_field.rightAddon.label\"\n [iconClass]=\"_field.rightAddon.icon\"\n [priority]=\"_field.rightAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.rightAddon)\"\n (clicked)=\"_field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.rightAddon.label) {\n {{ _field.rightAddon.label }}\n } @else if (!_field.rightAddon.label) {\n <span [ngClass]=\"_field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n\n<ng-template #input>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"_field.alignTo ?? numberAlignmentOption.LEFT\"\n ;\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n<ng-template #localizedNumber>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sLocalizedNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { PasswordFieldConfig } from '../../configurations/fields/password-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: './password-field.component.html',\n styleUrls: ['./password-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PasswordFieldComponent implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<PasswordFieldConfig>();\n formControl = input.required<FormControl>();\n\n @Output()\n public onInput: EventEmitter<Event> = new EventEmitter<Event>();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n public passwordVisible = false;\n\n private readonly formUtils = inject(FormFieldUtilsService);\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n public ngOnInit(): void {\n this.formUtils.switchEmptyStringToNull(this.formControl(), this.ngUnsubscribe);\n const field = this.field();\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (field.onFocus) {\n field.onFocus(event);\n }\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event) => {\n if (field.onInput) {\n field.onInput(event);\n }\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (field.onComplete) {\n field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onChangeVisible(): void {\n this.passwordVisible = !this.passwordVisible;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div\n class=\"password-field\"\n [ngClass]=\"{ 'password-field--toggle': _field.showToggle }\"\n>\n <input\n #inputRef\n [type]=\"passwordVisible ? 'text' : 'password'\"\n [id]=\"_field.id || _field.name\"\n class=\"password-input\"\n [name]=\"_field.name\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [showDelay]=\"500\"\n [maxLength]=\"_field.maxLength ?? 9999999\"\n pInputText\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [ngStyle]=\"_field.style\"\n [sPasswordStrength]=\"_field.passwordStrength ? _field.passwordStrength : false\"\n [passwordStrengthDescription]=\"\n _field.passwordStrengthOptions?.description ? _field.passwordStrengthOptions!.description : ''\n \"\n [passwordStrengthWeakTitle]=\"\n _field.passwordStrengthOptions?.weakTitle ? _field.passwordStrengthOptions?.weakTitle : ''\n \"\n [passwordStrengthMediumTitle]=\"\n _field.passwordStrengthOptions?.mediumTitle ? _field.passwordStrengthOptions?.mediumTitle : ''\n \"\n [passwordStrengthStrongTitle]=\"\n _field.passwordStrengthOptions?.strongTitle ? _field.passwordStrengthOptions?.strongTitle : ''\n \"\n [passwordStrengthValidation]=\"_field.passwordStrengthOptions?.validation\"\n />\n @if (_field.showToggle) {\n <span class=\"toggle-button\">\n <s-button\n [iconClass]=\"passwordVisible ? 'fas fa-eye-slash' : 'fas fa-eye'\"\n priority=\"default\"\n (clicked)=\"onChangeVisible()\"\n >\n </s-button>\n </span>\n }\n</div>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { ProfilePictureConfig } from '../../configurations/fields/profile-picture';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: './profile-picture-field.component.html',\n})\nexport class ProfilePictureFieldComponent implements BaseFieldComponentConfig {\n field = input.required<ProfilePictureConfig>();\n formControl = input.required<FormControl>();\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<s-profile-picture-picker\n [formControl]=\"formControl()\"\n [simpleTitle]=\"_field.simpleTitle\"\n [actionTitle]=\"_field.actionTitle\"\n [subtitle]=\"_field.subtitle\"\n [aspectRatio]=\"_field.aspectRatio\"\n [cropperLabelsConfig]=\"_field.cropperLabelsConfig\"\n [removeButtonLabel]=\"_field.removeButtonLabel\"\n [changeButtonLabel]=\"_field.changeButtonLabel\"\n [confirmationTexts]=\"_field.confirmationTexts\"\n [maxFileSize]=\"_field.maxFileSize\"\n [accept]=\"_field.accept\"\n [supportedExtensions]=\"_field.supportedExtensions ?? []\"\n (changedImage)=\"_field.onChangeImage ? _field.onChangeImage($event) : null\"\n (removedImage)=\"_field.onRemovedImage ? _field.onRemovedImage() : null\"\n (invalidFile)=\"_field.onInvalidFile ? _field.onInvalidFile($event) : null\"\n>\n</s-profile-picture-picker>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { Component, EventEmitter, input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { RadioButtonFieldConfig } from '../../configurations/fields/radio-button-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'radio-button-field.component.html',\n styles: [\n `\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RadioButtonFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<RadioButtonFieldConfig>();\n formControl = input.required<FormControl>();\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n private _ngUnsubscribe = new Subject<void>();\n\n public ngOnInit(): void {\n const field = this.field();\n this.onFocus.pipe(takeUntil(this._ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (field.onFocus) {\n field.onFocus(event);\n }\n });\n this.onClick.pipe(takeUntil(this._ngUnsubscribe)).subscribe((event: any) => {\n if (field.onClick) {\n field.onClick(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n public onClear(): void {\n this.formControl().reset();\n }\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n@if (_field.verticalAlignment) {\n <div class=\"ui-g\">\n @for (option of _field.options; let i = $index; track i) {\n <div class=\"ui-g-12\">\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{ option: option, index: i }\"\n >\n </ng-container>\n </div>\n }\n @if (_field.showClear && _field.required && !_field.required() && !formControl().disabled) {\n <s-button\n [label]=\"_field.clearLabel || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n} @else {\n <div class=\"ui-g horizontal-radio-buttons-container\">\n @for (option of _field.options; let i = $index; track i) {\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{ option: option, index: i }\"\n >\n </ng-container>\n }\n </div>\n @if (_field.showClear && _field.required && !_field.required() && !formControl().disabled) {\n <s-button\n class=\"horizontal-clear-option\"\n [label]=\"_field.clearLabel || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n}\n\n<ng-template\n #radioButton\n let-option=\"option\"\n let-i=\"index\"\n>\n @let inputId = (_field.id || _field.name) + '-' + i;\n <s-radiobutton\n class=\"radio-button-item\"\n [name]=\"_field.name\"\n [value]=\"option.value\"\n [formControl]=\"formControl()\"\n [inputId]=\"inputId\"\n [sTooltip]=\"_field.tooltip\"\n [label]=\"option.label\"\n (focusedInput)=\"onFocus.next($event)\"\n (inputFocusLost)=\"_field.onBlur ? _field.onBlur($event) : null\"\n />\n</ng-template>\n\n","import { Component, inject, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { SelectFieldConfig } from '../../configurations/fields/select-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'select-field.component.html',\n})\nexport class SelectFieldComponent implements BaseFieldComponentConfig {\n field = input.required<SelectFieldConfig>();\n formControl = input.required<FormControl>();\n fieldUtils = inject(FormFieldUtilsService);\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<s-select\n [multiple]=\"_field.multiple ?? false\"\n [filter]=\"_field.filter ?? false\"\n [id]=\"_field.id || _field.name\"\n [options]=\"fieldUtils.getFieldProperty(_field.options)\"\n [placeholder]=\"_field.placeholder || ' '\"\n [formControl]=\"formControl()\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [group]=\"_field.group ?? false\"\n [showClear]=\"_field.showClear ?? false\"\n [optionLabel]=\"_field.optionLabel ?? 'label'\"\n [optionValue]=\"_field.optionValue ?? 'value'\"\n (clicked)=\"_field.onClick ? _field.onClick($event) : null\"\n (onChange)=\"_field.onChange ? _field.onChange($event) : null\"\n [emptyMessage]=\"_field.emptyMessage ?? null\"\n>\n</s-select>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { InputMask } from 'primeng/inputmask';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { TextFieldConfig } from '../../configurations/fields/text-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'text-field.component.html',\n styleUrls: ['./text-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TextFieldComponent implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<TextFieldConfig>();\n formControl = input.required<FormControl>();\n\n fieldUtils = inject(FormFieldUtilsService);\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef')\n public inputRef: ElementRef | InputMask | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n public ngOnInit() {\n this.fieldUtils.switchEmptyStringToNull(this.formControl(), this.ngUnsubscribe);\n const field = this.field();\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (field.onFocus) {\n field.onFocus(event);\n }\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (field.onInput) {\n field.onInput(event);\n }\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (field.onComplete) {\n field.onComplete(event);\n }\n });\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n get inputElement() {\n if (this.inputRef instanceof InputMask) {\n return this.inputRef?.inputViewChild?.nativeElement;\n } else {\n return this.inputRef?.nativeElement;\n }\n }\n}\n\n","@let _field = field();\n@if (inputElement) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputElement\"\n />\n}\n\n@if (_field.mask) {\n <p-inputMask\n #inputRef\n [type]=\"_field.inputType || 'text'\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [characterPattern]=\"fieldUtils.getFieldProperty(_field.characterPattern ?? '[A-Za-z]')\"\n [unmask]=\"fieldUtils.getFieldProperty(_field.unmask ?? false)\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [readonly]=\"_field.readonly ? _field.readonly() : false\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n >\n </p-inputMask>\n} @else {\n <div class=\"ui-inputgroup\">\n @if (_field.leftAddon) {\n @if (_field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"_field.leftAddon.label\"\n [iconClass]=\"_field.leftAddon.icon\"\n [priority]=\"_field.leftAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.leftAddon)\"\n (clicked)=\"_field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.leftAddon.label) {\n <span>{{ _field.leftAddon.label }}</span>\n } @else if (!_field.leftAddon.label) {\n <span [ngClass]=\"_field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n <ng-container *ngTemplateOutlet=\"_field.keyFilter ? inputKeyFilter : input\"></ng-container>\n\n @if (_field.rightAddon) {\n @if (_field.rightAddon.callback) {\n <s-button\n [label]=\"_field.rightAddon.label\"\n [iconClass]=\"_field.rightAddon.icon\"\n [priority]=\"_field.rightAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.rightAddon)\"\n (clicked)=\"_field.rightAddon.callback()\"\n >\n </s-button>\n } @else if (_field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.rightAddon.label) {\n <span>{{ _field.rightAddon.label }}</span>\n } @else if (!_field.rightAddon.label) {\n <span [ngClass]=\"_field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n<ng-template #input>\n <input\n #inputRef\n [type]=\"_field.inputType || 'text'\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n [maxLength]=\"_field.maxLength ?? 9999999\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [ngStyle]=\"_field.style\"\n [readOnly]=\"_field.readonly ? _field.readonly() : false\"\n />\n</ng-template>\n<ng-template #inputKeyFilter>\n <input\n #inputText\n [type]=\"_field.inputType || 'text'\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n [maxLength]=\"_field.maxLength ?? 9999999\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [pKeyFilter]=\"_field.keyFilter\"\n [formControl]=\"formControl()\"\n [ngStyle]=\"_field.style\"\n [readOnly]=\"_field.readonly ? _field.readonly() : false\"\n />\n</ng-template>\n\n","import { Component, inject, input, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { TextAreaIAFieldConfig } from '../../configurations/fields/text-area-ia-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: './text-area-ia-field.component.html',\n styleUrls: ['./text-area-ia-field.component.scss'],\n})\nexport class TextAreaIAFieldComponent implements BaseFieldComponentConfig, OnInit, OnDestroy {\n field = input.required<TextAreaIAFieldConfig>();\n formControl = input.required<FormControl>();\n\n private readonly formUtils = inject(FormFieldUtilsService);\n private readonly onDestroy$ = new Subject<void>();\n\n ngOnInit(): void {\n this.formUtils.switchEmptyStringToNull(this.formControl(), this.onDestroy$);\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n}\n\n","@let _field = field();\n@if (textAreaIA.textArea()?.renderTextArea) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"textAreaIA.textArea()?.textAreaElement?.nativeElement\"\n ></s-field-label>\n}\n\n<s-text-area-ia\n #textAreaIA\n [rows]=\"_field.rows ?? 5\"\n [formControl]=\"formControl()\"\n [id]=\"_field.name\"\n [readonly]=\"_field.readonly ? _field.readonly() : false\"\n [prompt]=\"_field.prompt ?? ''\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [label]=\"_field.label!\"\n [speechRecognition]=\"_field.speechRecognition ?? false\"\n [keepContext]=\"_field.keepContext\"\n [speechRecognitionPlaceholder]=\"_field.speechRecognitionPlaceholder\"\n [maxLength]=\"_field.maxLength ?? null\"\n [textAreaStyle]=\"_field.style ?? {}\"\n></s-text-area-ia>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, inject, input, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { TextAreaFieldConfig } from '../../configurations/fields/text-area-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'text-area-field.component.html',\n styleUrl: 'text-area-field.component.scss',\n})\nexport class TextAreaFieldComponent implements BaseFieldComponentConfig, AfterViewInit, OnDestroy, OnInit {\n field = input.required<TextAreaFieldConfig>();\n formControl = input.required<FormControl>();\n\n private readonly formUtils = inject(FormFieldUtilsService);\n private readonly onDestroy$ = new Subject<void>();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.formUtils.switchEmptyStringToNull(this.formControl(), this.onDestroy$);\n }\n\n ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n}\n\n","@let _field = field();\n@if (textArea.renderTextArea) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"textArea.textAreaElement.nativeElement\"\n ></s-field-label>\n}\n\n<s-textarea\n #textArea\n [inputId]=\"_field.id || _field.name\"\n [rows]=\"_field.rows ?? textArea.rows\"\n [formControl]=\"formControl()\"\n [inputStyle]=\"_field.style ?? {}\"\n [readOnly]=\"_field.readonly ? _field.readonly() : false\"\n [keyFilter]=\"_field.keyFilter\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [keepContext]=\"_field.keepContext\"\n [speechRecognitionPlaceholder]=\"_field.speechRecognitionPlaceholder\"\n [maxLength]=\"_field.maxLength ?? null\"\n [speechRecognition]=\"_field.speechRecognition ?? false\"\n>\n</s-textarea>\n\n","import { Component, input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { SectionConfig } from '../../../configurations/structure/section';\nimport { BaseStructureComponentConfig } from '../base-structure-component';\n\n@Component({\n selector: 's-section',\n templateUrl: './section.component.html',\n styleUrls: ['./section.component.scss'],\n})\nexport class SectionComponent implements BaseStructureComponentConfig {\n id = input<string>();\n config = input.required<SectionConfig>();\n group = input.required<FormGroup>();\n\n errorMessages = input<any>();\n\n get flexContainer() {\n return this.config().isFlex;\n }\n\n get configs() {\n const _configs = this.config().configs || [];\n return _configs.filter((x: any) => x.visible === undefined || x.visible());\n }\n}\n\n","@let _config = config();\n\n@if (_config.header) {\n <h3 class=\"sds-section-title\">\n {{ _config.header }}\n </h3>\n}\n\n<section\n [class.flex-container]=\"flexContainer\"\n [style.justify-content]=\"_config.justifyContent\"\n [style.align-items]=\"_config.alignItems\"\n>\n @for (conf of configs; let i = $index; track i) {\n <ng-container\n *sDynamicForm=\"{ id: id(), config: conf, group: group(), errorMessages: errorMessages() }\"\n ></ng-container>\n }\n</section>\n\n","import { Component, input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { FieldsetConfig } from '../../../configurations/structure/fieldset';\nimport { BaseStructureComponentConfig } from '../base-structure-component';\n\n@Component({\n templateUrl: './fieldset.component.html',\n})\nexport class FieldsetComponent implements BaseStructureComponentConfig {\n id = input<string>();\n config = input.required<FieldsetConfig>();\n group = input.required<FormGroup>();\n errorMessages = input<any>();\n}\n\n","@let _config = config();\n<s-fieldset\n [toggleable]=\"true\"\n (onBeforeToggle)=\"_config.beforeToggle ? _config.beforeToggle($event) : null\"\n (onAfterToggle)=\"_config.afterToggle ? _config.afterToggle($event) : null\"\n [legend]=\"_config.header ? _config.header : ''\"\n>\n @for (conf of _config.configs; let i = $index; track i) {\n <ng-container\n *sDynamicForm=\"{ id: id(), config: conf, group: group(), errorMessages: errorMessages() }\"\n ></ng-container>\n }\n</s-fieldset>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { StarRatingFieldConfig } from '../../configurations/fields/star-rating-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n selector: 's-star-rating-field',\n templateUrl: './star-rating-field.component.html',\n})\nexport class StarRatingFieldComponent implements BaseFieldComponentConfig {\n field = input.required<StarRatingFieldConfig>();\n formControl = input.required<FormControl>();\n\n onValueChange(newValue: number) {\n if (this.field().valueChange) {\n this.field().valueChange?.(newValue);\n }\n }\n}\n\n","<s-field-label [field]=\"field()\" />\n\n<s-star-rating\n [justifyContent]=\"field().justifyContent ?? 'start'\"\n [starsRange]=\"field().starRange\"\n [formControl]=\"formControl()\"\n (selectedStarChange)=\"onValueChange($event)\"\n>\n</s-star-rating>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { BooleanFieldConfig } from '../../../configurations/fields/boolean-field';\nimport { BaseFieldComponentConfig } from '../../base-field-component';\n\n@Component({\n templateUrl: 'boolean-field.component.html',\n styles: [\n `\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `,\n ],\n})\nexport class BooleanFieldComponent implements BaseFieldComponentConfig {\n field = input.required<BooleanFieldConfig>();\n\n formControl = input.required<FormControl>();\n\n public onClear(): void {\n this.formControl().reset();\n }\n}\n\n","@let _field = field();\n<ng-template\n #radioButtonRender\n let-value=\"value\"\n let-label=\"label\"\n let-inputIdAppend=\"inputIdAppend\"\n>\n @let inputId = (_field.id || _field.name) + inputIdAppend;\n <s-radiobutton\n [name]=\"_field.name\"\n [value]=\"value\"\n [formControl]=\"formControl()\"\n [inputId]=\"inputId\"\n [label]=\"label\"\n (focusedInput)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (inputFocusLost)=\"_field.onBlur ? _field.onBlur($event) : null\"\n />\n</ng-template>\n\n<s-field-label [field]=\"_field\"></s-field-label>\n\n@if (_field.verticalAlignment) {\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: true, label: _field.optionsLabel.true, inputIdAppend: '-1' }\n \"\n />\n </div>\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: false, label: _field.optionsLabel.false, inputIdAppend: '-2' }\n \"\n />\n </div>\n @if (!_field.showClear && !!_field.required && !_field.required()) {\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: null, label: _field.optionsLabel.empty, inputIdAppend: '-3' }\n \"\n />\n </div>\n }\n <div>\n @if (_field.showClear && !_field.required?.() && !formControl().disabled) {\n <s-button\n [label]=\"_field.optionsLabel.clear || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n </div>\n} @else {\n <div class=\"ui-g horizontal-radio-buttons-container\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: true, label: _field.optionsLabel.true, inputIdAppend: '-1' }\n \"\n />\n\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: false, label: _field.optionsLabel.false, inputIdAppend: '-2' }\n \"\n />\n\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: null, label: _field.optionsLabel.empty, inputIdAppend: '-3' }\n \"\n />\n\n @if (_field.showClear && !_field.required?.() && !formControl().disabled) {\n <s-button\n style=\"margin-left: 40px\"\n [label]=\"_field.optionsLabel.clear || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n}\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { Component, EventEmitter, input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { SliderFieldConfig } from '../../configurations/fields/slider-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n templateUrl: 'slider-field.component.html',\n styleUrls: ['./slider-field.component.scss'],\n})\nexport class SliderFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<SliderFieldConfig>();\n formControl = input.required<FormControl>();\n\n @Output()\n public onChange: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onSlideEnd: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject<void>();\n\n public ngOnInit() {\n const field = this.field();\n if (isNullOrUndefined(field.min)) {\n field.min = 0;\n }\n if (isNullOrUndefined(field.max)) {\n field.max = 100;\n }\n if (isNullOrUndefined(field.rangeSeparator)) {\n field.rangeSeparator = ' - ';\n }\n\n if (isNullOrUndefined(field.orientation)) {\n field.orientation = 'horizontal';\n }\n\n if (isNullOrUndefined(field.step)) {\n field.step = 1;\n }\n const defaultValue = field?.range ? [field.min, field.max] : field.min;\n if (!this.isValid(this.formControl().value)) {\n this.formControl().setValue(field.defaultValue ?? defaultValue);\n }\n this.subscribeToFormControlEvents();\n }\n\n private subscribeToFormControlEvents() {\n const field = this.field();\n this.onChange.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (field.onChange) {\n field.onChange(event);\n }\n });\n\n this.onSlideEnd.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (field.onSlideEnd) {\n field.onSlideEnd(event);\n }\n });\n }\n\n private isValid(value: any): boolean {\n if (this.field().range) {\n return Array.isArray(value) && this.isValidRange(value);\n } else {\n return Number.isInteger(value) && this.isValidNoRange(value);\n }\n }\n\n private isValidRange(value: any[]): boolean {\n const field = this.field();\n const [startValue, endValue] = value;\n return (\n startValue >= field?.min! && startValue <= field?.max! && endValue >= field?.min! && endValue <= field?.max!\n );\n }\n\n private isValidNoRange(value: number): boolean {\n return value >= this.field().min! && value <= this.field().max!;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n private getRangeLabel(): string {\n const field = this.field();\n let [value0, value1] = this.formControl().value ?? [0, 0];\n const prefix = field.prefix ?? '';\n const suffix = field.suffix ?? '';\n const separator = field.rangeSeparator ?? ' - ';\n\n if (!value0 || value0 < field.min!) {\n value0 = field.min;\n }\n\n if (!value1 || value1 > field.max!) {\n value1 = field.max;\n }\n\n return `${prefix}${value0}${suffix}${separator}${prefix}${value1}${suffix}`;\n }\n\n private getNonRangeLabel(): string {\n const field = this.field();\n let value = this.formControl()?.value;\n const prefix = field.prefix ?? '';\n const suffix = field.suffix ?? '';\n\n if (!value || value < field.min!) {\n value = field.min;\n }\n\n if (value > field.max!) {\n value = field.max;\n }\n\n return `${prefix}${value}${suffix}`;\n }\n\n public get label() {\n return this.field().range ? this.getRangeLabel() : this.getNonRangeLabel();\n }\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div class=\"slider-group\">\n <div class=\"slider-label\">\n <span>{{ label }}</span>\n </div>\n <s-slider\n #slider\n [id]=\"_field.id || _field.name\"\n [formControl]=\"formControl()\"\n [multiple]=\"_field.range ? _field.range : slider.multiple\"\n [min]=\"_field.min!\"\n [max]=\"_field.max!\"\n [step]=\"_field.step!\"\n (valueChange)=\"_field.onChange ? _field.onChange($event) : null\"\n >\n </s-slider>\n</div>\n\n","export class FieldSizeConfig {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n}\nexport class FieldSize {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n\n constructor(size: FieldSizeConfig) {\n this.sm = size.sm ?? 12;\n this.md = size.md ?? 6;\n this.lg = size.lg ?? 6;\n this.xl = size.xl ?? 6;\n }\n}\n\n","import { Component, inject, input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport {\n ExpandedDynamicStructure,\n ExpandedDynamicType,\n RowConfig,\n RowType,\n} from '../../../configurations/structure/row';\nimport { STRUCTURE_TYPES_LIST, StructureType } from '../../../configurations/structure/structure';\nimport { FieldSize, FieldSizeConfig } from '../../../form-field/configurations/field-size';\nimport { DynamicType } from '../../../form-field/configurations/fields/field';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { BaseStructureComponentConfig } from '../../structure/base-structure-component';\n\n@Component({\n templateUrl: './row.component.html',\n selector: 's-row',\n})\nexport class RowComponent implements BaseStructureComponentConfig {\n id = input<string>();\n config = input.required<RowConfig>();\n\n group = input.required<FormGroup>();\n errorMessages = input<any>();\n\n protected readonly formUtils = inject(FormFieldUtilsService);\n\n protected getErrorMessages(errorMessages: any) {\n if (errorMessages) return this.isFunction(errorMessages) ? errorMessages() : errorMessages;\n return this.errorMessages;\n }\n\n protected isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n protected fieldIsExpandedDynamicType(\n field: ExpandedDynamicType | ExpandedDynamicStructure | DynamicType,\n ): field is ExpandedDynamicType {\n return !STRUCTURE_TYPES_LIST.includes(field.type as StructureType);\n }\n\n protected fieldGridClass(field: RowType & { size?: FieldSizeConfig }) {\n const fieldSize = new FieldSize(field.size ?? {});\n return Object.keys(fieldSize).map((key) => `ui-${key}-${fieldSize![key as keyof FieldSize]}`);\n }\n}\n\n","<div\n class=\"p-fluid\"\n [formGroup]=\"group()\"\n>\n @let rowConfig = config();\n @let rowIsVisible = formUtils.getFieldProperty(rowConfig.visible, true);\n @if (rowIsVisible) {\n <div class=\"ui-g\">\n @for (field of config().fields; let i = $index; track i) {\n @if (fieldIsExpandedDynamicType(field)) {\n @let fieldVisible = formUtils.getFieldProperty(field.visible, true);\n @if (fieldVisible) {\n <div [ngClass]=\"fieldGridClass(field)\">\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n\n @if (field.name) {\n <s-control-errors\n [form]=\"group\"\n [control]=\"group().controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n }\n\n @if (field.footer) {\n @if (field.footer.help) {\n @if (\n field.name &&\n field.footer.help.visible &&\n field.footer.help.visible({\n abstractControl: group().controls[field.name],\n formField: field,\n })\n ) {\n <span style=\"color: #888b99\">\n {{ field.footer.help.text }}\n </span>\n }\n }\n }\n\n @if (field.footer) {\n @if (\n field.name &&\n field.footer.link?.visible({\n abstractControl: group().controls[field.name],\n formField: field,\n })\n ) {\n <div\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link?.label\"\n priority=\"link\"\n (clicked)=\"\n field.footer.link?.onClick({\n abstractControl: group().controls[field.name],\n formField: field,\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n }\n }\n @if (field.bottomTemplate) {\n <ng-template [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n }\n </div>\n }\n } @else {\n @let gridClass = fieldGridClass(field);\n <div [ngClass]=\"gridClass\">\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n </div>\n }\n }\n </div>\n }\n</div>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { BooleanSwitchFieldConfig } from '../../../configurations/fields/boolean-switch-field';\nimport { BaseFieldComponentConfig } from '../../base-field-component';\n\n@Component({\n templateUrl: 'boolean-switch-field.component.html',\n})\nexport class BooleanSwitchFieldComponent implements BaseFieldComponentConfig {\n field = input.required<BooleanSwitchFieldConfig>();\n\n formControl = input.required<FormControl>();\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div class=\"ui-grid ui-grid-responsive ui-grid-pad p-fluid\">\n <div class=\"ui-grid-row\">\n <div class=\"i-grid-col-1\">\n <s-switch\n [id]=\"_field.id || _field.name\"\n [inputName]=\"_field.name\"\n [formControl]=\"formControl()\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n (valueChanged)=\"_field.onChange ? _field.onChange($event) : null\"\n >\n </s-switch>\n </div>\n @if (_field.optionsLabel) {\n <div class=\"i-grid-col-1\">\n @if (formControl().value) {\n <span>{{ _field.optionsLabel.true }}</span>\n } @else {\n <span>{{ _field.optionsLabel.false }}</span>\n }\n </div>\n }\n </div>\n</div>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonModule } from '@seniorsistemas/angular-components/button';\nimport { ControlErrorsModule } from '@seniorsistemas/angular-components/control-errors';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\nimport { DynamicFormComponent } from './dynamic-form.component';\nimport { DynamicFormDirective } from './dynamic-form.directive';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';\nimport { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { LocaleModule } from '@seniorsistemas/angular-components/locale';\nimport { MaskFormatterModule } from '@seniorsistemas/angular-components/mask';\nimport { TableHeaderCheckboxModule } from '@seniorsistemas/angular-components/table-header';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\nimport { BignumberInputModule } from '@seniorsistemas/angular-components/bignumber-input';\nimport { CalendarMaskModule } from '@seniorsistemas/angular-components/calendar-mask';\nimport { ChipsModule } from '@seniorsistemas/angular-components/chips';\nimport { CountryPhonePickerModule } from '@seniorsistemas/angular-components/country-phone-picker';\nimport { FileUploadModule } from '@seniorsistemas/angular-components/file-upload';\nimport { LocalizedNumberInputModule } from '@seniorsistemas/angular-components/localized-number-input';\nimport { MouseEventsModule } from '@seniorsistemas/angular-components/mouse-events';\nimport { SwitchModule } from '@seniorsistemas/angular-components/switch';\nimport { TextAreaIAModule } from '@seniorsistemas/angular-components/text-area-ia';\nimport { HotkeyModule } from 'angular2-hotkeys';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule as PrimeButtonModule } from 'primeng/button';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { PanelModule } from 'primeng/panel';\nimport { TableModule as PrimeNGTableModule } from 'primeng/table';\nimport { FieldLabelComponent } from './components/field-label/field-label.component';\nimport { RowComponent } from './components/grid/row/row.component';\nimport { LookupComponent } from './components/lookup/lookup.component';\nimport { ProfilePictureFieldComponent } from './form-field/fields/profile-picture/profile-picture-field.component';\n\nimport { CheckboxListModule } from '@seniorsistemas/angular-components/checkbox-list';\nimport { FieldsetModule } from '@seniorsistemas/angular-components/fieldset';\nimport { NumberInputModule } from '@seniorsistemas/angular-components/number-input';\nimport { PasswordStrengthModule } from '@seniorsistemas/angular-components/password-strength';\nimport { ProfilePicturePickerModule } from '@seniorsistemas/angular-components/profile-picture-picker';\nimport { SliderModule } from '@seniorsistemas/angular-components/slider';\nimport { StarRatingComponent } from '@seniorsistemas/angular-components/star-rating';\nimport { TextAreaModule } from '@seniorsistemas/angular-components/text-area';\nimport { FieldsetComponent } from './components/structure/fieldset/fieldset.component';\nimport { SectionComponent } from './components/structure/section/section.component';\nimport { AutocompleteFieldComponent } from './form-field/fields/autocomplete/autocomplete-field.component';\nimport { BignumberFieldComponent } from './form-field/fields/bignumber/bignumber-field.component';\nimport { BooleanFieldComponent } from './form-field/fields/boolean/boolean-radio-field/boolean-field.component';\nimport { BooleanSwitchFieldComponent } from './form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component';\nimport { ButtonFieldComponent } from './form-field/fields/button-field/button-field.component';\nimport { CalendarFieldComponent } from './form-field/fields/calendar/calendar-field.component';\nimport { CheckboxFieldComponent } from './form-field/fields/checkbox/checkbox-field.component';\nimport { ChipsFieldComponent } from './form-field/fields/chips/chips-field.component';\nimport { CountryPhonePickerFieldComponent } from './form-field/fields/country-phone-picker/country-phone-picker-field.component';\nimport { CurrencyFieldComponent } from './form-field/fields/currency/currency-field.component';\nimport { FileUploadFieldComponent } from './form-field/fields/file-upload/file-upload-field.component';\nimport { LookupFieldComponent } from './form-field/fields/lookup/lookup-field.component';\nimport { NumberFieldComponent } from './form-field/fields/number/number-field.component';\nimport { PasswordFieldComponent } from './form-field/fields/password/password-field.component';\nimport { RadioButtonFieldComponent } from './form-field/fields/radio-button/radio-button-field.component';\nimport { SelectFieldComponent } from './form-field/fields/select/select-field.component';\nimport { SliderFieldComponent } from './form-field/fields/slider/slider-field.component';\nimport { StarRatingFieldComponent } from './form-field/fields/star-rating/star-rating-field.component';\nimport { TextAreaIAFieldComponent } from './form-field/fields/text-area-ia/text-area-ia-field.component';\nimport { TextAreaFieldComponent } from './form-field/fields/text-area/text-area-field.component';\nimport { TextFieldComponent } from './form-field/fields/text/text-field.component';\n\nimport { DialogComponent } from '@seniorsistemas/angular-components/dialog';\nimport { RadioButtonComponent } from '@seniorsistemas/angular-components/radio-button';\nimport { SelectComponent } from '@seniorsistemas/angular-components/select';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\n\n@NgModule({\n imports: [\n AutoCompleteModule,\n BadgeModule,\n BignumberInputModule,\n ButtonModule,\n CalendarMaskModule,\n ChipsModule,\n CommonModule,\n ControlErrorsModule,\n CountryPhonePickerModule,\n DialogComponent,\n EmptyStateModule,\n FormsModule,\n HotkeyModule,\n InputMaskModule,\n InputTextModule,\n KeyFilterModule,\n LoadingStateModule,\n LocaleModule,\n LocalizedNumberInputModule,\n PanelModule,\n PrimeButtonModule,\n PrimeNGTableModule,\n ReactiveFormsModule,\n TooltipModule,\n FieldsetModule,\n TableHeaderCheckboxModule,\n FileUploadModule,\n InfoSignModule,\n MaskFormatterModule,\n HotkeyModule.forRoot(),\n MouseEventsModule,\n SwitchModule,\n PasswordStrengthModule,\n SliderModule,\n DatePickerModule,\n TranslateModule.forChild(),\n MultiSelectModule,\n ProfilePicturePickerModule,\n NumberInputModule,\n CheckboxListModule,\n TextAreaIAModule,\n TextAreaModule,\n StarRatingComponent,\n SelectComponent,\n TemplateModule,\n RadioButtonComponent,\n FieldLabelComponent,\n ],\n declarations: [\n FileUploadFieldComponent,\n AutocompleteFieldComponent,\n BooleanFieldComponent,\n BooleanSwitchFieldComponent,\n CalendarFieldComponent,\n ChipsFieldComponent,\n CountryPhonePickerFieldComponent,\n DynamicFormComponent,\n DynamicFormDirective,\n FieldsetComponent,\n LookupComponent,\n LookupFieldComponent,\n RadioButtonFieldComponent,\n RowComponent,\n SectionComponent,\n SelectFieldComponent,\n SliderFieldComponent,\n TextAreaFieldComponent,\n TextAreaIAFieldComponent,\n ButtonFieldComponent,\n TextFieldComponent,\n BignumberFieldComponent,\n ProfilePictureFieldComponent,\n PasswordFieldComponent,\n NumberFieldComponent,\n CurrencyFieldComponent,\n CheckboxFieldComponent,\n StarRatingFieldComponent,\n ],\n exports: [DynamicFormComponent, DynamicFormDirective, LookupComponent],\n})\nexport class DynamicFormModule {}\n\n","import { FieldConfig } from './field';\n\nexport class RationButtonOption {\n label: string;\n value?: any;\n\n constructor(config: RationButtonOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n\nexport interface RadioButtonFieldConfig extends FieldConfig {\n type: 'radioButton';\n verticalAlignment?: boolean;\n clearLabel?: string;\n options: RationButtonOption[];\n onBlur?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n showClear?: boolean;\n}\n\ndeclare module './field' {\n export interface FieldTypeMap {\n radioButton: RadioButtonFieldConfig;\n }\n}\n\n","import { AutocompleteFieldComponent } from './dynamic-form/form-field/fields/autocomplete/autocomplete-field.component';\nimport { BignumberFieldComponent } from './dynamic-form/form-field/fields/bignumber/bignumber-field.component';\nimport { ButtonFieldComponent } from './dynamic-form/form-field/fields/button-field/button-field.component';\nimport { CalendarFieldComponent } from './dynamic-form/form-field/fields/calendar/calendar-field.component';\nimport { CheckboxFieldComponent } from './dynamic-form/form-field/fields/checkbox/checkbox-field.component';\nimport { ChipsFieldComponent } from './dynamic-form/form-field/fields/chips/chips-field.component';\nimport { CountryPhonePickerFieldComponent } from './dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component';\nimport { CurrencyFieldComponent } from './dynamic-form/form-field/fields/currency/currency-field.component';\nimport { FileUploadFieldComponent } from './dynamic-form/form-field/fields/file-upload/file-upload-field.component';\nimport { LookupFieldComponent } from './dynamic-form/form-field/fields/lookup/lookup-field.component';\nimport { NumberFieldComponent } from './dynamic-form/form-field/fields/number/number-field.component';\nimport { PasswordFieldComponent } from './dynamic-form/form-field/fields/password/password-field.component';\nimport { ProfilePictureFieldComponent } from './dynamic-form/form-field/fields/profile-picture/profile-picture-field.component';\nimport { RadioButtonFieldComponent } from './dynamic-form/form-field/fields/radio-button/radio-button-field.component';\nimport { SelectFieldComponent } from './dynamic-form/form-field/fields/select/select-field.component';\nimport { TextFieldComponent } from './dynamic-form/form-field/fields/text/text-field.component';\nimport { TextAreaIAFieldComponent } from './dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component';\nimport { TextAreaFieldComponent } from './dynamic-form/form-field/fields/text-area/text-area-field.component';\nimport { SectionComponent } from './dynamic-form/components/structure/section/section.component';\nimport { FieldsetComponent } from './dynamic-form/components/structure/fieldset/fieldset.component';\nimport { StarRatingFieldComponent } from './dynamic-form/form-field/fields/star-rating/star-rating-field.component';\nimport { BooleanFieldComponent } from './dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component';\nimport { SliderFieldComponent } from './dynamic-form/form-field/fields/slider/slider-field.component';\nimport { RowComponent } from './dynamic-form/components/grid/row/row.component';\n\nexport type { BaseFieldComponentConfig } from './dynamic-form/form-field/fields/base-field-component';\nexport { FieldLabelComponent } from './dynamic-form/components/field-label/field-label.component';\n\nexport * from './dynamic-form/dynamic-form.component';\nexport * from './dynamic-form/dynamic-form.directive';\nexport * from './dynamic-form/dynamic-form.module';\nexport * from './dynamic-form/form-field/configurations/fields/text-area-field';\nexport { type ExpandedDynamicType } from './dynamic-form/configurations/structure/row';\n\nexport { type AutocompleteFieldConfig } from './dynamic-form/form-field/configurations/fields/autocomplete-field';\nexport { type BignumberFieldConfig } from './dynamic-form/form-field/configurations/fields/bignumber-field';\nexport { type BlobFieldConfig } from './dynamic-form/form-field/configurations/fields/blob-field';\nexport {\n type BooleanFieldConfig,\n type BooleanOptionsLabelConfig,\n} from './dynamic-form/form-field/configurations/fields/boolean-field';\nexport { type BooleanSwitchFieldConfig } from './dynamic-form/form-field/configurations/fields/boolean-switch-field';\nexport { type ButtonFieldConfig } from './dynamic-form/form-field/configurations/fields/button-field';\nexport { type CalendarFieldConfig } from './dynamic-form/form-field/configurations/fields/calendar-field';\nexport { type CheckboxFieldConfig } from './dynamic-form/form-field/configurations/fields/checkbox-field';\nexport { type ChipsFieldConfig } from './dynamic-form/form-field/configurations/fields/chips-field';\nexport { type CountryPhonePickerConfig } from './dynamic-form/form-field/configurations/fields/country-phone-picker-field';\nexport { type CurrencyFieldConfig } from './dynamic-form/form-field/configurations/fields/currency-field';\nexport {\n type DefaultFilter,\n type LookupFieldConfig,\n type SearchObservable,\n} from './dynamic-form/form-field/configurations/fields/lookup-field';\nexport { type NumberFieldConfig } from './dynamic-form/form-field/configurations/fields/number-field';\nexport {\n type PasswordFieldConfig,\n type PasswordStrengthOptions,\n} from './dynamic-form/form-field/configurations/fields/password-field';\nexport { type ProfilePictureConfig } from './dynamic-form/form-field/configurations/fields/profile-picture';\nexport {\n RationButtonOption,\n type RadioButtonFieldConfig,\n} from './dynamic-form/form-field/configurations/fields/radio-button-field';\nexport {\n type SelectOption,\n type SelectFieldConfig,\n} from './dynamic-form/form-field/configurations/fields/select-field';\nexport { type SliderFieldConfig } from './dynamic-form/form-field/configurations/fields/slider-field';\nexport { type StarRatingFieldConfig } from './dynamic-form/form-field/configurations/fields/star-rating-field';\nexport { type TextAreaFieldConfig } from './dynamic-form/form-field/configurations/fields/text-area-field';\nexport { type TextAreaIAFieldConfig } from './dynamic-form/form-field/configurations/fields/text-area-ia-field';\nexport { type TextFieldConfig } from './dynamic-form/form-field/configurations/fields/text-field';\n\nexport { FieldSize } from './dynamic-form/form-field/configurations/field-size';\n\nexport { NumberFieldComponent } from './dynamic-form/form-field/fields/number/number-field.component';\n\nexport { LookupComponent } from './dynamic-form/components/lookup/lookup.component';\n\nexport type {\n DynamicType,\n FieldConfig,\n FieldType,\n FieldTypeMap,\n} from './dynamic-form/form-field/configurations/fields/field';\n\nexport type { DynamicStructure, StructureType } from './dynamic-form/configurations/structure/structure';\n\nimport { FormDynamicRegistry } from './dynamic-form/configurations/registry';\nexport { FormDynamicRegistry } from './dynamic-form/configurations/registry';\n\nFormDynamicRegistry.registerField(AutocompleteFieldComponent, 'autocomplete');\nFormDynamicRegistry.registerField(BignumberFieldComponent, 'bigNumber');\nFormDynamicRegistry.registerField(FileUploadFieldComponent, 'blob');\nFormDynamicRegistry.registerField(BooleanFieldComponent, 'boolean', 'booleanSwitch');\nFormDynamicRegistry.registerField(ButtonFieldComponent, 'button');\nFormDynamicRegistry.registerField(CalendarFieldComponent, 'calendar', 'date', 'dateTime', 'localDateTime', 'time');\nFormDynamicRegistry.registerField(CheckboxFieldComponent, 'checkbox');\nFormDynamicRegistry.registerField(ChipsFieldComponent, 'chips');\nFormDynamicRegistry.registerField(CountryPhonePickerFieldComponent, 'countryPhonePicker');\nFormDynamicRegistry.registerField(NumberFieldComponent, 'legacyNumber');\nFormDynamicRegistry.registerField(CurrencyFieldComponent, 'currency');\nFormDynamicRegistry.registerField(BignumberFieldComponent, 'decimal', 'number');\nFormDynamicRegistry.registerField(LookupFieldComponent, 'lookup');\nFormDynamicRegistry.registerField(PasswordFieldComponent, 'password');\nFormDynamicRegistry.registerField(ProfilePictureFieldComponent, 'profilePicture');\nFormDynamicRegistry.registerField(RadioButtonFieldComponent, 'radioButton');\nFormDynamicRegistry.registerField(SelectFieldComponent, 'select');\nFormDynamicRegistry.registerField(StarRatingFieldComponent, 'starRating');\nFormDynamicRegistry.registerField(TextAreaFieldComponent, 'textArea');\nFormDynamicRegistry.registerField(TextAreaIAFieldComponent, 'textAreaIA');\nFormDynamicRegistry.registerField(TextFieldComponent, 'text', 'binary');\nFormDynamicRegistry.registerField(SliderFieldComponent, 'slider');\n\nFormDynamicRegistry.registerField(RowComponent, 'row');\nFormDynamicRegistry.registerField(FieldsetComponent, 'fieldset');\nFormDynamicRegistry.registerField(SectionComponent, 'section');\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DynamicFormDirective","i1","i6","i7","i10","i13","i17.DynamicFormComponent","i18","i2","i3.FieldLabelComponent","i4.LookupComponent","takeUntil","i3","i4","i5","i8","i9.FieldLabelComponent","i4.FieldLabelComponent","i6.FieldLabelComponent","i8.FieldLabelComponent","i9","i10.FieldLabelComponent","i7.FieldLabelComponent","i2.DynamicFormDirective","i5.FieldLabelComponent","i5.DynamicFormDirective","PrimeButtonModule","PrimeNGTableModule"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-dynamic-form.mjs","sources":["../../projects/angular-components/dynamic-form/src/lib/dynamic-form/services/form-field-utils.service.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/field-label/field-label.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/field-label/field-label.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/bignumber/bignumber-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/button-field/button-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/button-field/button-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/calendar/calendar-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/checkbox/checkbox-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/chips/chips-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/chips/chips-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/currency/currency-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/currency/currency-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/file-upload/file-upload-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/number/number-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/number/number-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/password/password-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/password/password-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/profile-picture/profile-picture-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/radio-button/radio-button-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/select/select-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/select/select-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text/text-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text/text-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/text-area/text-area-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/registry.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/configurations/structure/structure.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.directive.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/section/section.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/section/section.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/fieldset/fieldset.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/structure/fieldset/fieldset.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/star-rating/star-rating-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/star-rating/star-rating-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/slider/slider-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/slider/slider-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/field-size.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/grid/row/row.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/grid/row/row.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/lookup/lookup.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/components/lookup/lookup.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/autocomplete/autocomplete-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/fields/lookup/lookup-field.component.html","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/dynamic-form.module.ts","../../projects/angular-components/dynamic-form/src/lib/dynamic-form/form-field/configurations/fields/radio-button-field.ts","../../projects/angular-components/dynamic-form/src/lib/public-api.ts","../../projects/angular-components/dynamic-form/src/lib/seniorsistemas-angular-components-dynamic-form.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { Subject, takeUntil } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class FormFieldUtilsService {\n isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n trigger(callback: any) {\n return callback();\n }\n\n fieldPropertyIsDisabled<T extends { disabled?: Function | boolean }>(fieldProperty: T): boolean {\n if (!isNullOrUndefined(fieldProperty)) {\n return typeof fieldProperty.disabled === 'function' ? fieldProperty.disabled() : !!fieldProperty.disabled;\n }\n return false;\n }\n\n getFieldPropertyMask(fieldData: Function | string) {\n return typeof fieldData === 'function' ? fieldData() : fieldData;\n }\n\n getFieldProperty<T, K>(property: T | K, defaultResponse?: K) {\n const response = typeof property === 'function' ? (property as Function)() : property;\n return defaultResponse ? (response ?? defaultResponse) : response;\n }\n\n switchEmptyStringToNull(formControl: FormControl, onDestroy$: Subject<void>) {\n formControl.valueChanges.pipe(takeUntil(onDestroy$)).subscribe((value: unknown) => {\n if (value === '') {\n formControl.setValue(null, { emitEvent: false });\n }\n });\n }\n}\n\n","import { Component, Input } from '@angular/core';\nimport { FieldConfig } from '../../form-field/configurations/fields/field';\nimport { NgClass } from '@angular/common';\nimport { InfoSignModule } from '@seniorsistemas/angular-components/info-sign';\n\n@Component({\n selector: 's-field-label',\n templateUrl: './field-label.component.html',\n imports: [NgClass, InfoSignModule],\n standalone: true,\n})\nexport class FieldLabelComponent {\n @Input({ required: true })\n public field!: FieldConfig;\n\n @Input()\n public fieldContainerRef: HTMLElement | null | undefined = null;\n}\n\n","@if (field.label) {\n <span>\n <label\n *sInfoSign=\"\n field.infoSign ?? '';\n displayTime: field.displayTimeInfoSign ?? 0;\n focusedInputRef: fieldContainerRef;\n useFocusedInputRef: field.useInfoSignFocusedInputRef ?? false\n \"\n [for]=\"field.name\"\n class=\"inline-block\"\n [ngClass]=\"{ required: field.required?.() }\"\n >\n {{ field.label }}\n </label>\n </span>\n}\n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\n\nimport { LocaleService, NumberLocaleOptions } from '@seniorsistemas/angular-components/locale';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { BignumberFieldConfig } from '../../configurations/fields/bignumber-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { NgClass } from '@angular/common';\nimport { BignumberInputModule } from '@seniorsistemas/angular-components/bignumber-input';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { NumberFieldConfig } from '../../configurations/fields/number-field';\n\n@Component({\n templateUrl: 'bignumber-field.component.html',\n styleUrls: ['./bignumber-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n FieldLabelComponent,\n InputMaskModule,\n TooltipDirective,\n ReactiveFormsModule,\n ButtonComponent,\n NgClass,\n BignumberInputModule,\n InputTextModule,\n ],\n})\nexport class BignumberFieldComponent implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<BignumberFieldConfig | NumberFieldConfig>();\n\n formControl = input.required<FormControl>();\n\n fieldUtils = inject(FormFieldUtilsService);\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n const field = this.field();\n field.scale = field.scale ?? 2;\n field.numberLocaleOptions = field.numberLocaleOptions ?? new NumberLocaleOptions();\n if (field.type === 'number') {\n field.autoClear = field.autoClear ?? true;\n field.allowNegative = field.allowNegative ?? true;\n }\n field.alignTo = field.scale ? 'right' : 'left';\n\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field().onFocus) {\n this.field().onFocus?.(event);\n }\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field().onInput) {\n this.field().onInput?.(event);\n }\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field().onComplete) {\n this.field().onComplete?.(event);\n }\n });\n this.onScale();\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field().numberLocaleOptions?.decimalSeparator) {\n this.field().numberLocaleOptions = {\n ...this.field().numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator() ?? '',\n };\n }\n\n if (!this.field().numberLocaleOptions?.thousandsSeparator) {\n this.field().numberLocaleOptions = {\n ...this.field().numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator() ?? '',\n };\n }\n\n if (!this.field().numberLocaleOptions?.currencySymbol) {\n this.field().numberLocaleOptions = {\n ...this.field().numberLocaleOptions,\n currencySymbol:\n this.field().type === 'integer' || this.field().type === 'double' ? '' : 'R$',\n };\n }\n },\n error: () =>\n (this.field().numberLocaleOptions = this.field().numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: this.field().type === 'integer' || this.field().type === 'double' ? '' : 'R$',\n }),\n });\n }\n\n private onScale(): void {\n // Currently, this component is used for the following types\n // 'integer', 'decimal', 'number'\n if (isNullOrUndefined(this.field().scale)) {\n this.field().scale = this.field().type === 'integer' ? 0 : 2;\n }\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef!.nativeElement\"\n />\n}\n@if (_field.mask) {\n @let autoClear = _field.type === 'number' ? (_field.autoClear ?? true) : false;\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [autoClear]=\"autoClear\"\n >\n </p-inputMask>\n} @else {\n <div class=\"ui-inputgroup\">\n @if (_field.leftAddon) {\n @if (_field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"_field.leftAddon.label\"\n [iconClass]=\"_field.leftAddon.icon\"\n [priority]=\"_field.leftAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.leftAddon)\"\n (clicked)=\"_field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.leftAddon.label) {\n <span>\n {{ _field.leftAddon.label }}\n </span>\n }\n @if (!_field.leftAddon.label) {\n <span [ngClass]=\"_field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n @let allowNegative = _field.type === 'number' ? (_field.allowNegative ?? true) : false;\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sBignumberInput\n [allowNegative]=\"allowNegative\"\n [precision]=\"\n fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\n \"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"_field.alignTo ?? 'left'\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n @if (_field.rightAddon) {\n @if (_field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"_field.rightAddon.label\"\n [iconClass]=\"_field.rightAddon.icon\"\n [priority]=\"_field.rightAddon.priority!\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.rightAddon)\"\n (clicked)=\"_field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.rightAddon.label) {\n <span>\n {{ _field.rightAddon.label }}\n </span>\n } @else {\n <span [ngClass]=\"_field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n\n","import { Component, input } from '@angular/core';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { ButtonFieldConfig } from '../../configurations/fields/button-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n selector: 's-button-field',\n templateUrl: './button-field.component.html',\n styleUrl: './button-field.component.scss',\n standalone: true,\n imports: [ButtonComponent],\n})\nexport class ButtonFieldComponent implements BaseFieldComponentConfig {\n field = input.required<ButtonFieldConfig>();\n\n clickedButton($event: Event) {\n if (this.field().onClick) {\n this.field().onClick?.($event);\n }\n }\n\n handleMouseEnter() {\n if (this.field().mouseEnter) {\n this.field().mouseEnter?.(this.field());\n }\n }\n\n handleMouseLeave() {\n if (this.field().mouseLeave) {\n this.field().mouseLeave?.(this.field());\n }\n }\n}\n\n","@let _field = field();\n<section\n [class.full-width]=\"_field.fullWidth\"\n [class.fit-content]=\"!_field.fullWidth\"\n>\n <s-button\n #button\n [label]=\"_field.label\"\n [priority]=\"_field.priority ?? 'default'\"\n [iconClass]=\"_field.iconClass\"\n [disabled]=\"_field.disabled ?? false\"\n [auxiliary]=\"_field.auxiliary ?? false\"\n [caret]=\"_field.caret ?? false\"\n [id]=\"_field.id\"\n [tooltip]=\"_field.tooltip ? _field.tooltip : button.tooltip\"\n (clicked)=\"clickedButton($event)\"\n [iconColor]=\"_field.iconColor\"\n [badge]=\"_field.badge\"\n [animation]=\"_field.animation\"\n [slide]=\"_field.slide ?? false\"\n [menuOptions]=\"_field.menuOptions ?? []\"\n [baseZIndex]=\"_field.baseZIndex ?? 0\"\n [styleClass]=\"_field.styleClass ? _field.styleClass : button.styleClass\"\n [rightIconClass]=\"_field.rightIconClass\"\n [tooltipPosition]=\"_field.tooltipPosition ? _field.tooltipPosition : button.tooltipPosition\"\n [type]=\"_field.type\"\n [size]=\"_field.size\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n >\n </s-button>\n</section>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, inject, input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { PrimeNG } from 'primeng/config';\nimport { DatePicker, DatePickerModule } from 'primeng/datepicker';\nimport { CalendarFieldConfig } from '../../configurations/fields/calendar-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, ReactiveFormsModule, DatePickerModule, TooltipDirective, TranslateModule],\n templateUrl: 'calendar-field.component.html',\n})\nexport class CalendarFieldComponent implements BaseFieldComponentConfig, AfterViewInit, OnInit {\n field = input.required<CalendarFieldConfig>();\n\n formControl = input.required<FormControl>();\n\n private readonly translateService = inject(TranslateService);\n\n public locale = {\n firstDayOfWeek: 0,\n dayNames: [\n this.translateService.instant('platform.angular_components.sunday'),\n this.translateService.instant('platform.angular_components.monday'),\n this.translateService.instant('platform.angular_components.tuesday'),\n this.translateService.instant('platform.angular_components.wednesday'),\n this.translateService.instant('platform.angular_components.thursday'),\n this.translateService.instant('platform.angular_components.friday'),\n this.translateService.instant('platform.angular_components.saturday'),\n ],\n dayNamesShort: [\n this.translateService.instant('platform.angular_components.sunday_short'),\n this.translateService.instant('platform.angular_components.monday_short'),\n this.translateService.instant('platform.angular_components.tuesday_short'),\n this.translateService.instant('platform.angular_components.wednesday_short'),\n this.translateService.instant('platform.angular_components.thursday_short'),\n this.translateService.instant('platform.angular_components.friday_short'),\n this.translateService.instant('platform.angular_components.saturday_short'),\n ],\n dayNamesMin: [\n this.translateService.instant('platform.angular_components.sunday_min'),\n this.translateService.instant('platform.angular_components.monday_min'),\n this.translateService.instant('platform.angular_components.tuesday_min'),\n this.translateService.instant('platform.angular_components.wednesday_min'),\n this.translateService.instant('platform.angular_components.thursday_min'),\n this.translateService.instant('platform.angular_components.friday_min'),\n this.translateService.instant('platform.angular_components.saturday_min'),\n ],\n monthNames: [\n this.translateService.instant('platform.angular_components.january'),\n this.translateService.instant('platform.angular_components.february'),\n this.translateService.instant('platform.angular_components.march'),\n this.translateService.instant('platform.angular_components.april'),\n this.translateService.instant('platform.angular_components.may'),\n this.translateService.instant('platform.angular_components.june'),\n this.translateService.instant('platform.angular_components.july'),\n this.translateService.instant('platform.angular_components.august'),\n this.translateService.instant('platform.angular_components.september'),\n this.translateService.instant('platform.angular_components.october'),\n this.translateService.instant('platform.angular_components.november'),\n this.translateService.instant('platform.angular_components.december'),\n ],\n monthNamesShort: [\n this.translateService.instant('platform.angular_components.january_short'),\n this.translateService.instant('platform.angular_components.february_short'),\n this.translateService.instant('platform.angular_components.march_short'),\n this.translateService.instant('platform.angular_components.april_short'),\n this.translateService.instant('platform.angular_components.may_short'),\n this.translateService.instant('platform.angular_components.june_short'),\n this.translateService.instant('platform.angular_components.july_short'),\n this.translateService.instant('platform.angular_components.august_short'),\n this.translateService.instant('platform.angular_components.september_short'),\n this.translateService.instant('platform.angular_components.october_short'),\n this.translateService.instant('platform.angular_components.november_short'),\n this.translateService.instant('platform.angular_components.december_short'),\n ],\n today: this.translateService.instant('platform.angular_components.today'),\n clear: this.translateService.instant('platform.angular_components.clear'),\n dateFormat: this.translateService.instant('platform.angular_components.date_format'),\n hourFormat: this.translateService.instant('platform.angular_components.hour_format'),\n };\n\n private primengConfig = inject(PrimeNG);\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n const field = this.field();\n if (field.showSeconds === null || field.showSeconds === undefined) {\n switch (field.type) {\n case 'dateTime':\n case 'localDateTime':\n case 'time':\n field.showSeconds = true;\n break;\n }\n }\n\n const _locale = field.calendarLocaleOptions || this.locale;\n this.primengConfig.setTranslation({\n ..._locale,\n });\n }\n\n @ViewChild('calendar') calendar: DatePicker | null = null;\n\n public inputRef: HTMLInputElement | undefined;\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.calendar?.inputfieldViewChild?.nativeElement;\n }\n\n get timeOnly() {\n return this.field()?.type === 'time';\n }\n\n get showTime() {\n const type = this.field()?.type;\n return type === 'localDateTime' || type === 'dateTime' || type === 'time';\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n >\n </s-field-label>\n}\n\n<div [sTooltip]=\"_field.tooltip\">\n <!-- Remover as propriedades [showTransitionOptions] e [hideTransitionOptions] quando atualizar para o PrimeNG v10, esses atributos foram\n usados para remover um bug ocasionado pela animação do componente p-datepicker, bug explicado nas issues: #ERPROM-5534, #ERPROM-8248 e #DSN-1045. -->\n\n <!-- A diretiva sCalendarMask não está suportando seleção múltipla. A forma como ela foi escrita não permite identificar a quantidade de datas\n que estão sendo selecionadas. Removi o uso dela quando está com selectionMode=multiple. Analisar a removeção completa desta diretiva. -->\n @if (_field.selectionMode !== 'multiple') {\n <p-datepicker\n #calendar\n sCalendarMask\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"_field.selectionMode\"\n [rangeSeparator]=\"_field.rangeSeparator ? _field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"_field.showSeconds\"\n [showOnFocus]=\"_field.showOnFocus\"\n [formControl]=\"formControl()\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"_field.minDate\"\n [maxDate]=\"_field.maxDate\"\n [defaultDate]=\"_field.defaultDate ? _field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n _field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n _field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"_field.view ? _field.view : calendar.view\"\n [placeholder]=\"_field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"_field.appendTo\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onClose)=\"_field.onClose ? _field.onClose($event) : null\"\n (onTodayClick)=\"_field.onTodayClick ? _field.onTodayClick($event) : null\"\n (onClearClick)=\"_field.onClearClick ? _field.onClearClick($event) : null\"\n (onMonthChange)=\"_field.onMonthChange ? _field.onMonthChange($event) : null\"\n (onYearChange)=\"_field.onYearChange ? _field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n } @else {\n <!-- A única diferença deste bloco é a remoção da diretiva sCalendarMask. -->\n <p-datepicker\n #calendar\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [showIcon]=\"true\"\n [timeOnly]=\"timeOnly\"\n [selectionMode]=\"_field.selectionMode\"\n [rangeSeparator]=\"_field.rangeSeparator ? _field.rangeSeparator : calendar.rangeSeparator\"\n [showTime]=\"showTime\"\n [showSeconds]=\"_field.showSeconds\"\n [showOnFocus]=\"_field.showOnFocus\"\n [formControl]=\"formControl()\"\n [icon]=\"timeOnly ? 'fa fa-clock' : 'fa fa-calendar'\"\n [minDate]=\"_field.minDate\"\n [maxDate]=\"_field.maxDate\"\n [defaultDate]=\"_field.defaultDate ? _field.defaultDate : calendar.defaultDate\"\n [dateFormat]=\"\n _field.calendarLocaleOptions?.dateFormat || 'platform.angular_components.date_format' | translate\n \"\n [hourFormat]=\"\n _field.calendarLocaleOptions?.hourFormat || 'platform.angular_components.hour_format' | translate\n \"\n [view]=\"_field.view ? _field.view : calendar.view\"\n [placeholder]=\"_field.placeholder\"\n inputStyleClass=\"mousetrap\"\n [appendTo]=\"_field.appendTo\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onClose)=\"_field.onClose ? _field.onClose($event) : null\"\n (onTodayClick)=\"_field.onTodayClick ? _field.onTodayClick($event) : null\"\n (onClearClick)=\"_field.onClearClick ? _field.onClearClick($event) : null\"\n (onMonthChange)=\"_field.onMonthChange ? _field.onMonthChange($event) : null\"\n (onYearChange)=\"_field.onYearChange ? _field.onYearChange($event) : null\"\n [showTransitionOptions]=\"'0ms'\"\n [hideTransitionOptions]=\"'0ms'\"\n >\n </p-datepicker>\n }\n</div>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { CheckboxListModule } from '@seniorsistemas/angular-components/checkbox-list';\nimport { CheckboxFieldConfig } from '../../configurations/fields/checkbox-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n@Component({\n standalone: true,\n imports: [ReactiveFormsModule, CheckboxListModule],\n templateUrl: 'checkbox-field.component.html',\n})\nexport class CheckboxFieldComponent implements BaseFieldComponentConfig {\n field = input.required<CheckboxFieldConfig>();\n formControl = input.required<FormControl>();\n}\n\n","<s-checkbox-list\n [data]=\"field().data\"\n [formControl]=\"formControl()\"\n>\n</s-checkbox-list>\n\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { AfterViewInit, ChangeDetectorRef, Component, ElementRef, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { ChipsFieldConfig } from '../../configurations/fields/chips-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { ChipsModule } from '@seniorsistemas/angular-components/chips';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, ChipsModule, ReactiveFormsModule, TranslateModule, TooltipDirective],\n templateUrl: './chips-field.component.html',\n styleUrls: ['./chips-field.component.scss'],\n})\nexport class ChipsFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n field = input.required<ChipsFieldConfig>();\n formControl = input.required<FormControl>();\n\n public feedbackMessageVisible = false;\n public copyButtonVisible = true;\n public inputRef: HTMLElement | null = null;\n\n constructor(\n private readonly clipboard: Clipboard,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) {}\n\n public onCopyFieldContent(): void {\n if (this.formControl().value) {\n this.copyButtonVisible = false;\n this.feedbackMessageVisible = true;\n\n setTimeout(() => {\n this.feedbackMessageVisible = false;\n this.copyButtonVisible = true;\n }, 3000);\n\n const content = this.formControl().value.join(this.field().separator || '\\n');\n\n this.clipboard.copy(content);\n\n if (this.field().onCopy) {\n this.field().onCopy?.(content);\n }\n }\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div class=\"chips-field-wrapper\">\n <div style=\"width: 100%\">\n @if (_field.keyFilter) {\n <s-chips\n [inputId]=\"_field.id || _field.name\"\n [formControl]=\"formControl()\"\n [placeholder]=\"_field.placeholder\"\n [allowDuplicated]=\"false\"\n [addOnTab]=\"true\"\n [addOnBlur]=\"true\"\n (onAdd)=\"_field.onAdd ? _field.onAdd($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onChipClick)=\"_field.onChipClick ? _field.onChipClick($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [keyFilter]=\"_field.keyFilter\"\n >\n <ng-template\n let-item\n pTemplate=\"item\"\n >\n <span\n class=\"chip-content\"\n [sTooltip]=\"item\"\n >\n {{ item }}\n </span>\n </ng-template>\n </s-chips>\n } @else {\n <s-chips\n [inputId]=\"_field.id || _field.name\"\n [formControl]=\"formControl()\"\n [placeholder]=\"_field.placeholder\"\n [allowDuplicated]=\"false\"\n [addOnTab]=\"true\"\n [addOnBlur]=\"true\"\n (onAdd)=\"_field.onAdd ? _field.onAdd($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onChipClick)=\"_field.onChipClick ? _field.onChipClick($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n >\n <ng-template\n let-item\n pTemplate=\"item\"\n >\n <span\n class=\"chip-content\"\n [sTooltip]=\"item\"\n >\n {{ item }}\n </span>\n </ng-template>\n </s-chips>\n }\n </div>\n\n @if (_field.showCopyButton && formControl().value?.length > 0 && copyButtonVisible) {\n <button\n class=\"copy-content-button\"\n (click)=\"onCopyFieldContent()\"\n >\n {{ 'platform.angular_components.copy_field_content' | translate }}\n </button>\n }\n\n @if (feedbackMessageVisible) {\n <span class=\"feedback-message\">\n {{ 'platform.angular_components.copied_to_clipboard' | translate }}\n </span>\n }\n</div>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { CountryPhonePickerConfig } from '../../configurations/fields/country-phone-picker-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { CountryPhonePickerModule } from '@seniorsistemas/angular-components/country-phone-picker';\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, CountryPhonePickerModule, ReactiveFormsModule],\n templateUrl: './country-phone-picker-field.component.html',\n})\nexport class CountryPhonePickerFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n field = input.required<CountryPhonePickerConfig>();\n formControl = input.required<FormControl>();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n\n","@let _field = field();\n@if (countryPhonePicker.phoneInput?.nativeElement) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"countryPhonePicker.phoneInput?.nativeElement\"\n ></s-field-label>\n}\n\n<s-country-phone-picker\n #countryPhonePicker\n [formControl]=\"formControl()\"\n [ordination]=\"_field.ordination\"\n [countries]=\"_field.countries\"\n (selected)=\"_field.onSelected($event)\"\n (focusLost)=\"_field.onFocusLost ? _field.onFocusLost($event) : null\"\n>\n</s-country-phone-picker>\n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnInit,\n viewChild,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { currencies, CurrencyService } from '@seniorsistemas/angular-components/currency';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { InputMask, InputMaskModule } from 'primeng/inputmask';\nimport { first } from 'rxjs/operators';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { CurrencyFieldConfig } from '../../configurations/fields/currency-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { NumberAlignmentOption, NumberInputModule } from '@seniorsistemas/angular-components/number-input';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { NgClass } from '@angular/common';\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\n\n/**\n * @deprecated Should use bignumber instead\n */\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, NgClass, InputMaskModule, ReactiveFormsModule, TooltipDirective, NumberInputModule],\n templateUrl: 'currency-field.component.html',\n})\nexport class CurrencyFieldComponent implements BaseFieldComponentConfig, OnInit, AfterViewInit {\n private readonly inputRefComponent = viewChild<ElementRef | InputMask>('inputRef');\n field = input.required<CurrencyFieldConfig>();\n formControl = input.required<FormControl>();\n\n fieldUtils = inject(FormFieldUtilsService);\n\n public currencies = currencies;\n public mask?: string;\n\n public inputRef = computed(() => {\n const inputRef = this.inputRefComponent();\n if (!inputRef) {\n return undefined;\n }\n if (inputRef instanceof InputMask) {\n return inputRef.input;\n } else {\n return inputRef.nativeElement;\n }\n });\n\n constructor(\n readonly currencyService: CurrencyService,\n private readonly localeService: LocaleService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.onLocaleService();\n const field = this.field();\n this.mask = typeof field.mask === 'function' ? field.mask() : field.mask;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n private onLocaleService(): void {\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!this.field().numberLocaleOptions?.decimalSeparator) {\n this.field().numberLocaleOptions = {\n currencySymbol: this.field().numberLocaleOptions?.currencySymbol,\n thousandsSeparator: this.field().numberLocaleOptions?.thousandsSeparator,\n decimalSeparator: this.localeService.getDecimalSeparator(),\n };\n }\n\n if (!this.field().numberLocaleOptions?.thousandsSeparator) {\n this.field().numberLocaleOptions = {\n currencySymbol: this.field().numberLocaleOptions!.currencySymbol,\n decimalSeparator: this.field().numberLocaleOptions!.decimalSeparator,\n thousandsSeparator: this.localeService.getGroupingSeparator(),\n };\n }\n\n if (!this.field().numberLocaleOptions?.currencySymbol) {\n this.field().numberLocaleOptions = {\n decimalSeparator: this.field().numberLocaleOptions!.decimalSeparator,\n thousandsSeparator: this.field().numberLocaleOptions!.thousandsSeparator,\n currencySymbol: 'R$',\n };\n }\n },\n error: () =>\n (this.field().numberLocaleOptions = this.field().numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: 'R$',\n }),\n });\n }\n\n parseAlignTo(field: CurrencyFieldConfig) {\n return field.alignTo === 'right' ? NumberAlignmentOption.RIGHT : NumberAlignmentOption.LEFT;\n }\n}\n\n","@let _field = field();\n@if (inputRef()) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef()\"\n ></s-field-label>\n}\n@let hasMask = !!_field.mask;\n<div\n class=\"[input-is-invalid>.button-container>.button-container]:border-[1px] [input-is-invalid>.button-container>.button-container]:border-r-0 [input-is-invalid>.button-container>.button-container]:border-criticality-red [input-is-invalid>.button-container>input]:border-[1px] [input-is-invalid>.button-container>input]:border-criticality-red [input-has-focus>.button-container]:border-[1px] [input-has-focus>.button-container]:border-r-0 [input-has-focus>.button-container]:border-primary flex h-[35px] w-full\"\n [ngClass]=\"{\n '[&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-r-0 [&:has(.input-mask.ng-invalid.ng-dirty)>.button-container]:border-criticality-red [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-[1px] [&:has(.input-mask.ng-invalid.ng-dirty)>input]:border-criticality-red':\n hasMask,\n }\"\n>\n @if (_field.currency || _field.numberLocaleOptions?.currencySymbol) {\n <div\n class=\"button-container flex h-full min-w-10 items-center justify-center rounded-l-[3px] border border-r-0 border-[#c1c1cc] px-[8px]\"\n >\n <span class=\"text-[#212533]\">\n {{\n _field.currency\n ? currencyService.getCurrencySymbol({ currency: _field.currency() })\n : _field.numberLocaleOptions?.currencySymbol\n }}\n </span>\n </div>\n }\n\n @if (hasMask) {\n <p-inputMask\n class=\"input-mask\"\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n [mask]=\"mask\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap !rounded-l-[0px]\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (onComplete)=\"_field.onComplete ? _field.onComplete($event) : null\"\n (onInput)=\"_field.onInput ? _field.onInput($event) : null\"\n ></p-inputMask>\n } @else if (!hasMask) {\n <input\n #inputRef\n type=\"text\"\n [id]=\"_field.id || _field.name\"\n class=\"h-full w-full rounded-r-[3px] border border-[#c1c1cc] p-2 outline-none focus:border-[1px] focus:border-primary\"\n [name]=\"_field.name\"\n [formControl]=\"formControl()\"\n sNumberInput\n [precision]=\"\n _field.precision\n ? fieldUtils.isFunction(_field.precision)\n ? fieldUtils.trigger(_field.precision)\n : _field.precision\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].precision\n : 15\n \"\n [scale]=\"\n _field.scale\n ? fieldUtils.isFunction(_field.scale)\n ? fieldUtils.trigger(_field.scale)\n : _field.scale\n : _field.currency && _field.currency()\n ? currencies[_field.currency()].scale\n : 2\n \"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"parseAlignTo(_field)\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"_field.onFocus ? _field.onFocus($event) : null\"\n />\n }\n</div>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, HostListener, input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\nimport { BlobFieldConfig } from '../../configurations/fields/blob-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FileUploadModule } from '@seniorsistemas/angular-components/file-upload';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\n@Component({\n standalone: true,\n imports: [FileUploadModule, FieldLabelComponent],\n templateUrl: 'file-upload-field.component.html',\n})\nexport class FileUploadFieldComponent implements BaseFieldComponentConfig, AfterViewInit {\n field = input.required<BlobFieldConfig>();\n formControl = input.required<FormControl>();\n\n public inputRef: HTMLInputElement | null = null;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) {}\n\n @HostListener('click')\n public onClick(): void {\n this.dispatchFocusInputRef();\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.inputRef?.dispatchEvent(new Event('blur'));\n }\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input') as HTMLInputElement;\n }\n\n private dispatchFocusInputRef(): void {\n this.inputRef?.dispatchEvent(new Event('focus'));\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<s-file-upload\n [id]=\"_field.id || _field.name\"\n [accept]=\"_field.accept\"\n [files]=\"_field.files\"\n [multiple]=\"_field.multiple\"\n [chooseLabel]=\"_field.chooseLabel\"\n [removeLabel]=\"_field.removeLabel\"\n [cancelLabel]=\"_field.cancelLabel\"\n [successTooltip]=\"_field.successTooltip\"\n (uploadHandler)=\"_field.onUploadFile($event, _field)\"\n (removeFile)=\"_field.onRemoveFile($event.file, _field)\"\n (cancelUpload)=\"_field.onCancelUpload($event, _field)\"\n (downloadFile)=\"_field.onDownloadFile($event, _field)\"\n [formControl]=\"formControl()\"\n [showFileUploadDate]=\"_field.showFileUploadDate\"\n>\n</s-file-upload>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { LocaleService } from '@seniorsistemas/angular-components/locale';\nimport { LocalizedNumberInputModule } from '@seniorsistemas/angular-components/localized-number-input';\nimport { NumberAlignmentOption, NumberInputModule } from '@seniorsistemas/angular-components/number-input';\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\nimport { InputMaskModule } from 'primeng/inputmask';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { Subject } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { NumberFieldConfig } from '../../configurations/fields/number-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n standalone: true,\n imports: [\n FieldLabelComponent,\n InputMaskModule,\n TooltipDirective,\n ReactiveFormsModule,\n ButtonComponent,\n LocalizedNumberInputModule,\n NgClass,\n NumberInputModule,\n NgTemplateOutlet,\n InputTextModule,\n ],\n templateUrl: 'number-field.component.html',\n styleUrls: ['./number-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class NumberFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig, AfterViewInit {\n field = input.required<NumberFieldConfig>();\n formControl = input.required<FormControl>();\n\n fieldUtils = inject(FormFieldUtilsService);\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n public inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly localeService: LocaleService,\n private readonly elementRef: ElementRef,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n this.onLocaleService();\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (this.field().onFocus) {\n this.field().onFocus?.(event);\n }\n });\n\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field().onInput) {\n this.field().onInput?.(event);\n }\n });\n\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (this.field().onComplete) {\n this.field().onComplete?.(event);\n }\n });\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public get numberAlignmentOption() {\n return NumberAlignmentOption;\n }\n\n private onLocaleService(): void {\n const field = this.field();\n this.localeService\n .getLocale()\n .pipe(first())\n .subscribe({\n next: () => {\n if (!field.numberLocaleOptions?.decimalSeparator) {\n field.numberLocaleOptions = {\n ...field.numberLocaleOptions,\n decimalSeparator: this.localeService.getDecimalSeparator() ?? '',\n };\n }\n\n if (!field.numberLocaleOptions?.thousandsSeparator) {\n field.numberLocaleOptions = {\n ...field.numberLocaleOptions,\n thousandsSeparator: this.localeService.getGroupingSeparator() ?? '',\n };\n }\n\n if (!field.numberLocaleOptions?.currencySymbol) {\n field.numberLocaleOptions = {\n ...field.numberLocaleOptions,\n currencySymbol: 'R$',\n };\n }\n },\n error: () =>\n (field.numberLocaleOptions = field.numberLocaleOptions ?? {\n thousandsSeparator: '.',\n decimalSeparator: ',',\n currencySymbol: 'R$',\n }),\n });\n }\n\n private setInputRef(): void {\n const input = this.elementRef.nativeElement.querySelector('input');\n this.inputRef = input;\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef.nativeElement\"\n />\n}\n\n@let hasMask = !!_field.mask;\n@if (hasMask) {\n <p-inputMask\n #inputRef\n type=\"text\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"_field.mask ? fieldUtils.getFieldPropertyMask(_field.mask) : null\"\n [placeholder]=\"_field.placeholder\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n >\n </p-inputMask>\n} @else if (!hasMask) {\n <div class=\"ui-inputgroup\">\n @if (_field.leftAddon) {\n @if (_field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"_field.leftAddon.label\"\n [iconClass]=\"_field.leftAddon.icon\"\n [priority]=\"_field.leftAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.leftAddon)\"\n (clicked)=\"_field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.leftAddon.label) {\n <span>{{ _field.leftAddon.label }}</span>\n } @else if (!_field.leftAddon.label) {\n <span [ngClass]=\"_field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n @if (\n _field.type === 'legacyNumber' && _field.localizedNumber && _field.alignTo === numberAlignmentOption.LEFT\n ) {\n <ng-container *ngTemplateOutlet=\"localizedNumber\"></ng-container>\n } @else {\n <ng-container *ngTemplateOutlet=\"input\"></ng-container>\n }\n\n @if (_field.rightAddon) {\n @if (_field.rightAddon.callback) {\n <span class=\"addon-button addon-button--right\">\n <s-button\n [label]=\"_field.rightAddon.label\"\n [iconClass]=\"_field.rightAddon.icon\"\n [priority]=\"_field.rightAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.rightAddon)\"\n (clicked)=\"_field.rightAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.rightAddon.label) {\n {{ _field.rightAddon.label }}\n } @else if (!_field.rightAddon.label) {\n <span [ngClass]=\"_field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n\n<ng-template #input>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [scale]=\"fieldUtils.isFunction(_field.scale) ? fieldUtils.trigger(_field.scale) : _field.scale\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [alignTo]=\"_field.alignTo ?? numberAlignmentOption.LEFT\"\n ;\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n<ng-template #localizedNumber>\n <input\n #inputRef\n [id]=\"_field.id || _field.name\"\n type=\"text\"\n [name]=\"_field.name\"\n sLocalizedNumberInput\n [precision]=\"fieldUtils.isFunction(_field.precision) ? fieldUtils.trigger(_field.precision) : _field.precision\"\n [decimalSeparator]=\"_field.numberLocaleOptions?.decimalSeparator\"\n [thousandsSeparator]=\"_field.numberLocaleOptions?.thousandsSeparator\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder\"\n [showDelay]=\"500\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n [formControl]=\"formControl()\"\n />\n</ng-template>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { PasswordFieldConfig } from '../../configurations/fields/password-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { NgClass, NgStyle } from '@angular/common';\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\nimport { PasswordStrengthModule } from '@seniorsistemas/angular-components/password-strength';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { InputTextModule } from 'primeng/inputtext';\n\n@Component({\n templateUrl: './password-field.component.html',\n styleUrls: ['./password-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n FieldLabelComponent,\n NgClass,\n TooltipDirective,\n ReactiveFormsModule,\n NgStyle,\n PasswordStrengthModule,\n ButtonComponent,\n InputTextModule,\n ],\n})\nexport class PasswordFieldComponent implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<PasswordFieldConfig>();\n formControl = input.required<FormControl>();\n\n @Output()\n public onInput: EventEmitter<Event> = new EventEmitter<Event>();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef') inputRef: ElementRef | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n public passwordVisible = false;\n\n private readonly formUtils = inject(FormFieldUtilsService);\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n public ngOnInit(): void {\n this.formUtils.switchEmptyStringToNull(this.formControl(), this.ngUnsubscribe);\n const field = this.field();\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (field.onFocus) {\n field.onFocus(event);\n }\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event) => {\n if (field.onInput) {\n field.onInput(event);\n }\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (field.onComplete) {\n field.onComplete(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onChangeVisible(): void {\n this.passwordVisible = !this.passwordVisible;\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div\n class=\"password-field\"\n [ngClass]=\"{ 'password-field--toggle': _field.showToggle }\"\n>\n <input\n #inputRef\n [type]=\"passwordVisible ? 'text' : 'password'\"\n [id]=\"_field.id || _field.name\"\n class=\"password-input\"\n [name]=\"_field.name\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [showDelay]=\"500\"\n [maxLength]=\"_field.maxLength ?? 9999999\"\n pInputText\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [ngStyle]=\"_field.style\"\n [sPasswordStrength]=\"_field.passwordStrength ? _field.passwordStrength : false\"\n [passwordStrengthDescription]=\"\n _field.passwordStrengthOptions?.description ? _field.passwordStrengthOptions!.description : ''\n \"\n [passwordStrengthWeakTitle]=\"\n _field.passwordStrengthOptions?.weakTitle ? _field.passwordStrengthOptions?.weakTitle : ''\n \"\n [passwordStrengthMediumTitle]=\"\n _field.passwordStrengthOptions?.mediumTitle ? _field.passwordStrengthOptions?.mediumTitle : ''\n \"\n [passwordStrengthStrongTitle]=\"\n _field.passwordStrengthOptions?.strongTitle ? _field.passwordStrengthOptions?.strongTitle : ''\n \"\n [passwordStrengthValidation]=\"_field.passwordStrengthOptions?.validation\"\n />\n @if (_field.showToggle) {\n <span class=\"toggle-button\">\n <s-button\n [iconClass]=\"passwordVisible ? 'fas fa-eye-slash' : 'fas fa-eye'\"\n priority=\"default\"\n (clicked)=\"onChangeVisible()\"\n >\n </s-button>\n </span>\n }\n</div>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { ProfilePictureConfig } from '../../configurations/fields/profile-picture';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { ProfilePicturePickerModule } from '@seniorsistemas/angular-components/profile-picture-picker';\n@Component({\n templateUrl: './profile-picture-field.component.html',\n standalone: true,\n imports: [FieldLabelComponent, ProfilePicturePickerModule, ReactiveFormsModule],\n})\nexport class ProfilePictureFieldComponent implements BaseFieldComponentConfig {\n field = input.required<ProfilePictureConfig>();\n formControl = input.required<FormControl>();\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<s-profile-picture-picker\n [formControl]=\"formControl()\"\n [simpleTitle]=\"_field.simpleTitle\"\n [actionTitle]=\"_field.actionTitle\"\n [subtitle]=\"_field.subtitle\"\n [aspectRatio]=\"_field.aspectRatio\"\n [cropperLabelsConfig]=\"_field.cropperLabelsConfig\"\n [removeButtonLabel]=\"_field.removeButtonLabel\"\n [changeButtonLabel]=\"_field.changeButtonLabel\"\n [confirmationTexts]=\"_field.confirmationTexts\"\n [maxFileSize]=\"_field.maxFileSize\"\n [accept]=\"_field.accept\"\n [supportedExtensions]=\"_field.supportedExtensions ?? []\"\n (changedImage)=\"_field.onChangeImage ? _field.onChangeImage($event) : null\"\n (removedImage)=\"_field.onRemovedImage ? _field.onRemovedImage() : null\"\n (invalidFile)=\"_field.onInvalidFile ? _field.onInvalidFile($event) : null\"\n>\n</s-profile-picture-picker>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { Component, EventEmitter, input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { RadioButtonFieldConfig } from '../../configurations/fields/radio-button-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { RadioButtonComponent } from '@seniorsistemas/angular-components/radio-button';\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\nimport { NgTemplateOutlet } from '@angular/common';\n@Component({\n standalone: true,\n imports: [\n FieldLabelComponent,\n ButtonComponent,\n RadioButtonComponent,\n ReactiveFormsModule,\n TooltipDirective,\n NgTemplateOutlet,\n ],\n templateUrl: 'radio-button-field.component.html',\n styles: [\n `\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class RadioButtonFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<RadioButtonFieldConfig>();\n formControl = input.required<FormControl>();\n\n @Output()\n public onClick: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n private _ngUnsubscribe = new Subject<void>();\n\n public ngOnInit(): void {\n const field = this.field();\n this.onFocus.pipe(takeUntil(this._ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (field.onFocus) {\n field.onFocus(event);\n }\n });\n this.onClick.pipe(takeUntil(this._ngUnsubscribe)).subscribe((event: any) => {\n if (field.onClick) {\n field.onClick(event);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this._ngUnsubscribe.next();\n this._ngUnsubscribe.complete();\n }\n\n public onClear(): void {\n this.formControl().reset();\n }\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n@if (_field.verticalAlignment) {\n <div class=\"ui-g\">\n @for (option of _field.options; let i = $index; track i) {\n <div class=\"ui-g-12\">\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{ option: option, index: i }\"\n >\n </ng-container>\n </div>\n }\n @if (_field.showClear && _field.required && !_field.required() && !formControl().disabled) {\n <s-button\n [label]=\"_field.clearLabel || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n} @else {\n <div class=\"ui-g horizontal-radio-buttons-container\">\n @for (option of _field.options; let i = $index; track i) {\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{ option: option, index: i }\"\n >\n </ng-container>\n }\n </div>\n @if (_field.showClear && _field.required && !_field.required() && !formControl().disabled) {\n <s-button\n class=\"horizontal-clear-option\"\n [label]=\"_field.clearLabel || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n}\n\n<ng-template\n #radioButton\n let-option=\"option\"\n let-i=\"index\"\n>\n @let inputId = (_field.id || _field.name) + '-' + i;\n <s-radiobutton\n class=\"radio-button-item\"\n [name]=\"_field.name\"\n [value]=\"option.value\"\n [formControl]=\"formControl()\"\n [inputId]=\"inputId\"\n [sTooltip]=\"_field.tooltip\"\n [label]=\"option.label\"\n (focusedInput)=\"onFocus.next($event)\"\n (inputFocusLost)=\"_field.onBlur ? _field.onBlur($event) : null\"\n />\n</ng-template>\n\n","import { Component, inject, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { SelectFieldConfig } from '../../configurations/fields/select-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { SelectComponent } from '@seniorsistemas/angular-components/select';\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, SelectComponent, ReactiveFormsModule, TooltipDirective],\n templateUrl: 'select-field.component.html',\n})\nexport class SelectFieldComponent implements BaseFieldComponentConfig {\n field = input.required<SelectFieldConfig>();\n formControl = input.required<FormControl>();\n fieldUtils = inject(FormFieldUtilsService);\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<s-select\n [multiple]=\"_field.multiple ?? false\"\n [filter]=\"_field.filter ?? false\"\n [id]=\"_field.id || _field.name\"\n [options]=\"fieldUtils.getFieldProperty(_field.options)\"\n [placeholder]=\"_field.placeholder || ' '\"\n [formControl]=\"formControl()\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [group]=\"_field.group ?? false\"\n [showClear]=\"_field.showClear ?? false\"\n [optionLabel]=\"_field.optionLabel ?? 'label'\"\n [optionValue]=\"_field.optionValue ?? 'value'\"\n (clicked)=\"_field.onClick ? _field.onClick($event) : null\"\n (onChange)=\"_field.onChange ? _field.onChange($event) : null\"\n [emptyMessage]=\"_field.emptyMessage ?? null\"\n>\n</s-select>\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { InputMask, InputMaskModule } from 'primeng/inputmask';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { TextFieldConfig } from '../../configurations/fields/text-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { KeyFilterModule } from 'primeng/keyfilter';\nimport { InputText } from 'primeng/inputtext';\n\n@Component({\n templateUrl: 'text-field.component.html',\n styleUrls: ['./text-field.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n FieldLabelComponent,\n InputMaskModule,\n TooltipModule,\n ButtonComponent,\n ReactiveFormsModule,\n NgClass,\n KeyFilterModule,\n NgStyle,\n NgTemplateOutlet,\n InputText,\n ],\n})\nexport class TextFieldComponent implements OnInit, AfterViewInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<TextFieldConfig>();\n formControl = input.required<FormControl>();\n\n fieldUtils = inject(FormFieldUtilsService);\n\n @Output()\n public onInput: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onFocus: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onComplete: EventEmitter<any> = new EventEmitter();\n\n @ViewChild('inputRef')\n public inputRef: ElementRef | InputMask | null = null;\n\n private ngUnsubscribe = new Subject<void>();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n public ngOnInit() {\n this.fieldUtils.switchEmptyStringToNull(this.formControl(), this.ngUnsubscribe);\n const field = this.field();\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (field.onFocus) {\n field.onFocus(event);\n }\n });\n this.onInput.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (field.onInput) {\n field.onInput(event);\n }\n });\n this.onComplete.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (field.onComplete) {\n field.onComplete(event);\n }\n });\n }\n\n public ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n get inputElement() {\n if (this.inputRef instanceof InputMask) {\n return this.inputRef?.inputViewChild?.nativeElement;\n } else {\n return this.inputRef?.nativeElement;\n }\n }\n}\n\n","@let _field = field();\n@if (inputElement) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputElement\"\n />\n}\n\n@if (_field.mask) {\n <p-inputMask\n #inputRef\n [type]=\"_field.inputType || 'text'\"\n [inputId]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [mask]=\"fieldUtils.getFieldPropertyMask(_field.mask)\"\n [characterPattern]=\"fieldUtils.getFieldProperty(_field.characterPattern ?? '[A-Za-z]')\"\n [unmask]=\"fieldUtils.getFieldProperty(_field.unmask ?? false)\"\n [placeholder]=\"_field.placeholder ?? ''\"\n slotChar=\"_\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n styleClass=\"mousetrap\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (onFocus)=\"onFocus.next($event)\"\n (onComplete)=\"onComplete.next($event)\"\n (onInput)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [readonly]=\"_field.readonly ? _field.readonly() : false\"\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n >\n </p-inputMask>\n} @else {\n <div class=\"ui-inputgroup\">\n @if (_field.leftAddon) {\n @if (_field.leftAddon.callback) {\n <span class=\"addon-button addon-button--left\">\n <s-button\n [label]=\"_field.leftAddon.label\"\n [iconClass]=\"_field.leftAddon.icon\"\n [priority]=\"_field.leftAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.leftAddon)\"\n (clicked)=\"_field.leftAddon.callback()\"\n >\n </s-button>\n </span>\n }\n @if (!_field.leftAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.leftAddon.label) {\n <span>{{ _field.leftAddon.label }}</span>\n } @else if (!_field.leftAddon.label) {\n <span [ngClass]=\"_field.leftAddon.icon\"></span>\n }\n </span>\n }\n }\n\n <ng-container *ngTemplateOutlet=\"_field.keyFilter ? inputKeyFilter : input\"></ng-container>\n\n @if (_field.rightAddon) {\n @if (_field.rightAddon.callback) {\n <s-button\n [label]=\"_field.rightAddon.label\"\n [iconClass]=\"_field.rightAddon.icon\"\n [priority]=\"_field.rightAddon.priority\"\n [disabled]=\"fieldUtils.fieldPropertyIsDisabled(_field.rightAddon)\"\n (clicked)=\"_field.rightAddon.callback()\"\n >\n </s-button>\n } @else if (_field.rightAddon.callback) {\n <span class=\"ui-inputgroup-addon\">\n @if (_field.rightAddon.label) {\n <span>{{ _field.rightAddon.label }}</span>\n } @else if (!_field.rightAddon.label) {\n <span [ngClass]=\"_field.rightAddon.icon\"></span>\n }\n </span>\n }\n }\n </div>\n}\n<ng-template #input>\n <input\n #inputRef\n [type]=\"_field.inputType || 'text'\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [showDelay]=\"500\"\n [maxLength]=\"_field.maxLength ?? 9999999\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [formControl]=\"formControl()\"\n [ngStyle]=\"_field.style\"\n [readOnly]=\"_field.readonly ? _field.readonly() : false\"\n />\n</ng-template>\n<ng-template #inputKeyFilter>\n <input\n #inputText\n [type]=\"_field.inputType || 'text'\"\n [id]=\"_field.id || _field.name\"\n [name]=\"_field.name\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [showDelay]=\"500\"\n [maxLength]=\"_field.maxLength ?? 9999999\"\n pInputText\n [autocomplete]=\"_field.browserAutocomplete ? 'on' : 'off'\"\n [ngClass]=\"'mousetrap'\"\n (blur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n (focus)=\"onFocus.next($event)\"\n (input)=\"onInput.next($event)\"\n [pKeyFilter]=\"_field.keyFilter\"\n [formControl]=\"formControl()\"\n [ngStyle]=\"_field.style\"\n [readOnly]=\"_field.readonly ? _field.readonly() : false\"\n />\n</ng-template>\n\n","import { Component, inject, input, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { TextAreaIAFieldConfig } from '../../configurations/fields/text-area-ia-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { TextAreaIAModule } from '@seniorsistemas/angular-components/text-area-ia';\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, TextAreaIAModule, ReactiveFormsModule],\n templateUrl: './text-area-ia-field.component.html',\n styleUrls: ['./text-area-ia-field.component.scss'],\n})\nexport class TextAreaIAFieldComponent implements BaseFieldComponentConfig, OnInit, OnDestroy {\n field = input.required<TextAreaIAFieldConfig>();\n formControl = input.required<FormControl>();\n\n private readonly formUtils = inject(FormFieldUtilsService);\n private readonly onDestroy$ = new Subject<void>();\n\n ngOnInit(): void {\n this.formUtils.switchEmptyStringToNull(this.formControl(), this.onDestroy$);\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n}\n\n","@let _field = field();\n@if (textAreaIA.textArea()?.renderTextArea) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"textAreaIA.textArea()?.textAreaElement?.nativeElement\"\n ></s-field-label>\n}\n\n<s-text-area-ia\n #textAreaIA\n [rows]=\"_field.rows ?? 5\"\n [formControl]=\"formControl()\"\n [id]=\"_field.name\"\n [readonly]=\"_field.readonly ? _field.readonly() : false\"\n [prompt]=\"_field.prompt ?? ''\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [label]=\"_field.label!\"\n [speechRecognition]=\"_field.speechRecognition ?? false\"\n [keepContext]=\"_field.keepContext\"\n [speechRecognitionPlaceholder]=\"_field.speechRecognitionPlaceholder\"\n [maxLength]=\"_field.maxLength ?? null\"\n [textAreaStyle]=\"_field.style ?? {}\"\n></s-text-area-ia>\n\n","import { AfterViewInit, ChangeDetectorRef, Component, inject, input, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { TextAreaFieldConfig } from '../../configurations/fields/text-area-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { TextAreaModule } from '@seniorsistemas/angular-components/text-area';\n\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, TextAreaModule, ReactiveFormsModule],\n templateUrl: 'text-area-field.component.html',\n styleUrl: 'text-area-field.component.scss',\n})\nexport class TextAreaFieldComponent implements BaseFieldComponentConfig, AfterViewInit, OnDestroy, OnInit {\n field = input.required<TextAreaFieldConfig>();\n formControl = input.required<FormControl>();\n\n private readonly formUtils = inject(FormFieldUtilsService);\n private readonly onDestroy$ = new Subject<void>();\n\n constructor(private readonly changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.formUtils.switchEmptyStringToNull(this.formControl(), this.onDestroy$);\n }\n\n ngAfterViewInit(): void {\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n}\n\n","@let _field = field();\n@if (textArea.renderTextArea) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"textArea.textAreaElement.nativeElement\"\n ></s-field-label>\n}\n\n<s-textarea\n #textArea\n [inputId]=\"_field.id || _field.name\"\n [rows]=\"_field.rows ?? textArea.rows\"\n [formControl]=\"formControl()\"\n [inputStyle]=\"_field.style ?? {}\"\n [readOnly]=\"_field.readonly ? _field.readonly() : false\"\n [keyFilter]=\"_field.keyFilter\"\n [placeholder]=\"_field.placeholder ?? ''\"\n [keepContext]=\"_field.keepContext\"\n [speechRecognitionPlaceholder]=\"_field.speechRecognitionPlaceholder\"\n [maxLength]=\"_field.maxLength ?? null\"\n [speechRecognition]=\"_field.speechRecognition ?? false\"\n>\n</s-textarea>\n\n","import { Type } from '@angular/core';\nimport { FieldType } from '../form-field/configurations/fields/field';\nimport { StructureType } from './structure/structure';\n\nexport class FormDynamicRegistry {\n private static fields = new Map<FieldType | StructureType, Type<any>>();\n\n static registerField(component: Type<any>, ...types: (FieldType | StructureType)[]) {\n types.forEach((type) => {\n this.fields.set(type, component);\n });\n }\n\n static resolveField(type: FieldType | StructureType) {\n return this.fields.get(type);\n }\n}\n\n","import { ComponentRef, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\nimport { DynamicType } from './form-field/configurations/fields/field';\n\nimport { BaseStructureComponentConfig } from './components/structure/base-structure-component';\nimport { FormDynamicRegistry } from './configurations/registry';\nimport { DynamicStructure as FieldDynamicStructure } from './configurations/structure/structure';\nimport { BaseFieldComponentConfig } from './form-field/fields/base-field-component';\n\nexport abstract class DynamicForm {\n group: FormGroup;\n\n abstract createComponent(viewContainerRef: ViewContainerRef): any;\n abstract updateVariables(component: ComponentRef<any>): void;\n abstract getComponent(): any;\n\n constructor({ group }: { group: FormGroup }) {\n this.group = group;\n }\n}\n\nexport class DynamicField extends DynamicForm {\n field: DynamicType;\n\n constructor({ group, field }: { group: FormGroup; field: DynamicType }) {\n super({\n group,\n });\n this.field = field;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component = viewContainerRef.createComponent(\n this.getComponent(),\n ) as ComponentRef<BaseFieldComponentConfig>;\n component.setInput('field', this.field);\n\n if (!isNullOrUndefined(this.field?.name) && 'formControl' in component.instance) {\n // Must be this way because some teams use name like \"e070emp.codemp\"\n component.setInput('formControl', this.group?.['controls'][this.field.name]);\n }\n\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n if (isNullOrUndefined(this.field?.name)) return;\n component.setInput('field', this.field);\n if ('formControl' in component.instance) {\n component.setInput('formControl', this.group?.['controls'][this.field.name]);\n }\n }\n\n public getComponent() {\n if (isNullOrUndefined(this.field)) {\n throw new Error(`Field is null or undefined.`);\n }\n\n const fieldType = this.field.type;\n const component = FormDynamicRegistry.resolveField(fieldType);\n if (component) {\n return component;\n } else {\n throw new Error(`Trying to use an unsupported type (${this.field?.type}).`);\n }\n }\n}\n\nexport class DynamicStructure extends DynamicForm {\n config: FieldDynamicStructure;\n\n constructor({ group, config }: { group: FormGroup; config: FieldDynamicStructure }) {\n super({\n group,\n });\n\n this.config = config;\n }\n\n public createComponent(viewContainerRef: ViewContainerRef) {\n const component = viewContainerRef.createComponent(\n this.getComponent(),\n ) as ComponentRef<BaseStructureComponentConfig>;\n component.setInput('config', this.config);\n component.setInput('group', this.group);\n return component;\n }\n\n public updateVariables(component: ComponentRef<any>) {\n component.setInput('config', this.config);\n component.setInput('group', this.group);\n }\n\n public getComponent() {\n const structureType = this.config.type;\n const component = FormDynamicRegistry.resolveField(structureType);\n if (component) {\n return component;\n } else {\n throw new Error(`Trying to use an unsupported type (${this.config?.type}).`);\n }\n }\n}\n\n","import { DynamicType } from '../../form-field/configurations/fields/field';\n\nexport interface StructureConfig {\n type: StructureType;\n configs: (DynamicType | DynamicStructure)[];\n header?: string;\n}\n\nexport interface StructureTypeMap {}\nexport type StructureType = keyof StructureTypeMap;\nexport type DynamicStructure = StructureTypeMap[keyof StructureTypeMap];\n\nexport const STRUCTURE_TYPES_LIST: StructureType[] = ['fieldset', 'row', 'section'];\n\n","import { ComponentRef, Directive, inject, Input, OnChanges, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\nimport { DynamicField, DynamicForm, DynamicStructure } from './dynamic-form';\n\nimport {\n DynamicStructure as FieldDynamicStructure,\n STRUCTURE_TYPES_LIST,\n StructureType,\n} from './configurations/structure/structure';\nimport { DynamicType } from './form-field/configurations/fields/field';\n\n@Directive({ selector: '[sDynamicForm]', standalone: true })\nexport class DynamicFormDirective implements OnInit, OnChanges, OnDestroy {\n private id?: string;\n private config!: FieldDynamicStructure | DynamicType;\n private group!: FormGroup;\n private errorMessages?: FormGroup;\n private directiveConfig?: DynamicForm;\n\n @Input()\n set sDynamicForm(context: {\n id?: string;\n config: FieldDynamicStructure | DynamicType;\n group: FormGroup;\n errorMessages?: any;\n }) {\n const { id, config, group, errorMessages } = context;\n this.id = id;\n this.config = config;\n this.group = group;\n this.errorMessages = errorMessages;\n }\n\n public component: ComponentRef<any> | null = null;\n\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n public ngOnInit() {\n if (this.isField(this.config)) {\n if (!this.config.id && this.id) {\n this.config.id = this.id + '-' + this.config.name;\n }\n\n this.directiveConfig = new DynamicField({\n group: this.group,\n field: this.config,\n });\n } else if (this.isStructure(this.config)) {\n this.directiveConfig = new DynamicStructure({\n group: this.group,\n config: this.config,\n });\n } else throw new Error(`Trying to use an unsupported type (${this.getType}).`);\n\n this.component = this.directiveConfig.createComponent(this.viewContainerRef);\n\n if (!isNullOrUndefined(this.component) && this.isStructure(this.config)) {\n this.component.setInput('id', this.id);\n // this.component.setInput('errorMessages', this.errorMessages);\n }\n\n if (this.component && 'errorMessages' in this.component.instance) {\n this.component.setInput('errorMessages', this.errorMessages);\n }\n }\n\n public ngOnChanges() {\n if (this.component) {\n this.directiveConfig?.updateVariables(this.component);\n this.component.instance.errorMessages = this.errorMessages;\n }\n }\n\n public ngOnDestroy(): void {\n this.component?.destroy();\n }\n\n private isField(config: FieldDynamicStructure | DynamicType): config is DynamicType {\n return !this.isStructure(config);\n }\n\n private isStructure(config: FieldDynamicStructure | DynamicType): config is FieldDynamicStructure {\n return STRUCTURE_TYPES_LIST.includes(config.type as StructureType);\n }\n\n private get getType() {\n return this.config.type;\n }\n}\n\n","import { Component, input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { SectionConfig } from '../../../configurations/structure/section';\nimport { BaseStructureComponentConfig } from '../base-structure-component';\nimport { DynamicFormDirective } from '../../../dynamic-form.directive';\n@Component({\n standalone: true,\n imports: [DynamicFormDirective],\n selector: 's-section',\n templateUrl: './section.component.html',\n styleUrls: ['./section.component.scss'],\n})\nexport class SectionComponent implements BaseStructureComponentConfig {\n id = input<string>();\n config = input.required<SectionConfig>();\n group = input.required<FormGroup>();\n\n errorMessages = input<any>();\n\n get flexContainer() {\n return this.config().isFlex;\n }\n\n get configs() {\n const _configs = this.config().configs || [];\n return _configs.filter((x: any) => x.visible === undefined || x.visible());\n }\n}\n\n","@let _config = config();\n\n@if (_config.header) {\n <h3 class=\"sds-section-title\">\n {{ _config.header }}\n </h3>\n}\n\n<section\n [class.flex-container]=\"flexContainer\"\n [style.justify-content]=\"_config.justifyContent\"\n [style.align-items]=\"_config.alignItems\"\n>\n @for (conf of configs; let i = $index; track i) {\n <ng-container\n *sDynamicForm=\"{ id: id(), config: conf, group: group(), errorMessages: errorMessages() }\"\n ></ng-container>\n }\n</section>\n\n","import { Component, input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { FieldsetConfig } from '../../../configurations/structure/fieldset';\nimport { BaseStructureComponentConfig } from '../base-structure-component';\nimport { DynamicFormDirective } from '../../../dynamic-form.directive';\nimport { FieldsetModule } from '@seniorsistemas/angular-components/fieldset';\n@Component({\n standalone: true,\n imports: [DynamicFormDirective, FieldsetModule],\n templateUrl: './fieldset.component.html',\n})\nexport class FieldsetComponent implements BaseStructureComponentConfig {\n id = input<string>();\n config = input.required<FieldsetConfig>();\n group = input.required<FormGroup>();\n errorMessages = input<any>();\n}\n\n","@let _config = config();\n<s-fieldset\n [toggleable]=\"true\"\n (onBeforeToggle)=\"_config.beforeToggle ? _config.beforeToggle($event) : null\"\n (onAfterToggle)=\"_config.afterToggle ? _config.afterToggle($event) : null\"\n [legend]=\"_config.header ? _config.header : ''\"\n>\n @for (conf of _config.configs; let i = $index; track i) {\n <ng-container\n *sDynamicForm=\"{ id: id(), config: conf, group: group(), errorMessages: errorMessages() }\"\n ></ng-container>\n }\n</s-fieldset>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { StarRatingFieldConfig } from '../../configurations/fields/star-rating-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { StarRatingComponent } from '@seniorsistemas/angular-components/star-rating';\n\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, StarRatingComponent, ReactiveFormsModule],\n selector: 's-star-rating-field',\n templateUrl: './star-rating-field.component.html',\n})\nexport class StarRatingFieldComponent implements BaseFieldComponentConfig {\n field = input.required<StarRatingFieldConfig>();\n formControl = input.required<FormControl>();\n\n onValueChange(newValue: number) {\n if (this.field().valueChange) {\n this.field().valueChange?.(newValue);\n }\n }\n}\n\n","<s-field-label [field]=\"field()\" />\n\n<s-star-rating\n [justifyContent]=\"field().justifyContent ?? 'start'\"\n [starsRange]=\"field().starRange\"\n [formControl]=\"formControl()\"\n (selectedStarChange)=\"onValueChange($event)\"\n>\n</s-star-rating>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { BooleanFieldConfig } from '../../../configurations/fields/boolean-field';\nimport { BaseFieldComponentConfig } from '../../base-field-component';\nimport { FieldLabelComponent } from '../../../../components/field-label/field-label.component';\nimport { RadioButtonComponent } from '@seniorsistemas/angular-components/radio-button';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\n\n@Component({\n templateUrl: 'boolean-field.component.html',\n standalone: true,\n imports: [FieldLabelComponent, RadioButtonComponent, ReactiveFormsModule, NgTemplateOutlet, ButtonComponent],\n styles: [\n `\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n `,\n ],\n})\nexport class BooleanFieldComponent implements BaseFieldComponentConfig {\n field = input.required<BooleanFieldConfig>();\n\n formControl = input.required<FormControl>();\n\n public onClear(): void {\n this.formControl().reset();\n }\n}\n\n","@let _field = field();\n<ng-template\n #radioButtonRender\n let-value=\"value\"\n let-label=\"label\"\n let-inputIdAppend=\"inputIdAppend\"\n>\n @let inputId = (_field.id || _field.name) + inputIdAppend;\n <s-radiobutton\n [name]=\"_field.name\"\n [value]=\"value\"\n [formControl]=\"formControl()\"\n [inputId]=\"inputId\"\n [label]=\"label\"\n (focusedInput)=\"_field.onFocus ? _field.onFocus($event) : null\"\n (inputFocusLost)=\"_field.onBlur ? _field.onBlur($event) : null\"\n />\n</ng-template>\n\n<s-field-label [field]=\"_field\"></s-field-label>\n\n@if (_field.verticalAlignment) {\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: true, label: _field.optionsLabel.true, inputIdAppend: '-1' }\n \"\n />\n </div>\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: false, label: _field.optionsLabel.false, inputIdAppend: '-2' }\n \"\n />\n </div>\n @if (!_field.showClear && !!_field.required && !_field.required()) {\n <div class=\"ui-g-12\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: null, label: _field.optionsLabel.empty, inputIdAppend: '-3' }\n \"\n />\n </div>\n }\n <div>\n @if (_field.showClear && !_field.required?.() && !formControl().disabled) {\n <s-button\n [label]=\"_field.optionsLabel.clear || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n </div>\n} @else {\n <div class=\"ui-g horizontal-radio-buttons-container\">\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: true, label: _field.optionsLabel.true, inputIdAppend: '-1' }\n \"\n />\n\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: false, label: _field.optionsLabel.false, inputIdAppend: '-2' }\n \"\n />\n\n <ng-template\n *ngTemplateOutlet=\"\n radioButtonRender;\n context: { value: null, label: _field.optionsLabel.empty, inputIdAppend: '-3' }\n \"\n />\n\n @if (_field.showClear && !_field.required?.() && !formControl().disabled) {\n <s-button\n style=\"margin-left: 40px\"\n [label]=\"_field.optionsLabel.clear || 'Clear selection'\"\n (clicked)=\"onClear()\"\n priority=\"link\"\n >\n </s-button>\n }\n </div>\n}\n\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { Component, EventEmitter, input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\nimport { SliderFieldConfig } from '../../configurations/fields/slider-field';\nimport { BaseFieldComponentConfig } from '../base-field-component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { SliderModule } from '@seniorsistemas/angular-components/slider';\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, SliderModule, ReactiveFormsModule],\n templateUrl: 'slider-field.component.html',\n styleUrls: ['./slider-field.component.scss'],\n})\nexport class SliderFieldComponent implements OnInit, OnDestroy, BaseFieldComponentConfig {\n field = input.required<SliderFieldConfig>();\n formControl = input.required<FormControl>();\n\n @Output()\n public onChange: EventEmitter<any> = new EventEmitter();\n\n @Output()\n public onSlideEnd: EventEmitter<any> = new EventEmitter();\n\n private ngUnsubscribe = new Subject<void>();\n\n public ngOnInit() {\n const field = this.field();\n if (isNullOrUndefined(field.min)) {\n field.min = 0;\n }\n if (isNullOrUndefined(field.max)) {\n field.max = 100;\n }\n if (isNullOrUndefined(field.rangeSeparator)) {\n field.rangeSeparator = ' - ';\n }\n\n if (isNullOrUndefined(field.orientation)) {\n field.orientation = 'horizontal';\n }\n\n if (isNullOrUndefined(field.step)) {\n field.step = 1;\n }\n const defaultValue = field?.range ? [field.min, field.max] : field.min;\n if (!this.isValid(this.formControl().value)) {\n this.formControl().setValue(field.defaultValue ?? defaultValue);\n }\n this.subscribeToFormControlEvents();\n }\n\n private subscribeToFormControlEvents() {\n const field = this.field();\n this.onChange.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: FocusEvent) => {\n if (field.onChange) {\n field.onChange(event);\n }\n });\n\n this.onSlideEnd.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: any) => {\n if (field.onSlideEnd) {\n field.onSlideEnd(event);\n }\n });\n }\n\n private isValid(value: any): boolean {\n if (this.field().range) {\n return Array.isArray(value) && this.isValidRange(value);\n } else {\n return Number.isInteger(value) && this.isValidNoRange(value);\n }\n }\n\n private isValidRange(value: any[]): boolean {\n const field = this.field();\n const [startValue, endValue] = value;\n return (\n startValue >= field?.min! && startValue <= field?.max! && endValue >= field?.min! && endValue <= field?.max!\n );\n }\n\n private isValidNoRange(value: number): boolean {\n return value >= this.field().min! && value <= this.field().max!;\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n private getRangeLabel(): string {\n const field = this.field();\n let [value0, value1] = this.formControl().value ?? [0, 0];\n const prefix = field.prefix ?? '';\n const suffix = field.suffix ?? '';\n const separator = field.rangeSeparator ?? ' - ';\n\n if (!value0 || value0 < field.min!) {\n value0 = field.min;\n }\n\n if (!value1 || value1 > field.max!) {\n value1 = field.max;\n }\n\n return `${prefix}${value0}${suffix}${separator}${prefix}${value1}${suffix}`;\n }\n\n private getNonRangeLabel(): string {\n const field = this.field();\n let value = this.formControl()?.value;\n const prefix = field.prefix ?? '';\n const suffix = field.suffix ?? '';\n\n if (!value || value < field.min!) {\n value = field.min;\n }\n\n if (value > field.max!) {\n value = field.max;\n }\n\n return `${prefix}${value}${suffix}`;\n }\n\n public get label() {\n return this.field().range ? this.getRangeLabel() : this.getNonRangeLabel();\n }\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div class=\"slider-group\">\n <div class=\"slider-label\">\n <span>{{ label }}</span>\n </div>\n <s-slider\n #slider\n [id]=\"_field.id || _field.name\"\n [formControl]=\"formControl()\"\n [multiple]=\"_field.range ? _field.range : slider.multiple\"\n [min]=\"_field.min!\"\n [max]=\"_field.max!\"\n [step]=\"_field.step!\"\n (valueChange)=\"_field.onChange ? _field.onChange($event) : null\"\n >\n </s-slider>\n</div>\n\n","export class FieldSizeConfig {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n}\nexport class FieldSize {\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n\n constructor(size: FieldSizeConfig) {\n this.sm = size.sm ?? 12;\n this.md = size.md ?? 6;\n this.lg = size.lg ?? 6;\n this.xl = size.xl ?? 6;\n }\n}\n\n","import { Component, inject, input } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\n\nimport { NgClass } from '@angular/common';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { ControlErrorsModule } from '@seniorsistemas/angular-components/control-errors';\nimport {\n ExpandedDynamicStructure,\n ExpandedDynamicType,\n RowConfig,\n RowType,\n} from '../../../configurations/structure/row';\nimport { STRUCTURE_TYPES_LIST, StructureType } from '../../../configurations/structure/structure';\nimport { FieldSize, FieldSizeConfig } from '../../../form-field/configurations/field-size';\nimport { DynamicType } from '../../../form-field/configurations/fields/field';\nimport { FormFieldUtilsService } from '../../../services/form-field-utils.service';\nimport { BaseStructureComponentConfig } from '../../structure/base-structure-component';\nimport { DynamicFormDirective } from '../../../dynamic-form.directive';\n\n@Component({\n templateUrl: './row.component.html',\n selector: 's-row',\n standalone: true,\n imports: [ControlErrorsModule, ReactiveFormsModule, NgClass, ButtonComponent, DynamicFormDirective],\n})\nexport class RowComponent implements BaseStructureComponentConfig {\n id = input<string>();\n config = input.required<RowConfig>();\n\n group = input.required<FormGroup>();\n errorMessages = input<any>();\n\n protected readonly formUtils = inject(FormFieldUtilsService);\n\n protected getErrorMessages(errorMessages: any) {\n if (errorMessages) return this.isFunction(errorMessages) ? errorMessages() : errorMessages;\n return this.errorMessages();\n }\n\n protected isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n protected fieldIsExpandedDynamicType(\n field: ExpandedDynamicType | ExpandedDynamicStructure | DynamicType,\n ): field is ExpandedDynamicType {\n return !STRUCTURE_TYPES_LIST.includes(field.type as StructureType);\n }\n\n protected fieldGridClass(field: RowType & { size?: FieldSizeConfig }) {\n const fieldSize = new FieldSize(field.size ?? {});\n return Object.keys(fieldSize).map((key) => `ui-${key}-${fieldSize![key as keyof FieldSize]}`);\n }\n}\n\n","<div\n class=\"p-fluid\"\n [formGroup]=\"group()\"\n>\n @let rowConfig = config();\n @let rowIsVisible = formUtils.getFieldProperty(rowConfig.visible, true);\n @if (rowIsVisible) {\n <div class=\"ui-g\">\n @for (field of config().fields; let i = $index; track i) {\n @if (fieldIsExpandedDynamicType(field)) {\n @let fieldVisible = formUtils.getFieldProperty(field.visible, true);\n @if (fieldVisible) {\n <div [ngClass]=\"fieldGridClass(field)\">\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n\n @if (field.name) {\n <s-control-errors\n [form]=\"group\"\n [control]=\"group().controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n }\n\n @if (field.footer) {\n @if (field.footer.help) {\n @if (\n field.name &&\n field.footer.help.visible &&\n field.footer.help.visible({\n abstractControl: group().controls[field.name],\n formField: field,\n })\n ) {\n <span style=\"color: #888b99\">\n {{ field.footer.help.text }}\n </span>\n }\n }\n }\n\n @if (field.footer) {\n @if (\n field.name &&\n field.footer.link?.visible({\n abstractControl: group().controls[field.name],\n formField: field,\n })\n ) {\n <div\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link?.label\"\n priority=\"link\"\n (clicked)=\"\n field.footer.link?.onClick({\n abstractControl: group().controls[field.name],\n formField: field,\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n }\n }\n @if (field.bottomTemplate) {\n <ng-template [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n }\n </div>\n }\n } @else {\n @let gridClass = fieldGridClass(field);\n <div [ngClass]=\"gridClass\">\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n </div>\n }\n }\n </div>\n }\n</div>\n\n","import { Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { BooleanSwitchFieldConfig } from '../../../configurations/fields/boolean-switch-field';\nimport { BaseFieldComponentConfig } from '../../base-field-component';\nimport { FieldLabelComponent } from '../../../../components/field-label/field-label.component';\nimport { SwitchModule } from '@seniorsistemas/angular-components/switch';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\n\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, SwitchModule, ReactiveFormsModule, TooltipModule],\n templateUrl: 'boolean-switch-field.component.html',\n})\nexport class BooleanSwitchFieldComponent implements BaseFieldComponentConfig {\n field = input.required<BooleanSwitchFieldConfig>();\n\n formControl = input.required<FormControl>();\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div class=\"ui-grid ui-grid-responsive ui-grid-pad p-fluid\">\n <div class=\"ui-grid-row\">\n <div class=\"i-grid-col-1\">\n <s-switch\n [id]=\"_field.id || _field.name\"\n [inputName]=\"_field.name\"\n [formControl]=\"formControl()\"\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n (valueChanged)=\"_field.onChange ? _field.onChange($event) : null\"\n >\n </s-switch>\n </div>\n @if (_field.optionsLabel) {\n <div class=\"i-grid-col-1\">\n @if (formControl().value) {\n <span>{{ _field.optionsLabel.true }}</span>\n } @else {\n <span>{{ _field.optionsLabel.false }}</span>\n }\n </div>\n }\n </div>\n</div>\n\n","import { Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DynamicStructure } from './configurations/structure/structure';\nimport { DynamicType } from './form-field/configurations/fields/field';\nimport { DynamicFormDirective } from './dynamic-form.directive';\n\n@Component({\n standalone: true,\n imports: [DynamicFormDirective],\n selector: 's-dynamic-form',\n templateUrl: './dynamic-form.component.html',\n styleUrls: ['dynamic-form.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class DynamicFormComponent {\n id = input<string>();\n\n configs = input<DynamicStructure[]>([]);\n\n /**\n * @deprecated Use `configs` input instead. Este campo será removido em versões futuras.\n */\n fields = input<DynamicType[]>();\n\n private dynamicTypeToStructure = computed(() => {\n const fields = this.fields();\n if (fields && fields.length) {\n return dynamicTypeToDynamicStructure(fields);\n }\n return undefined;\n });\n\n conf = computed(() => (this.dynamicTypeToStructure() ? this.dynamicTypeToStructure() : this.configs()));\n\n form = input.required<FormGroup>();\n\n errorMessages = input<any>({});\n}\n\n/**\n * Transforma uma lista plana de `DynamicType` em uma estrutura aninhada de campos.\n * * Esta função encapsula os tipos dinâmicos dentro de um objeto de linha ('row'),\n * permitindo que eles sejam consumidos por componentes que esperam a interface `DynamicStructure`.\n *\n * @param {DynamicType[]} dynamicTypes - Array de campos dinâmicos a serem processados.\n * @returns {DynamicStructure} Retorna um array contendo um objeto de estrutura com a propriedade 'fields'.\n * * @example\n * const structure = formatToDynamicStructure(meusCampos);\n * // Retorno esperado: [{ type: 'row', fields: [...] }]\n */\nexport const dynamicTypeToDynamicStructure = (dynamicTypes: DynamicType[]): DynamicStructure[] => {\n const dynamicStructure: DynamicStructure[] = [\n {\n type: 'row',\n fields: dynamicTypes,\n },\n ];\n return dynamicStructure;\n};\n\n","@for (config of conf(); track $index) {\n <ng-container\n *sDynamicForm=\"{\n id: id(),\n config,\n group: form(),\n errorMessages: errorMessages(),\n }\"\n >\n </ng-container>\n}\n","import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n input,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n viewChild,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\n\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { MaskConfig } from '@seniorsistemas/ng2-currency-mask';\nimport { Hotkey, HotkeysService } from 'angular2-hotkeys';\nimport BigNumber from 'bignumber.js';\nimport { SortMeta } from 'primeng/api';\nimport { AutoComplete, AutoCompleteCompleteEvent, AutoCompleteModule } from 'primeng/autocomplete';\nimport { Table, TableModule } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DefaultFilter } from './types/default-filter';\nimport { LabelOptions } from './types/label-options';\n\nimport { LoadingStateIndicators, LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { CalendarLocaleOptions, LocaleModule } from '@seniorsistemas/angular-components/locale';\nimport { CheckDisabled } from '@seniorsistemas/angular-components/shared';\nimport { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';\n\nimport { DialogComponent } from '@seniorsistemas/angular-components/dialog';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { AsyncPipe, NgClass, NgIf, NgSwitch } from '@angular/common';\nimport { EmptyStateModule } from '@seniorsistemas/angular-components/empty-state';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { MaskFormatterModule } from '@seniorsistemas/angular-components/mask';\nimport { TableHeaderCheckboxModule } from '@seniorsistemas/angular-components/table-header';\nimport { DynamicFormComponent, dynamicTypeToDynamicStructure } from '../../dynamic-form.component';\nimport { ExpandedDynamicType } from '../../configurations/structure/row';\nimport { SelectFieldConfig } from '../../form-field/configurations/fields/select-field';\nimport { BignumberFieldConfig } from '../../form-field/configurations/fields/bignumber-field';\nimport { NumberFieldConfig } from '../../form-field/configurations/fields/number-field';\nimport { CurrencyFieldConfig } from '../../form-field/configurations/fields/currency-field';\nimport { TextFieldConfig } from '../../form-field/configurations/fields/text-field';\nimport { DynamicType } from '../../form-field/configurations/fields/field';\nimport { DynamicStructure } from '../../configurations/structure/structure';\nimport { TemplateModule } from '@seniorsistemas/angular-components/template';\n@Component({\n standalone: true,\n imports: [\n AutoCompleteModule,\n FormsModule,\n ReactiveFormsModule,\n DialogComponent,\n TranslateModule,\n DynamicFormComponent,\n ButtonComponent,\n NgClass,\n EmptyStateModule,\n TableModule,\n LoadingStateModule,\n AsyncPipe,\n LocaleModule,\n NgIf,\n BadgeModule,\n MaskFormatterModule,\n NgSwitch,\n TableHeaderCheckboxModule,\n TemplateModule,\n ],\n selector: 's-lookup',\n templateUrl: './lookup.component.html',\n styleUrls: ['./lookup.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => LookupComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapseContent', [\n state(\n 'hidden',\n style({\n width: '10px',\n padding: 0,\n }),\n ),\n state(\n 'visible',\n style({\n width: '*',\n }),\n ),\n transition('visible <=> hidden', [\n group([query('@childCollapseContent', animateChild()), animate('{{transitionParams}}')]),\n ]),\n ]),\n trigger('childCollapseContent', [\n state(\n ':leave',\n style({\n opacity: 0,\n }),\n ),\n state(\n ':enter',\n style({\n opacity: 1,\n }),\n ),\n transition('* <=> *', animate('{{transitionParams}}')),\n ]),\n ],\n})\nexport class LookupComponent implements ControlValueAccessor, OnChanges, OnInit, OnDestroy {\n private readonly lookupDialogContainer = viewChild<ElementRef<HTMLElement>>('dialogContainer');\n protected rowType = 'Row';\n public indicatorLogo = LoadingStateIndicators.Logo;\n public static nextId = 0;\n\n @Input()\n public formControlName?: string;\n\n @Input()\n public id = `s-lookup-${LookupComponent.nextId++}`;\n\n @Input()\n public autocompleteForceSelection = true;\n\n @Input()\n public multiple = false;\n\n @Input({ required: true })\n public dataKey!: string;\n\n @Input()\n public disabled = false;\n\n @Input()\n public showSearch = true;\n\n @Input()\n public lookupSuggestions: any[] = [];\n\n @Input()\n public lookupDisplayField?: string;\n\n @Input()\n public lookupDisplayFieldTooltip = false;\n\n @Input()\n public lookupEmptyMessage?: string;\n\n @Input({ transform: (value: string | undefined) => value ?? 'body' })\n public lookupAppendTo? = 'body';\n\n @Input()\n public searchEmptyDescription?: string;\n\n @Input()\n public searchGridData: any[] = [];\n\n @Input()\n public searchTotalRecords = 0;\n\n @Input()\n public searchFields: DynamicType[] = [];\n\n @Input()\n public searchGridFields: DynamicType[] = [];\n\n @Input()\n public multiSortMeta: SortMeta[] = [];\n\n @Input()\n public placeholder?: string;\n\n @Input()\n public sortableColumnsDisabled: string[] = [];\n\n @Input()\n public lookupRowProps: string[] = [];\n\n @Input()\n public defaultFilter: DefaultFilter[] = [];\n\n @Input()\n public showAddOption = false;\n\n @Input()\n public showEditOption = false;\n\n @Input()\n public showRemoveOption = false;\n\n dialogFullScreen = input(false);\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onLookupRequest = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onSearchRequest = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onFocus = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onBlur = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onKeyUp = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onSelect = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onUnselect = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onClear = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onAdd = new EventEmitter();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onEdit = new EventEmitter<unknown>();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onRemove = new EventEmitter<unknown[]>();\n\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n public onClearButtonClick = new EventEmitter<void>();\n\n @ViewChild(Table, { static: false })\n public table: Table | null = null;\n\n @ViewChild(AutoComplete, { static: false })\n public autocomplete: AutoComplete | null = null;\n\n @Input()\n public labelOptions?: Partial<LabelOptions>;\n\n public value: any;\n public loading = false;\n public animating = false;\n public dialogVisible = false;\n public collapsed = false;\n public selected: any[] = [];\n public formGroupDialog!: FormGroup<any>;\n public transitionOptions = '400ms cubic-bezier(0.86, 0, 0.07, 1)';\n\n protected searchFieldsDynamicStructure: DynamicStructure[] = [];\n\n private onChange?: Function;\n private onTouched?: Function;\n private originalFormValues = {};\n private readonly ngUnsubscribe = new Subject<void>();\n\n constructor(\n private readonly hotkeysService: HotkeysService,\n protected readonly translateService: TranslateService,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n if (!this.searchGridFields.length) {\n this.searchGridFields = this.searchFields.map((item) => {\n return { ...item };\n });\n }\n this.searchFields = this.searchFields.map((value) => {\n return {\n ...value,\n };\n });\n\n this.searchFieldsDynamicStructure = dynamicTypeToDynamicStructure(\n this.searchFields.map((searchField: ExpandedDynamicType) => {\n searchField.size = { sm: 12, md: 12, lg: 12, xl: 12 };\n return {\n ...searchField,\n };\n }),\n );\n\n this.searchGridFields = this.searchGridFields.map((gridField) => {\n const gridType = gridField.type;\n if (gridField.label) {\n (gridField as any)['width'] = this.getColWidth(gridField.label);\n }\n\n if (gridType === 'calendar' || gridType === 'date' || gridType === 'time') {\n const calendarOptions = new CalendarLocaleOptions({ ...gridField.calendarLocaleOptions });\n\n if (calendarOptions?.dateFormat) {\n switch (gridField.type) {\n case 'date':\n calendarOptions.dateFormat = this._convertToMomentDateFormat(calendarOptions.dateFormat);\n break;\n case 'time':\n calendarOptions.dateFormat = this._convertToMomentHourFormat(\n calendarOptions.hourFormat!,\n calendarOptions.dateFormat,\n );\n break;\n }\n gridField.calendarLocaleOptions = calendarOptions;\n }\n }\n\n return gridField;\n });\n\n const hasFieldWithDotInName = this.searchFields.some((field) => field.name.includes('.'));\n if (hasFieldWithDotInName) {\n const fieldsWithDot = this.searchFields\n .filter((item) => item.name.includes('.'))\n .map((item) => item.name)\n .join();\n throw new Error(`This fields: [${fieldsWithDot}] can't have dot in their names, please replace.`);\n }\n const formGroup = this.searchFields.reduce((result: { [key: string]: FormControl }, field) => {\n if (field.name) {\n const defaultValue = 'defaultValue' in field ? field.defaultValue : undefined;\n result[field.name] = new FormControl(defaultValue);\n (this.originalFormValues as any)[field.name] = defaultValue;\n }\n return result;\n }, {});\n\n this.formGroupDialog = new FormGroup(formGroup);\n\n this._subscribeEvents();\n }\n\n public printRecordTotalizer(): string {\n if (this.labelOptions?.searchTotalRecordsLabel) {\n return this.labelOptions?.searchTotalRecordsLabel;\n }\n\n const recordLabel = this.labelOptions?.recordLabel\n ? `${this.searchTotalRecords} ${this.labelOptions?.recordLabel}`\n : this.translateService.instant('platform.angular_components.total_record', {\n count: this.searchTotalRecords,\n });\n\n const recordsLabel = this.labelOptions?.recordsLabel\n ? `${this.searchTotalRecords} ${this.labelOptions?.recordsLabel}`\n : this.translateService.instant('platform.angular_components.total_records', {\n count: this.searchTotalRecords,\n });\n\n return this.searchTotalRecords === 1 ? recordLabel : recordsLabel;\n }\n\n private _convertToMomentHourFormat(hourFormat: string, format: string) {\n if (format === 'dd/mm/yy') {\n // valor padrão para o format.\n return 'LTS';\n }\n\n if (hourFormat === '12') {\n return format\n .replace(/\\bH\\b/, 'h') // hour (12 hour time) (no leading zero)\n .replace(/\\bHH\\b/, 'hh'); // hour (12 hour time)\n }\n\n if (hourFormat === '24') {\n return format\n .replace(/\\bh\\b/, 'H') // hour (24 hour time) (no leading zero)\n .replace(/\\bhh\\b/, 'HH'); // hour (24 hour time)\n }\n\n return format;\n }\n\n private _convertToMomentDateFormat(format: string): string {\n // A ordem dos replaces é importante.\n return format\n .replace(/\\bd\\b/, 'D') // day of month (no leading zero)\n .replace(/\\bdd\\b/, 'DD') // day of month\n .replace(/\\bo\\b/, 'DDD') // day of the year (no leading zero)\n .replace(/\\boo\\b/, 'DDDD') // day of the year\n .replace(/\\bM\\b/, 'MMM') // month name short\n .replace(/\\bMM\\b/, 'MMMM') // month name long\n .replace(/\\bm\\b/, 'M') // month of year (no leading)\n .replace(/\\bmm\\b/, 'MM') // month of year\n .replace(/\\by\\b/, 'YY') // year (two digits)\n .replace(/\\byy\\b/, 'YYYY'); // year (four digits)\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (this.dialogVisible && changes['searchGridData']) {\n this.loading = false;\n }\n\n this._setFocusFilter();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public getGridData() {\n return this.searchGridData;\n }\n\n public getLookupSuggestions() {\n return this.lookupSuggestions;\n }\n\n protected makeSearchRequestParams(event: any) {\n const filters = this.formGroupDialog?.getRawValue();\n const params = { ...event, filterData: filters };\n const { multiSortMeta } = event;\n this.multiSortMeta = multiSortMeta || this.multiSortMeta;\n\n return params;\n }\n\n public lazyLoadGrid(event: any) {\n // Ao definir uma ordenação na tabela do lookup esse método é chamado 2 vezes https://github.com/primefaces/primeng/issues/5480\n const params = this.makeSearchRequestParams(event);\n this.onSearchRequest.next(params);\n }\n\n public onCompleteMethod(event: AutoCompleteCompleteEvent): void {\n if (!this.autocompleteForceSelection) {\n this.onChange?.(this.value === '' ? null : this.value);\n }\n\n this.onLookupRequest.next(event.query);\n }\n\n public setDefaultFilters() {\n if (!this.defaultFilter) return;\n\n this.defaultFilter\n .filter(({ field }) => this.formGroupDialog?.contains(field) && !this.formGroupDialog?.get([field])?.dirty)\n .forEach(({ value, field }) => {\n this.formGroupDialog?.get([field])?.patchValue(value instanceof Function ? value() : value);\n });\n }\n\n @CheckDisabled()\n public async showDialog() {\n this.setDefaultFilters();\n this.searchGridData = [];\n this.onTouched?.();\n this.hotkeysService.pause([...this.hotkeysService.hotkeys]);\n this.setHotkeys();\n\n let selected: any = [];\n if (this.multiple && this.value) {\n selected = selected.concat(this.value);\n } else if (this.value) {\n selected = [this.value];\n }\n this.selected = selected;\n\n this.loading = true;\n this.dialogVisible = true;\n }\n\n setInputs(componentRef: any, configs: any, form: any) {\n componentRef.instance.configs = configs;\n componentRef.instance.form = form;\n\n // chame ngOnChanges manualmente se necessário\n if (typeof componentRef.instance.ngOnChanges === 'function') {\n componentRef.instance.ngOnChanges();\n }\n }\n\n onVisibleChange(visibilityState: boolean) {\n if (visibilityState) {\n return;\n }\n this.hideDialog();\n }\n public hideDialog() {\n if (!this.autocomplete) {\n return;\n }\n const { inputEL, multiInputEl } = this.autocomplete;\n this.dialogVisible = false;\n this.collapsed = false;\n this.hotkeysService.unpause([...this.hotkeysService.pausedHotkeys]);\n if (this.multiple) {\n multiInputEl?.nativeElement?.focus();\n } else {\n inputEL?.nativeElement?.focus();\n }\n }\n\n public search() {\n this.resetTable();\n this.collapsed = true;\n const dialogContainer = this.lookupDialogContainer()?.nativeElement;\n if (dialogContainer) {\n dialogContainer.scrollIntoView({ behavior: 'smooth' });\n }\n }\n\n public clear() {\n this.formGroupDialog?.reset(this.originalFormValues);\n this.resetTable();\n this.onClearButtonClick.emit();\n }\n\n protected resetTable() {\n this.table?.reset();\n }\n\n public select() {\n if (!this.selected.length) return;\n\n const selected = this.selected && (this.multiple ? this.selected : this.selected[0]);\n this.value = selected;\n this.onSelect.next(selected);\n this.hideDialog();\n }\n\n public onSelectionChange(selected: any) {\n if (!selected) return;\n if (Array.isArray(selected)) this.selected = selected;\n else this.selected = [selected];\n }\n\n public registerOnChange(onChange: Function) {\n this.onChange = (value: any) => {\n this.writeValue(value);\n onChange(value);\n };\n }\n\n public registerOnTouched(onTouched: Function) {\n this.onTouched = onTouched;\n }\n\n public writeValue(value: any) {\n this.value = value;\n }\n\n public setDisabledState(disabled: boolean) {\n this.disabled = disabled;\n }\n\n public getFieldValue(obj: any, path: string) {\n return path.split('.').reduce((result, prop) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public getBadgeFromValue(value: unknown, field: SelectFieldConfig) {\n const options = typeof field.options === 'function' ? field.options() : field.options;\n return options?.find((opt) => opt.value === value)?.badge;\n }\n\n public getLabelForValue(value: unknown, field: SelectFieldConfig) {\n const options = typeof field.options === 'function' ? field.options() : field.options;\n if (!options) return `${value}`;\n\n const option = options.find((opt) => opt.value === value);\n return option ? option.label : `${value}`;\n }\n\n public isBooleanValue(obj: any, path: string) {\n const value = this.getFieldValue(obj, path);\n if (value === true || value === false) return true;\n else return false;\n }\n\n public getFieldWidth(col: any) {\n return col.width;\n }\n\n public getBooleanLabel(obj: any, path: string, optionsLabel: BooleanOptionsLabel | undefined) {\n if (!optionsLabel) {\n return;\n }\n if (this.getFieldValue(obj, path)) {\n return optionsLabel.true;\n } else {\n return optionsLabel.false;\n }\n }\n\n public isNumber(obj: any, path: string) {\n return !new BigNumber(this.getFieldValue(obj, path)).isNaN();\n }\n\n public setHotkeys() {\n const clearHotkey = this.newHotkey('alt+shift+l', this.clear.bind(this));\n const findHotkey = this.newHotkey('alt+shift+f', this.search.bind(this));\n const hideHotkey = this.newHotkey('alt+shift+c', this.hideDialog.bind(this));\n const selectHotkey = this.newHotkey('alt+shift+s', this.select.bind(this));\n\n const bindedHotkeys = [clearHotkey, findHotkey, hideHotkey, selectHotkey];\n bindedHotkeys.forEach((hotkey: Hotkey) => this.hotkeysService.add(hotkey));\n }\n\n private newHotkey(combo: string, fn: Function): Hotkey {\n return new Hotkey(combo, () => {\n fn();\n return false;\n }, ['INPUT', 'SELECT', 'TEXTAREA']);\n }\n\n public filterToggle() {\n if (this.animating) return;\n\n this.animating = true;\n this.collapsed = !this.collapsed;\n }\n\n public onToggleDone() {\n this.animating = false;\n }\n\n /**\n * Calculate the table column size. The minimum value is 14.286em, which is equals to 200px duo to the current font size.\n * @param label Column name.\n */\n public getColWidth(label: string) {\n const size = label.length;\n if (size < 14.286) return `14.286em`;\n return `${size}em`;\n }\n\n public getScale(scale: any): number {\n return this.isFunction(scale) ? scale() : scale;\n }\n\n private isFunction(value: any): boolean {\n return value instanceof Function;\n }\n\n public getDoubleMaskConfig(col: NumberFieldConfig | BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: '',\n };\n }\n\n public getMoneyMaskConfig(col: CurrencyFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public getIntegerMaskConfig(col: BignumberFieldConfig | NumberFieldConfig): MaskConfig {\n return {\n scale: 0,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: '',\n };\n }\n\n public getNumberMaskConfig(col: NumberFieldConfig | BignumberFieldConfig): MaskConfig {\n return {\n scale: this.getScale(col.scale),\n decimalSeparator: col.numberLocaleOptions?.decimalSeparator,\n thousandsSeparator: col.numberLocaleOptions?.thousandsSeparator,\n prefix: col.numberLocaleOptions?.currencySymbol,\n };\n }\n\n public parseValueMaskValue(col: DynamicType, rowData: any) {\n if (this.fieldHasMask(col)) {\n const _mask = col.mask;\n const isFunction = this.isFunction(_mask);\n return isFunction ? (_mask as Function)({ value: rowData }) : _mask;\n }\n }\n\n public fieldHasMask(field: DynamicType): field is NumberFieldConfig | BignumberFieldConfig | TextFieldConfig {\n return (\n field.type === 'integer' ||\n field.type === 'number' ||\n field.type === 'double' ||\n field.type === 'string' ||\n field.type === 'binary'\n );\n }\n\n public onTableRowDoubleClick(rowData: any): void {\n this.selected = [rowData];\n this.select();\n }\n\n private _setFocusFilter() {\n if (this.dialogVisible && !this.collapsed) {\n const input = this.lookupDialogContainer()?.nativeElement.querySelector('input');\n if (input) {\n (input as HTMLInputElement).focus();\n }\n }\n }\n\n private _subscribeEvents(): void {\n this.onSearchRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => (this.loading = true));\n\n this.onSelect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange?.(this.value));\n\n this.onUnselect.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => this.onChange?.(this.value));\n\n this.onClear.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n if (this.multiple) {\n return;\n }\n this.onChange?.(null);\n });\n\n this.onFocus.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.onTouched?.();\n });\n\n this.onBlur.pipe(takeUntil(this.ngUnsubscribe)).subscribe((event: Event) => {\n if (isNullOrUndefined(this.lookupDisplayField)) return;\n\n const target = event.target as HTMLInputElement;\n const currentValue = this.value && this.value[this.lookupDisplayField];\n const { value } = target;\n\n if (this.multiple || !currentValue || currentValue == value) return;\n\n const newValue = '';\n target.value = newValue;\n this.onChange?.(newValue);\n });\n }\n}\n\nexport interface BooleanOptionsLabelConfig {\n true: string;\n false: string;\n empty?: string;\n clear?: string;\n}\n\nexport class BooleanOptionsLabel {\n public true: string;\n public false: string;\n public empty?: string;\n public clear?: string;\n\n constructor(config: BooleanOptionsLabelConfig) {\n this.true = config.true;\n this.false = config.false;\n this.empty = config.empty;\n this.clear = config.clear;\n }\n}\n\n","<div [ngClass]=\"{ inputgroup: showSearch }\">\n <p-autoComplete\n #autocomplete\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [dataKey]=\"dataKey\"\n [multiple]=\"multiple\"\n [inputId]=\"id + '-autocomplete'\"\n [forceSelection]=\"autocompleteForceSelection\"\n [suggestions]=\"getLookupSuggestions()\"\n (completeMethod)=\"onCompleteMethod($event)\"\n (onSelect)=\"onSelect.next($event)\"\n (onBlur)=\"onBlur.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onUnselect)=\"onUnselect.next($event)\"\n (onClear)=\"onClear.next($event)\"\n (onKeyUp)=\"onKeyUp.next($event)\"\n [field]=\"lookupDisplayField\"\n [emptyMessage]=\"lookupEmptyMessage\"\n [dropdown]=\"!showSearch\"\n [appendTo]=\"lookupAppendTo\"\n [placeholder]=\"placeholder || ' '\"\n [autoHighlight]=\"true\"\n inputStyleClass=\"mousetrap\"\n >\n </p-autoComplete>\n @if (showSearch) {\n <button\n class=\"button-addon\"\n [class.button-addon--disabled]=\"disabled\"\n [disabled]=\"disabled\"\n (click)=\"showDialog()\"\n >\n <i class=\"fa fa-search\"></i>\n </button>\n }\n</div>\n\n<s-dialog\n [(visible)]=\"dialogVisible\"\n (visibleChange)=\"onVisibleChange($event!)\"\n [header]=\"labelOptions?.searchTitle || 'platform.angular_components.advanced_search' | translate\"\n contentClassName=\"s-lookup-modal\"\n [size]=\"dialogFullScreen() ? 'fullscreen' : 'xl'\"\n>\n @if (dialogVisible) {\n <div\n class=\"s-lookup-modal-container\"\n #dialogContainer\n >\n @if (searchFields && searchFields.length) {\n <div\n class=\"filter\"\n [@collapseContent]=\"\n collapsed\n ? { value: 'hidden', params: { transitionParams: transitionOptions } }\n : { value: 'visible', params: { transitionParams: transitionOptions } }\n \"\n (@collapseContent.done)=\"onToggleDone()\"\n >\n <form\n [formGroup]=\"formGroupDialog\"\n novalidate\n autocomplete=\"off\"\n >\n @if (!collapsed) {\n <div\n class=\"form-content\"\n [@childCollapseContent]=\"\n collapsed\n ? { value: ':leave', params: { transitionParams: transitionOptions } }\n : { value: ':enter', params: { transitionParams: transitionOptions } }\n \"\n >\n <div class=\"filter-title sds-section-title\">\n {{ labelOptions?.filterTitle || 'platform.angular_components.filters' | translate }}\n </div>\n <div class=\"form-fields\">\n <s-dynamic-form\n [configs]=\"searchFieldsDynamicStructure\"\n [form]=\"formGroupDialog\"\n >\n </s-dynamic-form>\n </div>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\">\n <s-button\n [id]=\"id + '-filter-button'\"\n type=\"submit\"\n [label]=\"\n labelOptions?.filterLabel || 'platform.angular_components.filter'\n | translate\n \"\n (clicked)=\"search()\"\n sTooltip=\"(ALT + SHIFT + F)\"\n >\n </s-button>\n <s-button\n [id]=\"id + '-clear-button'\"\n type=\"button\"\n [label]=\"\n labelOptions?.clearLabel || 'platform.angular_components.clear'\n | translate\n \"\n (clicked)=\"clear()\"\n priority=\"link\"\n sTooltip=\"(ALT + SHIFT + L)\"\n >\n </s-button>\n </div>\n </div>\n </div>\n }\n </form>\n </div>\n }\n @if (searchFields && searchFields.length) {\n <div class=\"filter-toggle\">\n <button\n [id]=\"id + '-filter-toggle-button'\"\n type=\"button\"\n (click)=\"filterToggle()\"\n >\n <span\n class=\"fa\"\n [ngClass]=\"{ 'fa-chevron-left': !collapsed, 'fa-chevron-right': collapsed }\"\n aria-hidden=\"true\"\n >\n </span>\n </button>\n </div>\n }\n @let isEmptyContent = !searchTotalRecords && !loading;\n <div\n class=\"content\"\n #contentContainer\n [ngClass]=\"{ 'empty-content': isEmptyContent }\"\n >\n @if (isEmptyContent) {\n <s-empty-state\n [id]=\"id + '-empty-state'\"\n [title]=\"\n labelOptions?.searchEmptyTitle || 'platform.angular_components.no_records_found' | translate\n \"\n [description]=\"searchEmptyDescription\"\n iconClass=\"fa fa-search\"\n >\n </s-empty-state>\n }\n <div class=\"content-child\">\n <p-table\n [dataKey]=\"dataKey\"\n [value]=\"getGridData()\"\n [columns]=\"searchGridFields\"\n [lazy]=\"true\"\n [scrollable]=\"true\"\n [paginator]=\"true\"\n sortMode=\"multiple\"\n [totalRecords]=\"searchTotalRecords\"\n [rows]=\"10\"\n [selection]=\"selected\"\n (onLazyLoad)=\"lazyLoadGrid($event)\"\n [multiSortMeta]=\"multiSortMeta\"\n [attr.data-hidden]=\"!searchTotalRecords && !loading\"\n [selectionMode]=\"multiple ? 'multiple' : 'single'\"\n (selectionChange)=\"onSelectionChange($event)\"\n *sLoadingState=\"{ loading: loading, indicator: indicatorLogo }\"\n >\n <ng-template pTemplate=\"caption\">\n <div>\n @if (showAddOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.add' | translate\"\n (clicked)=\"onAdd.emit()\"\n >\n </s-button>\n }\n @if (showEditOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.edit' | translate\"\n [disabled]=\"selected.length !== 1\"\n (clicked)=\"onEdit.emit(this.selected[0])\"\n >\n </s-button>\n }\n @if (showRemoveOption) {\n <s-button\n priority=\"default\"\n [label]=\"'platform.angular_components.remove' | translate\"\n [disabled]=\"!selected.length\"\n (clicked)=\"onRemove.emit(this.selected)\"\n >\n </s-button>\n }\n </div>\n </ng-template>\n <ng-template\n pTemplate=\"colgroup\"\n let-columns\n >\n <colgroup>\n @if (multiple) {\n <col style=\"width: 50px\" />\n }\n\n @for (col of columns; track $index) {\n <col [style.width]=\"col.width\" />\n }\n </colgroup>\n </ng-template>\n <ng-template\n pTemplate=\"header\"\n let-columns\n >\n <tr>\n @if (multiple) {\n <th style=\"width: 50px\">\n <s-table-header-checkbox\n [useAllObject]=\"lookupRowProps ? false : true\"\n [rowProps]=\"lookupRowProps\"\n >\n </s-table-header-checkbox>\n </th>\n }\n @for (col of columns; track $index) {\n <th\n [style.width]=\"col.width\"\n [pSortableColumn]=\"col.name\"\n [pSortableColumnDisabled]=\"sortableColumnsDisabled.includes(col.name)\"\n >\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.label }}</span>\n @if (!sortableColumnsDisabled.includes(col.name)) {\n <p-sortIcon [field]=\"col.name\"> </p-sortIcon>\n }\n </div>\n </th>\n }\n </tr>\n </ng-template>\n <ng-template\n pTemplate=\"body\"\n let-rowData\n let-columns\n let-rowIndex=\"rowIndex\"\n >\n <tr\n sNavigation\n [pSelectableRow]=\"rowData\"\n [pSelectableRowIndex]=\"rowIndex\"\n sDoubleClick\n (onDoubleClick)=\"onTableRowDoubleClick(rowData)\"\n >\n @if (multiple) {\n <td\n style=\"width: 50px\"\n tabindex=\"0\"\n >\n <p-tableCheckbox\n [value]=\"rowData\"\n [pSelectableRow]=\"rowData\"\n >\n </p-tableCheckbox>\n </td>\n }\n @for (col of searchGridFields; track $index) {\n <td\n [style.width]=\"getFieldWidth(col)\"\n [ngSwitch]=\"col.type\"\n tabindex=\"0\"\n >\n @switch (col.type) {\n @case ('boolean') {\n <ng-container\n *ngIf=\"isBooleanValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getBooleanLabel(rowData, col.name, col.optionsLabel)\n }}</span>\n </ng-container>\n }\n @case ('date') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | localizedDate\n : col.calendarLocaleOptions?.dateFormat || 'L'\n | async\n }}</span>\n </ng-container>\n }\n @case ('dateTime') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name) | localizedDate | async\n }}</span>\n </ng-container>\n }\n @case ('localDateTime') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name) | localizedDate | async\n }}</span>\n </ng-container>\n }\n @case ('time') {\n <ng-container\n *ngIf=\"getFieldValue(rowData, col.name); else emptyTemplate\"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | localizedTime\n : col.calendarLocaleOptions?.dateFormat || 'LTS'\n | async\n }}</span>\n </ng-container>\n }\n @case ('integer') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getIntegerMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('double') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getDoubleMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('money') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getMoneyMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('number') {\n <ng-container *ngIf=\"isNumber(rowData, col.name); else emptyTemplate\">\n <span>\n {{\n getFieldValue(rowData, col.name)\n | localizedBignumber: getNumberMaskConfig(col)\n | async\n }}\n </span>\n </ng-container>\n }\n @case ('enum') {\n <ng-container\n *ngIf=\"\n getLabelForValue(getFieldValue(rowData, col.name), col);\n else emptyTemplate\n \"\n >\n <ng-container\n *ngIf=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col);\n then withBadge;\n else withoutBadge\n \"\n ></ng-container>\n <ng-template #withBadge>\n <s-badge\n [text]=\"\n getLabelForValue(getFieldValue(rowData, col.name), col)\n \"\n [color]=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col)\n ?.color\n \"\n [type]=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col)\n ?.type\n \"\n [iconClass]=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col)\n ?.iconClass\n \"\n [iconPosition]=\"\n getBadgeFromValue(getFieldValue(rowData, col.name), col)\n ?.iconPosition\n \"\n >\n </s-badge>\n </ng-template>\n <ng-template #withoutBadge>\n <span>\n {{\n getLabelForValue(getFieldValue(rowData, col.name), col)\n }}\n </span>\n </ng-template>\n </ng-container>\n }\n @default {\n @if (fieldHasMask(col) && parseValueMaskValue(col, rowData)) {\n <ng-container\n *ngIf=\"\n isNumber(rowData, col.name) ||\n getFieldValue(rowData, col.name)\n \"\n >\n <span>{{\n getFieldValue(rowData, col.name)\n | sMaskFormatter: parseValueMaskValue(col, rowData)\n }}</span>\n </ng-container>\n } @else {\n <ng-container\n *ngIf=\"\n isNumber(rowData, col.name) ||\n getFieldValue(rowData, col.name);\n else emptyTemplate\n \"\n >\n <span>{{ getFieldValue(rowData, col.name) }}</span>\n </ng-container>\n }\n }\n }\n </td>\n }\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [attr.data-hidden]=\"loading\">\n {{ printRecordTotalizer() }}\n </span>\n </ng-template>\n </p-table>\n </div>\n </div>\n </div>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"flex w-full justify-end\">\n <s-button\n [id]=\"id + '-cancel-button'\"\n type=\"button\"\n priority=\"link\"\n [label]=\"labelOptions?.cancelLabel || 'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n >\n </s-button>\n <s-button\n [id]=\"id + '-select-button'\"\n type=\"button\"\n [label]=\"labelOptions?.selectLabel || 'platform.angular_components.select' | translate\"\n (clicked)=\"select()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n [disabled]=\"!selected.length\"\n >\n </s-button>\n </div>\n </ng-template>\n }\n</s-dialog>\n\n<ng-template #emptyTemplate>\n <span class=\"sds-empty-value\">\n {{ labelOptions?.emptyFieldLabel || 'platform.angular_components.not_informed' | translate }}\n </span>\n</ng-template>\n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n OnInit,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\nimport { LookupComponent } from '../../../components/lookup/lookup.component';\nimport { AutocompleteFieldConfig } from '../../configurations/fields/autocomplete-field';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, LookupComponent, ReactiveFormsModule, TooltipDirective],\n templateUrl: 'autocomplete-field.component.html',\n})\nexport class AutocompleteFieldComponent implements BaseFieldComponentConfig, AfterViewInit, OnInit {\n private readonly destroyRef = inject(DestroyRef);\n suggestions: unknown[] = [];\n field = input.required<AutocompleteFieldConfig>();\n\n formControl = input.required<FormControl>();\n\n public inputRef: HTMLElement | null = null;\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly elementRef: ElementRef,\n ) {}\n\n ngOnInit(): void {\n const suggestionsObservable = this.field().suggestionsObservable;\n if (suggestionsObservable)\n suggestionsObservable\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((suggestions) => (this.suggestions = suggestions));\n }\n\n public ngAfterViewInit(): void {\n this.setInputRef();\n this.changeDetectorRef.detectChanges();\n }\n\n private setInputRef(): void {\n this.inputRef = this.elementRef.nativeElement.querySelector('input');\n }\n}\n\n","@let _field = field();\n@if (inputRef) {\n <s-field-label\n [field]=\"_field\"\n [fieldContainerRef]=\"inputRef\"\n ></s-field-label>\n}\n\n<div [sTooltip]=\"_field.tooltip\">\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple!\"\n [placeholder]=\"_field.placeholder\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"suggestions\"\n [dataKey]=\"_field.dataKey!\"\n (onLookupRequest)=\"_field.onSearch ? _field.onSearch($event) : null\"\n [lookupDisplayField]=\"_field.displayField\"\n [showSearch]=\"false\"\n [lookupAppendTo]=\"_field.appendTo\"\n (onSelect)=\"_field.onSelect ? _field.onSelect($event) : null\"\n (onUnselect)=\"_field.onUnselect ? _field.onUnselect($event) : null\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n >\n </s-lookup>\n</div>\n\n","import { Component, DestroyRef, inject, input, OnInit } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\n\nimport { delay } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TooltipDirective } from '@seniorsistemas/angular-components/tooltip';\nimport { LookupFieldConfig } from '../../configurations/fields/lookup-field';\nimport { LookupComponent } from '../../../components/lookup/lookup.component';\nimport { FieldLabelComponent } from '../../../components/field-label/field-label.component';\nimport { BaseFieldComponentConfig } from '../base-field-component';\n\n@Component({\n standalone: true,\n imports: [FieldLabelComponent, TooltipDirective, LookupComponent, ReactiveFormsModule],\n templateUrl: 'lookup-field.component.html',\n})\nexport class LookupFieldComponent implements BaseFieldComponentConfig, OnInit {\n private readonly _destroyRef = inject(DestroyRef);\n protected gridData: any[] = [];\n protected searchTotalRecords: number = 0;\n protected lookupSuggestions: any[] = [];\n protected searchTotalRecordsLabel: string = '';\n\n field = input.required<LookupFieldConfig>();\n formControl = input.required<FormControl>();\n\n ngOnInit(): void {\n this.setLookupData();\n }\n\n private setLookupData() {\n const field = this.field();\n field.suggestionsObservable\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((suggestions) => (this.lookupSuggestions = suggestions));\n field.searchObservable\n .pipe(takeUntilDestroyed(this._destroyRef), delay(0))\n .subscribe(({ totalRecords, gridData, searchTotalRecordsLabel }) => {\n this.gridData = gridData;\n this.searchTotalRecords = totalRecords;\n this.searchTotalRecordsLabel = searchTotalRecordsLabel as string;\n });\n }\n}\n\n","@let _field = field();\n<s-field-label [field]=\"_field\"></s-field-label>\n\n<div\n [sTooltip]=\"_field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n>\n <s-lookup\n [id]=\"_field.id || _field.name\"\n [multiple]=\"_field.multiple ?? false\"\n [formControl]=\"formControl()\"\n [lookupSuggestions]=\"lookupSuggestions\"\n [dataKey]=\"_field.dataKey\"\n [placeholder]=\"_field.placeholder\"\n [showSearch]=\"_field.showSearch ?? true\"\n [searchFields]=\"_field.searchFields\"\n [searchGridFields]=\"_field.searchGridFields\"\n [searchGridData]=\"gridData\"\n (onLookupRequest)=\"_field.onLookupRequest($event)\"\n (onSearchRequest)=\"_field.onSearchRequest($event)\"\n [lookupDisplayField]=\"_field.lookupDisplayField\"\n [searchTotalRecords]=\"searchTotalRecords\"\n [labelOptions]=\"{\n recordsLabel: _field.recordsLabel,\n recordLabel: _field.recordLabel,\n emptyFieldLabel: _field.emptyFieldLabel,\n selectLabel: _field.selectLabel,\n cancelLabel: _field.cancelLabel,\n clearLabel: _field.clearLabel,\n filterLabel: _field.filterLabel,\n filterTitle: _field.filterTitle,\n searchTotalRecordsLabel: searchTotalRecordsLabel,\n searchEmptyTitle: _field.searchEmptyTitle,\n searchTitle: _field.searchTitle,\n }\"\n (onSelect)=\"_field.onSelect?.($event)\"\n (onUnselect)=\"_field.onUnselect?.($event)\"\n (onClear)=\"_field.onClear ? _field.onClear($event) : null\"\n (onBlur)=\"_field.onBlur ? _field.onBlur($event) : null\"\n [lookupAppendTo]=\"_field.appendTo\"\n [lookupEmptyMessage]=\"_field.emptyMessage\"\n [defaultFilter]=\"_field.defaultFilter ?? []\"\n [autocompleteForceSelection]=\"_field.autocompleteForceSelection ?? true\"\n [showAddOption]=\"_field.showAddOption ?? false\"\n [showEditOption]=\"_field.showEditOption ?? false\"\n [showRemoveOption]=\"_field.showRemoveOption ?? false\"\n [sortableColumnsDisabled]=\"_field.sortableColumnsDisabled ?? []\"\n (onAdd)=\"_field.onAdd ? _field.onAdd() : null\"\n (onEdit)=\"_field.onEdit ? _field.onEdit($event) : null\"\n (onRemove)=\"_field.onRemove ? _field.onRemove($event) : null\"\n (onClearButtonClick)=\"_field.onClearButtonClick ? _field.onClearButtonClick() : null\"\n >\n </s-lookup>\n</div>\n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DynamicFormComponent } from './dynamic-form.component';\nimport { DynamicFormDirective } from './dynamic-form.directive';\n\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\n\nimport { FieldLabelComponent } from './components/field-label/field-label.component';\n\n@NgModule({\n imports: [BadgeModule, CommonModule, FieldLabelComponent, DynamicFormDirective, DynamicFormComponent],\n declarations: [],\n exports: [DynamicFormComponent, DynamicFormDirective],\n})\nexport class DynamicFormModule {}\n\n","import { FieldConfig } from './field';\n\nexport class RationButtonOption {\n label: string;\n value?: any;\n\n constructor(config: RationButtonOption) {\n this.label = config.label;\n this.value = config.value;\n }\n}\n\nexport interface RadioButtonFieldConfig extends FieldConfig {\n type: 'radioButton';\n verticalAlignment?: boolean;\n clearLabel?: string;\n options: RationButtonOption[];\n onBlur?: (event: Event) => void;\n onFocus?: (event: FocusEvent) => void;\n onClick?: (event: any) => void;\n showClear?: boolean;\n}\n\ndeclare module './field' {\n export interface FieldTypeMap {\n radioButton: RadioButtonFieldConfig;\n }\n}\n\n","import { BignumberFieldComponent } from './dynamic-form/form-field/fields/bignumber/bignumber-field.component';\nimport { ButtonFieldComponent } from './dynamic-form/form-field/fields/button-field/button-field.component';\nimport { CalendarFieldComponent } from './dynamic-form/form-field/fields/calendar/calendar-field.component';\nimport { CheckboxFieldComponent } from './dynamic-form/form-field/fields/checkbox/checkbox-field.component';\nimport { ChipsFieldComponent } from './dynamic-form/form-field/fields/chips/chips-field.component';\nimport { CountryPhonePickerFieldComponent } from './dynamic-form/form-field/fields/country-phone-picker/country-phone-picker-field.component';\nimport { CurrencyFieldComponent } from './dynamic-form/form-field/fields/currency/currency-field.component';\nimport { FileUploadFieldComponent } from './dynamic-form/form-field/fields/file-upload/file-upload-field.component';\nimport { NumberFieldComponent } from './dynamic-form/form-field/fields/number/number-field.component';\nimport { PasswordFieldComponent } from './dynamic-form/form-field/fields/password/password-field.component';\nimport { ProfilePictureFieldComponent } from './dynamic-form/form-field/fields/profile-picture/profile-picture-field.component';\nimport { RadioButtonFieldComponent } from './dynamic-form/form-field/fields/radio-button/radio-button-field.component';\nimport { SelectFieldComponent } from './dynamic-form/form-field/fields/select/select-field.component';\nimport { TextFieldComponent } from './dynamic-form/form-field/fields/text/text-field.component';\nimport { TextAreaIAFieldComponent } from './dynamic-form/form-field/fields/text-area-ia/text-area-ia-field.component';\nimport { TextAreaFieldComponent } from './dynamic-form/form-field/fields/text-area/text-area-field.component';\nimport { SectionComponent } from './dynamic-form/components/structure/section/section.component';\nimport { FieldsetComponent } from './dynamic-form/components/structure/fieldset/fieldset.component';\nimport { StarRatingFieldComponent } from './dynamic-form/form-field/fields/star-rating/star-rating-field.component';\nimport { BooleanFieldComponent } from './dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component';\nimport { SliderFieldComponent } from './dynamic-form/form-field/fields/slider/slider-field.component';\nimport { RowComponent } from './dynamic-form/components/grid/row/row.component';\nimport { BooleanSwitchFieldComponent } from './dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component';\nimport { FormDynamicRegistry } from './dynamic-form/configurations/registry';\nimport { LookupComponent } from './dynamic-form/components/lookup/lookup.component';\nimport { AutocompleteFieldComponent } from './dynamic-form/form-field/fields/autocomplete/autocomplete-field.component';\nimport { LookupFieldComponent } from './dynamic-form/form-field/fields/lookup/lookup-field.component';\n\nexport type { BaseFieldComponentConfig } from './dynamic-form/form-field/fields/base-field-component';\nexport { FieldLabelComponent } from './dynamic-form/components/field-label/field-label.component';\nexport { LookupComponent } from './dynamic-form/components/lookup/lookup.component';\n\nexport * from './dynamic-form/dynamic-form.component';\nexport * from './dynamic-form/dynamic-form.directive';\nexport * from './dynamic-form/dynamic-form.module';\nexport * from './dynamic-form/form-field/configurations/fields/text-area-field';\nexport { type ExpandedDynamicType } from './dynamic-form/configurations/structure/row';\nexport { type BignumberFieldConfig } from './dynamic-form/form-field/configurations/fields/bignumber-field';\nexport { type BlobFieldConfig } from './dynamic-form/form-field/configurations/fields/blob-field';\nexport {\n type BooleanFieldConfig,\n type BooleanOptionsLabelConfig,\n} from './dynamic-form/form-field/configurations/fields/boolean-field';\nexport { type BooleanSwitchFieldConfig } from './dynamic-form/form-field/configurations/fields/boolean-switch-field';\nexport { type ButtonFieldConfig } from './dynamic-form/form-field/configurations/fields/button-field';\nexport { type CalendarFieldConfig } from './dynamic-form/form-field/configurations/fields/calendar-field';\nexport { type CheckboxFieldConfig } from './dynamic-form/form-field/configurations/fields/checkbox-field';\nexport { type ChipsFieldConfig } from './dynamic-form/form-field/configurations/fields/chips-field';\nexport { type CountryPhonePickerConfig } from './dynamic-form/form-field/configurations/fields/country-phone-picker-field';\nexport { type CurrencyFieldConfig } from './dynamic-form/form-field/configurations/fields/currency-field';\nexport { type NumberFieldConfig } from './dynamic-form/form-field/configurations/fields/number-field';\nexport type { AutocompleteFieldConfig } from './dynamic-form/form-field/configurations/fields/autocomplete-field';\nexport type {\n DefaultFilter,\n LookupFieldConfig,\n SearchObservable,\n} from './dynamic-form/form-field/configurations/fields/lookup-field';\nexport {\n type PasswordFieldConfig,\n type PasswordStrengthOptions,\n} from './dynamic-form/form-field/configurations/fields/password-field';\nexport { type ProfilePictureConfig } from './dynamic-form/form-field/configurations/fields/profile-picture';\nexport {\n RationButtonOption,\n type RadioButtonFieldConfig,\n} from './dynamic-form/form-field/configurations/fields/radio-button-field';\nexport {\n type SelectOption,\n type SelectFieldConfig,\n} from './dynamic-form/form-field/configurations/fields/select-field';\nexport { type SliderFieldConfig } from './dynamic-form/form-field/configurations/fields/slider-field';\nexport { type StarRatingFieldConfig } from './dynamic-form/form-field/configurations/fields/star-rating-field';\nexport { type TextAreaFieldConfig } from './dynamic-form/form-field/configurations/fields/text-area-field';\nexport { type TextAreaIAFieldConfig } from './dynamic-form/form-field/configurations/fields/text-area-ia-field';\nexport { type TextFieldConfig } from './dynamic-form/form-field/configurations/fields/text-field';\n\nexport { FieldSize } from './dynamic-form/form-field/configurations/field-size';\n\nexport { NumberFieldComponent } from './dynamic-form/form-field/fields/number/number-field.component';\n\nexport type {\n DynamicType,\n FieldConfig,\n FieldType,\n FieldTypeMap,\n} from './dynamic-form/form-field/configurations/fields/field';\n\nexport type { DynamicStructure, StructureType } from './dynamic-form/configurations/structure/structure';\nexport { FormDynamicRegistry } from './dynamic-form/configurations/registry';\nFormDynamicRegistry.registerField(FileUploadFieldComponent, 'blob');\nFormDynamicRegistry.registerField(BooleanFieldComponent, 'boolean');\nFormDynamicRegistry.registerField(BooleanSwitchFieldComponent, 'booleanSwitch');\nFormDynamicRegistry.registerField(ButtonFieldComponent, 'button');\nFormDynamicRegistry.registerField(CalendarFieldComponent, 'calendar', 'date', 'dateTime', 'localDateTime', 'time');\nFormDynamicRegistry.registerField(CheckboxFieldComponent, 'checkbox');\nFormDynamicRegistry.registerField(ChipsFieldComponent, 'chips');\nFormDynamicRegistry.registerField(CountryPhonePickerFieldComponent, 'countryPhonePicker');\nFormDynamicRegistry.registerField(NumberFieldComponent, 'legacyNumber');\nFormDynamicRegistry.registerField(CurrencyFieldComponent, 'money');\nFormDynamicRegistry.registerField(BignumberFieldComponent, 'number', 'integer');\nFormDynamicRegistry.registerField(PasswordFieldComponent, 'password');\nFormDynamicRegistry.registerField(ProfilePictureFieldComponent, 'profilePicture');\nFormDynamicRegistry.registerField(RadioButtonFieldComponent, 'radioButton');\nFormDynamicRegistry.registerField(SelectFieldComponent, 'enum');\nFormDynamicRegistry.registerField(StarRatingFieldComponent, 'starRating');\nFormDynamicRegistry.registerField(TextAreaFieldComponent, 'textArea');\nFormDynamicRegistry.registerField(TextAreaIAFieldComponent, 'textAreaIA');\nFormDynamicRegistry.registerField(TextFieldComponent, 'string', 'binary');\nFormDynamicRegistry.registerField(SliderFieldComponent, 'slider');\nFormDynamicRegistry.registerField(LookupFieldComponent, 'lookup');\nFormDynamicRegistry.registerField(AutocompleteFieldComponent, 'autocomplete');\nFormDynamicRegistry.registerField(RowComponent, 'row');\nFormDynamicRegistry.registerField(FieldsetComponent, 'fieldset');\nFormDynamicRegistry.registerField(SectionComponent, 'section');\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil","i1","i2","i3","i4","i5","i6","i9"],"mappings":"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"}