@economic/taco 2.66.0 → 2.66.1-test.0

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.
package/dist/taco.d.ts CHANGED
@@ -3047,7 +3047,7 @@ export declare type Table3EditingCreateHandler<TType = unknown> = () => Promise<
3047
3047
 
3048
3048
  declare type Table3EditingDiscardHandler = () => void;
3049
3049
 
3050
- export declare type Table3EditingSaveHandler<TType = unknown> = (row: TType) => Promise<void>;
3050
+ export declare type Table3EditingSaveHandler<TType = unknown> = (row: TType) => Promise<void> | void;
3051
3051
 
3052
3052
  export declare type Table3EditingValidatorFn<TType = unknown> = (row: TType) => Promise<Partial<Record<keyof TType, string>> | undefined> | Partial<Record<keyof TType, string>> | undefined;
3053
3053
 
package/dist/taco.js CHANGED
@@ -54032,10 +54032,17 @@ function useTableEditingListener(table, tableRef, scrollToIndex) {
54032
54032
  }, [hasSavedChanges]);
54033
54033
  React__default.useEffect(() => {
54034
54034
  const onClickOutside = (event) => {
54035
+ var _a;
54035
54036
  if (tableMeta.editing.isEditing) {
54036
54037
  const element = event.target;
54037
- const isTableOrIsInsideTable = element.tagName === "TABLE" || element.tagName === "TBODY" || element.getAttribute("data-taco") === "backdrop" || element.getAttribute("data-table") === "editing-toggle" || !document.body.contains(element) || isElementInsideOrTriggeredFromContainer(element, tableRef.current);
54038
- if (!isTableOrIsInsideTable) {
54038
+ const isClickOnTableOrInsideTable = element.tagName === "TABLE" || element.tagName === "TBODY" || element.getAttribute("data-taco") === "backdrop" || element.getAttribute("data-table") === "editing-toggle" || !document.body.contains(element) || isElementInsideOrTriggeredFromContainer(element, tableRef.current);
54039
+ if (isClickOnTableOrInsideTable) {
54040
+ return;
54041
+ }
54042
+ const dialog = element.closest('[role="dialog"]');
54043
+ const isClickInsideParentDialog = dialog !== null && ((_a = tableRef.current) == null ? void 0 : _a.closest('[role="dialog"]')) === dialog;
54044
+ const isClickOutside = dialog === null;
54045
+ if (isClickInsideParentDialog || isClickOutside) {
54039
54046
  tableMeta.editing.saveChanges(table);
54040
54047
  }
54041
54048
  }