По этой функции от источника
public onMouseDown(event: MouseEvent): void {
if (!this.isIE10 && this.cpDialogDisplay === 'popup' &&
event.target !== this.directiveElementRef.nativeElement &&
!this.isDescendant(this.elRef.nativeElement, event.target) &&
!this.isDescendant(this.directiveElementRef.nativeElement, event.target) &&
this.cpIgnoredElements.filter((item: any) => item === event.target).length === 0)
{
if (!this.cpSaveClickOutside) {
this.setColorFromString(this.initialColor, false);
this.directiveInstance.colorChanged(this.initialColor);
}
this.closeColorPicker();
}
}
Вы должны использовать:
cpDialogDisplay = 'inline'
Вместо
cpDialogDisplay = 'popup'
Для предотвращения такого поведения, однако это отключит диалог .
Итак, ответ на ваш вопрос:
Я не хочу закрывать диалоговое окно, если оно щелкнуло за пределами
Диалог. Есть ли в ngx-color-picker какое-либо встроенное событие, которое принимает
заботиться об этой ситуации?
Is Нет .
На мой взгляд, как и в любом проекте с открытым исходным кодом, у вас есть несколько вариантов:
1) Измените исходный код компонента, отправьте свои изменения в проект в github и, если сопровождающие согласятся с вашей реализацией, ваша новая функция станет частью будущих выпусков указанного компонента;
2) Вы создаете свой собственный компонент с нуля, возможно, в значительной степени основываясь на текущей ngx-color-picker , с нужной вам функцией и, возможно, другими.
3) Найдите другие похожие проекты / компоненты, которые могут иметь функцию / поведение, которое вы ищете.