@rivet-health/design-system 40.35.1 → 40.35.2

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,5 +1,49 @@
1
1
  export var TableSearchHelpers;
2
2
  (function (TableSearchHelpers) {
3
+ /**
4
+ * The configured fuse options, without the keys for columns search does not
5
+ * cover: the ones marked `searchable: false` and the ones turned off in
6
+ * "Search in". Keys that don't belong to a column are left alone.
7
+ */
8
+ function fuseOptionsForSearchColumns(fuseOptions, columns, query) {
9
+ if (!fuseOptions?.keys)
10
+ return fuseOptions;
11
+ const excludedPaths = new Set(Array.from(columns.entries())
12
+ .filter(([key, column]) => column.searchable === false ||
13
+ query.searchColumns.get(key) === false)
14
+ .map(([key, column]) => columnPath(key, column)));
15
+ return {
16
+ ...fuseOptions,
17
+ keys: fuseOptions.keys.filter(key => !excludedPaths.has(fuseKeyPath(key))),
18
+ };
19
+ }
20
+ TableSearchHelpers.fuseOptionsForSearchColumns = fuseOptionsForSearchColumns;
21
+ /**
22
+ * Marks the columns with no key in `fuseOptions.keys` as `searchable: false`,
23
+ * so "Search in" only offers columns that search can cover.
24
+ */
25
+ function markColumnsOutsideFuseKeysUnsearchable(columns, fuseOptions) {
26
+ if (!fuseOptions?.keys)
27
+ return columns;
28
+ const keyPaths = new Set(fuseOptions.keys.map(fuseKeyPath));
29
+ return new Map(Array.from(columns.entries()).map(([key, column]) => [
30
+ key,
31
+ keyPaths.has(columnPath(key, column))
32
+ ? column
33
+ : { ...column, searchable: false },
34
+ ]));
35
+ }
36
+ TableSearchHelpers.markColumnsOutsideFuseKeysUnsearchable = markColumnsOutsideFuseKeysUnsearchable;
37
+ function columnPath(key, column) {
38
+ return column.orderKey?.toString() ?? key.toString();
39
+ }
40
+ function fuseKeyPath(key) {
41
+ if (typeof key === 'string')
42
+ return key;
43
+ if (Array.isArray(key))
44
+ return key.join('.');
45
+ return Array.isArray(key.name) ? key.name.join('.') : key.name;
46
+ }
3
47
  function getSearchColumnsSelectedState(state, expectedValue) {
4
48
  switch (expectedValue) {
5
49
  case 'all':
@@ -25,4 +69,4 @@ export var TableSearchHelpers;
25
69
  }
26
70
  TableSearchHelpers.toggleAllSearchColumns = toggleAllSearchColumns;
27
71
  })(TableSearchHelpers || (TableSearchHelpers = {}));
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS90YWJsZS9zdGF0ZS1oZWxwZXJzL3NlYXJjaC1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sS0FBVyxrQkFBa0IsQ0E0Q2xDO0FBNUNELFdBQWlCLGtCQUFrQjtJQUNqQyxTQUFnQiw2QkFBNkIsQ0FNM0MsS0FBcUMsRUFDckMsYUFBNkI7UUFFN0IsUUFBUSxhQUFhLEVBQUU7WUFDckIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FDekQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQ2YsQ0FBQztZQUVKLEtBQUssTUFBTTtnQkFDVCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQ3pELEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQ2hCLENBQUM7U0FDTDtJQUNILENBQUM7SUFwQmUsZ0RBQTZCLGdDQW9CNUMsQ0FBQTtJQUVELFNBQWdCLHNCQUFzQixDQUtwQyxLQUFxQztRQUNyQyxNQUFNLFlBQVksR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxHQUFHO1lBQ0gsWUFBWTtTQUNiLENBQUMsQ0FDSCxDQUFDO1FBQ0YsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLEtBQUssRUFBRTtnQkFDTCxHQUFHLEtBQUssQ0FBQyxLQUFLO2dCQUNkLGFBQWEsRUFBRSxPQUFPO2FBQ3ZCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFwQmUseUNBQXNCLHlCQW9CckMsQ0FBQTtBQUNILENBQUMsRUE1Q2dCLGtCQUFrQixLQUFsQixrQkFBa0IsUUE0Q2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUml2VGFibGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgVGFibGVTZWFyY2hIZWxwZXJzIHtcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldFNlYXJjaENvbHVtbnNTZWxlY3RlZFN0YXRlPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oXG4gICAgc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPixcbiAgICBleHBlY3RlZFZhbHVlOiAnYWxsJyB8ICdub25lJyxcbiAgKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoIChleHBlY3RlZFZhbHVlKSB7XG4gICAgICBjYXNlICdhbGwnOlxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzdGF0ZS5xdWVyeS5zZWFyY2hDb2x1bW5zLnZhbHVlcygpKS5ldmVyeShcbiAgICAgICAgICB2YWx1ZSA9PiB2YWx1ZSxcbiAgICAgICAgKTtcblxuICAgICAgY2FzZSAnbm9uZSc6XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHN0YXRlLnF1ZXJ5LnNlYXJjaENvbHVtbnMudmFsdWVzKCkpLmV2ZXJ5KFxuICAgICAgICAgIHZhbHVlID0+ICF2YWx1ZSxcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gdG9nZ2xlQWxsU2VhcmNoQ29sdW1uczxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4pOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGNvbnN0IG5vbmVTZWxlY3RlZCA9IGdldFNlYXJjaENvbHVtbnNTZWxlY3RlZFN0YXRlKHN0YXRlLCAnbm9uZScpO1xuICAgIGNvbnN0IHBheWxvYWQgPSBuZXcgTWFwKFxuICAgICAgQXJyYXkuZnJvbShzdGF0ZS5xdWVyeS5zZWFyY2hDb2x1bW5zLmtleXMoKSkubWFwKGtleSA9PiBbXG4gICAgICAgIGtleSxcbiAgICAgICAgbm9uZVNlbGVjdGVkLFxuICAgICAgXSksXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBxdWVyeToge1xuICAgICAgICAuLi5zdGF0ZS5xdWVyeSxcbiAgICAgICAgc2VhcmNoQ29sdW1uczogcGF5bG9hZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi90YWJsZS90YWJsZS9zdGF0ZS1oZWxwZXJzL3NlYXJjaC1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sS0FBVyxrQkFBa0IsQ0FnSGxDO0FBaEhELFdBQWlCLGtCQUFrQjtJQUNqQzs7OztPQUlHO0lBQ0gsU0FBZ0IsMkJBQTJCLENBS3pDLFdBQXdDLEVBQ3hDLE9BQW1ELEVBQ25ELEtBQTJCO1FBRTNCLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSTtZQUFFLE9BQU8sV0FBVyxDQUFDO1FBQzNDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxDQUMzQixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMxQixNQUFNLENBQ0wsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQ2hCLE1BQU0sQ0FBQyxVQUFVLEtBQUssS0FBSztZQUMzQixLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQ3pDO2FBQ0EsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztRQUNGLE9BQU87WUFDTCxHQUFHLFdBQVc7WUFDZCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQzNCLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUM1QztTQUNGLENBQUM7SUFDSixDQUFDO0lBekJlLDhDQUEyQiw4QkF5QjFDLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixz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WyJpbXBvcnQgeyBGdXNlT3B0aW9uS2V5LCBJRnVzZU9wdGlvbnMgfSBmcm9tICdmdXNlLmpzJztcbmltcG9ydCB7IFJpdlRhYmxlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5leHBvcnQgbmFtZXNwYWNlIFRhYmxlU2VhcmNoSGVscGVycyB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBmdXNlIG9wdGlvbnMsIHdpdGhvdXQgdGhlIGtleXMgZm9yIGNvbHVtbnMgc2VhcmNoIGRvZXMgbm90XG4gICAqIGNvdmVyOiB0aGUgb25lcyBtYXJrZWQgYHNlYXJjaGFibGU6IGZhbHNlYCBhbmQgdGhlIG9uZXMgdHVybmVkIG9mZiBpblxuICAgKiBcIlNlYXJjaCBpblwiLiBLZXlzIHRoYXQgZG9uJ3QgYmVsb25nIHRvIGEgY29sdW1uIGFyZSBsZWZ0IGFsb25lLlxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGZ1c2VPcHRpb25zRm9yU2VhcmNoQ29sdW1uczxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gID4oXG4gICAgZnVzZU9wdGlvbnM6IElGdXNlT3B0aW9uczxSPiB8IHVuZGVmaW5lZCxcbiAgICBjb2x1bW5zOiBNYXA8QywgUml2VGFibGUuSW5NZW1vcnlDb2x1bW5NZXRhZGF0YTxSPj4sXG4gICAgcXVlcnk6IFJpdlRhYmxlLlF1ZXJ5PEMsIEY+LFxuICApOiBJRnVzZU9wdGlvbnM8Uj4gfCB1bmRlZmluZWQge1xuICAgIGlmICghZnVzZU9wdGlvbnM/LmtleXMpIHJldHVybiBmdXNlT3B0aW9ucztcbiAgICBjb25zdCBleGNsdWRlZFBhdGhzID0gbmV3IFNldChcbiAgICAgIEFycmF5LmZyb20oY29sdW1ucy5lbnRyaWVzKCkpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKFtrZXksIGNvbHVtbl0pID0+XG4gICAgICAgICAgICBjb2x1bW4uc2VhcmNoYWJsZSA9PT0gZmFsc2UgfHxcbiAgICAgICAgICAgIHF1ZXJ5LnNlYXJjaENvbHVtbnMuZ2V0KGtleSkgPT09IGZhbHNlLFxuICAgICAgICApXG4gICAgICAgIC5tYXAoKFtrZXksIGNvbHVtbl0pID0+IGNvbHVtblBhdGgoa2V5LCBjb2x1bW4pKSxcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5mdXNlT3B0aW9ucyxcbiAgICAgIGtleXM6IGZ1c2VPcHRpb25zLmtleXMuZmlsdGVyKFxuICAgICAgICBrZXkgPT4gIWV4Y2x1ZGVkUGF0aHMuaGFzKGZ1c2VLZXlQYXRoKGtleSkpLFxuICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIHRoZSBjb2x1bW5zIHdpdGggbm8ga2V5IGluIGBmdXNlT3B0aW9ucy5rZXlzYCBhcyBgc2VhcmNoYWJsZTogZmFsc2VgLFxuICAgKiBzbyBcIlNlYXJjaCBpblwiIG9ubHkgb2ZmZXJzIGNvbHVtbnMgdGhhdCBzZWFyY2ggY2FuIGNvdmVyLlxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIG1hcmtDb2x1bW5zT3V0c2lkZUZ1c2VLZXlzVW5zZWFyY2hhYmxlPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgPihcbiAgICBjb2x1bW5zOiBNYXA8QywgUml2VGFibGUuSW5NZW1vcnlDb2x1bW5NZXRhZGF0YTxSPj4sXG4gICAgZnVzZU9wdGlvbnM6IElGdXNlT3B0aW9uczxSPiB8IHVuZGVmaW5lZCxcbiAgKTogTWFwPEMsIFJpdlRhYmxlLkluTWVtb3J5Q29sdW1uTWV0YWRhdGE8Uj4+IHtcbiAgICBpZiAoIWZ1c2VPcHRpb25zPy5rZXlzKSByZXR1cm4gY29sdW1ucztcbiAgICBjb25zdCBrZXlQYXRocyA9IG5ldyBTZXQoZnVzZU9wdGlvbnMua2V5cy5tYXAoZnVzZUtleVBhdGgpKTtcbiAgICByZXR1cm4gbmV3IE1hcChcbiAgICAgIEFycmF5LmZyb20oY29sdW1ucy5lbnRyaWVzKCkpLm1hcCgoW2tleSwgY29sdW1uXSkgPT4gW1xuICAgICAgICBrZXksXG4gICAgICAgIGtleVBhdGhzLmhhcyhjb2x1bW5QYXRoKGtleSwgY29sdW1uKSlcbiAgICAgICAgICA/IGNvbHVtblxuICAgICAgICAgIDogeyAuLi5jb2x1bW4sIHNlYXJjaGFibGU6IGZhbHNlIH0sXG4gICAgICBdKSxcbiAgICApO1xuICB9XG5cbiAgZnVuY3Rpb24gY29sdW1uUGF0aDxSIGV4dGVuZHMgUml2VGFibGUuUm93LCBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uPihcbiAgICBrZXk6IEMsXG4gICAgY29sdW1uOiBSaXZUYWJsZS5Jbk1lbW9yeUNvbHVtbk1ldGFkYXRhPFI+LFxuICApOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ub3JkZXJLZXk/LnRvU3RyaW5nKCkgPz8ga2V5LnRvU3RyaW5nKCk7XG4gIH1cblxuICBmdW5jdGlvbiBmdXNlS2V5UGF0aDxSPihrZXk6IEZ1c2VPcHRpb25LZXk8Uj4pOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykgcmV0dXJuIGtleTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShrZXkpKSByZXR1cm4ga2V5LmpvaW4oJy4nKTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShrZXkubmFtZSkgPyBrZXkubmFtZS5qb2luKCcuJykgOiBrZXkubmFtZTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRTZWFyY2hDb2x1bW5zU2VsZWN0ZWRTdGF0ZTxcbiAgICBSIGV4dGVuZHMgUml2VGFibGUuUm93LFxuICAgIEMgZXh0ZW5kcyBSaXZUYWJsZS5Db2x1bW4sXG4gICAgRiBleHRlbmRzIFJpdlRhYmxlLkZpbHRlcnMsXG4gICAgRyBleHRlbmRzIFJpdlRhYmxlLkdyb3VwLFxuICA+KFxuICAgIHN0YXRlOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4sXG4gICAgZXhwZWN0ZWRWYWx1ZTogJ2FsbCcgfCAnbm9uZScsXG4gICk6IGJvb2xlYW4ge1xuICAgIHN3aXRjaCAoZXhwZWN0ZWRWYWx1ZSkge1xuICAgICAgY2FzZSAnYWxsJzpcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oc3RhdGUucXVlcnkuc2VhcmNoQ29sdW1ucy52YWx1ZXMoKSkuZXZlcnkoXG4gICAgICAgICAgdmFsdWUgPT4gdmFsdWUsXG4gICAgICAgICk7XG5cbiAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzdGF0ZS5xdWVyeS5zZWFyY2hDb2x1bW5zLnZhbHVlcygpKS5ldmVyeShcbiAgICAgICAgICB2YWx1ZSA9PiAhdmFsdWUsXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUFsbFNlYXJjaENvbHVtbnM8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+KTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+IHtcbiAgICBjb25zdCBub25lU2VsZWN0ZWQgPSBnZXRTZWFyY2hDb2x1bW5zU2VsZWN0ZWRTdGF0ZShzdGF0ZSwgJ25vbmUnKTtcbiAgICBjb25zdCBwYXlsb2FkID0gbmV3IE1hcChcbiAgICAgIEFycmF5LmZyb20oc3RhdGUucXVlcnkuc2VhcmNoQ29sdW1ucy5rZXlzKCkpLm1hcChrZXkgPT4gW1xuICAgICAgICBrZXksXG4gICAgICAgIG5vbmVTZWxlY3RlZCxcbiAgICAgIF0pLFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgcXVlcnk6IHtcbiAgICAgICAgLi4uc3RhdGUucXVlcnksXG4gICAgICAgIHNlYXJjaENvbHVtbnM6IHBheWxvYWQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==