@ai-table/state 0.0.49 → 0.0.51

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.
@@ -1 +1 @@
1
- {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EAMb,WAAW,EACd,MAAM,UAAU,CAAC;AAoLlB,eAAO,MAAM,cAAc;uBACJ,WAAW,UAAU,aAAa,GAAG,IAAI;CAS/D,CAAC"}
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EAMb,WAAW,EACd,MAAM,UAAU,CAAC;AAoLlB,eAAO,MAAM,cAAc;uBACJ,WAAW,UAAU,aAAa,GAAG,IAAI;CAkB/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAkB,aAAa,EAAE,wBAAwB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAClI,OAAO,EAMH,WAAW,EAEd,MAAM,UAAU,CAAC;AAElB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,QAS3F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,wBAAwB,QAO/G;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAOtF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,QAOrF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,QAM9D;AAED,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAC"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/record.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAEnB,aAAa,EACb,wBAAwB,EAExB,MAAM,EACN,UAAU,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAMH,WAAW,EAEd,MAAM,UAAU,CAAC;AAElB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,mBAAmB,QAiB3F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,wBAAwB,QAO/G;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAqBtF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,QAOrF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,QAM9D;AAED,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAC"}
@@ -169,12 +169,21 @@ const apply = (aiTable, records, fields, views, action) => {
169
169
  export const GeneralActions = {
170
170
  transform(aiTable, action) {
171
171
  const records = createDraft(aiTable.records());
172
- const fields = createDraft(aiTable.gridData().fields);
172
+ const fields = createDraft(aiTable.fields());
173
173
  const views = createDraft(aiTable.views());
174
174
  apply(aiTable, records, fields, views, action);
175
- aiTable.fields.set(finishDraft(fields));
176
- aiTable.records.set(finishDraft(records));
177
- aiTable.views.set(finishDraft(views));
175
+ const newFields = finishDraft(fields);
176
+ const newRecords = finishDraft(records);
177
+ const newViews = finishDraft(views);
178
+ if (newFields !== aiTable.fields()) {
179
+ aiTable.fields.set(newFields);
180
+ }
181
+ if (newRecords !== aiTable.records()) {
182
+ aiTable.records.set(newRecords);
183
+ }
184
+ if (newViews !== aiTable.views()) {
185
+ aiTable.views.set(newViews);
186
+ }
178
187
  }
179
188
  };
180
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0YXRlL3NyYy9hY3Rpb24vZ2VuZXJhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQVFiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pELE9BQU8sRUFBK0Isb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBb0IsRUFBRSxPQUEyQixFQUFFLE1BQXFCLEVBQUUsS0FBb0IsRUFBRSxNQUFxQixFQUFFLEVBQUU7SUFDcEksUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUN4QyxJQUFJLFFBQVEsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQztnQkFDakYsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ2hFLENBQUM7WUFDRCxNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUks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Q0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFjdGlvbk5hbWUsXG4gICAgQUlUYWJsZUFjdGlvbixcbiAgICBBSVRhYmxlVmlldyxcbiAgICBBSVRhYmxlVmlld0ZpZWxkLFxuICAgIEFJVGFibGVWaWV3RmllbGRzLFxuICAgIEFJVGFibGVWaWV3UmVjb3JkLFxuICAgIEFJVGFibGVWaWV3UmVjb3JkcyxcbiAgICBBSVZpZXdUYWJsZVxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVEcmFmdCwgZmluaXNoRHJhZnQgfSBmcm9tICdpbW1lcic7XG5pbXBvcnQgeyBBSVRhYmxlRmllbGQsIEFJVGFibGVGaWVsZHMsIGdldERlZmF1bHRGaWVsZFZhbHVlIH0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFBvc2l0aW9ucywgaXNQYXRoRXF1YWwgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGFwcGx5ID0gKGFpVGFibGU6IEFJVmlld1RhYmxlLCByZWNvcmRzOiBBSVRhYmxlVmlld1JlY29yZHMsIGZpZWxkczogQUlUYWJsZUZpZWxkcywgdmlld3M6IEFJVGFibGVWaWV3W10sIGFjdGlvbjogQUlUYWJsZUFjdGlvbikgPT4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlVwZGF0ZUZpZWxkVmFsdWU6IHtcbiAgICAgICAgICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBhY3Rpb24ucGF0aDtcbiAgICAgICAgICAgIGlmIChyZWNvcmRJZCAmJiBmaWVsZElkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSBhaVRhYmxlLnJlY29yZHMoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSByZWNvcmRJZCk7XG4gICAgICAgICAgICAgICAgcmVjb3Jkc1tyZWNvcmRJbmRleF0udmFsdWVzW2ZpZWxkSWRdID0gYWN0aW9uLm5ld0ZpZWxkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuVXBkYXRlU3lzdGVtRmllbGRWYWx1ZToge1xuICAgICAgICAgICAgY29uc3QgW3JlY29yZElkXSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgaWYgKHJlY29yZElkICYmIGFjdGlvbi51cGRhdGVkSW5mbykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZEluZGV4ID0gYWlUYWJsZS5yZWNvcmRzKCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gcmVjb3JkSWQpO1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24udXBkYXRlZEluZm8udXBkYXRlZF9hdCkge1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRzW3JlY29yZEluZGV4XS51cGRhdGVkX2F0ID0gYWN0aW9uLnVwZGF0ZWRJbmZvLnVwZGF0ZWRfYXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24udXBkYXRlZEluZm8udXBkYXRlZF9ieSkge1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRzW3JlY29yZEluZGV4XS51cGRhdGVkX2J5ID0gYWN0aW9uLnVwZGF0ZWRJbmZvLnVwZGF0ZWRfYnk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLkFkZFJlY29yZDoge1xuICAgICAgICAgICAgY29uc3QgW3JlY29yZEluZGV4XSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgaWYgKHJlY29yZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoIShhY3Rpb24ucmVjb3JkIGFzIEFJVGFibGVWaWV3UmVjb3JkKS5wb3NpdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlVmlldyA9IGFpVGFibGUudmlld3MoKS5maW5kKChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gYWlUYWJsZS5hY3RpdmVWaWV3SWQoKSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHJlY29yZEluZGV4O1xuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlVmlldz8uc2V0dGluZ3M/LmNvbmRpdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gcmVjb3Jkcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKGFjdGlvbi5yZWNvcmQgYXMgQUlUYWJsZVZpZXdSZWNvcmQpLnBvc2l0aW9ucyA9IGNyZWF0ZURlZmF1bHRQb3NpdGlvbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLnZpZXdzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLmFjdGl2ZVZpZXdJZCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWlUYWJsZS5yZWNvcmRzKCkgYXMgQUlUYWJsZVZpZXdSZWNvcmRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVjb3Jkcy5zcGxpY2UocmVjb3JkSW5kZXgsIDAsIGFjdGlvbi5yZWNvcmQgYXMgQUlUYWJsZVZpZXdSZWNvcmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLkFkZEZpZWxkOiB7XG4gICAgICAgICAgICBjb25zdCBbZmllbGRJbmRleF0gPSBhY3Rpb24ucGF0aDtcbiAgICAgICAgICAgIGlmIChmaWVsZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWVsZCA9IGFjdGlvbi5maWVsZDtcbiAgICAgICAgICAgICAgICBpZiAoIShuZXdGaWVsZCBhcyBBSVRhYmxlVmlld0ZpZWxkKS5wb3NpdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgKG5ld0ZpZWxkIGFzIEFJVGFibGVWaWV3RmllbGQpLnBvc2l0aW9ucyA9IGNyZWF0ZURlZmF1bHRQb3NpdGlvbnMoXG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLnZpZXdzKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLmFjdGl2ZVZpZXdJZCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWlUYWJsZS5ncmlkRGF0YSgpLmZpZWxkcyBhcyBBSVRhYmxlVmlld0ZpZWxkcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5wYXRoWzBdXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZpZWxkcy5zcGxpY2UoZmllbGRJbmRleCwgMCwgbmV3RmllbGQgYXMgQUlUYWJsZVZpZXdGaWVsZCk7XG4gICAgICAgICAgICAgICAgcmVjb3Jkcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0udmFsdWVzW25ld0ZpZWxkLl9pZF0gPVxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmlzQ29weSAmJiBhY3Rpb24ub3JpZ2luSWQgPyBpdGVtLnZhbHVlc1thY3Rpb24ub3JpZ2luSWRdIDogZ2V0RGVmYXVsdEZpZWxkVmFsdWUoYWN0aW9uLmZpZWxkKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5Nb3ZlUmVjb3JkOiB7XG4gICAgICAgICAgICBpZiAoaXNQYXRoRXF1YWwoYWN0aW9uLnBhdGgsIGFjdGlvbi5uZXdQYXRoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHJlY29yZHNbYWN0aW9uLnBhdGhbMF1dO1xuICAgICAgICAgICAgcmVjb3Jkcy5zcGxpY2UoYWN0aW9uLnBhdGhbMF0sIDEpO1xuICAgICAgICAgICAgcmVjb3Jkcy5zcGxpY2UoYWN0aW9uLm5ld1BhdGhbMF0sIDAsIHJlY29yZCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuUmVtb3ZlRmllbGQ6IHtcbiAgICAgICAgICAgIGNvbnN0IFtmaWVsZElkXSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgY29uc3QgZmllbGRJbmRleCA9IGFpVGFibGUuZmllbGRzKCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gZmllbGRJZCk7XG4gICAgICAgICAgICBpZiAoZmllbGRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgZmllbGRzLnNwbGljZShmaWVsZEluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICByZWNvcmRzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0udmFsdWVzW2ZpZWxkSWRdO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlJlbW92ZVJlY29yZDoge1xuICAgICAgICAgICAgY29uc3QgW3JlY29yZElkXSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSBhaVRhYmxlLnJlY29yZHMoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSByZWNvcmRJZCk7XG4gICAgICAgICAgICBpZiAocmVjb3JkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIHJlY29yZHMuc3BsaWNlKHJlY29yZEluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlNldEZpZWxkOiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IGZpZWxkcy5maW5kKChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gYWN0aW9uLnBhdGhbMF0pIGFzIEFJVGFibGVGaWVsZDtcbiAgICAgICAgICAgIGlmIChmaWVsZCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFjdGlvbi5uZXdQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGsgPSBrZXkgYXMga2V5b2YgQUlUYWJsZUZpZWxkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGFjdGlvbi5uZXdQcm9wZXJ0aWVzW2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGZpZWxkW2tdO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkW2tdIGFzIGFueSkgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHByb3BlcnRpZXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgZGVmaW5lZCwgYnV0IGFyZSBub3cgbWlzc2luZywgbXVzdCBiZSBkZWxldGVkXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYWN0aW9uLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFhY3Rpb24ubmV3UHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZmllbGRbPGtleW9mIEFJVGFibGVGaWVsZD5rZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlNldFZpZXc6IHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB2aWV3cy5maW5kKChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gYWN0aW9uLnBhdGhbMF0pIGFzIEFJVGFibGVWaWV3O1xuICAgICAgICAgICAgaWYgKHZpZXcpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBhY3Rpb24ubmV3UHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrID0ga2V5IGFzIGtleW9mIEFJVGFibGVWaWV3O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGFjdGlvbi5uZXdQcm9wZXJ0aWVzW2tdO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZpZXdba107XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAodmlld1trXSBhcyBhbnkpID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBwcm9wZXJ0aWVzIHRoYXQgd2VyZSBwcmV2aW91c2x5IGRlZmluZWQsIGJ1dCBhcmUgbm93IG1pc3NpbmcsIG11c3QgYmUgZGVsZXRlZFxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFjdGlvbi5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYWN0aW9uLm5ld1Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZpZXdbPGtleW9mIEFJVGFibGVWaWV3PmtleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkVmlldzoge1xuICAgICAgICAgICAgY29uc3QgW3ZpZXdJbmRleF0gPSBhY3Rpb24ucGF0aDtcbiAgICAgICAgICAgIGlmICh2aWV3SW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIHZpZXdzLnNwbGljZSh2aWV3SW5kZXgsIDAsIGFjdGlvbi52aWV3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5SZW1vdmVWaWV3OiB7XG4gICAgICAgICAgICBjb25zdCBbdmlld0lkXSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgY29uc3Qgdmlld0luZGV4ID0gdmlld3MuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gdmlld0lkKTtcbiAgICAgICAgICAgIGlmICh2aWV3SW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIHZpZXdzLnNwbGljZSh2aWV3SW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlNldFJlY29yZFBvc2l0aW9uczoge1xuICAgICAgICAgICAgY29uc3QgeyBwb3NpdGlvbnMsIHBhdGggfSA9IGFjdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHJlY29yZHMuZmluZCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IHBhdGhbMF0pO1xuICAgICAgICAgICAgaWYgKHJlY29yZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Bvc2l0aW9ucyA9IHsgLi4ucmVjb3JkLnBvc2l0aW9ucyB9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHBvc2l0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocG9zaXRpb25zW2tleV0gPT09IG51bGwgfHwgcG9zaXRpb25zW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5ld1Bvc2l0aW9uc1trZXldO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UG9zaXRpb25zW2tleV0gPSBwb3NpdGlvbnNba2V5XSBhcyBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVjb3JkLnBvc2l0aW9ucyA9IG5ld1Bvc2l0aW9ucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlY29yZHMsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgdmlld3NcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IEdlbmVyYWxBY3Rpb25zID0ge1xuICAgIHRyYW5zZm9ybShhaVRhYmxlOiBBSVZpZXdUYWJsZSwgYWN0aW9uOiBBSVRhYmxlQWN0aW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlY29yZHMgPSBjcmVhdGVEcmFmdChhaVRhYmxlLnJlY29yZHMoKSkgYXMgQUlUYWJsZVZpZXdSZWNvcmRzO1xuICAgICAgICBjb25zdCBmaWVsZHMgPSBjcmVhdGVEcmFmdChhaVRhYmxlLmdyaWREYXRhKCkuZmllbGRzKSBhcyBBSVRhYmxlVmlld0ZpZWxkcztcbiAgICAgICAgY29uc3Qgdmlld3MgPSBjcmVhdGVEcmFmdChhaVRhYmxlLnZpZXdzKCkpO1xuICAgICAgICBhcHBseShhaVRhYmxlLCByZWNvcmRzLCBmaWVsZHMsIHZpZXdzLCBhY3Rpb24pO1xuICAgICAgICBhaVRhYmxlLmZpZWxkcy5zZXQoZmluaXNoRHJhZnQoZmllbGRzKSk7XG4gICAgICAgIGFpVGFibGUucmVjb3Jkcy5zZXQoZmluaXNoRHJhZnQocmVjb3JkcykpO1xuICAgICAgICBhaVRhYmxlLnZpZXdzLnNldChmaW5pc2hEcmFmdCh2aWV3cykpO1xuICAgIH1cbn07XG4iXX0=
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0YXRlL3NyYy9hY3Rpb24vZ2VuZXJhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQVFiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pELE9BQU8sRUFBK0Isb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBb0IsRUFBRSxPQUEyQixFQUFFLE1BQXFCLEVBQUUsS0FBb0IsRUFBRSxNQUFxQixFQUFFLEVBQUU7SUFDcEksUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUN4QyxJQUFJLFFBQVEsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQztnQkFDakYsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ2hFLENBQUM7WUFDRCxNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUks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LEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBQ0QsSUFBSSxVQUFVLEtBQUssT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksUUFBUSxLQUFLLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWN0aW9uTmFtZSxcbiAgICBBSVRhYmxlQWN0aW9uLFxuICAgIEFJVGFibGVWaWV3LFxuICAgIEFJVGFibGVWaWV3RmllbGQsXG4gICAgQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgQUlUYWJsZVZpZXdSZWNvcmQsXG4gICAgQUlUYWJsZVZpZXdSZWNvcmRzLFxuICAgIEFJVmlld1RhYmxlXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZURyYWZ0LCBmaW5pc2hEcmFmdCB9IGZyb20gJ2ltbWVyJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcywgZ2V0RGVmYXVsdEZpZWxkVmFsdWUgfSBmcm9tICdAYWktdGFibGUvZ3JpZCc7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0UG9zaXRpb25zLCBpc1BhdGhFcXVhbCB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgYXBwbHkgPSAoYWlUYWJsZTogQUlWaWV3VGFibGUsIHJlY29yZHM6IEFJVGFibGVWaWV3UmVjb3JkcywgZmllbGRzOiBBSVRhYmxlRmllbGRzLCB2aWV3czogQUlUYWJsZVZpZXdbXSwgYWN0aW9uOiBBSVRhYmxlQWN0aW9uKSA9PiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuVXBkYXRlRmllbGRWYWx1ZToge1xuICAgICAgICAgICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgaWYgKHJlY29yZElkICYmIGZpZWxkSWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWNvcmRJbmRleCA9IGFpVGFibGUucmVjb3JkcygpLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IHJlY29yZElkKTtcbiAgICAgICAgICAgICAgICByZWNvcmRzW3JlY29yZEluZGV4XS52YWx1ZXNbZmllbGRJZF0gPSBhY3Rpb24ubmV3RmllbGRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5VcGRhdGVTeXN0ZW1GaWVsZFZhbHVlOiB7XG4gICAgICAgICAgICBjb25zdCBbcmVjb3JkSWRdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBpZiAocmVjb3JkSWQgJiYgYWN0aW9uLnVwZGF0ZWRJbmZvKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSBhaVRhYmxlLnJlY29yZHMoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSByZWNvcmRJZCk7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbi51cGRhdGVkSW5mby51cGRhdGVkX2F0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZHNbcmVjb3JkSW5kZXhdLnVwZGF0ZWRfYXQgPSBhY3Rpb24udXBkYXRlZEluZm8udXBkYXRlZF9hdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbi51cGRhdGVkSW5mby51cGRhdGVkX2J5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZHNbcmVjb3JkSW5kZXhdLnVwZGF0ZWRfYnkgPSBhY3Rpb24udXBkYXRlZEluZm8udXBkYXRlZF9ieTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkUmVjb3JkOiB7XG4gICAgICAgICAgICBjb25zdCBbcmVjb3JkSW5kZXhdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBpZiAocmVjb3JkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGlmICghKGFjdGlvbi5yZWNvcmQgYXMgQUlUYWJsZVZpZXdSZWNvcmQpLnBvc2l0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVWaWV3ID0gYWlUYWJsZS52aWV3cygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBhaVRhYmxlLmFjdGl2ZVZpZXdJZCgpKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gcmVjb3JkSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVWaWV3Py5zZXR0aW5ncz8uY29uZGl0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSByZWNvcmRzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAoYWN0aW9uLnJlY29yZCBhcyBBSVRhYmxlVmlld1JlY29yZCkucG9zaXRpb25zID0gY3JlYXRlRGVmYXVsdFBvc2l0aW9ucyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUudmlld3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUuYWN0aXZlVmlld0lkKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLnJlY29yZHMoKSBhcyBBSVRhYmxlVmlld1JlY29yZHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZWNvcmRzLnNwbGljZShyZWNvcmRJbmRleCwgMCwgYWN0aW9uLnJlY29yZCBhcyBBSVRhYmxlVmlld1JlY29yZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkRmllbGQ6IHtcbiAgICAgICAgICAgIGNvbnN0IFtmaWVsZEluZGV4XSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgaWYgKGZpZWxkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpZWxkID0gYWN0aW9uLmZpZWxkO1xuICAgICAgICAgICAgICAgIGlmICghKG5ld0ZpZWxkIGFzIEFJVGFibGVWaWV3RmllbGQpLnBvc2l0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAobmV3RmllbGQgYXMgQUlUYWJsZVZpZXdGaWVsZCkucG9zaXRpb25zID0gY3JlYXRlRGVmYXVsdFBvc2l0aW9ucyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUudmlld3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUuYWN0aXZlVmlld0lkKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLmdyaWREYXRhKCkuZmllbGRzIGFzIEFJVGFibGVWaWV3RmllbGRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLnBhdGhbMF1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZmllbGRzLnNwbGljZShmaWVsZEluZGV4LCAwLCBuZXdGaWVsZCBhcyBBSVRhYmxlVmlld0ZpZWxkKTtcbiAgICAgICAgICAgICAgICByZWNvcmRzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS52YWx1ZXNbbmV3RmllbGQuX2lkXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24uaXNDb3B5ICYmIGFjdGlvbi5vcmlnaW5JZCA/IGl0ZW0udmFsdWVzW2FjdGlvbi5vcmlnaW5JZF0gOiBnZXREZWZhdWx0RmllbGRWYWx1ZShhY3Rpb24uZmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLk1vdmVSZWNvcmQ6IHtcbiAgICAgICAgICAgIGlmIChpc1BhdGhFcXVhbChhY3Rpb24ucGF0aCwgYWN0aW9uLm5ld1BhdGgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gcmVjb3Jkc1thY3Rpb24ucGF0aFswXV07XG4gICAgICAgICAgICByZWNvcmRzLnNwbGljZShhY3Rpb24ucGF0aFswXSwgMSk7XG4gICAgICAgICAgICByZWNvcmRzLnNwbGljZShhY3Rpb24ubmV3UGF0aFswXSwgMCwgcmVjb3JkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5SZW1vdmVGaWVsZDoge1xuICAgICAgICAgICAgY29uc3QgW2ZpZWxkSWRdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBjb25zdCBmaWVsZEluZGV4ID0gYWlUYWJsZS5maWVsZHMoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBmaWVsZElkKTtcbiAgICAgICAgICAgIGlmIChmaWVsZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmaWVsZHMuc3BsaWNlKGZpZWxkSW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgIHJlY29yZHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS52YWx1ZXNbZmllbGRJZF07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuUmVtb3ZlUmVjb3JkOiB7XG4gICAgICAgICAgICBjb25zdCBbcmVjb3JkSWRdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBjb25zdCByZWNvcmRJbmRleCA9IGFpVGFibGUucmVjb3JkcygpLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IHJlY29yZElkKTtcbiAgICAgICAgICAgIGlmIChyZWNvcmRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVjb3Jkcy5zcGxpY2UocmVjb3JkSW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuU2V0RmllbGQ6IHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBhY3Rpb24ucGF0aFswXSkgYXMgQUlUYWJsZUZpZWxkO1xuICAgICAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYWN0aW9uLm5ld1Byb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgayA9IGtleSBhcyBrZXlvZiBBSVRhYmxlRmllbGQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYWN0aW9uLm5ld1Byb3BlcnRpZXNba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZmllbGRba107XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoZmllbGRba10gYXMgYW55KSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gcHJvcGVydGllcyB0aGF0IHdlcmUgcHJldmlvdXNseSBkZWZpbmVkLCBidXQgYXJlIG5vdyBtaXNzaW5nLCBtdXN0IGJlIGRlbGV0ZWRcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBhY3Rpb24ucHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGlvbi5uZXdQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmaWVsZFs8a2V5b2YgQUlUYWJsZUZpZWxkPmtleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuU2V0Vmlldzoge1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IHZpZXdzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBhY3Rpb24ucGF0aFswXSkgYXMgQUlUYWJsZVZpZXc7XG4gICAgICAgICAgICBpZiAodmlldykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFjdGlvbi5uZXdQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGsgPSBrZXkgYXMga2V5b2YgQUlUYWJsZVZpZXc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYWN0aW9uLm5ld1Byb3BlcnRpZXNba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmlld1trXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICh2aWV3W2tdIGFzIGFueSkgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHByb3BlcnRpZXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgZGVmaW5lZCwgYnV0IGFyZSBub3cgbWlzc2luZywgbXVzdCBiZSBkZWxldGVkXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYWN0aW9uLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFhY3Rpb24ubmV3UHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmlld1s8a2V5b2YgQUlUYWJsZVZpZXc+a2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5BZGRWaWV3OiB7XG4gICAgICAgICAgICBjb25zdCBbdmlld0luZGV4XSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgaWYgKHZpZXdJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgdmlld3Muc3BsaWNlKHZpZXdJbmRleCwgMCwgYWN0aW9uLnZpZXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlJlbW92ZVZpZXc6IHtcbiAgICAgICAgICAgIGNvbnN0IFt2aWV3SWRdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBjb25zdCB2aWV3SW5kZXggPSB2aWV3cy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSB2aWV3SWQpO1xuICAgICAgICAgICAgaWYgKHZpZXdJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgdmlld3Muc3BsaWNlKHZpZXdJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuU2V0UmVjb3JkUG9zaXRpb25zOiB7XG4gICAgICAgICAgICBjb25zdCB7IHBvc2l0aW9ucywgcGF0aCB9ID0gYWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gcmVjb3Jkcy5maW5kKChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gcGF0aFswXSk7XG4gICAgICAgICAgICBpZiAocmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3UG9zaXRpb25zID0geyAuLi5yZWNvcmQucG9zaXRpb25zIH07XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcG9zaXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbnNba2V5XSA9PT0gbnVsbCB8fCBwb3NpdGlvbnNba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgbmV3UG9zaXRpb25zW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdQb3NpdGlvbnNba2V5XSA9IHBvc2l0aW9uc1trZXldIGFzIG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZWNvcmQucG9zaXRpb25zID0gbmV3UG9zaXRpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVjb3JkcyxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICB2aWV3c1xuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgR2VuZXJhbEFjdGlvbnMgPSB7XG4gICAgdHJhbnNmb3JtKGFpVGFibGU6IEFJVmlld1RhYmxlLCBhY3Rpb246IEFJVGFibGVBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IGNyZWF0ZURyYWZ0KGFpVGFibGUucmVjb3JkcygpKSBhcyBBSVRhYmxlVmlld1JlY29yZHM7XG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IGNyZWF0ZURyYWZ0KGFpVGFibGUuZmllbGRzKCkpIGFzIEFJVGFibGVWaWV3RmllbGRzO1xuICAgICAgICBjb25zdCB2aWV3cyA9IGNyZWF0ZURyYWZ0KGFpVGFibGUudmlld3MoKSk7XG4gICAgICAgIGFwcGx5KGFpVGFibGUsIHJlY29yZHMsIGZpZWxkcywgdmlld3MsIGFjdGlvbik7XG4gICAgICAgIGNvbnN0IG5ld0ZpZWxkcyA9IGZpbmlzaERyYWZ0KGZpZWxkcyk7XG4gICAgICAgIGNvbnN0IG5ld1JlY29yZHMgPSBmaW5pc2hEcmFmdChyZWNvcmRzKTtcbiAgICAgICAgY29uc3QgbmV3Vmlld3MgPSBmaW5pc2hEcmFmdCh2aWV3cyk7XG4gICAgICAgIGlmIChuZXdGaWVsZHMgIT09IGFpVGFibGUuZmllbGRzKCkpIHtcbiAgICAgICAgICAgIGFpVGFibGUuZmllbGRzLnNldChuZXdGaWVsZHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXdSZWNvcmRzICE9PSBhaVRhYmxlLnJlY29yZHMoKSkge1xuICAgICAgICAgICAgYWlUYWJsZS5yZWNvcmRzLnNldChuZXdSZWNvcmRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobmV3Vmlld3MgIT09IGFpVGFibGUudmlld3MoKSkge1xuICAgICAgICAgICAgYWlUYWJsZS52aWV3cy5zZXQobmV3Vmlld3MpO1xuICAgICAgICB9XG4gICAgfVxufTtcbiJdfQ==
@@ -1,14 +1,21 @@
1
- import { AITableQueries } from '@ai-table/grid';
1
+ import { AITableQueries, FieldModelMap } from '@ai-table/grid';
2
2
  import { ActionName } from '../types';
3
3
  export function updateFieldValue(aiTable, value, path) {
4
4
  const oldValue = AITableQueries.getFieldValue(aiTable, path);
5
- const operation = {
6
- type: ActionName.UpdateFieldValue,
7
- fieldValue: oldValue,
8
- newFieldValue: value,
9
- path
10
- };
11
- aiTable.apply(operation);
5
+ const field = AITableQueries.getField(aiTable, [path[1]]);
6
+ const fieldModel = field && FieldModelMap[field.type];
7
+ if (fieldModel && fieldModel.isValid(value)) {
8
+ const operation = {
9
+ type: ActionName.UpdateFieldValue,
10
+ fieldValue: oldValue,
11
+ newFieldValue: value,
12
+ path
13
+ };
14
+ aiTable.apply(operation);
15
+ }
16
+ else {
17
+ console.error(`Invalid field value at update field value. invalidFieldValue: ${field?.type}, value: ${value}, field_id: ${path[1]}`);
18
+ }
12
19
  }
13
20
  export function updateSystemFieldValue(aiTable, path, updatedInfo) {
14
21
  const operation = {
@@ -19,12 +26,27 @@ export function updateSystemFieldValue(aiTable, path, updatedInfo) {
19
26
  aiTable.apply(operation);
20
27
  }
21
28
  export function addRecord(aiTable, record, path) {
22
- const operation = {
23
- type: ActionName.AddRecord,
24
- record,
25
- path
26
- };
27
- aiTable.apply(operation);
29
+ const invalidFieldValues = [];
30
+ const isValid = Object.entries(record.values).every(([fieldId, value]) => {
31
+ const field = AITableQueries.getField(aiTable, [fieldId]);
32
+ const fieldModel = field && FieldModelMap[field.type];
33
+ const result = fieldModel ? fieldModel.isValid(value) : false;
34
+ if (!result) {
35
+ invalidFieldValues.push(`field_id: ${fieldId}, field_type: ${field?.type}, value: ${value}`);
36
+ }
37
+ return result;
38
+ });
39
+ if (isValid) {
40
+ const operation = {
41
+ type: ActionName.AddRecord,
42
+ record,
43
+ path
44
+ };
45
+ aiTable.apply(operation);
46
+ }
47
+ else {
48
+ console.error(`Invalid field values at add record. invalidFieldValues: ${invalidFieldValues}`);
49
+ }
28
50
  }
29
51
  export function moveRecord(aiTable, path, newPath) {
30
52
  const operation = {
@@ -48,4 +70,4 @@ export const RecordActions = {
48
70
  removeRecord,
49
71
  updateSystemFieldValue
50
72
  };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RhdGUvc3JjL2FjdGlvbi9yZWNvcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixjQUFjLEVBQStELE1BQU0sZ0JBQWdCLENBQUM7QUFDbEksT0FBTyxFQUVILFVBQVUsRUFNYixNQUFNLFVBQVUsQ0FBQztBQUVsQixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBb0IsRUFBRSxLQUFVLEVBQUUsSUFBeUI7SUFDeEYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsTUFBTSxTQUFTLEdBQTJCO1FBQ3RDLElBQUksRUFBRSxVQUFVLENBQUMsZ0JBQWdCO1FBQ2pDLFVBQVUsRUFBRSxRQUFRO1FBQ3BCLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLElBQUk7S0FDUCxDQUFDO0lBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE9BQW9CLEVBQUUsSUFBWSxFQUFFLFdBQXFDO0lBQzVHLE1BQU0sU0FBUyxHQUEyQjtRQUN0QyxJQUFJLEVBQUUsVUFBVSxDQUFDLHNCQUFzQjtRQUN2QyxXQUFXO1FBQ1gsSUFBSTtLQUNQLENBQUM7SUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQW9CLEVBQUUsTUFBcUIsRUFBRSxJQUFnQjtJQUNuRixNQUFNLFNBQVMsR0FBb0I7UUFDL0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1FBQzFCLE1BQU07UUFDTixJQUFJO0tBQ1AsQ0FBQztJQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBb0IsRUFBRSxJQUFnQixFQUFFLE9BQW1CO0lBQ2xGLE1BQU0sU0FBUyxHQUFxQjtRQUNoQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFVBQVU7UUFDM0IsSUFBSTtRQUNKLE9BQU87S0FDVixDQUFDO0lBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFvQixFQUFFLElBQVk7SUFDM0QsTUFBTSxTQUFTLEdBQXVCO1FBQ2xDLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWTtRQUM3QixJQUFJO0tBQ1AsQ0FBQztJQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUN6QixTQUFTO0lBQ1QsZ0JBQWdCO0lBQ2hCLFVBQVU7SUFDVixZQUFZO0lBQ1osc0JBQXNCO0NBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVJlY29yZEZpZWxkSWRQYXRoLCBBSVRhYmxlUXVlcmllcywgQUlUYWJsZVJlY29yZCwgQUlUYWJsZVJlY29yZFVwZGF0ZWRJbmZvLCBJZFBhdGgsIE51bWJlclBhdGggfSBmcm9tICdAYWktdGFibGUvZ3JpZCc7XG5pbXBvcnQge1xuICAgIFVwZGF0ZUZpZWxkVmFsdWVBY3Rpb24sXG4gICAgQWN0aW9uTmFtZSxcbiAgICBBZGRSZWNvcmRBY3Rpb24sXG4gICAgTW92ZVJlY29yZEFjdGlvbixcbiAgICBSZW1vdmVSZWNvcmRBY3Rpb24sXG4gICAgQUlWaWV3VGFibGUsXG4gICAgVXBkYXRlU3lzdGVtRmllbGRWYWx1ZVxufSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVGaWVsZFZhbHVlKGFpVGFibGU6IEFJVmlld1RhYmxlLCB2YWx1ZTogYW55LCBwYXRoOiBBSVJlY29yZEZpZWxkSWRQYXRoKSB7XG4gICAgY29uc3Qgb2xkVmFsdWUgPSBBSVRhYmxlUXVlcmllcy5nZXRGaWVsZFZhbHVlKGFpVGFibGUsIHBhdGgpO1xuICAgIGNvbnN0IG9wZXJhdGlvbjogVXBkYXRlRmllbGRWYWx1ZUFjdGlvbiA9IHtcbiAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5VcGRhdGVGaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZFZhbHVlOiBvbGRWYWx1ZSxcbiAgICAgICAgbmV3RmllbGRWYWx1ZTogdmFsdWUsXG4gICAgICAgIHBhdGhcbiAgICB9O1xuICAgIGFpVGFibGUuYXBwbHkob3BlcmF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN5c3RlbUZpZWxkVmFsdWUoYWlUYWJsZTogQUlWaWV3VGFibGUsIHBhdGg6IElkUGF0aCwgdXBkYXRlZEluZm86IEFJVGFibGVSZWNvcmRVcGRhdGVkSW5mbykge1xuICAgIGNvbnN0IG9wZXJhdGlvbjogVXBkYXRlU3lzdGVtRmllbGRWYWx1ZSA9IHtcbiAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5VcGRhdGVTeXN0ZW1GaWVsZFZhbHVlLFxuICAgICAgICB1cGRhdGVkSW5mbyxcbiAgICAgICAgcGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkUmVjb3JkKGFpVGFibGU6IEFJVmlld1RhYmxlLCByZWNvcmQ6IEFJVGFibGVSZWNvcmQsIHBhdGg6IE51bWJlclBhdGgpIHtcbiAgICBjb25zdCBvcGVyYXRpb246IEFkZFJlY29yZEFjdGlvbiA9IHtcbiAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5BZGRSZWNvcmQsXG4gICAgICAgIHJlY29yZCxcbiAgICAgICAgcGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW92ZVJlY29yZChhaVRhYmxlOiBBSVZpZXdUYWJsZSwgcGF0aDogTnVtYmVyUGF0aCwgbmV3UGF0aDogTnVtYmVyUGF0aCkge1xuICAgIGNvbnN0IG9wZXJhdGlvbjogTW92ZVJlY29yZEFjdGlvbiA9IHtcbiAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5Nb3ZlUmVjb3JkLFxuICAgICAgICBwYXRoLFxuICAgICAgICBuZXdQYXRoXG4gICAgfTtcbiAgICBhaVRhYmxlLmFwcGx5KG9wZXJhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVSZWNvcmQoYWlUYWJsZTogQUlWaWV3VGFibGUsIHBhdGg6IElkUGF0aCkge1xuICAgIGNvbnN0IG9wZXJhdGlvbjogUmVtb3ZlUmVjb3JkQWN0aW9uID0ge1xuICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLlJlbW92ZVJlY29yZCxcbiAgICAgICAgcGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgY29uc3QgUmVjb3JkQWN0aW9ucyA9IHtcbiAgICBhZGRSZWNvcmQsXG4gICAgdXBkYXRlRmllbGRWYWx1ZSxcbiAgICBtb3ZlUmVjb3JkLFxuICAgIHJlbW92ZVJlY29yZCxcbiAgICB1cGRhdGVTeXN0ZW1GaWVsZFZhbHVlXG59O1xuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RhdGUvc3JjL2FjdGlvbi9yZWNvcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGNBQWMsRUFHZCxhQUFhLEVBR2hCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUVILFVBQVUsRUFNYixNQUFNLFVBQVUsQ0FBQztBQUVsQixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBb0IsRUFBRSxLQUFVLEVBQUUsSUFBeUI7SUFDeEYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFELE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxNQUFNLFNBQVMsR0FBMkI7WUFDdEMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0I7WUFDakMsVUFBVSxFQUFFLFFBQVE7WUFDcEIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsSUFBSTtTQUNQLENBQUM7UUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxDQUFDLEtBQUssQ0FDVCxpRUFBaUUsS0FBSyxFQUFFLElBQUksWUFBWSxLQUFLLGVBQWUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3hILENBQUM7SUFDTixDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUFvQixFQUFFLElBQVksRUFBRSxXQUFxQztJQUM1RyxNQUFNLFNBQVMsR0FBMkI7UUFDdEMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7UUFDdkMsV0FBVztRQUNYLElBQUk7S0FDUCxDQUFDO0lBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFvQixFQUFFLE1BQXFCLEVBQUUsSUFBZ0I7SUFDbkYsTUFBTSxrQkFBa0IsR0FBYSxFQUFFLENBQUM7SUFDeEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNyRSxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1Ysa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsT0FBTyxpQkFBaUIsS0FBSyxFQUFFLElBQUksWUFBWSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztJQUNILElBQUksT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLFNBQVMsR0FBb0I7WUFDL0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQzFCLE1BQU07WUFDTixJQUFJO1NBQ1AsQ0FBQztRQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0IsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLENBQUMsS0FBSyxDQUFDLDJEQUEyRCxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDbkcsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQW9CLEVBQUUsSUFBZ0IsRUFBRSxPQUFtQjtJQUNsRixNQUFNLFNBQVMsR0FBcUI7UUFDaEMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxVQUFVO1FBQzNCLElBQUk7UUFDSixPQUFPO0tBQ1YsQ0FBQztJQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBb0IsRUFBRSxJQUFZO0lBQzNELE1BQU0sU0FBUyxHQUF1QjtRQUNsQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVk7UUFDN0IsSUFBSTtLQUNQLENBQUM7SUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDekIsU0FBUztJQUNULGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsWUFBWTtJQUNaLHNCQUFzQjtDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBSVJlY29yZEZpZWxkSWRQYXRoLFxuICAgIEFJVGFibGVRdWVyaWVzLFxuICAgIEFJVGFibGVSZWNvcmQsXG4gICAgQUlUYWJsZVJlY29yZFVwZGF0ZWRJbmZvLFxuICAgIEZpZWxkTW9kZWxNYXAsXG4gICAgSWRQYXRoLFxuICAgIE51bWJlclBhdGhcbn0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuaW1wb3J0IHtcbiAgICBVcGRhdGVGaWVsZFZhbHVlQWN0aW9uLFxuICAgIEFjdGlvbk5hbWUsXG4gICAgQWRkUmVjb3JkQWN0aW9uLFxuICAgIE1vdmVSZWNvcmRBY3Rpb24sXG4gICAgUmVtb3ZlUmVjb3JkQWN0aW9uLFxuICAgIEFJVmlld1RhYmxlLFxuICAgIFVwZGF0ZVN5c3RlbUZpZWxkVmFsdWVcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlRmllbGRWYWx1ZShhaVRhYmxlOiBBSVZpZXdUYWJsZSwgdmFsdWU6IGFueSwgcGF0aDogQUlSZWNvcmRGaWVsZElkUGF0aCkge1xuICAgIGNvbnN0IG9sZFZhbHVlID0gQUlUYWJsZVF1ZXJpZXMuZ2V0RmllbGRWYWx1ZShhaVRhYmxlLCBwYXRoKTtcbiAgICBjb25zdCBmaWVsZCA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkKGFpVGFibGUsIFtwYXRoWzFdXSk7XG4gICAgY29uc3QgZmllbGRNb2RlbCA9IGZpZWxkICYmIEZpZWxkTW9kZWxNYXBbZmllbGQudHlwZV07XG4gICAgaWYgKGZpZWxkTW9kZWwgJiYgZmllbGRNb2RlbC5pc1ZhbGlkKHZhbHVlKSkge1xuICAgICAgICBjb25zdCBvcGVyYXRpb246IFVwZGF0ZUZpZWxkVmFsdWVBY3Rpb24gPSB7XG4gICAgICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLlVwZGF0ZUZpZWxkVmFsdWUsXG4gICAgICAgICAgICBmaWVsZFZhbHVlOiBvbGRWYWx1ZSxcbiAgICAgICAgICAgIG5ld0ZpZWxkVmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgcGF0aFxuICAgICAgICB9O1xuICAgICAgICBhaVRhYmxlLmFwcGx5KG9wZXJhdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIGBJbnZhbGlkIGZpZWxkIHZhbHVlIGF0IHVwZGF0ZSBmaWVsZCB2YWx1ZS4gaW52YWxpZEZpZWxkVmFsdWU6ICR7ZmllbGQ/LnR5cGV9LCB2YWx1ZTogJHt2YWx1ZX0sIGZpZWxkX2lkOiAke3BhdGhbMV19YFxuICAgICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN5c3RlbUZpZWxkVmFsdWUoYWlUYWJsZTogQUlWaWV3VGFibGUsIHBhdGg6IElkUGF0aCwgdXBkYXRlZEluZm86IEFJVGFibGVSZWNvcmRVcGRhdGVkSW5mbykge1xuICAgIGNvbnN0IG9wZXJhdGlvbjogVXBkYXRlU3lzdGVtRmllbGRWYWx1ZSA9IHtcbiAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5VcGRhdGVTeXN0ZW1GaWVsZFZhbHVlLFxuICAgICAgICB1cGRhdGVkSW5mbyxcbiAgICAgICAgcGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkUmVjb3JkKGFpVGFibGU6IEFJVmlld1RhYmxlLCByZWNvcmQ6IEFJVGFibGVSZWNvcmQsIHBhdGg6IE51bWJlclBhdGgpIHtcbiAgICBjb25zdCBpbnZhbGlkRmllbGRWYWx1ZXM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgaXNWYWxpZCA9IE9iamVjdC5lbnRyaWVzKHJlY29yZC52YWx1ZXMpLmV2ZXJ5KChbZmllbGRJZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gQUlUYWJsZVF1ZXJpZXMuZ2V0RmllbGQoYWlUYWJsZSwgW2ZpZWxkSWRdKTtcbiAgICAgICAgY29uc3QgZmllbGRNb2RlbCA9IGZpZWxkICYmIEZpZWxkTW9kZWxNYXBbZmllbGQudHlwZV07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZpZWxkTW9kZWwgPyBmaWVsZE1vZGVsLmlzVmFsaWQodmFsdWUpIDogZmFsc2U7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICBpbnZhbGlkRmllbGRWYWx1ZXMucHVzaChgZmllbGRfaWQ6ICR7ZmllbGRJZH0sIGZpZWxkX3R5cGU6ICR7ZmllbGQ/LnR5cGV9LCB2YWx1ZTogJHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbjogQWRkUmVjb3JkQWN0aW9uID0ge1xuICAgICAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5BZGRSZWNvcmQsXG4gICAgICAgICAgICByZWNvcmQsXG4gICAgICAgICAgICBwYXRoXG4gICAgICAgIH07XG4gICAgICAgIGFpVGFibGUuYXBwbHkob3BlcmF0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGZpZWxkIHZhbHVlcyBhdCBhZGQgcmVjb3JkLiBpbnZhbGlkRmllbGRWYWx1ZXM6ICR7aW52YWxpZEZpZWxkVmFsdWVzfWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVSZWNvcmQoYWlUYWJsZTogQUlWaWV3VGFibGUsIHBhdGg6IE51bWJlclBhdGgsIG5ld1BhdGg6IE51bWJlclBhdGgpIHtcbiAgICBjb25zdCBvcGVyYXRpb246IE1vdmVSZWNvcmRBY3Rpb24gPSB7XG4gICAgICAgIHR5cGU6IEFjdGlvbk5hbWUuTW92ZVJlY29yZCxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgbmV3UGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUmVjb3JkKGFpVGFibGU6IEFJVmlld1RhYmxlLCBwYXRoOiBJZFBhdGgpIHtcbiAgICBjb25zdCBvcGVyYXRpb246IFJlbW92ZVJlY29yZEFjdGlvbiA9IHtcbiAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5SZW1vdmVSZWNvcmQsXG4gICAgICAgIHBhdGhcbiAgICB9O1xuICAgIGFpVGFibGUuYXBwbHkob3BlcmF0aW9uKTtcbn1cblxuZXhwb3J0IGNvbnN0IFJlY29yZEFjdGlvbnMgPSB7XG4gICAgYWRkUmVjb3JkLFxuICAgIHVwZGF0ZUZpZWxkVmFsdWUsXG4gICAgbW92ZVJlY29yZCxcbiAgICByZW1vdmVSZWNvcmQsXG4gICAgdXBkYXRlU3lzdGVtRmllbGRWYWx1ZVxufTtcbiJdfQ==
@@ -3,7 +3,7 @@ export function getFieldPositionInView(viewId, fields, path, newPath) {
3
3
  let newPosition = 0;
4
4
  if (path[0] > newPath[0]) {
5
5
  const prevPath = newPath[0] - 1;
6
- if (prevPath > 0) {
6
+ if (prevPath >= 0) {
7
7
  const targetPrevField = fields[prevPath];
8
8
  const targetPrevPosition = targetPrevField.positions[viewId];
9
9
  newPosition = (targetPosition + targetPrevPosition) / 2;
@@ -35,4 +35,4 @@ export function getFieldsSizeMap(fields, activeView) {
35
35
  });
36
36
  return fieldsSizeMap;
37
37
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvdXRpbHMvZmllbGQvcG9zaXRpb24tZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE1BQWMsRUFBRSxNQUFxQixFQUFFLElBQWdCLEVBQUUsT0FBbUI7SUFDL0csTUFBTSxjQUFjLEdBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBc0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEYsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsTUFBTSxrQkFBa0IsR0FBSSxlQUFvQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuRixXQUFXLEdBQUcsQ0FBQyxjQUFjLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsV0FBVyxHQUFJLFVBQStCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUMzRSxDQUFDO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDSixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxRQUFRLEVBQUUsQ0FBQztZQUMzQixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsTUFBTSxrQkFBa0IsR0FBSSxlQUFvQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuRixXQUFXLEdBQUcsQ0FBQyxjQUFjLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM1QyxNQUFNLFlBQVksR0FBSSxTQUE4QixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0UsV0FBVyxHQUFHLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBMEIsRUFBRSxVQUF1QjtJQUNoRixNQUFNLGFBQWEsR0FBeUIsRUFBRSxDQUFDO0lBQy9DLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN0QixhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLGFBQWEsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlUYWJsZUZpZWxkcywgQUlUYWJsZUZpZWxkc1NpemVNYXAsIE51bWJlclBhdGggfSBmcm9tICdAYWktdGFibGUvZ3JpZCc7XG5pbXBvcnQgeyBBSVRhYmxlVmlldywgQUlUYWJsZVZpZXdGaWVsZCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkUG9zaXRpb25JblZpZXcodmlld0lkOiBzdHJpbmcsIGZpZWxkczogQUlUYWJsZUZpZWxkcywgcGF0aDogTnVtYmVyUGF0aCwgbmV3UGF0aDogTnVtYmVyUGF0aCkge1xuICAgIGNvbnN0IHRhcmdldFBvc2l0aW9uID0gKGZpZWxkc1tuZXdQYXRoWzBdXSBhcyBBSVRhYmxlVmlld0ZpZWxkKS5wb3NpdGlvbnNbdmlld0lkXTtcbiAgICBsZXQgbmV3UG9zaXRpb24gPSAwO1xuICAgIGlmIChwYXRoWzBdID4gbmV3UGF0aFswXSkge1xuICAgICAgICBjb25zdCBwcmV2UGF0aCA9IG5ld1BhdGhbMF0gLSAxO1xuICAgICAgICBpZiAocHJldlBhdGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRQcmV2RmllbGQgPSBmaWVsZHNbcHJldlBhdGhdO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UHJldlBvc2l0aW9uID0gKHRhcmdldFByZXZGaWVsZCBhcyBBSVRhYmxlVmlld0ZpZWxkKS5wb3NpdGlvbnNbdmlld0lkXTtcbiAgICAgICAgICAgIG5ld1Bvc2l0aW9uID0gKHRhcmdldFBvc2l0aW9uICsgdGFyZ2V0UHJldlBvc2l0aW9uKSAvIDI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdEZpZWxkID0gZmllbGRzWzBdO1xuICAgICAgICAgICAgbmV3UG9zaXRpb24gPSAoZmlyc3RGaWVsZCBhcyBBSVRhYmxlVmlld0ZpZWxkKS5wb3NpdGlvbnNbdmlld0lkXSAtIDAuMTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5leHRQYXRoID0gbmV3UGF0aFswXSArIDE7XG4gICAgICAgIGlmIChmaWVsZHMubGVuZ3RoID4gbmV4dFBhdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldE5leHRGaWVsZCA9IGZpZWxkc1tuZXh0UGF0aF07XG4gICAgICAgICAgICBjb25zdCB0YXJnZXROZXh0UG9zaXRpb24gPSAodGFyZ2V0TmV4dEZpZWxkIGFzIEFJVGFibGVWaWV3RmllbGQpLnBvc2l0aW9uc1t2aWV3SWRdO1xuICAgICAgICAgICAgbmV3UG9zaXRpb24gPSAodGFyZ2V0UG9zaXRpb24gKyB0YXJnZXROZXh0UG9zaXRpb24pIC8gMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RGaWVsZCA9IGZpZWxkc1tmaWVsZHMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBjb25zdCBsYXN0UG9zaXRpb24gPSAobGFzdEZpZWxkIGFzIEFJVGFibGVWaWV3RmllbGQpLnBvc2l0aW9uc1t2aWV3SWRdICsgMTtcbiAgICAgICAgICAgIG5ld1Bvc2l0aW9uID0gKHRhcmdldFBvc2l0aW9uICsgbGFzdFBvc2l0aW9uKSAvIDI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1Bvc2l0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRzU2l6ZU1hcChmaWVsZHM6IEFJVGFibGVWaWV3RmllbGRbXSwgYWN0aXZlVmlldzogQUlUYWJsZVZpZXcpIHtcbiAgICBjb25zdCBmaWVsZHNTaXplTWFwOiBBSVRhYmxlRmllbGRzU2l6ZU1hcCA9IHt9O1xuICAgIGZpZWxkcz8uZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgZmllbGRzU2l6ZU1hcFtmaWVsZC5faWRdID0gZmllbGQud2lkdGhzPy5bYWN0aXZlVmlldy5faWRdO1xuICAgIH0pO1xuICAgIHJldHVybiBmaWVsZHNTaXplTWFwO1xufVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvdXRpbHMvZmllbGQvcG9zaXRpb24tZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE1BQWMsRUFBRSxNQUFxQixFQUFFLElBQWdCLEVBQUUsT0FBbUI7SUFDL0csTUFBTSxjQUFjLEdBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBc0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEYsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDaEIsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sa0JBQWtCLEdBQUksZUFBb0MsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkYsV0FBVyxHQUFHLENBQUMsY0FBYyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVELENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLFdBQVcsR0FBSSxVQUErQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDM0UsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ0osTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDM0IsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sa0JBQWtCLEdBQUksZUFBb0MsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkYsV0FBVyxHQUFHLENBQUMsY0FBYyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVELENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxZQUFZLEdBQUksU0FBOEIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNFLFdBQVcsR0FBRyxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQTBCLEVBQUUsVUFBdUI7SUFDaEYsTUFBTSxhQUFhLEdBQXlCLEVBQUUsQ0FBQztJQUMvQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDdEIsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxhQUFhLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFJVGFibGVGaWVsZHMsIEFJVGFibGVGaWVsZHNTaXplTWFwLCBOdW1iZXJQYXRoIH0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuaW1wb3J0IHsgQUlUYWJsZVZpZXcsIEFJVGFibGVWaWV3RmllbGQgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZFBvc2l0aW9uSW5WaWV3KHZpZXdJZDogc3RyaW5nLCBmaWVsZHM6IEFJVGFibGVGaWVsZHMsIHBhdGg6IE51bWJlclBhdGgsIG5ld1BhdGg6IE51bWJlclBhdGgpIHtcbiAgICBjb25zdCB0YXJnZXRQb3NpdGlvbiA9IChmaWVsZHNbbmV3UGF0aFswXV0gYXMgQUlUYWJsZVZpZXdGaWVsZCkucG9zaXRpb25zW3ZpZXdJZF07XG4gICAgbGV0IG5ld1Bvc2l0aW9uID0gMDtcbiAgICBpZiAocGF0aFswXSA+IG5ld1BhdGhbMF0pIHtcbiAgICAgICAgY29uc3QgcHJldlBhdGggPSBuZXdQYXRoWzBdIC0gMTtcbiAgICAgICAgaWYgKHByZXZQYXRoID49IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldFByZXZGaWVsZCA9IGZpZWxkc1twcmV2UGF0aF07XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRQcmV2UG9zaXRpb24gPSAodGFyZ2V0UHJldkZpZWxkIGFzIEFJVGFibGVWaWV3RmllbGQpLnBvc2l0aW9uc1t2aWV3SWRdO1xuICAgICAgICAgICAgbmV3UG9zaXRpb24gPSAodGFyZ2V0UG9zaXRpb24gKyB0YXJnZXRQcmV2UG9zaXRpb24pIC8gMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RmllbGQgPSBmaWVsZHNbMF07XG4gICAgICAgICAgICBuZXdQb3NpdGlvbiA9IChmaXJzdEZpZWxkIGFzIEFJVGFibGVWaWV3RmllbGQpLnBvc2l0aW9uc1t2aWV3SWRdIC0gMC4xO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbmV4dFBhdGggPSBuZXdQYXRoWzBdICsgMTtcbiAgICAgICAgaWYgKGZpZWxkcy5sZW5ndGggPiBuZXh0UGF0aCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0TmV4dEZpZWxkID0gZmllbGRzW25leHRQYXRoXTtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldE5leHRQb3NpdGlvbiA9ICh0YXJnZXROZXh0RmllbGQgYXMgQUlUYWJsZVZpZXdGaWVsZCkucG9zaXRpb25zW3ZpZXdJZF07XG4gICAgICAgICAgICBuZXdQb3NpdGlvbiA9ICh0YXJnZXRQb3NpdGlvbiArIHRhcmdldE5leHRQb3NpdGlvbikgLyAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbGFzdEZpZWxkID0gZmllbGRzW2ZpZWxkcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RQb3NpdGlvbiA9IChsYXN0RmllbGQgYXMgQUlUYWJsZVZpZXdGaWVsZCkucG9zaXRpb25zW3ZpZXdJZF0gKyAxO1xuICAgICAgICAgICAgbmV3UG9zaXRpb24gPSAodGFyZ2V0UG9zaXRpb24gKyBsYXN0UG9zaXRpb24pIC8gMjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3UG9zaXRpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZHNTaXplTWFwKGZpZWxkczogQUlUYWJsZVZpZXdGaWVsZFtdLCBhY3RpdmVWaWV3OiBBSVRhYmxlVmlldykge1xuICAgIGNvbnN0IGZpZWxkc1NpemVNYXA6IEFJVGFibGVGaWVsZHNTaXplTWFwID0ge307XG4gICAgZmllbGRzPy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBmaWVsZHNTaXplTWFwW2ZpZWxkLl9pZF0gPSBmaWVsZC53aWR0aHM/LlthY3RpdmVWaWV3Ll9pZF07XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpZWxkc1NpemVNYXA7XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { AITableFieldType, isSystemField, FieldModelMap, isEmpty, AITableFilterOperation } from '@ai-table/grid';
1
+ import { AITableFieldType, isSystemField, FieldModelMap, isEmpty, AITableFilterOperation, } from '@ai-table/grid';
2
2
  import { AITableFilterLogical } from '../../types';
3
3
  export function getFilteredRecords(aiTable, records, fields, activeView) {
4
4
  const { conditions, condition_logical } = activeView.settings || {};
@@ -14,10 +14,10 @@ export function getFilteredRecords(aiTable, records, fields, activeView) {
14
14
  if (recordsWillHidden && recordsWillHidden.length && recordsWillHidden.includes(record._id)) {
15
15
  return true;
16
16
  }
17
- return checkConditions(fields, record, { conditions: illegalConditions, condition_logical });
17
+ return checkConditions(aiTable, fields, record, { conditions: illegalConditions, condition_logical });
18
18
  });
19
19
  }
20
- function checkConditions(fields, record, filterConditions) {
20
+ function checkConditions(aiTable, fields, record, filterConditions) {
21
21
  if (!record) {
22
22
  return false;
23
23
  }
@@ -26,24 +26,26 @@ function checkConditions(fields, record, filterConditions) {
26
26
  }
27
27
  const { condition_logical, conditions } = filterConditions;
28
28
  if (condition_logical === AITableFilterLogical.and) {
29
- return conditions.every((condition) => doFilterOperations(fields, record, condition));
29
+ return conditions.every((condition) => doFilterOperations(aiTable, fields, record, condition));
30
30
  }
31
31
  if (!condition_logical || condition_logical === AITableFilterLogical.or) {
32
- return conditions.some((condition) => doFilterOperations(fields, record, condition));
32
+ return conditions.some((condition) => doFilterOperations(aiTable, fields, record, condition));
33
33
  }
34
34
  return false;
35
35
  }
36
- function doFilterOperations(fields, record, condition) {
36
+ function doFilterOperations(aiTable, fields, record, condition) {
37
37
  const { field, cellValue } = getFilterValue(fields, record, condition);
38
38
  try {
39
- return field && doFilter(condition, field, cellValue);
39
+ return field && doFilter(condition, cellValue, {
40
+ aiTable, field
41
+ });
40
42
  }
41
43
  catch (error) {
42
44
  return false;
43
45
  }
44
46
  }
45
- export function doFilter(condition, field, cellValue) {
46
- return FieldModelMap[field.type].isMeetFilter(condition, cellValue);
47
+ export function doFilter(condition, cellValue, options) {
48
+ return FieldModelMap[options.field.type].isMeetFilter(condition, cellValue, options);
47
49
  }
48
50
  export function getDefaultRecordDataByFilter(recordValues, conditions, fields, conditionLogical) {
49
51
  const fieldMap = new Map(fields.map((field) => [field._id, field]));
@@ -103,4 +105,4 @@ function getFilterValue(fields, record, condition) {
103
105
  cellValue
104
106
  };
105
107
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RhdGUvc3JjL3V0aWxzL3JlY29yZC9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUloQixhQUFhLEVBRWIsYUFBYSxFQUNiLE9BQU8sRUFDUCxzQkFBc0IsRUFFekIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUgsb0JBQW9CLEVBTXZCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFvQixFQUFFLE9BQTJCLEVBQUUsTUFBeUIsRUFBRSxVQUF1QjtJQUNwSSxNQUFNLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsVUFBVSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7SUFDcEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDdEQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDN0IsSUFBSSxpQkFBaUIsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFGLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FB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Q0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksS0FBSyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEgsU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELE9BQU87UUFDSCxLQUFLO1FBQ0wsU0FBUztLQUNaLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBSVRhYmxlRmllbGRUeXBlLFxuICAgIEFJVGFibGVGaWx0ZXJDb25kaXRpb24sXG4gICAgQUlUYWJsZVJlY29yZCxcbiAgICBGaWVsZFZhbHVlLFxuICAgIGlzU3lzdGVtRmllbGQsXG4gICAgU3lzdGVtRmllbGRUeXBlcyxcbiAgICBGaWVsZE1vZGVsTWFwLFxuICAgIGlzRW1wdHksXG4gICAgQUlUYWJsZUZpbHRlck9wZXJhdGlvbixcbiAgICBTZWxlY3RTZXR0aW5nc1xufSBmcm9tICdAYWktdGFibGUvZ3JpZCc7XG5pbXBvcnQge1xuICAgIEFJVGFibGVGaWx0ZXJDb25kaXRpb25zLFxuICAgIEFJVGFibGVGaWx0ZXJMb2dpY2FsLFxuICAgIEFJVGFibGVWaWV3LFxuICAgIEFJVGFibGVWaWV3RmllbGQsXG4gICAgQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgQUlUYWJsZVZpZXdSZWNvcmRzLFxuICAgIEFJVmlld1RhYmxlXG59IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbHRlcmVkUmVjb3JkcyhhaVRhYmxlOiBBSVZpZXdUYWJsZSwgcmVjb3JkczogQUlUYWJsZVZpZXdSZWNvcmRzLCBmaWVsZHM6IEFJVGFibGVWaWV3RmllbGRzLCBhY3RpdmVWaWV3OiBBSVRhYmxlVmlldykge1xuICAgIGNvbnN0IHsgY29uZGl0aW9ucywgY29uZGl0aW9uX2xvZ2ljYWwgfSA9IGFjdGl2ZVZpZXcuc2V0dGluZ3MgfHwge307XG4gICAgaWYgKCFjb25kaXRpb25zKSB7XG4gICAgICAgIHJldHVybiByZWNvcmRzO1xuICAgIH1cbiAgICBjb25zdCBpbGxlZ2FsQ29uZGl0aW9ucyA9IGNvbmRpdGlvbnMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLm9wZXJhdGlvbikgfHwgW107XG4gICAgaWYgKCFpbGxlZ2FsQ29uZGl0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHJlY29yZHM7XG4gICAgfVxuICAgIGNvbnN0IHJlY29yZHNXaWxsSGlkZGVuID0gYWlUYWJsZS5yZWNvcmRzV2lsbEhpZGRlbigpO1xuICAgIHJldHVybiByZWNvcmRzLmZpbHRlcigocmVjb3JkKSA9PiB7XG4gICAgICAgIGlmIChyZWNvcmRzV2lsbEhpZGRlbiAmJiByZWNvcmRzV2lsbEhpZGRlbi5sZW5ndGggJiYgcmVjb3Jkc1dpbGxIaWRkZW4uaW5jbHVkZXMocmVjb3JkLl9pZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGVja0NvbmRpdGlvbnMoZmllbGRzLCByZWNvcmQsIHsgY29uZGl0aW9uczogaWxsZWdhbENvbmRpdGlvbnMsIGNvbmRpdGlvbl9sb2dpY2FsIH0pO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBjaGVja0NvbmRpdGlvbnMoZmllbGRzOiBBSVRhYmxlVmlld0ZpZWxkcywgcmVjb3JkOiBBSVRhYmxlUmVjb3JkLCBmaWx0ZXJDb25kaXRpb25zOiBBSVRhYmxlRmlsdGVyQ29uZGl0aW9ucykge1xuICAgIGlmICghcmVjb3JkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCFmaWx0ZXJDb25kaXRpb25zPy5jb25kaXRpb25zKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCB7IGNvbmRpdGlvbl9sb2dpY2FsLCBjb25kaXRpb25zIH0gPSBmaWx0ZXJDb25kaXRpb25zO1xuICAgIGlmIChjb25kaXRpb25fbG9naWNhbCA9PT0gQUlUYWJsZUZpbHRlckxvZ2ljYWwuYW5kKSB7XG4gICAgICAgIHJldHVybiBjb25kaXRpb25zLmV2ZXJ5KChjb25kaXRpb24pID0+IGRvRmlsdGVyT3BlcmF0aW9ucyhmaWVsZHMsIHJlY29yZCwgY29uZGl0aW9uKSk7XG4gICAgfVxuICAgIGlmICghY29uZGl0aW9uX2xvZ2ljYWwgfHwgY29uZGl0aW9uX2xvZ2ljYWwgPT09IEFJVGFibGVGaWx0ZXJMb2dpY2FsLm9yKSB7XG4gICAgICAgIHJldHVybiBjb25kaXRpb25zLnNvbWUoKGNvbmRpdGlvbikgPT4gZG9GaWx0ZXJPcGVyYXRpb25zKGZpZWxkcywgcmVjb3JkLCBjb25kaXRpb24pKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBkb0ZpbHRlck9wZXJhdGlvbnMoZmllbGRzOiBBSVRhYmxlVmlld0ZpZWxkcywgcmVjb3JkOiBBSVRhYmxlUmVjb3JkLCBjb25kaXRpb246IEFJVGFibGVGaWx0ZXJDb25kaXRpb24pIHtcbiAgICBjb25zdCB7IGZpZWxkLCBjZWxsVmFsdWUgfSA9IGdldEZpbHRlclZhbHVlKGZpZWxkcywgcmVjb3JkLCBjb25kaXRpb24pO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGZpZWxkICYmIGRvRmlsdGVyKGNvbmRpdGlvbiwgZmllbGQsIGNlbGxWYWx1ZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRvRmlsdGVyKGNvbmRpdGlvbjogQUlUYWJsZUZpbHRlckNvbmRpdGlvbiwgZmllbGQ6IEFJVGFibGVWaWV3RmllbGQsIGNlbGxWYWx1ZTogRmllbGRWYWx1ZSkge1xuICAgIHJldHVybiBGaWVsZE1vZGVsTWFwW2ZpZWxkLnR5cGVdLmlzTWVldEZpbHRlcihjb25kaXRpb24sIGNlbGxWYWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0UmVjb3JkRGF0YUJ5RmlsdGVyKFxuICAgIHJlY29yZFZhbHVlczogUmVjb3JkPHN0cmluZywgRmllbGRWYWx1ZT4sXG4gICAgY29uZGl0aW9uczogQUlUYWJsZUZpbHRlckNvbmRpdGlvbltdLFxuICAgIGZpZWxkczogQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgY29uZGl0aW9uTG9naWNhbD86IEFJVGFibGVGaWx0ZXJMb2dpY2FsXG4pIHtcbiAgICBjb25zdCBmaWVsZE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBSVRhYmxlVmlld0ZpZWxkPihmaWVsZHMubWFwKChmaWVsZCkgPT4gW2ZpZWxkLl9pZCwgZmllbGRdKSk7XG4gICAgY29uc3QgY29uZGl0aW9uRmllbGRDb3VudE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgY29uZGl0aW9ucy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRJZCA9IGNvbmRpdGlvbi5maWVsZF9pZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0bXBGaWVsZENvdW50ID0gY29uZGl0aW9uRmllbGRDb3VudE1hcC5nZXQoZmllbGRJZCkgfHwgMDtcbiAgICAgICAgY29uZGl0aW9uRmllbGRDb3VudE1hcC5zZXQoZmllbGRJZCwgdG1wRmllbGRDb3VudCArIDEpO1xuICAgIH0pO1xuICAgIGlmIChjb25kaXRpb25Mb2dpY2FsID09PSBBSVRhYmxlRmlsdGVyTG9naWNhbC5hbmQpIHtcbiAgICAgICAgY29uZGl0aW9ucy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcbiAgICAgICAgICAgIGlmIChjb25kaXRpb25GaWVsZENvdW50TWFwLmdldChjb25kaXRpb24uZmllbGRfaWQudG9TdHJpbmcoKSkgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGZpZWxkTWFwLmdldChjb25kaXRpb24uZmllbGRfaWQudG9TdHJpbmcoKSkhO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbk11bHRpcGxlT3BlcmF0aW9uQ29uZGl0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgKCEoZmllbGQuc2V0dGluZ3MgYXMgU2VsZWN0U2V0dGluZ3MpPy5pc19tdWx0aXBsZSAmJiBjb25kaXRpb24ub3BlcmF0aW9uID09PSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmVxKSB8fFxuICAgICAgICAgICAgICAgICAgICAoZmllbGQ/LnNldHRpbmdzIGFzIFNlbGVjdFNldHRpbmdzKT8uaXNfbXVsdGlwbGU7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBbQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5lcSwgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5pbl0uaW5jbHVkZXMoY29uZGl0aW9uLm9wZXJhdGlvbikgJiZcbiAgICAgICAgICAgICAgICAgICAgW0FJVGFibGVGaWVsZFR5cGUuc2VsZWN0LCBBSVRhYmxlRmllbGRUeXBlLm1lbWJlcl0uaW5jbHVkZXMoZmllbGQ/LnR5cGUpICYmXG4gICAgICAgICAgICAgICAgICAgIGNhbk11bHRpcGxlT3BlcmF0aW9uQ29uZGl0aW9uXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZFZhbHVlc1tjb25kaXRpb24uZmllbGRfaWRdID0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChmaWVsZD8udHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS5kYXRlICYmIGNvbmRpdGlvbi5vcGVyYXRpb24gPT09IEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkVmFsdWVzW2NvbmRpdGlvbi5maWVsZF9pZF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IGNvbmRpdGlvbi52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjb25kaXRpb24ub3BlcmF0aW9uID09PSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmNvbnRhaW4gJiYgQUlUYWJsZUZpZWxkVHlwZS50ZXh0ID09PSBmaWVsZD8udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRWYWx1ZXNbY29uZGl0aW9uLmZpZWxkX2lkXSA9IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5vcGVyYXRpb24gPT09IEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXEgJiZcbiAgICAgICAgICAgICAgICAgICAgW0FJVGFibGVGaWVsZFR5cGUucmF0ZSwgQUlUYWJsZUZpZWxkVHlwZS5udW1iZXIsIEFJVGFibGVGaWVsZFR5cGUucHJvZ3Jlc3NdLmluY2x1ZGVzKGZpZWxkPy50eXBlKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRWYWx1ZXNbY29uZGl0aW9uLmZpZWxkX2lkXSA9IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVjb3JkVmFsdWVzO1xufVxuXG5mdW5jdGlvbiBnZXRGaWx0ZXJWYWx1ZShmaWVsZHM6IEFJVGFibGVWaWV3RmllbGRzLCByZWNvcmQ6IEFJVGFibGVSZWNvcmQsIGNvbmRpdGlvbjogQUlUYWJsZUZpbHRlckNvbmRpdGlvbikge1xuICAgIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBjb25kaXRpb24uZmllbGRfaWQpO1xuICAgIGxldCBjZWxsVmFsdWUgPSBudWxsO1xuICAgIGlmIChmaWVsZCAmJiBpc1N5c3RlbUZpZWxkKGZpZWxkKSkge1xuICAgICAgICBpZiAoW0FJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEF0LCBBSVRhYmxlRmllbGRUeXBlLnVwZGF0ZWRBdF0uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICAgICAgICAgIGNlbGxWYWx1ZSA9IHsgdGltZXN0YW1wOiByZWNvcmRbZmllbGQudHlwZSBhcyBTeXN0ZW1GaWVsZFR5cGVzXSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2VsbFZhbHVlID0gcmVjb3JkW2ZpZWxkLnR5cGUgYXMgU3lzdGVtRmllbGRUeXBlc107XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjZWxsVmFsdWUgPSByZWNvcmQudmFsdWVzW2NvbmRpdGlvbi5maWVsZF9pZF07XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkICYmIFtBSVRhYmxlRmllbGRUeXBlLmNyZWF0ZWRCeSwgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnksIEFJVGFibGVGaWVsZFR5cGUubWVtYmVyXS5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xuICAgICAgICBjZWxsVmFsdWUgPSBBcnJheS5pc0FycmF5KGNlbGxWYWx1ZSkgPyBjZWxsVmFsdWUgOiBpc0VtcHR5KGNlbGxWYWx1ZSkgPyBbXSA6IFtjZWxsVmFsdWVdO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGZpZWxkLFxuICAgICAgICBjZWxsVmFsdWVcbiAgICB9O1xufVxuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RhdGUvc3JjL3V0aWxzL3JlY29yZC9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUloQixhQUFhLEVBRWIsYUFBYSxFQUNiLE9BQU8sRUFDUCxzQkFBc0IsR0FJekIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUgsb0JBQW9CLEVBTXZCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFvQixFQUFFLE9BQTJCLEVBQUUsTUFBeUIsRUFBRSxVQUF1QjtJQUNwSSxNQUFNLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsVUFBVSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7SUFDcEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUNELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDdEQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDN0IsSUFBSSxpQkFBaUIsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFGLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FB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Q0FBQyxLQUFLLENBQUMsSUFBd0IsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNKLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsSCxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsT0FBTztRQUNILEtBQUs7UUFDTCxTQUFTO0tBQ1osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFJVGFibGVGaWVsZFR5cGUsXG4gICAgQUlUYWJsZUZpbHRlckNvbmRpdGlvbixcbiAgICBBSVRhYmxlUmVjb3JkLFxuICAgIEZpZWxkVmFsdWUsXG4gICAgaXNTeXN0ZW1GaWVsZCxcbiAgICBTeXN0ZW1GaWVsZFR5cGVzLFxuICAgIEZpZWxkTW9kZWxNYXAsXG4gICAgaXNFbXB0eSxcbiAgICBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLFxuICAgIFNlbGVjdFNldHRpbmdzLFxuICAgIEFJVGFibGUsXG4gICAgQUlUYWJsZUZpZWxkLFxufSBmcm9tICdAYWktdGFibGUvZ3JpZCc7XG5pbXBvcnQge1xuICAgIEFJVGFibGVGaWx0ZXJDb25kaXRpb25zLFxuICAgIEFJVGFibGVGaWx0ZXJMb2dpY2FsLFxuICAgIEFJVGFibGVWaWV3LFxuICAgIEFJVGFibGVWaWV3RmllbGQsXG4gICAgQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgQUlUYWJsZVZpZXdSZWNvcmRzLFxuICAgIEFJVmlld1RhYmxlXG59IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbHRlcmVkUmVjb3JkcyhhaVRhYmxlOiBBSVZpZXdUYWJsZSwgcmVjb3JkczogQUlUYWJsZVZpZXdSZWNvcmRzLCBmaWVsZHM6IEFJVGFibGVWaWV3RmllbGRzLCBhY3RpdmVWaWV3OiBBSVRhYmxlVmlldykge1xuICAgIGNvbnN0IHsgY29uZGl0aW9ucywgY29uZGl0aW9uX2xvZ2ljYWwgfSA9IGFjdGl2ZVZpZXcuc2V0dGluZ3MgfHwge307XG4gICAgaWYgKCFjb25kaXRpb25zKSB7XG4gICAgICAgIHJldHVybiByZWNvcmRzO1xuICAgIH1cbiAgICBjb25zdCBpbGxlZ2FsQ29uZGl0aW9ucyA9IGNvbmRpdGlvbnMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLm9wZXJhdGlvbikgfHwgW107XG4gICAgaWYgKCFpbGxlZ2FsQ29uZGl0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHJlY29yZHM7XG4gICAgfVxuICAgIGNvbnN0IHJlY29yZHNXaWxsSGlkZGVuID0gYWlUYWJsZS5yZWNvcmRzV2lsbEhpZGRlbigpO1xuICAgIHJldHVybiByZWNvcmRzLmZpbHRlcigocmVjb3JkKSA9PiB7XG4gICAgICAgIGlmIChyZWNvcmRzV2lsbEhpZGRlbiAmJiByZWNvcmRzV2lsbEhpZGRlbi5sZW5ndGggJiYgcmVjb3Jkc1dpbGxIaWRkZW4uaW5jbHVkZXMocmVjb3JkLl9pZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGVja0NvbmRpdGlvbnMoYWlUYWJsZSwgZmllbGRzLCByZWNvcmQsIHsgY29uZGl0aW9uczogaWxsZWdhbENvbmRpdGlvbnMsIGNvbmRpdGlvbl9sb2dpY2FsIH0pO1xuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBjaGVja0NvbmRpdGlvbnMoYWlUYWJsZTogQUlWaWV3VGFibGUsIGZpZWxkczogQUlUYWJsZVZpZXdGaWVsZHMsIHJlY29yZDogQUlUYWJsZVJlY29yZCwgZmlsdGVyQ29uZGl0aW9uczogQUlUYWJsZUZpbHRlckNvbmRpdGlvbnMpIHtcbiAgICBpZiAoIXJlY29yZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghZmlsdGVyQ29uZGl0aW9ucz8uY29uZGl0aW9ucykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgeyBjb25kaXRpb25fbG9naWNhbCwgY29uZGl0aW9ucyB9ID0gZmlsdGVyQ29uZGl0aW9ucztcbiAgICBpZiAoY29uZGl0aW9uX2xvZ2ljYWwgPT09IEFJVGFibGVGaWx0ZXJMb2dpY2FsLmFuZCkge1xuICAgICAgICByZXR1cm4gY29uZGl0aW9ucy5ldmVyeSgoY29uZGl0aW9uKSA9PiBkb0ZpbHRlck9wZXJhdGlvbnMoYWlUYWJsZSwgZmllbGRzLCByZWNvcmQsIGNvbmRpdGlvbikpO1xuICAgIH1cbiAgICBpZiAoIWNvbmRpdGlvbl9sb2dpY2FsIHx8IGNvbmRpdGlvbl9sb2dpY2FsID09PSBBSVRhYmxlRmlsdGVyTG9naWNhbC5vcikge1xuICAgICAgICByZXR1cm4gY29uZGl0aW9ucy5zb21lKChjb25kaXRpb24pID0+IGRvRmlsdGVyT3BlcmF0aW9ucyhhaVRhYmxlLCBmaWVsZHMsIHJlY29yZCwgY29uZGl0aW9uKSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gZG9GaWx0ZXJPcGVyYXRpb25zKGFpVGFibGU6IEFJVmlld1RhYmxlLCBmaWVsZHM6IEFJVGFibGVWaWV3RmllbGRzLCByZWNvcmQ6IEFJVGFibGVSZWNvcmQsIGNvbmRpdGlvbjogQUlUYWJsZUZpbHRlckNvbmRpdGlvbikge1xuICAgIGNvbnN0IHsgZmllbGQsIGNlbGxWYWx1ZSB9ID0gZ2V0RmlsdGVyVmFsdWUoZmllbGRzLCByZWNvcmQsIGNvbmRpdGlvbik7XG5cbiAgICB0cnkge1xuICAgICAgICByZXR1cm4gZmllbGQgJiYgZG9GaWx0ZXIoY29uZGl0aW9uLCBjZWxsVmFsdWUsIHtcbiAgICAgICAgICAgIGFpVGFibGUsIGZpZWxkXG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb0ZpbHRlcihjb25kaXRpb246IEFJVGFibGVGaWx0ZXJDb25kaXRpb24sIGNlbGxWYWx1ZTogRmllbGRWYWx1ZSwgb3B0aW9uczoge1xuICAgIGFpVGFibGU6IEFJVGFibGU7XG4gICAgZmllbGQ6IEFJVGFibGVGaWVsZCxcbn0pIHtcbiAgICByZXR1cm4gRmllbGRNb2RlbE1hcFtvcHRpb25zLmZpZWxkLnR5cGVdLmlzTWVldEZpbHRlcihjb25kaXRpb24sIGNlbGxWYWx1ZSwgb3B0aW9ucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0UmVjb3JkRGF0YUJ5RmlsdGVyKFxuICAgIHJlY29yZFZhbHVlczogUmVjb3JkPHN0cmluZywgRmllbGRWYWx1ZT4sXG4gICAgY29uZGl0aW9uczogQUlUYWJsZUZpbHRlckNvbmRpdGlvbltdLFxuICAgIGZpZWxkczogQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgY29uZGl0aW9uTG9naWNhbD86IEFJVGFibGVGaWx0ZXJMb2dpY2FsXG4pIHtcbiAgICBjb25zdCBmaWVsZE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBSVRhYmxlVmlld0ZpZWxkPihmaWVsZHMubWFwKChmaWVsZCkgPT4gW2ZpZWxkLl9pZCwgZmllbGRdKSk7XG4gICAgY29uc3QgY29uZGl0aW9uRmllbGRDb3VudE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgY29uZGl0aW9ucy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRJZCA9IGNvbmRpdGlvbi5maWVsZF9pZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0bXBGaWVsZENvdW50ID0gY29uZGl0aW9uRmllbGRDb3VudE1hcC5nZXQoZmllbGRJZCkgfHwgMDtcbiAgICAgICAgY29uZGl0aW9uRmllbGRDb3VudE1hcC5zZXQoZmllbGRJZCwgdG1wRmllbGRDb3VudCArIDEpO1xuICAgIH0pO1xuICAgIGlmIChjb25kaXRpb25Mb2dpY2FsID09PSBBSVRhYmxlRmlsdGVyTG9naWNhbC5hbmQpIHtcbiAgICAgICAgY29uZGl0aW9ucy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcbiAgICAgICAgICAgIGlmIChjb25kaXRpb25GaWVsZENvdW50TWFwLmdldChjb25kaXRpb24uZmllbGRfaWQudG9TdHJpbmcoKSkgPT09IDEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGZpZWxkTWFwLmdldChjb25kaXRpb24uZmllbGRfaWQudG9TdHJpbmcoKSkhO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbk11bHRpcGxlT3BlcmF0aW9uQ29uZGl0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgKCEoZmllbGQuc2V0dGluZ3MgYXMgU2VsZWN0U2V0dGluZ3MpPy5pc19tdWx0aXBsZSAmJiBjb25kaXRpb24ub3BlcmF0aW9uID09PSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmVxKSB8fFxuICAgICAgICAgICAgICAgICAgICAoZmllbGQ/LnNldHRpbmdzIGFzIFNlbGVjdFNldHRpbmdzKT8uaXNfbXVsdGlwbGU7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBbQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5lcSwgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5pbl0uaW5jbHVkZXMoY29uZGl0aW9uLm9wZXJhdGlvbikgJiZcbiAgICAgICAgICAgICAgICAgICAgW0FJVGFibGVGaWVsZFR5cGUuc2VsZWN0LCBBSVRhYmxlRmllbGRUeXBlLm1lbWJlcl0uaW5jbHVkZXMoZmllbGQ/LnR5cGUpICYmXG4gICAgICAgICAgICAgICAgICAgIGNhbk11bHRpcGxlT3BlcmF0aW9uQ29uZGl0aW9uXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZFZhbHVlc1tjb25kaXRpb24uZmllbGRfaWRdID0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChmaWVsZD8udHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS5kYXRlICYmIGNvbmRpdGlvbi5vcGVyYXRpb24gPT09IEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkVmFsdWVzW2NvbmRpdGlvbi5maWVsZF9pZF0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IGNvbmRpdGlvbi52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjb25kaXRpb24ub3BlcmF0aW9uID09PSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmNvbnRhaW4gJiYgQUlUYWJsZUZpZWxkVHlwZS50ZXh0ID09PSBmaWVsZD8udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRWYWx1ZXNbY29uZGl0aW9uLmZpZWxkX2lkXSA9IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5vcGVyYXRpb24gPT09IEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXEgJiZcbiAgICAgICAgICAgICAgICAgICAgW0FJVGFibGVGaWVsZFR5cGUucmF0ZSwgQUlUYWJsZUZpZWxkVHlwZS5udW1iZXIsIEFJVGFibGVGaWVsZFR5cGUucHJvZ3Jlc3NdLmluY2x1ZGVzKGZpZWxkPy50eXBlKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZWNvcmRWYWx1ZXNbY29uZGl0aW9uLmZpZWxkX2lkXSA9IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVjb3JkVmFsdWVzO1xufVxuXG5mdW5jdGlvbiBnZXRGaWx0ZXJWYWx1ZShmaWVsZHM6IEFJVGFibGVWaWV3RmllbGRzLCByZWNvcmQ6IEFJVGFibGVSZWNvcmQsIGNvbmRpdGlvbjogQUlUYWJsZUZpbHRlckNvbmRpdGlvbikge1xuICAgIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBjb25kaXRpb24uZmllbGRfaWQpO1xuICAgIGxldCBjZWxsVmFsdWUgPSBudWxsO1xuICAgIGlmIChmaWVsZCAmJiBpc1N5c3RlbUZpZWxkKGZpZWxkKSkge1xuICAgICAgICBpZiAoW0FJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEF0LCBBSVRhYmxlRmllbGRUeXBlLnVwZGF0ZWRBdF0uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcbiAgICAgICAgICAgIGNlbGxWYWx1ZSA9IHsgdGltZXN0YW1wOiByZWNvcmRbZmllbGQudHlwZSBhcyBTeXN0ZW1GaWVsZFR5cGVzXSB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2VsbFZhbHVlID0gcmVjb3JkW2ZpZWxkLnR5cGUgYXMgU3lzdGVtRmllbGRUeXBlc107XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjZWxsVmFsdWUgPSByZWNvcmQudmFsdWVzW2NvbmRpdGlvbi5maWVsZF9pZF07XG4gICAgfVxuXG4gICAgaWYgKGZpZWxkICYmIFtBSVRhYmxlRmllbGRUeXBlLmNyZWF0ZWRCeSwgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnksIEFJVGFibGVGaWVsZFR5cGUubWVtYmVyXS5pbmNsdWRlcyhmaWVsZC50eXBlKSkge1xuICAgICAgICBjZWxsVmFsdWUgPSBBcnJheS5pc0FycmF5KGNlbGxWYWx1ZSkgPyBjZWxsVmFsdWUgOiBpc0VtcHR5KGNlbGxWYWx1ZSkgPyBbXSA6IFtjZWxsVmFsdWVdO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGZpZWxkLFxuICAgICAgICBjZWxsVmFsdWVcbiAgICB9O1xufVxuIl19
@@ -24,7 +24,10 @@ export function sortRecordsBySortInfo(aiTable, records, activeView, sortKeysMap)
24
24
  const cellValue1 = AITableQueries.getFieldValue(aiTable, [prev._id, field._id]);
25
25
  const cellValue2 = AITableQueries.getFieldValue(aiTable, [current._id, field._id]);
26
26
  const references = aiTable.context.references();
27
- const res = fieldMethod.compare(cellValue1, cellValue2, field, references, sortKey);
27
+ const res = fieldMethod.compare(cellValue1, cellValue2, references, sortKey, {
28
+ aiTable,
29
+ field
30
+ });
28
31
  return res * rule.direction;
29
32
  }, 0);
30
33
  });
@@ -32,4 +35,4 @@ export function sortRecordsBySortInfo(aiTable, records, activeView, sortKeysMap)
32
35
  }
33
36
  return shallowRows;
34
37
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0YXRlL3NyYy91dGlscy9yZWNvcmQvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTZCLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFL0MsTUFBTSxVQUFVLGNBQWMsQ0FDMUIsT0FBZ0IsRUFDaEIsT0FBMkIsRUFDM0IsVUFBdUIsRUFDdkIsV0FBdUQ7SUFFdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM5RCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO0lBQ3BELElBQUksWUFBWSxJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNoQyxPQUFPLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxPQUFPLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNqQyxPQUFnQixFQUNoQixPQUEyQixFQUMzQixVQUF1QixFQUN2QixXQUF1RDtJQUV2RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDakMsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNyQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQy9CLE9BQU8sVUFBVSxDQUFDLFFBQVMsQ0FBQyxLQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNwRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxHQUFHLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5QyxNQUFNLE9BQU8sR0FBRyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRTFDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDaEYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNqRCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDcEYsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNoQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlUYWJsZSwgQUlUYWJsZUZpZWxkVHlwZSwgQUlUYWJsZVF1ZXJpZXMsIEZpZWxkTW9kZWxNYXAgfSBmcm9tICdAYWktdGFibGUvZ3JpZCc7XG5pbXBvcnQgeyBBSVRhYmxlVmlldywgQUlUYWJsZVZpZXdSZWNvcmRzIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgc29ydEJ5Vmlld1Bvc2l0aW9uIH0gZnJvbSAnLi4vY29tbW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNvcnRSZWNvcmRzKFxuICAgIGFpVGFibGU6IEFJVGFibGUsXG4gICAgcmVjb3JkczogQUlUYWJsZVZpZXdSZWNvcmRzLFxuICAgIGFjdGl2ZVZpZXc6IEFJVGFibGVWaWV3LFxuICAgIHNvcnRLZXlzTWFwPzogUGFydGlhbDxSZWNvcmQ8QUlUYWJsZUZpZWxkVHlwZSwgc3RyaW5nPj5cbikge1xuICAgIGlmICghYWN0aXZlVmlldz8uc2V0dGluZ3MgfHwgIWFjdGl2ZVZpZXcuc2V0dGluZ3Muc29ydHM/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gcmVjb3JkcztcbiAgICB9XG4gICAgY29uc3QgeyBpc19rZWVwX3NvcnQsIHNvcnRzIH0gPSBhY3RpdmVWaWV3LnNldHRpbmdzO1xuICAgIGlmIChpc19rZWVwX3NvcnQgJiYgc29ydHM/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gc29ydFJlY29yZHNCeVNvcnRJbmZvKGFpVGFibGUsIHJlY29yZHMsIGFjdGl2ZVZpZXcsIHNvcnRLZXlzTWFwKTtcbiAgICB9XG4gICAgcmV0dXJuIHNvcnRCeVZpZXdQb3NpdGlvbihyZWNvcmRzLCBhY3RpdmVWaWV3KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRSZWNvcmRzQnlTb3J0SW5mbyhcbiAgICBhaVRhYmxlOiBBSVRhYmxlLFxuICAgIHJlY29yZHM6IEFJVGFibGVWaWV3UmVjb3JkcyxcbiAgICBhY3RpdmVWaWV3OiBBSVRhYmxlVmlldyxcbiAgICBzb3J0S2V5c01hcD86IFBhcnRpYWw8UmVjb3JkPEFJVGFibGVGaWVsZFR5cGUsIHN0cmluZz4+XG4pIHtcbiAgICBjb25zdCBzaGFsbG93Um93cyA9IFsuLi5yZWNvcmRzXTtcbiAgICBpZiAoYWN0aXZlVmlldy5zZXR0aW5ncz8uc29ydHM/Lmxlbmd0aCkge1xuICAgICAgICBzaGFsbG93Um93cy5zb3J0KChwcmV2LCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYWN0aXZlVmlldy5zZXR0aW5ncyEuc29ydHMhLnJlZHVjZSgoYWNjLCBydWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGQgPSBhaVRhYmxlLmZpZWxkc01hcCgpW3J1bGUuc29ydF9ieV07XG4gICAgICAgICAgICAgICAgaWYgKCFmaWVsZCB8fCBhY2MgIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRNZXRob2QgPSBGaWVsZE1vZGVsTWFwW2ZpZWxkLnR5cGVdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRLZXkgPSBzb3J0S2V5c01hcD8uW2ZpZWxkLnR5cGVdO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgY2VsbFZhbHVlMSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUoYWlUYWJsZSwgW3ByZXYuX2lkLCBmaWVsZC5faWRdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsVmFsdWUyID0gQUlUYWJsZVF1ZXJpZXMuZ2V0RmllbGRWYWx1ZShhaVRhYmxlLCBbY3VycmVudC5faWQsIGZpZWxkLl9pZF0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSBhaVRhYmxlLmNvbnRleHQhLnJlZmVyZW5jZXMoKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBmaWVsZE1ldGhvZC5jb21wYXJlKGNlbGxWYWx1ZTEsIGNlbGxWYWx1ZTIsIGZpZWxkLCByZWZlcmVuY2VzLCBzb3J0S2V5KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzICogcnVsZS5kaXJlY3Rpb247XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzaGFsbG93Um93cztcbiAgICB9XG4gICAgcmV0dXJuIHNoYWxsb3dSb3dzO1xufVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0YXRlL3NyYy91dGlscy9yZWNvcmQvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTZCLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFL0MsTUFBTSxVQUFVLGNBQWMsQ0FDMUIsT0FBZ0IsRUFDaEIsT0FBMkIsRUFDM0IsVUFBdUIsRUFDdkIsV0FBdUQ7SUFFdkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUM5RCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBQ0QsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO0lBQ3BELElBQUksWUFBWSxJQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNoQyxPQUFPLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxPQUFPLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNqQyxPQUFnQixFQUNoQixPQUEyQixFQUMzQixVQUF1QixFQUN2QixXQUF1RDtJQUV2RCxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDakMsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNyQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQy9CLE9BQU8sVUFBVSxDQUFDLFFBQVMsQ0FBQyxLQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNwRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsT0FBTyxHQUFHLENBQUM7Z0JBQ2YsQ0FBQztnQkFDRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5QyxNQUFNLE9BQU8sR0FBRyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRTFDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDaEYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNqRCxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRTtvQkFDekUsT0FBTztvQkFDUCxLQUFLO2lCQUNSLENBQUMsQ0FBQztnQkFDSCxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2hDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVRhYmxlLCBBSVRhYmxlRmllbGRUeXBlLCBBSVRhYmxlUXVlcmllcywgRmllbGRNb2RlbE1hcCB9IGZyb20gJ0BhaS10YWJsZS9ncmlkJztcbmltcG9ydCB7IEFJVGFibGVWaWV3LCBBSVRhYmxlVmlld1JlY29yZHMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBzb3J0QnlWaWV3UG9zaXRpb24gfSBmcm9tICcuLi9jb21tb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ydFJlY29yZHMoXG4gICAgYWlUYWJsZTogQUlUYWJsZSxcbiAgICByZWNvcmRzOiBBSVRhYmxlVmlld1JlY29yZHMsXG4gICAgYWN0aXZlVmlldzogQUlUYWJsZVZpZXcsXG4gICAgc29ydEtleXNNYXA/OiBQYXJ0aWFsPFJlY29yZDxBSVRhYmxlRmllbGRUeXBlLCBzdHJpbmc+PlxuKSB7XG4gICAgaWYgKCFhY3RpdmVWaWV3Py5zZXR0aW5ncyB8fCAhYWN0aXZlVmlldy5zZXR0aW5ncy5zb3J0cz8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiByZWNvcmRzO1xuICAgIH1cbiAgICBjb25zdCB7IGlzX2tlZXBfc29ydCwgc29ydHMgfSA9IGFjdGl2ZVZpZXcuc2V0dGluZ3M7XG4gICAgaWYgKGlzX2tlZXBfc29ydCAmJiBzb3J0cz8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBzb3J0UmVjb3Jkc0J5U29ydEluZm8oYWlUYWJsZSwgcmVjb3JkcywgYWN0aXZlVmlldywgc29ydEtleXNNYXApO1xuICAgIH1cbiAgICByZXR1cm4gc29ydEJ5Vmlld1Bvc2l0aW9uKHJlY29yZHMsIGFjdGl2ZVZpZXcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29ydFJlY29yZHNCeVNvcnRJbmZvKFxuICAgIGFpVGFibGU6IEFJVGFibGUsXG4gICAgcmVjb3JkczogQUlUYWJsZVZpZXdSZWNvcmRzLFxuICAgIGFjdGl2ZVZpZXc6IEFJVGFibGVWaWV3LFxuICAgIHNvcnRLZXlzTWFwPzogUGFydGlhbDxSZWNvcmQ8QUlUYWJsZUZpZWxkVHlwZSwgc3RyaW5nPj5cbikge1xuICAgIGNvbnN0IHNoYWxsb3dSb3dzID0gWy4uLnJlY29yZHNdO1xuICAgIGlmIChhY3RpdmVWaWV3LnNldHRpbmdzPy5zb3J0cz8ubGVuZ3RoKSB7XG4gICAgICAgIHNoYWxsb3dSb3dzLnNvcnQoKHByZXYsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBhY3RpdmVWaWV3LnNldHRpbmdzIS5zb3J0cyEucmVkdWNlKChhY2MsIHJ1bGUpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGFpVGFibGUuZmllbGRzTWFwKClbcnVsZS5zb3J0X2J5XTtcbiAgICAgICAgICAgICAgICBpZiAoIWZpZWxkIHx8IGFjYyAhPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZE1ldGhvZCA9IEZpZWxkTW9kZWxNYXBbZmllbGQudHlwZV07XG4gICAgICAgICAgICAgICAgY29uc3Qgc29ydEtleSA9IHNvcnRLZXlzTWFwPy5bZmllbGQudHlwZV07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsVmFsdWUxID0gQUlUYWJsZVF1ZXJpZXMuZ2V0RmllbGRWYWx1ZShhaVRhYmxlLCBbcHJldi5faWQsIGZpZWxkLl9pZF0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxWYWx1ZTIgPSBBSVRhYmxlUXVlcmllcy5nZXRGaWVsZFZhbHVlKGFpVGFibGUsIFtjdXJyZW50Ll9pZCwgZmllbGQuX2lkXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IGFpVGFibGUuY29udGV4dCEucmVmZXJlbmNlcygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGZpZWxkTWV0aG9kLmNvbXBhcmUoY2VsbFZhbHVlMSwgY2VsbFZhbHVlMiwgcmVmZXJlbmNlcywgc29ydEtleSwge1xuICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXMgKiBydWxlLmRpcmVjdGlvbjtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHNoYWxsb3dSb3dzO1xuICAgIH1cbiAgICByZXR1cm4gc2hhbGxvd1Jvd3M7XG59XG4iXX0=
@@ -777,7 +777,10 @@ function sortRecordsBySortInfo(aiTable, records, activeView, sortKeysMap) {
777
777
  const cellValue1 = AITableQueries.getFieldValue(aiTable, [prev._id, field._id]);
778
778
  const cellValue2 = AITableQueries.getFieldValue(aiTable, [current._id, field._id]);
779
779
  const references = aiTable.context.references();
780
- const res = fieldMethod.compare(cellValue1, cellValue2, field, references, sortKey);
780
+ const res = fieldMethod.compare(cellValue1, cellValue2, references, sortKey, {
781
+ aiTable,
782
+ field
783
+ });
781
784
  return res * rule.direction;
782
785
  }, 0);
783
786
  });
@@ -800,10 +803,10 @@ function getFilteredRecords(aiTable, records, fields, activeView) {
800
803
  if (recordsWillHidden && recordsWillHidden.length && recordsWillHidden.includes(record._id)) {
801
804
  return true;
802
805
  }
803
- return checkConditions(fields, record, { conditions: illegalConditions, condition_logical });
806
+ return checkConditions(aiTable, fields, record, { conditions: illegalConditions, condition_logical });
804
807
  });
805
808
  }
806
- function checkConditions(fields, record, filterConditions) {
809
+ function checkConditions(aiTable, fields, record, filterConditions) {
807
810
  if (!record) {
808
811
  return false;
809
812
  }
@@ -812,24 +815,26 @@ function checkConditions(fields, record, filterConditions) {
812
815
  }
813
816
  const { condition_logical, conditions } = filterConditions;
814
817
  if (condition_logical === AITableFilterLogical.and) {
815
- return conditions.every((condition) => doFilterOperations(fields, record, condition));
818
+ return conditions.every((condition) => doFilterOperations(aiTable, fields, record, condition));
816
819
  }
817
820
  if (!condition_logical || condition_logical === AITableFilterLogical.or) {
818
- return conditions.some((condition) => doFilterOperations(fields, record, condition));
821
+ return conditions.some((condition) => doFilterOperations(aiTable, fields, record, condition));
819
822
  }
820
823
  return false;
821
824
  }
822
- function doFilterOperations(fields, record, condition) {
825
+ function doFilterOperations(aiTable, fields, record, condition) {
823
826
  const { field, cellValue } = getFilterValue(fields, record, condition);
824
827
  try {
825
- return field && doFilter(condition, field, cellValue);
828
+ return field && doFilter(condition, cellValue, {
829
+ aiTable, field
830
+ });
826
831
  }
827
832
  catch (error) {
828
833
  return false;
829
834
  }
830
835
  }
831
- function doFilter(condition, field, cellValue) {
832
- return FieldModelMap[field.type].isMeetFilter(condition, cellValue);
836
+ function doFilter(condition, cellValue, options) {
837
+ return FieldModelMap[options.field.type].isMeetFilter(condition, cellValue, options);
833
838
  }
834
839
  function getDefaultRecordDataByFilter(recordValues, conditions, fields, conditionLogical) {
835
840
  const fieldMap = new Map(fields.map((field) => [field._id, field]));
@@ -907,7 +912,7 @@ function getFieldPositionInView(viewId, fields, path, newPath) {
907
912
  let newPosition = 0;
908
913
  if (path[0] > newPath[0]) {
909
914
  const prevPath = newPath[0] - 1;
910
- if (prevPath > 0) {
915
+ if (prevPath >= 0) {
911
916
  const targetPrevField = fields[prevPath];
912
917
  const targetPrevPosition = targetPrevField.positions[viewId];
913
918
  newPosition = (targetPosition + targetPrevPosition) / 2;
@@ -1172,12 +1177,21 @@ const apply = (aiTable, records, fields, views, action) => {
1172
1177
  const GeneralActions = {
1173
1178
  transform(aiTable, action) {
1174
1179
  const records = createDraft(aiTable.records());
1175
- const fields = createDraft(aiTable.gridData().fields);
1180
+ const fields = createDraft(aiTable.fields());
1176
1181
  const views = createDraft(aiTable.views());
1177
1182
  apply(aiTable, records, fields, views, action);
1178
- aiTable.fields.set(finishDraft(fields));
1179
- aiTable.records.set(finishDraft(records));
1180
- aiTable.views.set(finishDraft(views));
1183
+ const newFields = finishDraft(fields);
1184
+ const newRecords = finishDraft(records);
1185
+ const newViews = finishDraft(views);
1186
+ if (newFields !== aiTable.fields()) {
1187
+ aiTable.fields.set(newFields);
1188
+ }
1189
+ if (newRecords !== aiTable.records()) {
1190
+ aiTable.records.set(newRecords);
1191
+ }
1192
+ if (newViews !== aiTable.views()) {
1193
+ aiTable.views.set(newViews);
1194
+ }
1181
1195
  }
1182
1196
  };
1183
1197
 
@@ -1195,13 +1209,20 @@ const PositionsActions = {
1195
1209
 
1196
1210
  function updateFieldValue$1(aiTable, value, path) {
1197
1211
  const oldValue = AITableQueries.getFieldValue(aiTable, path);
1198
- const operation = {
1199
- type: ActionName.UpdateFieldValue,
1200
- fieldValue: oldValue,
1201
- newFieldValue: value,
1202
- path
1203
- };
1204
- aiTable.apply(operation);
1212
+ const field = AITableQueries.getField(aiTable, [path[1]]);
1213
+ const fieldModel = field && FieldModelMap[field.type];
1214
+ if (fieldModel && fieldModel.isValid(value)) {
1215
+ const operation = {
1216
+ type: ActionName.UpdateFieldValue,
1217
+ fieldValue: oldValue,
1218
+ newFieldValue: value,
1219
+ path
1220
+ };
1221
+ aiTable.apply(operation);
1222
+ }
1223
+ else {
1224
+ console.error(`Invalid field value at update field value. invalidFieldValue: ${field?.type}, value: ${value}, field_id: ${path[1]}`);
1225
+ }
1205
1226
  }
1206
1227
  function updateSystemFieldValue(aiTable, path, updatedInfo) {
1207
1228
  const operation = {
@@ -1212,12 +1233,27 @@ function updateSystemFieldValue(aiTable, path, updatedInfo) {
1212
1233
  aiTable.apply(operation);
1213
1234
  }
1214
1235
  function addRecord(aiTable, record, path) {
1215
- const operation = {
1216
- type: ActionName.AddRecord,
1217
- record,
1218
- path
1219
- };
1220
- aiTable.apply(operation);
1236
+ const invalidFieldValues = [];
1237
+ const isValid = Object.entries(record.values).every(([fieldId, value]) => {
1238
+ const field = AITableQueries.getField(aiTable, [fieldId]);
1239
+ const fieldModel = field && FieldModelMap[field.type];
1240
+ const result = fieldModel ? fieldModel.isValid(value) : false;
1241
+ if (!result) {
1242
+ invalidFieldValues.push(`field_id: ${fieldId}, field_type: ${field?.type}, value: ${value}`);
1243
+ }
1244
+ return result;
1245
+ });
1246
+ if (isValid) {
1247
+ const operation = {
1248
+ type: ActionName.AddRecord,
1249
+ record,
1250
+ path
1251
+ };
1252
+ aiTable.apply(operation);
1253
+ }
1254
+ else {
1255
+ console.error(`Invalid field values at add record. invalidFieldValues: ${invalidFieldValues}`);
1256
+ }
1221
1257
  }
1222
1258
  function moveRecord(aiTable, path, newPath) {
1223
1259
  const operation = {