{"version":3,"file":"angular-extensions-controls.mjs","sources":["../../../projects/angular-extensions/controls/src/ngx-controls.module.ts","../../../projects/angular-extensions/controls/src/angular-extensions-controls.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { FormControl } from \"@angular/forms\";\r\n\r\nimport { overrideFunction } from \"angular-extensions/core\";\r\nimport { NgxModalsModule } from \"angular-extensions/modals\";\r\nimport { NgxDirectivesModule } from \"angular-extensions/directives\";\r\n\r\nimport { NgxSpinnerModule } from \"angular-extensions/controls/spinner\";\r\nimport { NgxBaseControlModule } from \"angular-extensions/controls/base-control\";\r\nimport { NgxTextControlModule } from \"angular-extensions/controls/text-control\";\r\nimport { NgxTextAreaControlModule } from \"angular-extensions/controls/textarea-control\";\r\nimport { NgxCheckboxControlModule } from \"angular-extensions/controls/checkbox-control\";\r\nimport { NgxSelectControlModule } from \"angular-extensions/controls/select-control\";\r\nimport { NgxDateControlModule } from \"angular-extensions/controls/date-control\";\r\nimport { NgxTimeControlModule } from \"angular-extensions/controls/time-control\";\r\nimport {\r\n  NgxDateTimeControlModule, NgxDateTimeConfig, dateTimeConfigDefaults,\r\n} from \"angular-extensions/controls/datetime-control\";\r\n\r\n\r\n/**\r\n * Configure default behavior of NgxControlsModule like: locale, date adpater, date format, etc.\r\n */\r\nexport interface NgxControlsConfig {\r\n\r\n  dateTimeConfig?: NgxDateTimeConfig;\r\n\r\n  /**\r\n   * It true, disables default FormControls behavior which\r\n   * updates all values inside form group whenever any value is updated\r\n   */\r\n  strictControlChangeDetection: boolean;\r\n}\r\n\r\nconst moduleConfigDefaults: NgxControlsConfig = {\r\n  dateTimeConfig: dateTimeConfigDefaults,\r\n  strictControlChangeDetection: false,\r\n};\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    NgxDirectivesModule,\r\n    NgxBaseControlModule,\r\n    NgxTextControlModule,\r\n    NgxTextAreaControlModule,\r\n    NgxCheckboxControlModule,\r\n    NgxSelectControlModule,\r\n    NgxDateControlModule,\r\n    NgxTimeControlModule,\r\n    NgxDateTimeControlModule,\r\n    NgxSpinnerModule,\r\n    NgxModalsModule,\r\n  ],\r\n  exports: [\r\n    CommonModule,\r\n    NgxDirectivesModule,\r\n    NgxBaseControlModule,\r\n    NgxTextControlModule,\r\n    NgxTextAreaControlModule,\r\n    NgxCheckboxControlModule,\r\n    NgxSelectControlModule,\r\n    NgxDateControlModule,\r\n    NgxTimeControlModule,\r\n    NgxDateTimeControlModule,\r\n    NgxSpinnerModule,\r\n    NgxModalsModule,\r\n  ]\r\n})\r\nexport class NgxControlsModule {\r\n\r\n  public static configure(config: Partial<NgxControlsConfig>): ModuleWithProviders<NgxControlsModule> {\r\n\r\n    let moduleConfig = Object.assign<NgxControlsConfig, Partial<NgxControlsConfig>>(moduleConfigDefaults, config);\r\n\r\n    if (config.strictControlChangeDetection) {\r\n      // patch FormControl to avoid updating whole parent value when control value is updated\r\n      overrideFunction(\r\n        FormControl.prototype,\r\n        control => control.setValue,\r\n        (setValue, _, value, options) => {\r\n          if (options?.emitModelToViewChange === false) {\r\n            options.onlySelf = true;\r\n          }\r\n\r\n          setValue(value, options);\r\n        });\r\n    }\r\n\r\n    return {\r\n      ngModule: NgxControlsModule,\r\n      providers: [\r\n        ...NgxDateTimeControlModule.configure(moduleConfig.dateTimeConfig).providers,\r\n      ]\r\n    };\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}