@plumile/backoffice-core 0.1.195 → 0.1.197

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.
Files changed (43) hide show
  1. package/README.md +35 -2
  2. package/lib/esm/builders.d.ts +13 -5
  3. package/lib/esm/builders.d.ts.map +1 -1
  4. package/lib/esm/builders.js +1 -1
  5. package/lib/esm/index.d.ts +1 -1
  6. package/lib/esm/index.d.ts.map +1 -1
  7. package/lib/esm/index.js +2 -2
  8. package/lib/esm/resolve.d.ts +1 -1
  9. package/lib/esm/resolve.d.ts.map +1 -1
  10. package/lib/esm/resolve.js +8 -18
  11. package/lib/esm/state/listNavigation.d.ts +6 -0
  12. package/lib/esm/state/listNavigation.d.ts.map +1 -0
  13. package/lib/esm/state/listNavigation.js +42 -0
  14. package/lib/esm/state/urlState.d.ts +3 -6
  15. package/lib/esm/state/urlState.d.ts.map +1 -1
  16. package/lib/esm/state/urlState.js +16 -18
  17. package/lib/esm/type-tests/operation-bound-config.test-d.d.ts +36 -1
  18. package/lib/esm/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
  19. package/lib/esm/type-tests/operation-bound-config.test-d.js +107 -7
  20. package/lib/esm/types.d.ts +59 -16
  21. package/lib/esm/types.d.ts.map +1 -1
  22. package/lib/esm/types.js +1 -1
  23. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  24. package/lib/types/builders.d.ts +13 -5
  25. package/lib/types/builders.d.ts.map +1 -1
  26. package/lib/types/index.d.ts +1 -1
  27. package/lib/types/index.d.ts.map +1 -1
  28. package/lib/types/resolve.d.ts +1 -1
  29. package/lib/types/resolve.d.ts.map +1 -1
  30. package/lib/types/state/listNavigation.d.ts +6 -0
  31. package/lib/types/state/listNavigation.d.ts.map +1 -0
  32. package/lib/types/state/urlState.d.ts +3 -6
  33. package/lib/types/state/urlState.d.ts.map +1 -1
  34. package/lib/types/type-tests/operation-bound-config.test-d.d.ts +36 -1
  35. package/lib/types/type-tests/operation-bound-config.test-d.d.ts.map +1 -1
  36. package/lib/types/types.d.ts +59 -16
  37. package/lib/types/types.d.ts.map +1 -1
  38. package/package.json +2 -2
  39. package/lib/esm/state/buildListHref.d.ts +0 -14
  40. package/lib/esm/state/buildListHref.d.ts.map +0 -1
  41. package/lib/esm/state/buildListHref.js +0 -89
  42. package/lib/types/state/buildListHref.d.ts +0 -14
  43. package/lib/types/state/buildListHref.d.ts.map +0 -1
@@ -1,4 +1,3 @@
1
- import { createBackofficeFilterSchema } from './filters/schema.js';
2
1
  import { createBackofficeListUrlCodec } from './state/urlState.js';
3
2
  const DETAIL_LAYOUT_FACET_KIND = 'detail-layout';
4
3
  const DETAIL_PAGE_FACET_KIND = 'detail-page';
@@ -50,16 +49,6 @@ export const resolveBackofficeToolRoute = (basePath, toolId, routeOverride) => {
50
49
  }
51
50
  return `${normalized}/tools/${toolId}`;
52
51
  };
