{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import {NgModule,Component,Input,Output,EventEmitter,forwardRef} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';\n\nexport const CHECKBOX_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => Checkbox),\n multi: true\n};\n\n@Component({\n selector: 'p-checkbox',\n template: `\n
\n
\n \n
\n
\n \n
\n
\n \n `,\n providers: [CHECKBOX_VALUE_ACCESSOR]\n})\nexport class Checkbox implements ControlValueAccessor {\n\n @Input() value: any;\n\n @Input() name: string;\n\n @Input() disabled: boolean;\n \n @Input() binary: string;\n \n @Input() label: string;\n \n @Output() onChange: EventEmitter = new EventEmitter();\n \n model: any;\n \n onModelChange: Function = () => {};\n \n onModelTouched: Function = () => {};\n \n hover: boolean;\n \n focused: boolean = false;\n \n checked: boolean = false;\n\n onClick(event,checkbox,focus:boolean) {\n event.preventDefault();\n \n if(this.disabled) {\n return;\n }\n \n this.checked = !this.checked;\n this.updateModel();\n \n if(focus) {\n checkbox.focus();\n }\n }\n \n updateModel() {\n if(!this.binary) {\n if(this.checked)\n this.addValue(this.value);\n else\n this.removeValue(this.value);\n\n this.onModelChange(this.model);\n }\n else {\n this.onModelChange(this.checked);\n }\n \n this.onChange.emit(this.checked);\n }\n \n handleChange(event) {\n this.checked = event.target.checked;\n this.updateModel();\n }\n\n isChecked(): boolean {\n if(!this.binary)\n return this.findValueIndex(this.value) !== -1;\n else\n return this.model;\n }\n\n removeValue(value) {\n var index = this.findValueIndex(value);\n if(index >= 0) {\n this.model.splice(index, 1);\n }\n }\n\n addValue(value) {\n this.model.push(value);\n }\n \n onFocus(event) {\n this.focused = true;\n }\n\n onBlur(event) {\n this.focused = false;\n this.onModelTouched();\n }\n\n findValueIndex(value) {\n var index: number = -1;\n if(this.model) {\n for (var i = 0; i < this.model.length; i++) {\n if(this.model[i] == value) {\n index = i;\n break;\n }\n }\n }\n\n return index;\n }\n \n writeValue(model: any) : void {\n this.model = model;\n this.checked = this.isChecked();\n }\n \n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n \n setDisabledState(val: boolean): void {\n this.disabled = val;\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n exports: [Checkbox],\n declarations: [Checkbox]\n})\nexport class CheckboxModule { }"]}