{"version":3,"file":"ngx-formly-bootstrap-multicheckbox.mjs","sources":["../../../../src/ui/bootstrap/multicheckbox/src/multicheckbox.type.ts","../../../../src/ui/bootstrap/multicheckbox/src/multicheckbox.module.ts","../../../../src/ui/bootstrap/multicheckbox/src/ngx-formly-bootstrap-multicheckbox.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Type } from '@angular/core';\nimport { FieldTypeConfig, FormlyFieldConfig } from '@ngx-formly/core';\nimport { FieldType, FormlyFieldProps } from '@ngx-formly/bootstrap/form-field';\n\ninterface MultiCheckboxProps extends FormlyFieldProps {\n  formCheck?: 'default' | 'inline' | 'switch' | 'inline-switch';\n}\n\nexport interface FormlyMultiCheckboxFieldConfig extends FormlyFieldConfig<MultiCheckboxProps> {\n  type: 'multicheckbox' | Type<FormlyFieldMultiCheckbox>;\n}\n\n@Component({\n  selector: 'formly-field-multicheckbox',\n  template: `\n    <ng-template #fieldTypeTemplate>\n      <div\n        *ngFor=\"let option of props.options | formlySelectOptions : field | async; let i = index\"\n        class=\"form-check\"\n        [ngClass]=\"{\n          'form-check-inline': props.formCheck === 'inline' || props.formCheck === 'inline-switch',\n          'form-switch': props.formCheck === 'switch' || props.formCheck === 'inline-switch'\n        }\"\n      >\n        <input\n          type=\"checkbox\"\n          [id]=\"id + '_' + i\"\n          class=\"form-check-input\"\n          [class.is-invalid]=\"showError\"\n          [value]=\"option.value\"\n          [checked]=\"isChecked(option)\"\n          [formlyAttributes]=\"field\"\n          [disabled]=\"formControl.disabled || option.disabled\"\n          [attr.aria-describedby]=\"id + '-formly-validation-error'\"\n          [attr.aria-invalid]=\"showError\"\n          (change)=\"onChange(option.value, $any($event.target).checked)\"\n        />\n        <label class=\"form-check-label\" [for]=\"id + '_' + i\">\n          {{ option.label }}\n        </label>\n      </div>\n    </ng-template>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormlyFieldMultiCheckbox extends FieldType<FieldTypeConfig<MultiCheckboxProps>> {\n  override defaultOptions = {\n    props: {\n      formCheck: 'default' as const, // 'default' | 'inline' | 'switch' | 'inline-switch'\n    },\n  };\n\n  onChange(value: any, checked: boolean) {\n    this.formControl.markAsDirty();\n    if (this.props.type === 'array') {\n      this.formControl.patchValue(\n        checked\n          ? [...(this.formControl.value || []), value]\n          : [...(this.formControl.value || [])].filter((o) => o !== value),\n      );\n    } else {\n      this.formControl.patchValue({ ...this.formControl.value, [value]: checked });\n    }\n    this.formControl.markAsTouched();\n  }\n\n  isChecked(option: any) {\n    const value = this.formControl.value;\n\n    return value && (this.props.type === 'array' ? value.indexOf(option.value) !== -1 : value[option.value]);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nimport { FormlyFieldMultiCheckbox } from './multicheckbox.type';\n\n@NgModule({\n  declarations: [FormlyFieldMultiCheckbox],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n\n    FormlyBootstrapFormFieldModule,\n    FormlySelectModule,\n    FormlyModule.forChild({\n      types: [\n        {\n          name: 'multicheckbox',\n          component: FormlyFieldMultiCheckbox,\n          wrappers: ['form-field'],\n        },\n      ],\n    }),\n  ],\n})\nexport class FormlyBootstrapMultiCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}