53
- function buildDefaultListDefaults(list) {
54
- if (list.defaultState != null) {
55
- return list.defaultState;
56
- }
57
- const firstSort = list.sorts[0]?.id ?? null;
58
- return {
59
- where: null,
60
- sort: firstSort,
61
- };
62
- }
63
52
  export function extractBackofficeToolFacetConfig(config) {
64
53
  return {
65
54
  kind: 'tool',
@@ -75,17 +64,18 @@ export function resolveBackofficeListFacetConfig(config, manifest, _options) {
75
64
  const routes = {
76
65
  ...manifest.routes,
77
66
  };
78
- const listDefaults = buildDefaultListDefaults(config.list);
67
+ if (!manifest.hasList) {
68
+ throw new Error(`Backoffice entity ${manifest.id} does not expose list navigation.`);
69
+ }
70
+ const { listNavigation, } = manifest;
71
+ const listDefaults = listNavigation.defaults;
79
72
  const listUrlCodec = createBackofficeListUrlCodec({
80
- defaults: listDefaults,
81
- filterSchema: createBackofficeFilterSchema(config.list.filters),
82
- sortIds: config.list.sorts.map((sort) => {
83
- return sort.id;
84
- }),
73
+ listNavigation,
85
74
  });
86
75
  return {
87
76
  ...config,
88
77
  routes,
78
+ listNavigation,
89
79
  listDefaults,
90
80
  listUrlCodec,
91
81
  };
@@ -160,4 +150,4 @@ export function resolveBackofficeLoadedFacetModule(manifest, module, options) {
160
150
  throw new Error(`Unsupported backoffice facet kind: ${String(module)}`);
161
151
  }
162
152
  }
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFCQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU1uRSxNQUFNLHdCQUF3QixHQUFHLGVBQWUsQ0FBQztBQUNqRCxNQUFNLHNCQUFzQixHQUFHLGFBQWEsQ0FBQztBQUU3QyxNQUFNLG9CQUFvQixHQUFHLENBQzNCLE1BQWUsRUFDZixRQUFzQyxFQUN3QixFQUFFO0lBQ2hFLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07S0FDeEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUtGLFNBQVMsaUJBQWlCLENBQUMsUUFBZ0I7SUFDekMsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLFFBQVEsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUMvQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsS0FBZSxFQUFVLEVBQUU7SUFDOUMsTUFBTSxVQUFVLEdBQUcsS0FBSztTQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLENBQUMsSUFB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TUFBTTtnQkFDckIsUUFBUTtnQkFDUixNQUFNLEVBQUUsc0NBQXNDLENBQzVDLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsUUFBUSxFQUNSLE9BQU8sQ0FDUjthQUNGLENBQUM7UUFDSixLQUFLLE1BQU07WUFDVCxPQUFPO2dCQUNMLElBQUksRUFBRSxNQUFNO2dCQUNaLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDYixRQUFRO2dCQUNSLE1BQU0sRUFBRSxnQ0FBZ0MsQ0FDdEMsTUFBTSxDQUFDLE1BQU0sRUFDYixRQUFRLEVBQ1IsT0FBTyxDQUNSO2FBQ0YsQ0FBQztRQUNKO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZU9wZXJhdGlvblNvcnQsXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZSxcbiAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRGV0YWlsUGFnZUZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRW50aXR5TGlzdENvbmZpZyxcbiAgQmFja29mZmljZUxpc3REZWZhdWx0cyxcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZyxcbiAgQmFja29mZmljZUxvYWRlZEVudGl0eUZhY2V0TW9kdWxlLFxuICBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VUb29sRW50aXR5Q29uZmlnLFxuICBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWRUb29sRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZERldGFpbExheW91dEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWREZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZEVudGl0eUZhY2V0TW9kdWxlLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWRMaXN0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZFBpY2tlckZhY2V0Q29uZmlnLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgT3BlcmF0aW9uVHlwZSB9IGZyb20gJ3JlbGF5LXJ1bnRpbWUnO1xuaW1wb3J0IHsgY3JlYXRlQmFja29mZmljZUZpbHRlclNjaGVtYSB9IGZyb20gJy4vZmlsdGVycy9zY2hlbWEuanMnO1xuaW1wb3J0IHsgY3JlYXRlQmFja29mZmljZUxpc3RVcmxDb2RlYyB9IGZyb20gJy4vc3RhdGUvdXJsU3RhdGUuanMnO1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlQmFja29mZmljZUVudGl0eU9wdGlvbnMgPSB7XG4gIGJhc2VQYXRoOiBzdHJpbmc7XG59O1xuXG5jb25zdCBERVRBSUxfTEFZT1VUX0ZBQ0VUX0tJTkQgPSAnZGV0YWlsLWxheW91dCc7XG5jb25zdCBERVRBSUxfUEFHRV9GQUNFVF9LSU5EID0gJ2RldGFpbC1wYWdlJztcblxuY29uc3QgYXR0YWNoUmVzb2x2ZWRSb3V0ZXMgPSA8VENvbmZpZyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9PihcbiAgY29uZmlnOiBUQ29uZmlnLFxuICBtYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbik6IFRDb25maWcgJiB7IHJvdXRlczogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbVsncm91dGVzJ10gfSA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIHJvdXRlczogbWFuaWZlc3Qucm91dGVzLFxuICB9O1xufTtcblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVCYXNlUGF0aChiYXNlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGJhc2VQYXRoLnRyaW0oKSA9PT0gJycgfHwgYmFzZVBhdGggPT09ICcvJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBpZiAoYmFzZVBhdGguZW5kc1dpdGgoJy8nKSkge1xuICAgIHJldHVybiBiYXNlUGF0aC5zbGljZSgwLCAtMSk7XG4gIH1cbiAgcmV0dXJuIGJhc2VQYXRoO1xufVxuXG5jb25zdCBqb2luUGF0aCA9ICguLi5wYXJ0czogc3RyaW5nW10pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gcGFydHNcbiAgICAubWFwKChwYXJ0KSA9PiB7XG4gICAgICByZXR1cm4gcGFydC50cmltKCkucmVwbGFjZSgvXlxcLyt8XFwvKyQvZywgJycpO1xuICAgIH0pXG4gICAgLmZpbHRlcigocGFydCkgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQgIT09ICcnO1xuICAgIH0pO1xuICByZXR1cm4gYC8ke25vcm1hbGl6ZWQuam9pbignLycpfWA7XG59O1xuXG5jb25zdCBub3JtYWxpemVSb3V0ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcbiAgaWYgKHRyaW1tZWQgPT09ICcnIHx8IHRyaW1tZWQgPT09ICcvJykge1xuICAgIHJldHVybiAnLyc7XG4gIH1cbiAgaWYgKCF0cmltbWVkLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHJldHVybiBgLyR7dHJpbW1lZH1gO1xuICB9XG4gIGlmICh0cmltbWVkLmVuZHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gdHJpbW1lZC5zbGljZSgwLCAtMSk7XG4gIH1cbiAgcmV0dXJuIHRyaW1tZWQ7XG59O1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBjYW5vbmljYWwgdG9vbCByb3V0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVCYWNrb2ZmaWNlVG9vbFJvdXRlID0gKFxuICBiYXNlUGF0aDogc3RyaW5nLFxuICB0b29sSWQ6IHN0cmluZyxcbiAgcm91dGVPdmVycmlkZT86IHN0cmluZyxcbik6IHN0cmluZyA9PiB7XG4gIGlmIChyb3V0ZU92ZXJyaWRlICE9IG51bGwgJiYgcm91dGVPdmVycmlkZS50cmltKCkgIT09ICcnKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVJvdXRlKHJvdXRlT3ZlcnJpZGUpO1xuICB9XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVCYXNlUGF0aChiYXNlUGF0aCk7XG4gIGlmIChub3JtYWxpemVkID09PSAnJykge1xuICAgIHJldHVybiBgL3Rvb2xzLyR7dG9vbElkfWA7XG4gIH1cbiAgcmV0dXJuIGAke25vcm1hbGl6ZWR9L3Rvb2xzLyR7dG9vbElkfWA7XG59O1xuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkRGVmYXVsdExpc3REZWZhdWx0czxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUgPSBhbnksXG4+KFxuICBsaXN0OiBCYWNrb2ZmaWNlRW50aXR5TGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0LFxuICAgIFRDb3VudE9wZXJhdGlvblxuICA+LFxuKTogQmFja29mZmljZUxpc3REZWZhdWx0czxUV2hlcmUsIFRTb3J0PiB7XG4gIGlmIChsaXN0LmRlZmF1bHRTdGF0ZSAhPSBudWxsKSB7XG4gICAgcmV0dXJuIGxpc3QuZGVmYXVsdFN0YXRlO1xuICB9XG4gIGNvbnN0IGZpcnN0U29ydCA9IGxpc3Quc29ydHNbMF0/LmlkID8/IG51bGw7XG4gIHJldHVybiB7XG4gICAgd2hlcmU6IG51bGwsXG4gICAgc29ydDogZmlyc3RTb3J0LFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0QmFja29mZmljZVRvb2xGYWNldENvbmZpZyhcbiAgY29uZmlnOiBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbik6IEJhY2tvZmZpY2VUb29sRmFjZXRDb25maWcge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICd0b29sJyxcbiAgICBpZDogY29uZmlnLmlkLFxuICAgIGxhYmVsOlxuICAgICAgY29uZmlnLmxhYmVsID8/XG4gICAgICAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY29uZmlnLmlkO1xuICAgICAgfSksXG4gICAgdG9vbDogY29uZmlnLFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUgPSBhbnksXG4+KFxuICBjb25maWc6IEJhY2tvZmZpY2VMaXN0RmFjZXRDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZSxcbiAgICBUU29ydCxcbiAgICBUQ291bnRPcGVyYXRpb25cbiAgPixcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgX29wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZExpc3RGYWNldENvbmZpZzxcbiAgVE9wZXJhdGlvbixcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUsXG4gIFRTb3J0LFxuICBUQ291bnRPcGVyYXRpb25cbj4ge1xuICBjb25zdCByb3V0ZXMgPSB7XG4gICAgLi4ubWFuaWZlc3Qucm91dGVzLFxuICB9O1xuXG4gIGNvbnN0IGxpc3REZWZhdWx0cyA9IGJ1aWxkRGVmYXVsdExpc3REZWZhdWx0cyhjb25maWcubGlzdCk7XG4gIGNvbnN0IGxpc3RVcmxDb2RlYyA9IGNyZWF0ZUJhY2tvZmZpY2VMaXN0VXJsQ29kZWMoe1xuICAgIGRlZmF1bHRzOiBsaXN0RGVmYXVsdHMsXG4gICAgZmlsdGVyU2NoZW1hOiBjcmVhdGVCYWNrb2ZmaWNlRmlsdGVyU2NoZW1hKGNvbmZpZy5saXN0LmZpbHRlcnMpLFxuICAgIHNvcnRJZHM6IGNvbmZpZy5saXN0LnNvcnRzLm1hcCgoc29ydCkgPT4ge1xuICAgICAgcmV0dXJuIHNvcnQuaWQ7XG4gICAgfSksXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIHJvdXRlcyxcbiAgICBsaXN0RGVmYXVsdHMsXG4gICAgbGlzdFVybENvZGVjLFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBQaWNrZXJGcmFnbWVudERhdGEsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPihcbiAgY29uZmlnOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlXG4gID4sXG4gIG1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9vcHRpb25zOiBSZXNvbHZlQmFja29mZmljZUVudGl0eU9wdGlvbnMsXG4pOiBCYWNrb2ZmaWNlUmVzb2x2ZWRQaWNrZXJGYWNldENvbmZpZzxcbiAgVE9wZXJhdGlvbixcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBQaWNrZXJGcmFnbWVudERhdGEsXG4gIFRXaGVyZVxuPiB7XG4gIHJldHVybiBhdHRhY2hSZXNvbHZlZFJvdXRlcyhjb25maWcsIG1hbmlmZXN0KTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJhY2tvZmZpY2VEZXRhaWxMYXlvdXRGYWNldENvbmZpZzxcbiAgTGF5b3V0UmVmLFxuICBMYXlvdXRWaWV3LFxuICBMYXlvdXRRdWVyeURhdGEsXG4gIExheW91dEZyYWdtZW50UmVmLFxuICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbj4oXG4gIGNvbmZpZzogQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnPFxuICAgIExheW91dFJlZixcbiAgICBMYXlvdXRWaWV3LFxuICAgIExheW91dFF1ZXJ5RGF0YSxcbiAgICBMYXlvdXRGcmFnbWVudFJlZixcbiAgICBMYXlvdXRRdWVyeVZhcmlhYmxlc1xuICA+LFxuICBtYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBfb3B0aW9uczogUmVzb2x2ZUJhY2tvZmZpY2VFbnRpdHlPcHRpb25zLFxuKTogQmFja29mZmljZVJlc29sdmVkRGV0YWlsTGF5b3V0RmFjZXRDb25maWc8XG4gIExheW91dFJlZixcbiAgTGF5b3V0VmlldyxcbiAgTGF5b3V0UXVlcnlEYXRhLFxuICBMYXlvdXRGcmFnbWVudFJlZixcbiAgTGF5b3V0UXVlcnlWYXJpYWJsZXNcbj4ge1xuICByZXR1cm4gYXR0YWNoUmVzb2x2ZWRSb3V0ZXMoY29uZmlnLCBtYW5pZmVzdCk7XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCYWNrb2ZmaWNlRGV0YWlsUGFnZUZhY2V0Q29uZmlnPFxuICBMYXlvdXRWaWV3LFxuICBEZXRhaWxSZWYsXG4gIERldGFpbFZpZXcsXG4gIERldGFpbFF1ZXJ5RGF0YSxcbiAgRGV0YWlsRnJhZ21lbnRSZWYsXG4gIERldGFpbFF1ZXJ5VmFyaWFibGVzLFxuPihcbiAgY29uZmlnOiBCYWNrb2ZmaWNlRGV0YWlsUGFnZUZhY2V0Q29uZmlnPFxuICAgIExheW91dFZpZXcsXG4gICAgRGV0YWlsUmVmLFxuICAgIERldGFpbFZpZXcsXG4gICAgRGV0YWlsUXVlcnlEYXRhLFxuICAgIERldGFpbEZyYWdtZW50UmVmLFxuICAgIERldGFpbFF1ZXJ5VmFyaWFibGVzXG4gID4sXG4gIG1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9vcHRpb25zOiBSZXNvbHZlQmFja29mZmljZUVudGl0eU9wdGlvbnMsXG4pOiBCYWNrb2ZmaWNlUmVzb2x2ZWREZXRhaWxQYWdlRmFjZXRDb25maWc8XG4gIExheW91dFZpZXcsXG4gIERldGFpbFJlZixcbiAgRGV0YWlsVmlldyxcbiAgRGV0YWlsUXVlcnlEYXRhLFxuICBEZXRhaWxGcmFnbWVudFJlZixcbiAgRGV0YWlsUXVlcnlWYXJpYWJsZXNcbj4ge1xuICByZXR1cm4gYXR0YWNoUmVzb2x2ZWRSb3V0ZXMoY29uZmlnLCBtYW5pZmVzdCk7XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnKFxuICBjb25maWc6IEJhY2tvZmZpY2VUb29sRmFjZXRDb25maWcsXG4gIG1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBvcHRpb25zOiBSZXNvbHZlQmFja29mZmljZUVudGl0eU9wdGlvbnMsXG4pOiBCYWNrb2ZmaWNlUmVzb2x2ZWRUb29sRmFjZXRDb25maWcge1xuICBjb25zdCByb3V0ZSA9IHJlc29sdmVCYWNrb2ZmaWNlVG9vbFJvdXRlKFxuICAgIG9wdGlvbnMuYmFzZVBhdGgsXG4gICAgY29uZmlnLmlkLFxuICAgIG1hbmlmZXN0LnJvdXRlcy5saXN0LFxuICApO1xuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICByb3V0ZSxcbiAgICByb3V0ZXM6IHtcbiAgICAgIGxpc3Q6IHJvdXRlLFxuICAgICAgZGV0YWlsOiAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gam9pblBhdGgocm91dGUsIGlkKTtcbiAgICAgIH0sXG4gICAgICBkZXRhaWxQYWdlOiAoaWQ6IHN0cmluZywgcGFnZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIGpvaW5QYXRoKHJvdXRlLCBpZCwgcGFnZUlkKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJhY2tvZmZpY2VMb2FkZWRGYWNldE1vZHVsZShcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIG1vZHVsZTogQmFja29mZmljZUxvYWRlZEVudGl0eUZhY2V0TW9kdWxlLFxuICBvcHRpb25zOiBSZXNvbHZlQmFja29mZmljZUVudGl0eU9wdGlvbnMsXG4pOiBCYWNrb2ZmaWNlUmVzb2x2ZWRFbnRpdHlGYWNldE1vZHVsZSB7XG4gIGlmIChtYW5pZmVzdC5pZCAhPT0gbW9kdWxlLmlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEJhY2tvZmZpY2UgZW50aXR5IG1hbmlmZXN0L21vZHVsZSBpZCBtaXNtYXRjaDogJHttYW5pZmVzdC5pZH0gIT09ICR7bW9kdWxlLmlkfWAsXG4gICAgKTtcbiAgfVxuXG4gIHN3aXRjaCAobW9kdWxlLmtpbmQpIHtcbiAgICBjYXNlICdsaXN0JzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtpbmQ6ICdsaXN0JyxcbiAgICAgICAgaWQ6IG1vZHVsZS5pZCxcbiAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgIGNvbmZpZzogcmVzb2x2ZUJhY2tvZmZpY2VMaXN0RmFjZXRDb25maWcoXG4gICAgICAgICAgbW9kdWxlLmNvbmZpZyxcbiAgICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICApLFxuICAgICAgfTtcbiAgICBjYXNlICdwaWNrZXInOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2luZDogJ3BpY2tlcicsXG4gICAgICAgIGlkOiBtb2R1bGUuaWQsXG4gICAgICAgIG1hbmlmZXN0LFxuICAgICAgICBjb25maWc6IHJlc29sdmVCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcoXG4gICAgICAgICAgbW9kdWxlLmNvbmZpZyxcbiAgICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICApLFxuICAgICAgfTtcbiAgICBjYXNlIERFVEFJTF9MQVlPVVRfRkFDRVRfS0lORDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtpbmQ6IERFVEFJTF9MQVlPVVRfRkFDRVRfS0lORCxcbiAgICAgICAgaWQ6IG1vZHVsZS5pZCxcbiAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgIGNvbmZpZzogcmVzb2x2ZUJhY2tvZmZpY2VEZXRhaWxMYXlvdXRGYWNldENvbmZpZyhcbiAgICAgICAgICBtb2R1bGUuY29uZmlnLFxuICAgICAgICAgIG1hbmlmZXN0LFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIGNhc2UgREVUQUlMX1BBR0VfRkFDRVRfS0lORDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtpbmQ6IERFVEFJTF9QQUdFX0ZBQ0VUX0tJTkQsXG4gICAgICAgIGlkOiBtb2R1bGUuaWQsXG4gICAgICAgIHBhZ2VJZDogbW9kdWxlLnBhZ2VJZCxcbiAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgIGNvbmZpZzogcmVzb2x2ZUJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWcoXG4gICAgICAgICAgbW9kdWxlLmNvbmZpZyxcbiAgICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICApLFxuICAgICAgfTtcbiAgICBjYXNlICd0b29sJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtpbmQ6ICd0b29sJyxcbiAgICAgICAgaWQ6IG1vZHVsZS5pZCxcbiAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgIGNvbmZpZzogcmVzb2x2ZUJhY2tvZmZpY2VUb29sRmFjZXRDb25maWcoXG4gICAgICAgICAgbW9kdWxlLmNvbmZpZyxcbiAgICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICApLFxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBiYWNrb2ZmaWNlIGZhY2V0IGtpbmQ6ICR7U3RyaW5nKG1vZHVsZSl9YCk7XG4gIH1cbn1cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXNvbHZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CQSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU1uRSxNQUFNLHdCQUF3QixHQUFHLGVBQWUsQ0FBQztBQUNqRCxNQUFNLHNCQUFzQixHQUFHLGFBQWEsQ0FBQztBQUU3QyxNQUFNLG9CQUFvQixHQUFHLENBQzNCLE1BQWUsRUFDZixRQUFzQyxFQUN3QixFQUFFO0lBQ2hFLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07S0FDeEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUtGLFNBQVMsaUJBQWlCLENBQUMsUUFBZ0I7SUFDekMsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLFFBQVEsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUMvQyxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsS0FBZSxFQUFVLEVBQUU7SUFDOUMsTUFBTSxVQUFVLEdBQUcsS0FBSztTQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDZixPQUFPLElBQUksS0FBSyxFQUFFLENBQUM7SUFD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SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbixcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZyxcbiAgQmFja29mZmljZUxvYWRlZEVudGl0eUZhY2V0TW9kdWxlLFxuICBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VUb29sRW50aXR5Q29uZmlnLFxuICBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWRUb29sRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZERldGFpbExheW91dEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWREZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZEVudGl0eUZhY2V0TW9kdWxlLFxuICBCYWNrb2ZmaWNlUmVzb2x2ZWRMaXN0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VSZXNvbHZlZFBpY2tlckZhY2V0Q29uZmlnLFxufSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgT3BlcmF0aW9uVHlwZSB9IGZyb20gJ3JlbGF5LXJ1bnRpbWUnO1xuaW1wb3J0IHsgY3JlYXRlQmFja29mZmljZUxpc3RVcmxDb2RlYyB9IGZyb20gJy4vc3RhdGUvdXJsU3RhdGUuanMnO1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlQmFja29mZmljZUVudGl0eU9wdGlvbnMgPSB7XG4gIGJhc2VQYXRoOiBzdHJpbmc7XG59O1xuXG5jb25zdCBERVRBSUxfTEFZT1VUX0ZBQ0VUX0tJTkQgPSAnZGV0YWlsLWxheW91dCc7XG5jb25zdCBERVRBSUxfUEFHRV9GQUNFVF9LSU5EID0gJ2RldGFpbC1wYWdlJztcblxuY29uc3QgYXR0YWNoUmVzb2x2ZWRSb3V0ZXMgPSA8VENvbmZpZyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9PihcbiAgY29uZmlnOiBUQ29uZmlnLFxuICBtYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbik6IFRDb25maWcgJiB7IHJvdXRlczogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbVsncm91dGVzJ10gfSA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIHJvdXRlczogbWFuaWZlc3Qucm91dGVzLFxuICB9O1xufTtcblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVCYXNlUGF0aChiYXNlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKGJhc2VQYXRoLnRyaW0oKSA9PT0gJycgfHwgYmFzZVBhdGggPT09ICcvJykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBpZiAoYmFzZVBhdGguZW5kc1dpdGgoJy8nKSkge1xuICAgIHJldHVybiBiYXNlUGF0aC5zbGljZSgwLCAtMSk7XG4gIH1cbiAgcmV0dXJuIGJhc2VQYXRoO1xufVxuXG5jb25zdCBqb2luUGF0aCA9ICguLi5wYXJ0czogc3RyaW5nW10pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBub3JtYWxpemVkID0gcGFydHNcbiAgICAubWFwKChwYXJ0KSA9PiB7XG4gICAgICByZXR1cm4gcGFydC50cmltKCkucmVwbGFjZSgvXlxcLyt8XFwvKyQvZywgJycpO1xuICAgIH0pXG4gICAgLmZpbHRlcigocGFydCkgPT4ge1xuICAgICAgcmV0dXJuIHBhcnQgIT09ICcnO1xuICAgIH0pO1xuICByZXR1cm4gYC8ke25vcm1hbGl6ZWQuam9pbignLycpfWA7XG59O1xuXG5jb25zdCBub3JtYWxpemVSb3V0ZSA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdHJpbW1lZCA9IHZhbHVlLnRyaW0oKTtcbiAgaWYgKHRyaW1tZWQgPT09ICcnIHx8IHRyaW1tZWQgPT09ICcvJykge1xuICAgIHJldHVybiAnLyc7XG4gIH1cbiAgaWYgKCF0cmltbWVkLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHJldHVybiBgLyR7dHJpbW1lZH1gO1xuICB9XG4gIGlmICh0cmltbWVkLmVuZHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gdHJpbW1lZC5zbGljZSgwLCAtMSk7XG4gIH1cbiAgcmV0dXJuIHRyaW1tZWQ7XG59O1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBjYW5vbmljYWwgdG9vbCByb3V0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlc29sdmVCYWNrb2ZmaWNlVG9vbFJvdXRlID0gKFxuICBiYXNlUGF0aDogc3RyaW5nLFxuICB0b29sSWQ6IHN0cmluZyxcbiAgcm91dGVPdmVycmlkZT86IHN0cmluZyxcbik6IHN0cmluZyA9PiB7XG4gIGlmIChyb3V0ZU92ZXJyaWRlICE9IG51bGwgJiYgcm91dGVPdmVycmlkZS50cmltKCkgIT09ICcnKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVJvdXRlKHJvdXRlT3ZlcnJpZGUpO1xuICB9XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVCYXNlUGF0aChiYXNlUGF0aCk7XG4gIGlmIChub3JtYWxpemVkID09PSAnJykge1xuICAgIHJldHVybiBgL3Rvb2xzLyR7dG9vbElkfWA7XG4gIH1cbiAgcmV0dXJuIGAke25vcm1hbGl6ZWR9L3Rvb2xzLyR7dG9vbElkfWA7XG59O1xuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0QmFja29mZmljZVRvb2xGYWNldENvbmZpZyhcbiAgY29uZmlnOiBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbik6IEJhY2tvZmZpY2VUb29sRmFjZXRDb25maWcge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICd0b29sJyxcbiAgICBpZDogY29uZmlnLmlkLFxuICAgIGxhYmVsOlxuICAgICAgY29uZmlnLmxhYmVsID8/XG4gICAgICAoKCkgPT4ge1xuICAgICAgICByZXR1cm4gY29uZmlnLmlkO1xuICAgICAgfSksXG4gICAgdG9vbDogY29uZmlnLFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4gIFRDb3VudE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUgPSBhbnksXG4+KFxuICBjb25maWc6IEJhY2tvZmZpY2VMaXN0RmFjZXRDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZSxcbiAgICBUU29ydCxcbiAgICBUQ291bnRPcGVyYXRpb25cbiAgPixcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW08VFdoZXJlLCBUU29ydD4sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgX29wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZExpc3RGYWNldENvbmZpZzxcbiAgVE9wZXJhdGlvbixcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUsXG4gIFRTb3J0LFxuICBUQ291bnRPcGVyYXRpb25cbj4ge1xuICBjb25zdCByb3V0ZXMgPSB7XG4gICAgLi4ubWFuaWZlc3Qucm91dGVzLFxuICB9O1xuXG4gIGlmICghbWFuaWZlc3QuaGFzTGlzdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBCYWNrb2ZmaWNlIGVudGl0eSAke21hbmlmZXN0LmlkfSBkb2VzIG5vdCBleHBvc2UgbGlzdCBuYXZpZ2F0aW9uLmAsXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBsaXN0TmF2aWdhdGlvbixcbiAgfToge1xuICAgIGxpc3ROYXZpZ2F0aW9uOiBCYWNrb2ZmaWNlTGlzdE5hdmlnYXRpb248VFdoZXJlLCBUU29ydD47XG4gIH0gPSBtYW5pZmVzdDtcbiAgY29uc3QgbGlzdERlZmF1bHRzID0gbGlzdE5hdmlnYXRpb24uZGVmYXVsdHM7XG4gIGNvbnN0IGxpc3RVcmxDb2RlYyA9IGNyZWF0ZUJhY2tvZmZpY2VMaXN0VXJsQ29kZWMoe1xuICAgIGxpc3ROYXZpZ2F0aW9uLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICByb3V0ZXMsXG4gICAgbGlzdE5hdmlnYXRpb24sXG4gICAgbGlzdERlZmF1bHRzLFxuICAgIGxpc3RVcmxDb2RlYyxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgUGlja2VyRnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oXG4gIGNvbmZpZzogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZVxuICA+LFxuICBtYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBfb3B0aW9uczogUmVzb2x2ZUJhY2tvZmZpY2VFbnRpdHlPcHRpb25zLFxuKTogQmFja29mZmljZVJlc29sdmVkUGlja2VyRmFjZXRDb25maWc8XG4gIFRPcGVyYXRpb24sXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgUGlja2VyRnJhZ21lbnREYXRhLFxuICBUV2hlcmVcbj4ge1xuICByZXR1cm4gYXR0YWNoUmVzb2x2ZWRSb3V0ZXMoY29uZmlnLCBtYW5pZmVzdCk7XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWc8XG4gIExheW91dFJlZixcbiAgTGF5b3V0VmlldyxcbiAgTGF5b3V0UXVlcnlEYXRhLFxuICBMYXlvdXRGcmFnbWVudFJlZixcbiAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4+KFxuICBjb25maWc6IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRGYWNldENvbmZpZzxcbiAgICBMYXlvdXRSZWYsXG4gICAgTGF5b3V0VmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTGF5b3V0RnJhZ21lbnRSZWYsXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXNcbiAgPixcbiAgbWFuaWZlc3Q6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgX29wdGlvbnM6IFJlc29sdmVCYWNrb2ZmaWNlRW50aXR5T3B0aW9ucyxcbik6IEJhY2tvZmZpY2VSZXNvbHZlZERldGFpbExheW91dEZhY2V0Q29uZmlnPFxuICBMYXlvdXRSZWYsXG4gIExheW91dFZpZXcsXG4gIExheW91dFF1ZXJ5RGF0YSxcbiAgTGF5b3V0RnJhZ21lbnRSZWYsXG4gIExheW91dFF1ZXJ5VmFyaWFibGVzXG4+IHtcbiAgcmV0dXJuIGF0dGFjaFJlc29sdmVkUm91dGVzKGNvbmZpZywgbWFuaWZlc3QpO1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZzxcbiAgTGF5b3V0VmlldyxcbiAgRGV0YWlsUmVmLFxuICBEZXRhaWxWaWV3LFxuICBEZXRhaWxRdWVyeURhdGEsXG4gIERldGFpbEZyYWdtZW50UmVmLFxuICBEZXRhaWxRdWVyeVZhcmlhYmxlcyxcbj4oXG4gIGNvbmZpZzogQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZzxcbiAgICBMYXlvdXRWaWV3LFxuICAgIERldGFpbFJlZixcbiAgICBEZXRhaWxWaWV3LFxuICAgIERldGFpbFF1ZXJ5RGF0YSxcbiAgICBEZXRhaWxGcmFnbWVudFJlZixcbiAgICBEZXRhaWxRdWVyeVZhcmlhYmxlc1xuICA+LFxuICBtYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBfb3B0aW9uczogUmVzb2x2ZUJhY2tvZmZpY2VFbnRpdHlPcHRpb25zLFxuKTogQmFja29mZmljZVJlc29sdmVkRGV0YWlsUGFnZUZhY2V0Q29uZmlnPFxuICBMYXlvdXRWaWV3LFxuICBEZXRhaWxSZWYsXG4gIERldGFpbFZpZXcsXG4gIERldGFpbFF1ZXJ5RGF0YSxcbiAgRGV0YWlsRnJhZ21lbnRSZWYsXG4gIERldGFpbFF1ZXJ5VmFyaWFibGVzXG4+IHtcbiAgcmV0dXJuIGF0dGFjaFJlc29sdmVkUm91dGVzKGNvbmZpZywgbWFuaWZlc3QpO1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQmFja29mZmljZVRvb2xGYWNldENvbmZpZyhcbiAgY29uZmlnOiBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnLFxuICBtYW5pZmVzdDogQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgb3B0aW9uczogUmVzb2x2ZUJhY2tvZmZpY2VFbnRpdHlPcHRpb25zLFxuKTogQmFja29mZmljZVJlc29sdmVkVG9vbEZhY2V0Q29uZmlnIHtcbiAgY29uc3Qgcm91dGUgPSByZXNvbHZlQmFja29mZmljZVRvb2xSb3V0ZShcbiAgICBvcHRpb25zLmJhc2VQYXRoLFxuICAgIGNvbmZpZy5pZCxcbiAgICBtYW5pZmVzdC5yb3V0ZXMubGlzdCxcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAgcm91dGUsXG4gICAgcm91dGVzOiB7XG4gICAgICBsaXN0OiByb3V0ZSxcbiAgICAgIGRldGFpbDogKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIGpvaW5QYXRoKHJvdXRlLCBpZCk7XG4gICAgICB9LFxuICAgICAgZGV0YWlsUGFnZTogKGlkOiBzdHJpbmcsIHBhZ2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIHJldHVybiBqb2luUGF0aChyb3V0ZSwgaWQsIHBhZ2VJZCk7XG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCYWNrb2ZmaWNlTG9hZGVkRmFjZXRNb2R1bGUoXG4gIG1hbmlmZXN0OiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBtb2R1bGU6IEJhY2tvZmZpY2VMb2FkZWRFbnRpdHlGYWNldE1vZHVsZSxcbiAgb3B0aW9uczogUmVzb2x2ZUJhY2tvZmZpY2VFbnRpdHlPcHRpb25zLFxuKTogQmFja29mZmljZVJlc29sdmVkRW50aXR5RmFjZXRNb2R1bGUge1xuICBpZiAobWFuaWZlc3QuaWQgIT09IG1vZHVsZS5pZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBCYWNrb2ZmaWNlIGVudGl0eSBtYW5pZmVzdC9tb2R1bGUgaWQgbWlzbWF0Y2g6ICR7bWFuaWZlc3QuaWR9ICE9PSAke21vZHVsZS5pZH1gLFxuICAgICk7XG4gIH1cblxuICBzd2l0Y2ggKG1vZHVsZS5raW5kKSB7XG4gICAgY2FzZSAnbGlzdCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiAnbGlzdCcsXG4gICAgICAgIGlkOiBtb2R1bGUuaWQsXG4gICAgICAgIG1hbmlmZXN0LFxuICAgICAgICBjb25maWc6IHJlc29sdmVCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnKFxuICAgICAgICAgIG1vZHVsZS5jb25maWcsXG4gICAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgY2FzZSAncGlja2VyJzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtpbmQ6ICdwaWNrZXInLFxuICAgICAgICBpZDogbW9kdWxlLmlkLFxuICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgY29uZmlnOiByZXNvbHZlQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnKFxuICAgICAgICAgIG1vZHVsZS5jb25maWcsXG4gICAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgY2FzZSBERVRBSUxfTEFZT1VUX0ZBQ0VUX0tJTkQ6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiBERVRBSUxfTEFZT1VUX0ZBQ0VUX0tJTkQsXG4gICAgICAgIGlkOiBtb2R1bGUuaWQsXG4gICAgICAgIG1hbmlmZXN0LFxuICAgICAgICBjb25maWc6IHJlc29sdmVCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcoXG4gICAgICAgICAgbW9kdWxlLmNvbmZpZyxcbiAgICAgICAgICBtYW5pZmVzdCxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICApLFxuICAgICAgfTtcbiAgICBjYXNlIERFVEFJTF9QQUdFX0ZBQ0VUX0tJTkQ6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiBERVRBSUxfUEFHRV9GQUNFVF9LSU5ELFxuICAgICAgICBpZDogbW9kdWxlLmlkLFxuICAgICAgICBwYWdlSWQ6IG1vZHVsZS5wYWdlSWQsXG4gICAgICAgIG1hbmlmZXN0LFxuICAgICAgICBjb25maWc6IHJlc29sdmVCYWNrb2ZmaWNlRGV0YWlsUGFnZUZhY2V0Q29uZmlnKFxuICAgICAgICAgIG1vZHVsZS5jb25maWcsXG4gICAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgY2FzZSAndG9vbCc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBraW5kOiAndG9vbCcsXG4gICAgICAgIGlkOiBtb2R1bGUuaWQsXG4gICAgICAgIG1hbmlmZXN0LFxuICAgICAgICBjb25maWc6IHJlc29sdmVCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnKFxuICAgICAgICAgIG1vZHVsZS5jb25maWcsXG4gICAgICAgICAgbWFuaWZlc3QsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgYmFja29mZmljZSBmYWNldCBraW5kOiAke1N0cmluZyhtb2R1bGUpfWApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,6 @@
1
+ import type { OperationType } from 'relay-runtime';
2
+ import type { Schema } from '@plumile/filter-query/types.js';
3
+ import type { BackofficeListNavigation, BackofficeListNavigationOptions, BackofficeOperationSort, BackofficeOperationWhere } from '../types.js';
4
+ export declare function createBackofficeListNavigation<Where extends Record<string, unknown>, Sort extends string, const S extends Schema>(options: BackofficeListNavigationOptions<Where, Sort, S>): BackofficeListNavigation<Where, Sort, S>;
5
+ export declare const defineBackofficeListNavigation: <TOperation extends OperationType>() => <const S extends Schema>(options: BackofficeListNavigationOptions<BackofficeOperationWhere<TOperation>, BackofficeOperationSort<TOperation>, S>) => BackofficeListNavigation<BackofficeOperationWhere<TOperation>, BackofficeOperationSort<TOperation>, S>;
6
+ //# sourceMappingURL=listNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listNavigation.d.ts","sourceRoot":"","sources":["../../../src/state/listNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,KAAK,EACV,wBAAwB,EACxB,+BAA+B,EAE/B,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAGrB,wBAAgB,8BAA8B,CAC5C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,SAAS,MAAM,EACnB,KAAK,CAAC,CAAC,SAAS,MAAM,EAEtB,OAAO,EAAE,+BAA+B,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GACvD,wBAAwB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAqC1C;AAGD,eAAO,MAAM,8BAA8B,GACzC,UAAU,SAAS,aAAa,QAExB,KAAK,CAAC,CAAC,SAAS,MAAM,WACnB,+BAA+B,CACtC,wBAAwB,CAAC,UAAU,CAAC,EACpC,uBAAuB,CAAC,UAAU,CAAC,EACnC,CAAC,CACF,KACA,wBAAwB,CACzB,wBAAwB,CAAC,UAAU,CAAC,EACpC,uBAAuB,CAAC,UAAU,CAAC,EACnC,CAAC,CAIJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ export function createBackofficeListNavigation(options) {
2
+ const { defaults, filterSchema, sortIds } = options;
3
+ const sortSet = new Set(sortIds);
4
+ return {
5
+ kind: 'list-navigation',
6
+ querySchema: filterSchema.schema,
7
+ defaults,
8
+ sortIds,
9
+ encode(state) {
10
+ const resolved = { ...defaults, ...state };
11
+ const query = {};
12
+ if (resolved.sort != null) {
13
+ query.sort = resolved.sort;
14
+ }
15
+ return {
16
+ filters: filterSchema.fromWhere(resolved.where),
17
+ query,
18
+ };
19
+ },
20
+ decode({ filters, query }) {
21
+ const { where: defaultWhere, sort: defaultSort } = defaults;
22
+ let where = defaultWhere;
23
+ if (filters != null) {
24
+ const decodedWhere = filterSchema.toWhere(filters);
25
+ if (decodedWhere != null) {
26
+ where = decodedWhere;
27
+ }
28
+ }
29
+ let sort = defaultSort;
30
+ if (query?.sort != null && sortSet.has(query.sort)) {
31
+ sort = query.sort;
32
+ }
33
+ return { where, sort };
34
+ },
35
+ };
36
+ }
37
+ export const defineBackofficeListNavigation = () => {
38
+ return (options) => {
39
+ return createBackofficeListNavigation(options);
40
+ };
41
+ };
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdE5hdmlnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvbGlzdE5hdmlnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxVQUFVLDhCQUE4QixDQUs1QyxPQUF3RDtJQUV4RCxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQVMsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTztRQUNMLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsV0FBVyxFQUFFLFlBQVksQ0FBQyxNQUFNO1FBQ2hDLFFBQVE7UUFDUixPQUFPO1FBQ1AsTUFBTSxDQUFDLEtBQUs7WUFDVixNQUFNLFFBQVEsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDM0MsTUFBTSxLQUFLLEdBQXdDLEVBQUUsQ0FBQztZQUN0RCxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzFCLEtBQUssQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUM3QixDQUFDO1lBQ0QsT0FBTztnQkFDTCxPQUFPLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUMvQyxLQUFLO2FBQ04sQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQ3ZCLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxRQUFRLENBQUM7WUFDNUQsSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDO1lBQ3pCLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNwQixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLFlBQVksSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDekIsS0FBSyxHQUFHLFlBQVksQ0FBQztnQkFDdkIsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLElBQUksR0FBRyxXQUFXLENBQUM7WUFDdkIsSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUNwQixDQUFDO1lBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN6QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFHRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUUxQyxFQUFFO0lBQ0osT0FBTyxDQUNMLE9BSUMsRUFLRCxFQUFFO1FBQ0YsT0FBTyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9wZXJhdGlvblR5cGUgfSBmcm9tICdyZWxheS1ydW50aW1lJztcbmltcG9ydCB0eXBlIHsgU2NoZW1hIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3R5cGVzLmpzJztcblxuaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlTGlzdE5hdmlnYXRpb24sXG4gIEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbk9wdGlvbnMsXG4gIEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvblF1ZXJ5LFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbi8qKiBDcmVhdGVzIHRoZSBzeW5jaHJvbm91cyBVUkwgY29udHJhY3QgZm9yIGEgYmFja29mZmljZSBsaXN0IHJvdXRlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbjxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgU29ydCBleHRlbmRzIHN0cmluZyxcbiAgY29uc3QgUyBleHRlbmRzIFNjaGVtYSxcbj4oXG4gIG9wdGlvbnM6IEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbk9wdGlvbnM8V2hlcmUsIFNvcnQsIFM+LFxuKTogQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uPFdoZXJlLCBTb3J0LCBTPiB7XG4gIGNvbnN0IHsgZGVmYXVsdHMsIGZpbHRlclNjaGVtYSwgc29ydElkcyB9ID0gb3B0aW9ucztcbiAgY29uc3Qgc29ydFNldCA9IG5ldyBTZXQ8c3RyaW5nPihzb3J0SWRzKTtcblxuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdsaXN0LW5hdmlnYXRpb24nLFxuICAgIHF1ZXJ5U2NoZW1hOiBmaWx0ZXJTY2hlbWEuc2NoZW1hLFxuICAgIGRlZmF1bHRzLFxuICAgIHNvcnRJZHMsXG4gICAgZW5jb2RlKHN0YXRlKSB7XG4gICAgICBjb25zdCByZXNvbHZlZCA9IHsgLi4uZGVmYXVsdHMsIC4uLnN0YXRlIH07XG4gICAgICBjb25zdCBxdWVyeTogQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uUXVlcnk8U29ydD4gPSB7fTtcbiAgICAgIGlmIChyZXNvbHZlZC5zb3J0ICE9IG51bGwpIHtcbiAgICAgICAgcXVlcnkuc29ydCA9IHJlc29sdmVkLnNvcnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJTY2hlbWEuZnJvbVdoZXJlKHJlc29sdmVkLndoZXJlKSxcbiAgICAgICAgcXVlcnksXG4gICAgICB9O1xuICAgIH0sXG4gICAgZGVjb2RlKHsgZmlsdGVycywgcXVlcnkgfSkge1xuICAgICAgY29uc3QgeyB3aGVyZTogZGVmYXVsdFdoZXJlLCBzb3J0OiBkZWZhdWx0U29ydCB9ID0gZGVmYXVsdHM7XG4gICAgICBsZXQgd2hlcmUgPSBkZWZhdWx0V2hlcmU7XG4gICAgICBpZiAoZmlsdGVycyAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGRlY29kZWRXaGVyZSA9IGZpbHRlclNjaGVtYS50b1doZXJlKGZpbHRlcnMpO1xuICAgICAgICBpZiAoZGVjb2RlZFdoZXJlICE9IG51bGwpIHtcbiAgICAgICAgICB3aGVyZSA9IGRlY29kZWRXaGVyZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgc29ydCA9IGRlZmF1bHRTb3J0O1xuICAgICAgaWYgKHF1ZXJ5Py5zb3J0ICE9IG51bGwgJiYgc29ydFNldC5oYXMocXVlcnkuc29ydCkpIHtcbiAgICAgICAgc29ydCA9IHF1ZXJ5LnNvcnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4geyB3aGVyZSwgc29ydCB9O1xuICAgIH0sXG4gIH07XG59XG5cbi8qKiBEZWZpbmVzIG5hdmlnYXRpb24gdXNpbmcgdGhlIHdoZXJlIGFuZCBzb3J0IHR5cGVzIG9mIGEgUmVsYXkgb3BlcmF0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbiA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4+KCkgPT4ge1xuICByZXR1cm4gPGNvbnN0IFMgZXh0ZW5kcyBTY2hlbWE+KFxuICAgIG9wdGlvbnM6IEJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbk9wdGlvbnM8XG4gICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gICAgICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbiAgICAgIFNcbiAgICA+LFxuICApOiBCYWNrb2ZmaWNlTGlzdE5hdmlnYXRpb248XG4gICAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICAgIEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuICAgIFNcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNyZWF0ZUJhY2tvZmZpY2VMaXN0TmF2aWdhdGlvbihvcHRpb25zKTtcbiAgfTtcbn07XG4iXX0=
@@ -1,12 +1,9 @@
1
- import type { BackofficeListState } from '../types.js';
2
- import type { BackofficeFilterSchema } from '../filters/schema.js';
1
+ import type { BackofficeListNavigation, BackofficeListState } from '../types.js';
3
2
  export declare const BACKOFFICE_URL_KEYS: {
4
3
  readonly sort: 'sort';
5
4
  };
6
- type UrlCodecOptions<Where, Sort extends string> = {
7
- defaults: BackofficeListState<Where, Sort>;
8
- filterSchema: BackofficeFilterSchema<Where>;
9
- sortIds: readonly Sort[];
5
+ type UrlCodecOptions<Where extends Record<string, unknown>, Sort extends string> = {
6
+ listNavigation: BackofficeListNavigation<Where, Sort>;
10
7
  };
11
8
  export declare function createBackofficeListUrlCodec<Where extends Record<string, unknown>, Sort extends string>(options: UrlCodecOptions<Where, Sort>): {
12
9
  parse: (search: URLSearchParams) => BackofficeListState<Where, Sort>;
@@ -1 +1 @@
1
- {"version":3,"file":"urlState.d.ts","sourceRoot":"","sources":["../../../src/state/urlState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE,eAAO,MAAM,mBAAmB;aAC9B,IAAI,EAAE,MAAM;CACJ,CAAC;AAeX,KAAK,eAAe,CAAC,KAAK,EAAE,IAAI,SAAS,MAAM,IAAI;IACjD,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3C,YAAY,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;CAC1B,CAAC;AAGF,wBAAgB,4BAA4B,CAC1C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,SAAS,MAAM,EAEnB,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,GACpC;IACD,KAAK,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrE,SAAS,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,eAAe,CAAC;CACzE,CAyCA"}
1
+ {"version":3,"file":"urlState.d.ts","sourceRoot":"","sources":["../../../src/state/urlState.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,mBAAmB;aAC9B,IAAI,EAAE,MAAM;CACJ,CAAC;AAeX,KAAK,eAAe,CAClB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,SAAS,MAAM,IACjB;IACF,cAAc,EAAE,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;CACvD,CAAC;AAGF,wBAAgB,4BAA4B,CAC1C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,SAAS,MAAM,EAEnB,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,GACpC;IACD,KAAK,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrE,SAAS,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,eAAe,CAAC;CACzE,CAsCA"}
@@ -15,35 +15,33 @@ function serializeFilterParams(params) {
15
15
  .join('&');
16
16
  }
17
17
  export function createBackofficeListUrlCodec(options) {
18
- const { defaults, filterSchema, sortIds } = options;
19
- const { sort: defaultSort } = defaults;
20
- const sortSet = new Set(sortIds);
18
+ const { listNavigation } = options;
21
19
  function parse(search) {
22
20
  const filterParams = new URLSearchParams(search);
23
21
  filterParams.delete(BACKOFFICE_URL_KEYS.sort);
24
22
  const filterQuery = serializeFilterParams(filterParams);
25
- const { filters } = parseFilters(filterQuery, filterSchema.schema);
26
- const where = filterSchema.toWhere(filters);
23
+ const { filters } = parseFilters(filterQuery, listNavigation.querySchema);
27
24
  const sortRaw = search.get(BACKOFFICE_URL_KEYS.sort);
28
- let sort = defaultSort;
29
- if (sortRaw != null && sortSet.has(sortRaw)) {
30
- sort = sortRaw;
25
+ const query = {};
26
+ if (sortRaw != null) {
27
+ const sort = listNavigation.sortIds.find((candidate) => {
28
+ return candidate === sortRaw;
29
+ });
30
+ if (sort != null) {
31
+ query.sort = sort;
32
+ }
31
33
  }
32
- return {
33
- where,
34
- sort,
35
- };
34
+ return listNavigation.decode({ filters, query });
36
35
  }
37
36
  function serialize(state) {
38
- const { sort, where } = state;
39
- const filters = filterSchema.fromWhere(where);
40
- const filterQuery = stringifyFilters(filters, filterSchema.schema);
37
+ const { filters, query } = listNavigation.encode(state);
38
+ const filterQuery = stringifyFilters(filters, listNavigation.querySchema);
41
39
  const search = new URLSearchParams(filterQuery);
42
- if (sort != null) {
43
- search.set(BACKOFFICE_URL_KEYS.sort, sort);
40
+ if (query.sort != null) {
41
+ search.set(BACKOFFICE_URL_KEYS.sort, query.sort);
44
42
  }
45
43
  return search;
46
44
  }
47
45
  return { parse, serialize };
48
46
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsU3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvdXJsU3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssSUFBSSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxJQUFJLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFLbkYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDakMsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDO0FBR1gsU0FBUyxxQkFBcUIsQ0FBQyxNQUF1QjtJQUNwRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLE9BQU87U0FDWCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ3BCLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ25FLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFTRCxNQUFNLFVBQVUsNEJBQTRCLENBSTFDLE9BQXFDO0lBS3JDLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBUyxPQUFPLENBQUMsQ0FBQztJQUd6QyxTQUFTLEtBQUssQ0FBQyxNQUF1QjtRQUNwQyxNQUFNLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxZQUFZLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTlDLE1BQU0sV0FBVyxHQUFHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRSxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDO1FBQ3ZCLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDNUMsSUFBSSxHQUFHLE9BQWUsQ0FBQztRQUN6QixDQUFDO1FBRUQsT0FBTztZQUNMLEtBQUs7WUFDTCxJQUFJO1NBQ0wsQ0FBQztJQUNKLENBQUM7SUFHRCxTQUFTLFNBQVMsQ0FBQyxLQUF1QztRQUN4RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQztRQUM5QixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEQsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDakIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZSBhcyBwYXJzZUZpbHRlcnMgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvcGFyc2UuanMnO1xuaW1wb3J0IHsgc3RyaW5naWZ5IGFzIHN0cmluZ2lmeUZpbHRlcnMgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvc3RyaW5naWZ5LmpzJztcblxuaW1wb3J0IHR5cGUgeyBCYWNrb2ZmaWNlTGlzdFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBCYWNrb2ZmaWNlRmlsdGVyU2NoZW1hIH0gZnJvbSAnLi4vZmlsdGVycy9zY2hlbWEuanMnO1xuXG5leHBvcnQgY29uc3QgQkFDS09GRklDRV9VUkxfS0VZUyA9IHtcbiAgc29ydDogJ3NvcnQnLFxufSBhcyBjb25zdDtcblxuLyoqIFNlcmlhbGl6ZXMgZmlsdGVyIHBhcmFtcyB3aXRoIFJGQzM5ODYgZW5jb2RpbmcuICovXG5mdW5jdGlvbiBzZXJpYWxpemVGaWx0ZXJQYXJhbXMocGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCBlbnRyaWVzID0gQXJyYXkuZnJvbShwYXJhbXMuZW50cmllcygpKTtcbiAgaWYgKGVudHJpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiBlbnRyaWVzXG4gICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICByZXR1cm4gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlKX1gO1xuICAgIH0pXG4gICAgLmpvaW4oJyYnKTtcbn1cblxudHlwZSBVcmxDb2RlY09wdGlvbnM8V2hlcmUsIFNvcnQgZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBkZWZhdWx0czogQmFja29mZmljZUxpc3RTdGF0ZTxXaGVyZSwgU29ydD47XG4gIGZpbHRlclNjaGVtYTogQmFja29mZmljZUZpbHRlclNjaGVtYTxXaGVyZT47XG4gIHNvcnRJZHM6IHJlYWRvbmx5IFNvcnRbXTtcbn07XG5cbi8qKiBDcmVhdGVzIGEgVVJMIGNvZGVjIGZvciBnZW5lcmljIGJhY2tvZmZpY2UgbGlzdCBwYWdlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCYWNrb2ZmaWNlTGlzdFVybENvZGVjPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBTb3J0IGV4dGVuZHMgc3RyaW5nLFxuPihcbiAgb3B0aW9uczogVXJsQ29kZWNPcHRpb25zPFdoZXJlLCBTb3J0Pixcbik6IHtcbiAgcGFyc2U6IChzZWFyY2g6IFVSTFNlYXJjaFBhcmFtcykgPT4gQmFja29mZmljZUxpc3RTdGF0ZTxXaGVyZSwgU29ydD47XG4gIHNlcmlhbGl6ZTogKHN0YXRlOiBCYWNrb2ZmaWNlTGlzdFN0YXRlPFdoZXJlLCBTb3J0PikgPT4gVVJMU2VhcmNoUGFyYW1zO1xufSB7XG4gIGNvbnN0IHsgZGVmYXVsdHMsIGZpbHRlclNjaGVtYSwgc29ydElkcyB9ID0gb3B0aW9ucztcbiAgY29uc3QgeyBzb3J0OiBkZWZhdWx0U29ydCB9ID0gZGVmYXVsdHM7XG4gIGNvbnN0IHNvcnRTZXQgPSBuZXcgU2V0PHN0cmluZz4oc29ydElkcyk7XG5cbiAgLyoqIFBhcnNlcyBhIFVSTFNlYXJjaFBhcmFtcyBvYmplY3QgaW50byBhIGZ1bGwgbGlzdCBzdGF0ZS4gKi9cbiAgZnVuY3Rpb24gcGFyc2Uoc2VhcmNoOiBVUkxTZWFyY2hQYXJhbXMpOiBCYWNrb2ZmaWNlTGlzdFN0YXRlPFdoZXJlLCBTb3J0PiB7XG4gICAgY29uc3QgZmlsdGVyUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhzZWFyY2gpO1xuICAgIGZpbHRlclBhcmFtcy5kZWxldGUoQkFDS09GRklDRV9VUkxfS0VZUy5zb3J0KTtcblxuICAgIGNvbnN0IGZpbHRlclF1ZXJ5ID0gc2VyaWFsaXplRmlsdGVyUGFyYW1zKGZpbHRlclBhcmFtcyk7XG4gICAgY29uc3QgeyBmaWx0ZXJzIH0gPSBwYXJzZUZpbHRlcnMoZmlsdGVyUXVlcnksIGZpbHRlclNjaGVtYS5zY2hlbWEpO1xuICAgIGNvbnN0IHdoZXJlID0gZmlsdGVyU2NoZW1hLnRvV2hlcmUoZmlsdGVycyk7XG5cbiAgICBjb25zdCBzb3J0UmF3ID0gc2VhcmNoLmdldChCQUNLT0ZGSUNFX1VSTF9LRVlTLnNvcnQpO1xuICAgIGxldCBzb3J0ID0gZGVmYXVsdFNvcnQ7XG4gICAgaWYgKHNvcnRSYXcgIT0gbnVsbCAmJiBzb3J0U2V0Lmhhcyhzb3J0UmF3KSkge1xuICAgICAgc29ydCA9IHNvcnRSYXcgYXMgU29ydDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgd2hlcmUsXG4gICAgICBzb3J0LFxuICAgIH07XG4gIH1cblxuICAvKiogU2VyaWFsaXplcyBhIGxpc3Qgc3RhdGUgaW50byBVUkxTZWFyY2hQYXJhbXMuICovXG4gIGZ1bmN0aW9uIHNlcmlhbGl6ZShzdGF0ZTogQmFja29mZmljZUxpc3RTdGF0ZTxXaGVyZSwgU29ydD4pOiBVUkxTZWFyY2hQYXJhbXMge1xuICAgIGNvbnN0IHsgc29ydCwgd2hlcmUgfSA9IHN0YXRlO1xuICAgIGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXJTY2hlbWEuZnJvbVdoZXJlKHdoZXJlKTtcbiAgICBjb25zdCBmaWx0ZXJRdWVyeSA9IHN0cmluZ2lmeUZpbHRlcnMoZmlsdGVycywgZmlsdGVyU2NoZW1hLnNjaGVtYSk7XG4gICAgY29uc3Qgc2VhcmNoID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhmaWx0ZXJRdWVyeSk7XG5cbiAgICBpZiAoc29ydCAhPSBudWxsKSB7XG4gICAgICBzZWFyY2guc2V0KEJBQ0tPRkZJQ0VfVVJMX0tFWVMuc29ydCwgc29ydCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlYXJjaDtcbiAgfVxuXG4gIHJldHVybiB7IHBhcnNlLCBzZXJpYWxpemUgfTtcbn1cbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsU3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvdXJsU3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssSUFBSSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxJQUFJLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFPbkYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDakMsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDO0FBR1gsU0FBUyxxQkFBcUIsQ0FBQyxNQUF1QjtJQUNwRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLE9BQU87U0FDWCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ3BCLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ25FLENBQUMsQ0FBQztTQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNmLENBQUM7QUFVRCxNQUFNLFVBQVUsNEJBQTRCLENBSTFDLE9BQXFDO0lBS3JDLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFHbkMsU0FBUyxLQUFLLENBQUMsTUFBdUI7UUFDcEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsWUFBWSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5QyxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxNQUFNLEtBQUssR0FBb0IsRUFBRSxDQUFDO1FBQ2xDLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3JELE9BQU8sU0FBUyxLQUFLLE9BQU8sQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNqQixLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFHRCxTQUFTLFNBQVMsQ0FBQyxLQUF1QztRQUN4RCxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVoRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2UgYXMgcGFyc2VGaWx0ZXJzIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3BhcnNlLmpzJztcbmltcG9ydCB7IHN0cmluZ2lmeSBhcyBzdHJpbmdpZnlGaWx0ZXJzIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3N0cmluZ2lmeS5qcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZUxpc3ROYXZpZ2F0aW9uLFxuICBCYWNrb2ZmaWNlTGlzdFN0YXRlLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjb25zdCBCQUNLT0ZGSUNFX1VSTF9LRVlTID0ge1xuICBzb3J0OiAnc29ydCcsXG59IGFzIGNvbnN0O1xuXG4vKiogU2VyaWFsaXplcyBmaWx0ZXIgcGFyYW1zIHdpdGggUkZDMzk4NiBlbmNvZGluZy4gKi9cbmZ1bmN0aW9uIHNlcmlhbGl6ZUZpbHRlclBhcmFtcyhwYXJhbXM6IFVSTFNlYXJjaFBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IGVudHJpZXMgPSBBcnJheS5mcm9tKHBhcmFtcy5lbnRyaWVzKCkpO1xuICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIGVudHJpZXNcbiAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIHJldHVybiBgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5KX09JHtlbmNvZGVVUklDb21wb25lbnQodmFsdWUpfWA7XG4gICAgfSlcbiAgICAuam9pbignJicpO1xufVxuXG50eXBlIFVybENvZGVjT3B0aW9uczxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgU29ydCBleHRlbmRzIHN0cmluZyxcbj4gPSB7XG4gIGxpc3ROYXZpZ2F0aW9uOiBCYWNrb2ZmaWNlTGlzdE5hdmlnYXRpb248V2hlcmUsIFNvcnQ+O1xufTtcblxuLyoqIENyZWF0ZXMgYSBVUkwgY29kZWMgZm9yIGdlbmVyaWMgYmFja29mZmljZSBsaXN0IHBhZ2VzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhY2tvZmZpY2VMaXN0VXJsQ29kZWM8XG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFNvcnQgZXh0ZW5kcyBzdHJpbmcsXG4+KFxuICBvcHRpb25zOiBVcmxDb2RlY09wdGlvbnM8V2hlcmUsIFNvcnQ+LFxuKToge1xuICBwYXJzZTogKHNlYXJjaDogVVJMU2VhcmNoUGFyYW1zKSA9PiBCYWNrb2ZmaWNlTGlzdFN0YXRlPFdoZXJlLCBTb3J0PjtcbiAgc2VyaWFsaXplOiAoc3RhdGU6IEJhY2tvZmZpY2VMaXN0U3RhdGU8V2hlcmUsIFNvcnQ+KSA9PiBVUkxTZWFyY2hQYXJhbXM7XG59IHtcbiAgY29uc3QgeyBsaXN0TmF2aWdhdGlvbiB9ID0gb3B0aW9ucztcblxuICAvKiogUGFyc2VzIGEgVVJMU2VhcmNoUGFyYW1zIG9iamVjdCBpbnRvIGEgZnVsbCBsaXN0IHN0YXRlLiAqL1xuICBmdW5jdGlvbiBwYXJzZShzZWFyY2g6IFVSTFNlYXJjaFBhcmFtcyk6IEJhY2tvZmZpY2VMaXN0U3RhdGU8V2hlcmUsIFNvcnQ+IHtcbiAgICBjb25zdCBmaWx0ZXJQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHNlYXJjaCk7XG4gICAgZmlsdGVyUGFyYW1zLmRlbGV0ZShCQUNLT0ZGSUNFX1VSTF9LRVlTLnNvcnQpO1xuXG4gICAgY29uc3QgZmlsdGVyUXVlcnkgPSBzZXJpYWxpemVGaWx0ZXJQYXJhbXMoZmlsdGVyUGFyYW1zKTtcbiAgICBjb25zdCB7IGZpbHRlcnMgfSA9IHBhcnNlRmlsdGVycyhmaWx0ZXJRdWVyeSwgbGlzdE5hdmlnYXRpb24ucXVlcnlTY2hlbWEpO1xuXG4gICAgY29uc3Qgc29ydFJhdyA9IHNlYXJjaC5nZXQoQkFDS09GRklDRV9VUkxfS0VZUy5zb3J0KTtcbiAgICBjb25zdCBxdWVyeTogeyBzb3J0PzogU29ydCB9ID0ge307XG4gICAgaWYgKHNvcnRSYXcgIT0gbnVsbCkge1xuICAgICAgY29uc3Qgc29ydCA9IGxpc3ROYXZpZ2F0aW9uLnNvcnRJZHMuZmluZCgoY2FuZGlkYXRlKSA9PiB7XG4gICAgICAgIHJldHVybiBjYW5kaWRhdGUgPT09IHNvcnRSYXc7XG4gICAgICB9KTtcbiAgICAgIGlmIChzb3J0ICE9IG51bGwpIHtcbiAgICAgICAgcXVlcnkuc29ydCA9IHNvcnQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsaXN0TmF2aWdhdGlvbi5kZWNvZGUoeyBmaWx0ZXJzLCBxdWVyeSB9KTtcbiAgfVxuXG4gIC8qKiBTZXJpYWxpemVzIGEgbGlzdCBzdGF0ZSBpbnRvIFVSTFNlYXJjaFBhcmFtcy4gKi9cbiAgZnVuY3Rpb24gc2VyaWFsaXplKHN0YXRlOiBCYWNrb2ZmaWNlTGlzdFN0YXRlPFdoZXJlLCBTb3J0Pik6IFVSTFNlYXJjaFBhcmFtcyB7XG4gICAgY29uc3QgeyBmaWx0ZXJzLCBxdWVyeSB9ID0gbGlzdE5hdmlnYXRpb24uZW5jb2RlKHN0YXRlKTtcbiAgICBjb25zdCBmaWx0ZXJRdWVyeSA9IHN0cmluZ2lmeUZpbHRlcnMoZmlsdGVycywgbGlzdE5hdmlnYXRpb24ucXVlcnlTY2hlbWEpO1xuICAgIGNvbnN0IHNlYXJjaCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoZmlsdGVyUXVlcnkpO1xuXG4gICAgaWYgKHF1ZXJ5LnNvcnQgIT0gbnVsbCkge1xuICAgICAgc2VhcmNoLnNldChCQUNLT0ZGSUNFX1VSTF9LRVlTLnNvcnQsIHF1ZXJ5LnNvcnQpO1xuICAgIH1cblxuICAgIHJldHVybiBzZWFyY2g7XG4gIH1cblxuICByZXR1cm4geyBwYXJzZSwgc2VyaWFsaXplIH07XG59XG4iXX0=
@@ -1,7 +1,42 @@
1
- import type { BackofficeDashboardConfig, BackofficeDetailTitleMetaItem, BackofficeListResponsiveMetaItem } from '../types.js';
1
+ import type { BackofficeDashboardConfig, BackofficeDetailTitleMetaItem, BackofficeEntityManifestItem, BackofficeManifestListStateInput, BackofficeListResponsiveMetaItem, I18nLabel } from '../types.js';
2
+ type TestKind = 'A' | 'B';
3
+ declare const typedListManifest: {
4
+ id: string;
5
+ routeSegment: string;
6
+ label: I18nLabel;
7
+ routes: {
8
+ list: string;
9
+ detail: (id: string) => string;
10
+ detailPage: (id: string, pageId: string) => string;
11
+ };
12
+ hasList: true;
13
+ listNavigation: import("../types.js").BackofficeListNavigation<{
14
+ projectId?: string | null | undefined;
15
+ kind?: TestKind | null | undefined;
16
+ attempt?: number | null | undefined;
17
+ createdFrom?: string | null | undefined;
18
+ }, NonNullable<"CREATED_AT_ASC" | "CREATED_AT_DESC">, {
19
+ projectId: import("@plumile/filter-query/types.js.js").StringFieldDescriptor;
20
+ kind: import("@plumile/filter-query/types.js.js").StringFieldDescriptor;
21
+ }>;
22
+ facets: {
23
+ detailLayout: () => Promise<never>;
24
+ detailPage: () => Promise<never>;
25
+ };
26
+ } & {
27
+ kind: 'list-detail';
28
+ };
29
+ export declare const runtimeListManifestId: string;
30
+ type TypedListState = BackofficeManifestListStateInput<{
31
+ tasks: typeof typedListManifest;
32
+ }, 'tasks'>;
33
+ export declare const typedListState: TypedListState;
34
+ export declare const invalidTypedListState: TypedListState;
35
+ export declare const runtimeListState: BackofficeManifestListStateInput<Record<string, BackofficeEntityManifestItem>, string>;
2
36
  export declare const responsiveMeta: BackofficeListResponsiveMetaItem;
3
37
  export declare const invalidResponsiveMeta: BackofficeListResponsiveMetaItem;
4
38
  export declare const titleMeta: BackofficeDetailTitleMetaItem;
5
39
  export declare const invalidTitleMeta: BackofficeDetailTitleMetaItem;
6
40
  export declare const invalidDashboardConfig: BackofficeDashboardConfig;
41
+ export {};
7
42
  //# sourceMappingURL=operation-bound-config.test-d.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operation-bound-config.test-d.d.ts","sourceRoot":"","sources":["../../../src/type-tests/operation-bound-config.test-d.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,gCAAgC,EAGjC,MAAM,aAAa,CAAC;AA+MrB,eAAO,MAAM,cAAc,EAAE,gCAI5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,gCAKnC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,6BAIvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,6BAK9B,CAAC;AAsVF,eAAO,MAAM,sBAAsB,EAAE,yBAKpC,CAAC"}
1
+ {"version":3,"file":"operation-bound-config.test-d.d.ts","sourceRoot":"","sources":["../../../src/type-tests/operation-bound-config.test-d.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,gCAAgC,EAEhC,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,KAAK,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAC;AA0J1B,QAAA,MAAM,iBAAiB;;;;;;;;;;;oBApJL,MAAM,GAAG,IAAI,GAAG,SAAS;eAC9B,QAAQ,GAAG,IAAI,GAAG,SAAS;kBACxB,MAAM,GAAG,IAAI,GAAG,SAAS;sBACrB,MAAM,GAAG,IAAI,GAAG,SAAS;;;;;;QAiKzC,YAAY;QAGZ,UAAU;;;;CAIZ,CAAC;AAGH,eAAO,MAAM,qBAAqB,QAAyB,CAAC;AAE5D,KAAK,cAAc,GAAG,gCAAgC,CACpD;IAAE,KAAK,EAAE,OAAO,iBAAiB,CAAA;CAAE,EACnC,OAAO,CACR,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAG5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAGnC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,gCAAgC,CAC7D,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,EAC5C,MAAM,CAIP,CAAC;AAgIF,eAAO,MAAM,cAAc,EAAE,gCAI5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,gCAKnC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,6BAIvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,6BAK9B,CAAC;AAkVF,eAAO,MAAM,sBAAsB,EAAE,yBAKpC,CAAC"}