@plumile/backoffice-core 0.1.189 → 0.1.190

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.
@@ -11,7 +11,7 @@ type BackofficeLegacyFilterBase<Where> = {
11
11
  path?: readonly string[];
12
12
  placement?: 'quick' | 'drawer' | 'both';
13
13
  };
14
- export type BackofficeLegacyFilterSpec<Where> = (BackofficeLegacyFilterBase<Where> & {
14
+ export type BackofficeLegacyFilterSpec<Where, EntityId extends string = string> = (BackofficeLegacyFilterBase<Where> & {
15
15
  kind: 'textContains';
16
16
  placeholderLabel?: I18nLabel;
17
17
  placeholderText?: I18nLabel;
@@ -34,12 +34,15 @@ export type BackofficeLegacyFilterSpec<Where> = (BackofficeLegacyFilterBase<Wher
34
34
  falseLabel?: I18nLabel;
35
35
  }) | (BackofficeLegacyFilterBase<Where> & {
36
36
  kind: 'entityId';
37
- entity: string;
37
+ entity: EntityId;
38
+ }) | (BackofficeLegacyFilterBase<Where> & {
39
+ kind: 'entityIdList';
40
+ entity: EntityId;
38
41
  }) | (BackofficeLegacyFilterBase<Where> & {
39
42
  kind: 'stringList';
40
43
  placeholderLabel?: I18nLabel;
41
44
  placeholderText?: I18nLabel;
42
45
  });
43
- export declare function mapFilters<Where extends Record<string, unknown>>(filters: readonly BackofficeLegacyFilterSpec<Where>[]): readonly BackofficeFilterSpec<Where>[];
46
+ export declare function mapFilters<Where extends Record<string, unknown>, EntityId extends string = string>(filters: readonly BackofficeLegacyFilterSpec<Where, EntityId>[]): readonly BackofficeFilterSpec<Where, EntityId>[];
44
47
  export {};
45
48
  //# sourceMappingURL=filters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/config/filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,4BAA4B,GAAG;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,KAAK,0BAA0B,CAAC,KAAK,IAAI;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,0BAA0B,CAAC,KAAK,IACxC,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACnC,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,SAAS,4BAA4B,EAAE,CAAC;CAClD,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,YAAY,CAAC;IACnB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,CAAC;AAwCP,wBAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,OAAO,EAAE,SAAS,0BAA0B,CAAC,KAAK,CAAC,EAAE,GACpD,SAAS,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAiHxC"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/config/filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,4BAA4B,GAAG;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,KAAK,0BAA0B,CAAC,KAAK,IAAI;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,0BAA0B,CACpC,KAAK,EACL,QAAQ,SAAS,MAAM,GAAG,MAAM,IAE9B,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACnC,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,SAAS,4BAA4B,EAAE,CAAC;CAClD,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC,GACF,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG;IACnC,IAAI,EAAE,YAAY,CAAC;IACnB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC,CAAC;AAwCP,wBAAgB,UAAU,CACxB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,QAAQ,SAAS,MAAM,GAAG,MAAM,EAEhC,OAAO,EAAE,SAAS,0BAA0B,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,GAC9D,SAAS,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAiJlD"}
@@ -87,6 +87,38 @@ export function mapFilters(filters) {
87
87
  return buildPickerScope(where);
88
88
  },
89
89
  };
90
+ case 'entityIdList':
91
+ return {
92
+ ...base,
93
+ kind: 'entityIdList',
94
+ entity: filter.entity,
95
+ pickerScope: (where) => {
96
+ return buildPickerScope(where);
97
+ },
98
+ toGraphQL: (value) => {
99
+ return buildWhere(key, value, filter.path);
100
+ },
101
+ fromGraphQL: (where) => {
102
+ const raw = readWhereValue(where, key, filter.path);
103
+ if (!Array.isArray(raw)) {
104
+ return null;
105
+ }
106
+ const values = raw
107
+ .map((entry) => {
108
+ if (typeof entry !== 'string') {
109
+ return '';
110
+ }
111
+ return entry.trim();
112
+ })
113
+ .filter((entry) => {
114
+ return entry !== '';
115
+ });
116
+ if (values.length === 0) {
117
+ return null;
118
+ }
119
+ return values;
120
+ },
121
+ };
90
122
  case 'stringList':
91
123
  return {
92
124
  ...base,
@@ -136,4 +168,4 @@ export function mapFilters(filters) {
136
168
  }
137
169
  });
138
170
  }
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBcURwRSxNQUFNLFVBQVUsR0FBRyxDQUNqQixHQUFpQyxFQUNqQyxLQUFjLEVBQ2QsSUFBd0IsRUFDUixFQUFFO0lBQ2xCLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLElBQXNCLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUN2QixLQUFtQixFQUNXLEVBQUU7SUFDaEMsTUFBTSxLQUFLLEdBQWlDLEVBQUUsQ0FBQztJQUMvQyxNQUFNLElBQUksR0FBRztRQUNYLGdCQUFnQjtRQUNoQixTQUFTO1FBQ1QsV0FBVztRQUNYLGNBQWM7S0FDTixDQUFDO0lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ25CLE1BQU0sUUFBUSxHQUFHLEdBQW1DLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUdqQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFLRixNQUFNLFVBQVUsVUFBVSxDQUN4QixPQUFxRDtJQUVyRCxPQUFPLE9BQU8sQ0FBQyxH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TztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsSUFBSSxFQUFFLE1BQU07aUJBQ2IsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VGaWx0ZXJTcGVjLFxuICBCYWNrb2ZmaWNlUGlja2VyU2NvcGUsXG4gIEkxOG5MYWJlbCxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHsgcmVhZFdoZXJlVmFsdWUsIHNldFdoZXJlVmFsdWUgfSBmcm9tICcuLi9maWx0ZXJzL3doZXJlLmpzJztcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZUxlZ2FjeUZpbHRlck9wdGlvbiA9IHtcbiAgaWQ6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgbGFiZWw6IEkxOG5MYWJlbDtcbn07XG5cbnR5cGUgQmFja29mZmljZUxlZ2FjeUZpbHRlckJhc2U8V2hlcmU+ID0ge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogSTE4bkxhYmVsO1xuICB3aGVyZUtleT86IEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz47XG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgcGxhY2VtZW50PzogJ3F1aWNrJyB8ICdkcmF3ZXInIHwgJ2JvdGgnO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8V2hlcmU+ID1cbiAgfCAoQmFja29mZmljZUxlZ2FjeUZpbHRlckJhc2U8V2hlcmU+ICYge1xuICAgICAga2luZDogJ3RleHRDb250YWlucyc7XG4gICAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgICAgcGxhY2Vob2xkZXJUZXh0PzogSTE4bkxhYmVsO1xuICAgIH0pXG4gIHwgKEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJCYXNlPFdoZXJlPiAmIHtcbiAgICAgIGtpbmQ6ICdkYXRldGltZSc7XG4gICAgICBtb2RlPzogJ2Zyb20nIHwgJ3RvJyB8ICdleGFjdCc7XG4gICAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgICAgcGxhY2Vob2xkZXJUZXh0PzogSTE4bkxhYmVsO1xuICAgIH0pXG4gIHwgKEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJCYXNlPFdoZXJlPiAmIHtcbiAgICAgIGtpbmQ6ICdudW1iZXInO1xuICAgICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICAgIGlucHV0TW9kZT86ICdudW1lcmljJyB8ICdkZWNpbWFsJztcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnc2VsZWN0JztcbiAgICAgIG9wdGlvbnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJPcHRpb25bXTtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnYm9vbGVhbic7XG4gICAgICB0cnVlTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgICBmYWxzZUxhYmVsPzogSTE4bkxhYmVsO1xuICAgIH0pXG4gIHwgKEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJCYXNlPFdoZXJlPiAmIHtcbiAgICAgIGtpbmQ6ICdlbnRpdHlJZCc7XG4gICAgICBlbnRpdHk6IHN0cmluZztcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnc3RyaW5nTGlzdCc7XG4gICAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgICAgcGxhY2Vob2xkZXJUZXh0PzogSTE4bkxhYmVsO1xuICAgIH0pO1xuXG5jb25zdCBidWlsZFdoZXJlID0gPFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBrZXk6IEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz4sXG4gIHZhbHVlOiB1bmtub3duLFxuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW10sXG4pOiBQYXJ0aWFsPFdoZXJlPiA9PiB7XG4gIGNvbnN0IG5leHQgPSBzZXRXaGVyZVZhbHVlKG51bGwsIGtleSwgdmFsdWUsIHBhdGgpO1xuICBpZiAobmV4dCA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIHJldHVybiBuZXh0IGFzIFBhcnRpYWw8V2hlcmU+O1xufTtcblxuY29uc3QgYnVpbGRQaWNrZXJTY29wZSA9IDxXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgd2hlcmU6IFdoZXJlIHwgbnVsbCxcbik6IEJhY2tvZmZpY2VQaWNrZXJTY29wZTxXaGVyZT4gPT4ge1xuICBjb25zdCBzY29wZTogQmFja29mZmljZVBpY2tlclNjb3BlPFdoZXJlPiA9IHt9O1xuICBjb25zdCBrZXlzID0gW1xuICAgICdvcmdhbml6YXRpb25JZCcsXG4gICAgJ2dyb3VwSWQnLFxuICAgICdwcm9qZWN0SWQnLFxuICAgICdpbml0aWF0aXZlSWQnLFxuICBdIGFzIGNvbnN0O1xuICBrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbnN0IHdoZXJlS2V5ID0ga2V5IGFzIEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz47XG4gICAgY29uc3QgdmFsdWUgPSByZWFkV2hlcmVWYWx1ZSh3aGVyZSwgd2hlcmVLZXkpO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBzY29wZVt3aGVyZUtleV0gPSB2YWx1ZSBhcyBFeHRyYWN0PFxuICAgICAgICBOb25OdWxsYWJsZTxXaGVyZVt0eXBlb2Ygd2hlcmVLZXldPixcbiAgICAgICAgc3RyaW5nXG4gICAgICA+O1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBzY29wZTtcbn07XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcEZpbHRlcnM8V2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPFdoZXJlPltdLFxuKTogcmVhZG9ubHkgQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+W10ge1xuICByZXR1cm4gZmlsdGVycy5tYXAoKGZpbHRlcikgPT4ge1xuICAgIGNvbnN0IGtleSA9IChmaWx0ZXIud2hlcmVLZXkgPz8gZmlsdGVyLmlkKSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+O1xuICAgIGNvbnN0IGJhc2UgPSB7XG4gICAgICBpZDogZmlsdGVyLmlkLFxuICAgICAgbGFiZWw6IGZpbHRlci5sYWJlbCxcbiAgICAgIHBsYWNlbWVudDogZmlsdGVyLnBsYWNlbWVudCxcbiAgICAgIHdoZXJlS2V5OiBmaWx0ZXIud2hlcmVLZXksXG4gICAgICBwYXRoOiBmaWx0ZXIucGF0aCxcbiAgICAgIHRvR3JhcGhRTDogKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gICAgICAgIHJldHVybiBidWlsZFdoZXJlKGtleSwgdmFsdWUsIGZpbHRlci5wYXRoKTtcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHN3aXRjaCAoZmlsdGVyLmtpbmQpIHtcbiAgICAgIGNhc2UgJ3RleHRDb250YWlucyc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAndGV4dCcsXG4gICAgICAgICAgcGxhY2Vob2xkZXJMYWJlbDogZmlsdGVyLnBsYWNlaG9sZGVyTGFiZWwsXG4gICAgICAgICAgcGxhY2Vob2xkZXJUZXh0OiBmaWx0ZXIucGxhY2Vob2xkZXJUZXh0LFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnZGF0ZXRpbWUnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAga2luZDogJ2RhdGV0aW1lJyxcbiAgICAgICAgICBtb2RlOiBmaWx0ZXIubW9kZSxcbiAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiBmaWx0ZXIucGxhY2Vob2xkZXJMYWJlbCxcbiAgICAgICAgICBwbGFjZWhvbGRlclRleHQ6IGZpbHRlci5wbGFjZWhvbGRlclRleHQsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAga2luZDogJ251bWJlcicsXG4gICAgICAgICAgcGxhY2Vob2xkZXJMYWJlbDogZmlsdGVyLnBsYWNlaG9sZGVyTGFiZWwsXG4gICAgICAgICAgcGxhY2Vob2xkZXJUZXh0OiBmaWx0ZXIucGxhY2Vob2xkZXJUZXh0LFxuICAgICAgICAgIGlucHV0TW9kZTogZmlsdGVyLmlucHV0TW9kZSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnZW51bScsXG4gICAgICAgICAgb3B0aW9uczogZmlsdGVyLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgICAgIGxhYmVsOiBvcHRpb24ubGFiZWwsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnYm9vbGVhbicsXG4gICAgICAgICAgdHJ1ZUxhYmVsOiBmaWx0ZXIudHJ1ZUxhYmVsLFxuICAgICAgICAgIGZhbHNlTGFiZWw6IGZpbHRlci5mYWxzZUxhYmVsLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnZW50aXR5SWQnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAga2luZDogJ2VudGl0eUlkJyxcbiAgICAgICAgICBlbnRpdHk6IGZpbHRlci5lbnRpdHksXG4gICAgICAgICAgcGlja2VyU2NvcGU6ICh3aGVyZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGJ1aWxkUGlja2VyU2NvcGUod2hlcmUpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICBjYXNlICdzdHJpbmdMaXN0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICdzdHJpbmdMaXN0JyxcbiAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiBmaWx0ZXIucGxhY2Vob2xkZXJMYWJlbCxcbiAgICAgICAgICBwbGFjZWhvbGRlclRleHQ6IGZpbHRlci5wbGFjZWhvbGRlclRleHQsXG4gICAgICAgICAgdG9HcmFwaFFMOiAodmFsdWU6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHZhbHVlXG4gICAgICAgICAgICAgIC5zcGxpdCgvW1xcbixdKy91KVxuICAgICAgICAgICAgICAubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS50cmltKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICE9PSAnJztcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRXaGVyZShrZXksIHZhbHVlcywgZmlsdGVyLnBhdGgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZnJvbUdyYXBoUUw6ICh3aGVyZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmF3ID0gcmVhZFdoZXJlVmFsdWUod2hlcmUsIGtleSwgZmlsdGVyLnBhdGgpO1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHJhdykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSByYXdcbiAgICAgICAgICAgICAgLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGVudHJ5ICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZW50cnkudHJpbSgpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuZmlsdGVyKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeSAhPT0gJyc7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzLmpvaW4oJywgJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAndGV4dCcsXG4gICAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBNERwRSxNQUFNLFVBQVUsR0FBRyxDQUNqQixHQUFpQyxFQUNqQyxLQUFjLEVBQ2QsSUFBd0IsRUFDUixFQUFFO0lBQ2xCLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLElBQXNCLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUN2QixLQUFtQixFQUNXLEVBQUU7SUFDaEMsTUFBTSxLQUFLLEdBQWlDLEVBQUUsQ0FBQztJQUMvQyxNQUFNLElBQUksR0FBRztRQUNYLGdCQUFnQjtRQUNoQixTQUFTO1FBQ1QsV0FBVztRQUNYLGNBQWM7S0FDTixDQUFDO0lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ25CLE1BQU0sUUFBUSxHQUFHLEdBQW1DLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUdqQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFLRixNQUFNLFVBQVUsVUFBVSxDQUl4QixPQUErRDtJQUUvRCxPQUFPLE9BQU8sQ0FBQyxH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RSxPQUFPO29CQUNMLEdBQUcsSUFBSTtvQkFDUCxJQUFJLEVBQUUsTUFBTTtpQkFDYixDQUFDO1FBQ04sQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZUZpbHRlclNwZWMsXG4gIEJhY2tvZmZpY2VQaWNrZXJTY29wZSxcbiAgSTE4bkxhYmVsLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyByZWFkV2hlcmVWYWx1ZSwgc2V0V2hlcmVWYWx1ZSB9IGZyb20gJy4uL2ZpbHRlcnMvd2hlcmUuanMnO1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyT3B0aW9uID0ge1xuICBpZDogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBsYWJlbDogSTE4bkxhYmVsO1xufTtcblxudHlwZSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGxhYmVsOiBJMThuTGFiZWw7XG4gIHdoZXJlS2V5PzogRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPjtcbiAgcGF0aD86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBwbGFjZW1lbnQ/OiAncXVpY2snIHwgJ2RyYXdlcicgfCAnYm90aCc7XG59O1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyU3BlYzxcbiAgV2hlcmUsXG4gIEVudGl0eUlkIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuPiA9XG4gIHwgKEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJCYXNlPFdoZXJlPiAmIHtcbiAgICAgIGtpbmQ6ICd0ZXh0Q29udGFpbnMnO1xuICAgICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnZGF0ZXRpbWUnO1xuICAgICAgbW9kZT86ICdmcm9tJyB8ICd0bycgfCAnZXhhY3QnO1xuICAgICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnbnVtYmVyJztcbiAgICAgIHBsYWNlaG9sZGVyTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gICAgICBpbnB1dE1vZGU/OiAnbnVtZXJpYycgfCAnZGVjaW1hbCc7XG4gICAgfSlcbiAgfCAoQmFja29mZmljZUxlZ2FjeUZpbHRlckJhc2U8V2hlcmU+ICYge1xuICAgICAga2luZDogJ3NlbGVjdCc7XG4gICAgICBvcHRpb25zOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyT3B0aW9uW107XG4gICAgfSlcbiAgfCAoQmFja29mZmljZUxlZ2FjeUZpbHRlckJhc2U8V2hlcmU+ICYge1xuICAgICAga2luZDogJ2Jvb2xlYW4nO1xuICAgICAgdHJ1ZUxhYmVsPzogSTE4bkxhYmVsO1xuICAgICAgZmFsc2VMYWJlbD86IEkxOG5MYWJlbDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnZW50aXR5SWQnO1xuICAgICAgZW50aXR5OiBFbnRpdHlJZDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnZW50aXR5SWRMaXN0JztcbiAgICAgIGVudGl0eTogRW50aXR5SWQ7XG4gICAgfSlcbiAgfCAoQmFja29mZmljZUxlZ2FjeUZpbHRlckJhc2U8V2hlcmU+ICYge1xuICAgICAga2luZDogJ3N0cmluZ0xpc3QnO1xuICAgICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICB9KTtcblxuY29uc3QgYnVpbGRXaGVyZSA9IDxXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAga2V5OiBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+LFxuICB2YWx1ZTogdW5rbm93bixcbiAgcGF0aD86IHJlYWRvbmx5IHN0cmluZ1tdLFxuKTogUGFydGlhbDxXaGVyZT4gPT4ge1xuICBjb25zdCBuZXh0ID0gc2V0V2hlcmVWYWx1ZShudWxsLCBrZXksIHZhbHVlLCBwYXRoKTtcbiAgaWYgKG5leHQgPT0gbnVsbCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICByZXR1cm4gbmV4dCBhcyBQYXJ0aWFsPFdoZXJlPjtcbn07XG5cbmNvbnN0IGJ1aWxkUGlja2VyU2NvcGUgPSA8V2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIHdoZXJlOiBXaGVyZSB8IG51bGwsXG4pOiBCYWNrb2ZmaWNlUGlja2VyU2NvcGU8V2hlcmU+ID0+IHtcbiAgY29uc3Qgc2NvcGU6IEJhY2tvZmZpY2VQaWNrZXJTY29wZTxXaGVyZT4gPSB7fTtcbiAgY29uc3Qga2V5cyA9IFtcbiAgICAnb3JnYW5pemF0aW9uSWQnLFxuICAgICdncm91cElkJyxcbiAgICAncHJvamVjdElkJyxcbiAgICAnaW5pdGlhdGl2ZUlkJyxcbiAgXSBhcyBjb25zdDtcbiAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb25zdCB3aGVyZUtleSA9IGtleSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+O1xuICAgIGNvbnN0IHZhbHVlID0gcmVhZFdoZXJlVmFsdWUod2hlcmUsIHdoZXJlS2V5KTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgc2NvcGVbd2hlcmVLZXldID0gdmFsdWUgYXMgRXh0cmFjdDxcbiAgICAgICAgTm9uTnVsbGFibGU8V2hlcmVbdHlwZW9mIHdoZXJlS2V5XT4sXG4gICAgICAgIHN0cmluZ1xuICAgICAgPjtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gc2NvcGU7XG59O1xuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBGaWx0ZXJzPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBFbnRpdHlJZCBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbj4oXG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPFdoZXJlLCBFbnRpdHlJZD5bXSxcbik6IHJlYWRvbmx5IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlLCBFbnRpdHlJZD5bXSB7XG4gIHJldHVybiBmaWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gKGZpbHRlci53aGVyZUtleSA/PyBmaWx0ZXIuaWQpIGFzIEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz47XG4gICAgY29uc3QgYmFzZSA9IHtcbiAgICAgIGlkOiBmaWx0ZXIuaWQsXG4gICAgICBsYWJlbDogZmlsdGVyLmxhYmVsLFxuICAgICAgcGxhY2VtZW50OiBmaWx0ZXIucGxhY2VtZW50LFxuICAgICAgd2hlcmVLZXk6IGZpbHRlci53aGVyZUtleSxcbiAgICAgIHBhdGg6IGZpbHRlci5wYXRoLFxuICAgICAgdG9HcmFwaFFMOiAodmFsdWU6IHVua25vd24pID0+IHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkV2hlcmUoa2V5LCB2YWx1ZSwgZmlsdGVyLnBhdGgpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgc3dpdGNoIChmaWx0ZXIua2luZCkge1xuICAgICAgY2FzZSAndGV4dENvbnRhaW5zJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICd0ZXh0JyxcbiAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiBmaWx0ZXIucGxhY2Vob2xkZXJMYWJlbCxcbiAgICAgICAgICBwbGFjZWhvbGRlclRleHQ6IGZpbHRlci5wbGFjZWhvbGRlclRleHQsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdkYXRldGltZSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnZGF0ZXRpbWUnLFxuICAgICAgICAgIG1vZGU6IGZpbHRlci5tb2RlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyTGFiZWw6IGZpbHRlci5wbGFjZWhvbGRlckxhYmVsLFxuICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dDogZmlsdGVyLnBsYWNlaG9sZGVyVGV4dCxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnbnVtYmVyJyxcbiAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiBmaWx0ZXIucGxhY2Vob2xkZXJMYWJlbCxcbiAgICAgICAgICBwbGFjZWhvbGRlclRleHQ6IGZpbHRlci5wbGFjZWhvbGRlclRleHQsXG4gICAgICAgICAgaW5wdXRNb2RlOiBmaWx0ZXIuaW5wdXRNb2RlLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICdlbnVtJyxcbiAgICAgICAgICBvcHRpb25zOiBmaWx0ZXIub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgbGFiZWw6IG9wdGlvbi5sYWJlbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICdib29sZWFuJyxcbiAgICAgICAgICB0cnVlTGFiZWw6IGZpbHRlci50cnVlTGFiZWwsXG4gICAgICAgICAgZmFsc2VMYWJlbDogZmlsdGVyLmZhbHNlTGFiZWwsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdlbnRpdHlJZCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnZW50aXR5SWQnLFxuICAgICAgICAgIGVudGl0eTogZmlsdGVyLmVudGl0eSxcbiAgICAgICAgICBwaWNrZXJTY29wZTogKHdoZXJlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRQaWNrZXJTY29wZSh3aGVyZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ2VudGl0eUlkTGlzdCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnZW50aXR5SWRMaXN0JyxcbiAgICAgICAgICBlbnRpdHk6IGZpbHRlci5lbnRpdHksXG4gICAgICAgICAgcGlja2VyU2NvcGU6ICh3aGVyZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGJ1aWxkUGlja2VyU2NvcGUod2hlcmUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdG9HcmFwaFFMOiAodmFsdWU6IHJlYWRvbmx5IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRXaGVyZShrZXksIHZhbHVlLCBmaWx0ZXIucGF0aCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmcm9tR3JhcGhRTDogKHdoZXJlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByYXcgPSByZWFkV2hlcmVWYWx1ZSh3aGVyZSwga2V5LCBmaWx0ZXIucGF0aCk7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHJhd1xuICAgICAgICAgICAgICAubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZW50cnkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS50cmltKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICE9PSAnJztcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ3N0cmluZ0xpc3QnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAga2luZDogJ3N0cmluZ0xpc3QnLFxuICAgICAgICAgIHBsYWNlaG9sZGVyTGFiZWw6IGZpbHRlci5wbGFjZWhvbGRlckxhYmVsLFxuICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dDogZmlsdGVyLnBsYWNlaG9sZGVyVGV4dCxcbiAgICAgICAgICB0b0dyYXBoUUw6ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gdmFsdWVcbiAgICAgICAgICAgICAgLnNwbGl0KC9bXFxuLF0rL3UpXG4gICAgICAgICAgICAgIC5tYXAoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LnRyaW0oKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZW50cnkgIT09ICcnO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBidWlsZFdoZXJlKGtleSwgdmFsdWVzLCBmaWx0ZXIucGF0aCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmcm9tR3JhcGhRTDogKHdoZXJlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByYXcgPSByZWFkV2hlcmVWYWx1ZSh3aGVyZSwga2V5LCBmaWx0ZXIucGF0aCk7XG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmF3KSkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHJhd1xuICAgICAgICAgICAgICAubWFwKChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZW50cnkgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS50cmltKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5ICE9PSAnJztcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXMuam9pbignLCAnKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICd0ZXh0JyxcbiAgICAgICAgfTtcbiAgICB9XG4gIH0pO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/filters/schema.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAEhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACrE,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC;IACpD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC;AAgGF,wBAAgB,4BAA4B,CAC1C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAErC,OAAO,EAAE,SAAS,oBAAoB,CAAC,KAAK,CAAC,EAAE,GAC9C,sBAAsB,CAAC,KAAK,CAAC,CAsF/B"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/filters/schema.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAEhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACrE,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC;IACpD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC;AAgHF,wBAAgB,4BAA4B,CAC1C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAErC,OAAO,EAAE,SAAS,oBAAoB,CAAC,KAAK,CAAC,EAAE,GAC9C,sBAAsB,CAAC,KAAK,CAAC,CAqG/B"}
@@ -1,7 +1,9 @@
1
- import { buildEqFilters } from '@plumile/filter-query/mutate.js';
2
1
  import { booleanField, defineSchema, enumField, numberField, stringField, } from '@plumile/filter-query/schema.js';
3
2
  import { readWhereValue } from './where.js';
4
3
  const DEFAULT_OPERATORS = ['eq'];
4
+ const assertNever = (value) => {
5
+ throw new Error(`Unsupported backoffice filter: ${String(value)}`);
6
+ };
5
7
  const toGraphQLFilterPatch = (filter, value) => {
6
8
  switch (filter.kind) {
7
9
  case 'boolean':
@@ -16,9 +18,18 @@ const toGraphQLFilterPatch = (filter, value) => {
16
18
  return filter.toGraphQL(value);
17
19
  case 'datetime':
18
20
  case 'entityId':
21
+ case 'text':
22
+ if (typeof value !== 'string') {
23
+ return {};
24
+ }
25
+ return filter.toGraphQL(value);
26
+ case 'entityIdList':
27
+ if (!Array.isArray(value)) {
28
+ return {};
29
+ }
30
+ return filter.toGraphQL(value);
19
31
  case 'enum':
20
32
  case 'stringList':
21
- case 'text':
22
33
  if (typeof value !== 'string') {
23
34
  return {};
24
35
  }
@@ -61,6 +72,9 @@ function isEmptyFilterValue(value) {
61
72
  if (typeof value === 'string') {
62
73
  return value.trim() === '';
63
74
  }
75
+ if (Array.isArray(value)) {
76
+ return value.length === 0;
77
+ }
64
78
  return false;
65
79
  }
66
80
  export function createBackofficeFilterSchema(filters) {
@@ -77,18 +91,28 @@ export function createBackofficeFilterSchema(filters) {
77
91
  ];
78
92
  case 'number':
79
93
  return [filter.id, numberField(DEFAULT_OPERATORS)];
80
- case 'datetime':
81
94
  case 'entityId':
95
+ case 'datetime':
82
96
  case 'stringList':
83
97
  case 'text':
84
- default:
85
98
  return [filter.id, stringField(DEFAULT_OPERATORS)];
99
+ case 'entityIdList':
100
+ return [filter.id, stringField(['in'])];
101
+ default:
102
+ return assertNever(filter);
86
103
  }
87
104
  })));
88
105
  function toWhere(parsed) {
89
106
  let where = null;
90
107
  for (const filter of filters) {
91
- const value = getFilterValue(parsed, filter.id);
108
+ const parsedById = parsed;
109
+ let value;
110
+ if (filter.kind === 'entityIdList') {
111
+ value = parsedById[filter.id]?.in;
112
+ }
113
+ else {
114
+ value = getFilterValue(parsed, filter.id);
115
+ }
92
116
  if (!isEmptyFilterValue(value)) {
93
117
  const partial = toGraphQLFilterPatch(filter, value);
94
118
  if (where == null) {
@@ -106,26 +130,36 @@ export function createBackofficeFilterSchema(filters) {
106
130
  }
107
131
  function fromWhere(where) {
108
132
  if (where == null) {
109
- return buildEqFilters({});
133
+ return {};
110
134
  }
111
- const eqInput = {};
135
+ const filterValues = {};
112
136
  for (const filter of filters) {
113
137
  if (filter.fromGraphQL != null) {
114
138
  const value = filter.fromGraphQL(where);
115
139
  if (!isEmptyFilterValue(value)) {
116
- eqInput[filter.id] = value;
140
+ if (filter.kind === 'entityIdList') {
141
+ filterValues[filter.id] = { in: value };
142
+ }
143
+ else {
144
+ filterValues[filter.id] = { eq: value };
145
+ }
117
146
  }
118
147
  }
119
148
  else {
120
149
  const fallbackKey = filter.whereKey ?? filter.id;
121
150
  const raw = readWhereValue(where, fallbackKey, filter.path);
122
151
  if (!isEmptyFilterValue(raw)) {
123
- eqInput[filter.id] = raw;
152
+ if (filter.kind === 'entityIdList') {
153
+ filterValues[filter.id] = { in: raw };
154
+ }
155
+ else {
156
+ filterValues[filter.id] = { eq: raw };
157
+ }
124
158
  }
125
159
  }
126
160
  }
127
- return buildEqFilters(eqInput);
161
+ return filterValues;
128
162
  }
129
163
  return { schema, toWhere, fromWhere };
130
164
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZpbHRlcnMvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWdCLE1BQU0saUNBQWlDLENBQUM7QUFDL0UsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFDWCxXQUFXLEdBQ1osTUFBTSxpQ0FBaUMsQ0FBQztBQUl6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBUTVDLE1BQU0saUJBQWlCLEdBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7QUFJbEQsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixNQUFtQyxFQUNuQyxLQUFrQixFQUNGLEVBQUU7SUFDbEIsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsS0FBSyxTQUFTO1lBQ1osSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLEtBQUssUUFBUTtZQUNYLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssWUFBWSxDQUFDO1FBQ2xCLEtBQUssTUFBTTtZQUNULElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FB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QUFJLElBQUksRUFBRSxDQUFDO2dCQUMvQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFvQixDQUFDO2dCQUM1QyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFrQixDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FDbkIsT0FBNEMsQ0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRFcUZpbHRlcnMsIHR5cGUgRXFJbnB1dCB9IGZyb20gJ0BwbHVtaWxlL2ZpbHRlci1xdWVyeS9tdXRhdGUuanMnO1xuaW1wb3J0IHtcbiAgYm9vbGVhbkZpZWxkLFxuICBkZWZpbmVTY2hlbWEsXG4gIGVudW1GaWVsZCxcbiAgbnVtYmVyRmllbGQsXG4gIHN0cmluZ0ZpZWxkLFxufSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvc2NoZW1hLmpzJztcbmltcG9ydCB7IHR5cGUgSW5mZXJGaWx0ZXJzLCB0eXBlIFNjaGVtYSB9IGZyb20gJ0BwbHVtaWxlL2ZpbHRlci1xdWVyeS90eXBlcy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQmFja29mZmljZUZpbHRlclNwZWMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyByZWFkV2hlcmVWYWx1ZSB9IGZyb20gJy4vd2hlcmUuanMnO1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlRmlsdGVyU2NoZW1hPFdoZXJlLCBTIGV4dGVuZHMgU2NoZW1hID0gU2NoZW1hPiA9IHtcbiAgc2NoZW1hOiBTO1xuICB0b1doZXJlOiAoZmlsdGVyczogSW5mZXJGaWx0ZXJzPFM+KSA9PiBXaGVyZSB8IG51bGw7XG4gIGZyb21XaGVyZTogKHdoZXJlOiBXaGVyZSB8IG51bGwpID0+IEluZmVyRmlsdGVyczxTPjtcbn07XG5cbmNvbnN0IERFRkFVTFRfT1BFUkFUT1JTOiByZWFkb25seSBbJ2VxJ10gPSBbJ2VxJ107XG5cbnR5cGUgRmlsdGVyVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5jb25zdCB0b0dyYXBoUUxGaWx0ZXJQYXRjaCA9IDxXaGVyZT4oXG4gIGZpbHRlcjogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+LFxuICB2YWx1ZTogRmlsdGVyVmFsdWUsXG4pOiBQYXJ0aWFsPFdoZXJlPiA9PiB7XG4gIHN3aXRjaCAoZmlsdGVyLmtpbmQpIHtcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsdGVyLnRvR3JhcGhRTCh2YWx1ZSk7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXIudG9HcmFwaFFMKHZhbHVlKTtcbiAgICBjYXNlICdkYXRldGltZSc6XG4gICAgY2FzZSAnZW50aXR5SWQnOlxuICAgIGNhc2UgJ2VudW0nOlxuICAgIGNhc2UgJ3N0cmluZ0xpc3QnOlxuICAgIGNhc2UgJ3RleHQnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlci50b0dyYXBoUUwodmFsdWUpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge307XG4gIH1cbn07XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gbWVyZ2VXaGVyZShcbiAgYmFzZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHBhdGNoOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgY29uc3QgbmV4dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLmJhc2UgfTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGF0Y2gpKSB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgICB0eXBlb2YgbmV4dFtrZXldID09PSAnb2JqZWN0JyAmJlxuICAgICAgbmV4dFtrZXldICE9IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG5leHRba2V5XSlcbiAgICApIHtcbiAgICAgIG5leHRba2V5XSA9IG1lcmdlV2hlcmUoXG4gICAgICAgIG5leHRba2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5leHQ7XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyVmFsdWU8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGZpbHRlcnM6IEluZmVyRmlsdGVyczxTPixcbiAgaWQ6IHN0cmluZyxcbik6IEZpbHRlclZhbHVlIHtcbiAgY29uc3QgZW50cnkgPSBmaWx0ZXJzW2lkIGFzIGtleW9mIFNdO1xuICBpZiAoZW50cnkgPT0gbnVsbCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gJ29iamVjdCcgJiYgJ2VxJyBpbiBlbnRyeSkge1xuICAgIHJldHVybiAoZW50cnkgYXMgeyBlcT86IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfSkuZXE7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBpc0VtcHR5RmlsdGVyVmFsdWUodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZS50cmltKCkgPT09ICcnO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFja29mZmljZUZpbHRlclNjaGVtYTxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4oXG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPltdLFxuKTogQmFja29mZmljZUZpbHRlclNjaGVtYTxXaGVyZT4ge1xuICBjb25zdCBzY2hlbWEgPSBkZWZpbmVTY2hlbWEoXG4gICAgT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgZmlsdGVycy5tYXAoKGZpbHRlcikgPT4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci5raW5kKSB7XG4gICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICByZXR1cm4gW2ZpbHRlci5pZCwgYm9vbGVhbkZpZWxkKERFRkFVTFRfT1BFUkFUT1JTKV07XG4gICAgICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBmaWx0ZXIuaWQsXG4gICAgICAgICAgICAgIGVudW1GaWVsZChcbiAgICAgICAgICAgICAgICBmaWx0ZXIub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBERUZBVUxUX09QRVJBVE9SUyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBudW1iZXJGaWVsZChERUZBVUxUX09QRVJBVE9SUyldO1xuICAgICAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcbiAgICAgICAgICBjYXNlICdlbnRpdHlJZCc6XG4gICAgICAgICAgY2FzZSAnc3RyaW5nTGlzdCc6XG4gICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBzdHJpbmdGaWVsZChERUZBVUxUX09QRVJBVE9SUyldO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApLFxuICApO1xuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgZnVuY3Rpb24gdG9XaGVyZShwYXJzZWQ6IEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPik6IFdoZXJlIHwgbnVsbCB7XG4gICAgbGV0IHdoZXJlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xuICAgICAgY29uc3QgdmFsdWUgPSBnZXRGaWx0ZXJWYWx1ZShwYXJzZWQsIGZpbHRlci5pZCk7XG4gICAgICBpZiAoIWlzRW1wdHlGaWx0ZXJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgcGFydGlhbCA9IHRvR3JhcGhRTEZpbHRlclBhdGNoKGZpbHRlciwgdmFsdWUpO1xuICAgICAgICBpZiAod2hlcmUgPT0gbnVsbCkge1xuICAgICAgICAgIHdoZXJlID0geyAuLi5wYXJ0aWFsIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2hlcmUgPSBtZXJnZVdoZXJlKHdoZXJlLCBwYXJ0aWFsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3aGVyZSA9PSBudWxsIHx8IE9iamVjdC5rZXlzKHdoZXJlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB3aGVyZSBhcyBXaGVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgZnVuY3Rpb24gZnJvbVdoZXJlKHdoZXJlOiBXaGVyZSB8IG51bGwpOiBJbmZlckZpbHRlcnM8dHlwZW9mIHNjaGVtYT4ge1xuICAgIGlmICh3aGVyZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gYnVpbGRFcUZpbHRlcnMoe30pO1xuICAgIH1cblxuICAgIGNvbnN0IGVxSW5wdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ+ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBmaWx0ZXJzKSB7XG4gICAgICBpZiAoZmlsdGVyLmZyb21HcmFwaFFMICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXIuZnJvbUdyYXBoUUwod2hlcmUpO1xuICAgICAgICBpZiAoIWlzRW1wdHlGaWx0ZXJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgICBlcUlucHV0W2ZpbHRlci5pZF0gPSB2YWx1ZSBhcyBGaWx0ZXJWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmFsbGJhY2tLZXkgPSBmaWx0ZXIud2hlcmVLZXkgPz8gZmlsdGVyLmlkO1xuICAgICAgICBjb25zdCByYXcgPSByZWFkV2hlcmVWYWx1ZSh3aGVyZSwgZmFsbGJhY2tLZXksIGZpbHRlci5wYXRoKTtcbiAgICAgICAgaWYgKCFpc0VtcHR5RmlsdGVyVmFsdWUocmF3KSkge1xuICAgICAgICAgIGVxSW5wdXRbZmlsdGVyLmlkXSA9IHJhdyBhcyBGaWx0ZXJWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBidWlsZEVxRmlsdGVyczx0eXBlb2Ygc2NoZW1hPihcbiAgICAgIGVxSW5wdXQgYXMgdW5rbm93biBhcyBFcUlucHV0PHR5cGVvZiBzY2hlbWE+LFxuICAgICk7XG4gIH1cblxuICByZXR1cm4geyBzY2hlbWEsIHRvV2hlcmUsIGZyb21XaGVyZSB9O1xufVxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZpbHRlcnMvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUNaLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxHQUNaLE1BQU0saUNBQWlDLENBQUM7QUFJekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVE1QyxNQUFNLGlCQUFpQixHQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBSWxELE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBWSxFQUFTLEVBQUU7SUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyRSxDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQzNCLE1BQW1DLEVBQ25DLEtBQWtCLEVBQ0YsRUFBRTtJQUNsQixRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixLQUFLLFNBQVM7WUFDWixJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsS0FBSyxRQUFRO1lBQ1gsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssTUFBTTtZQUNULElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNE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Y0FBYyxFQUFFLENBQUM7d0JBQ25DLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQzFDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO29CQUMxQyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM3QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7d0JBQ25DLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQ3hDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDO29CQUN4QyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sWUFBMkMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5GaWVsZCxcbiAgZGVmaW5lU2NoZW1hLFxuICBlbnVtRmllbGQsXG4gIG51bWJlckZpZWxkLFxuICBzdHJpbmdGaWVsZCxcbn0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3NjaGVtYS5qcyc7XG5pbXBvcnQgeyB0eXBlIEluZmVyRmlsdGVycywgdHlwZSBTY2hlbWEgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvdHlwZXMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEJhY2tvZmZpY2VGaWx0ZXJTcGVjIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHsgcmVhZFdoZXJlVmFsdWUgfSBmcm9tICcuL3doZXJlLmpzJztcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZUZpbHRlclNjaGVtYTxXaGVyZSwgUyBleHRlbmRzIFNjaGVtYSA9IFNjaGVtYT4gPSB7XG4gIHNjaGVtYTogUztcbiAgdG9XaGVyZTogKGZpbHRlcnM6IEluZmVyRmlsdGVyczxTPikgPT4gV2hlcmUgfCBudWxsO1xuICBmcm9tV2hlcmU6ICh3aGVyZTogV2hlcmUgfCBudWxsKSA9PiBJbmZlckZpbHRlcnM8Uz47XG59O1xuXG5jb25zdCBERUZBVUxUX09QRVJBVE9SUzogcmVhZG9ubHkgWydlcSddID0gWydlcSddO1xuXG50eXBlIEZpbHRlclZhbHVlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG5jb25zdCBhc3NlcnROZXZlciA9ICh2YWx1ZTogbmV2ZXIpOiBuZXZlciA9PiB7XG4gIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgYmFja29mZmljZSBmaWx0ZXI6ICR7U3RyaW5nKHZhbHVlKX1gKTtcbn07XG5cbmNvbnN0IHRvR3JhcGhRTEZpbHRlclBhdGNoID0gPFdoZXJlPihcbiAgZmlsdGVyOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4sXG4gIHZhbHVlOiBGaWx0ZXJWYWx1ZSxcbik6IFBhcnRpYWw8V2hlcmU+ID0+IHtcbiAgc3dpdGNoIChmaWx0ZXIua2luZCkge1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXIudG9HcmFwaFFMKHZhbHVlKTtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlci50b0dyYXBoUUwodmFsdWUpO1xuICAgIGNhc2UgJ2RhdGV0aW1lJzpcbiAgICBjYXNlICdlbnRpdHlJZCc6XG4gICAgY2FzZSAndGV4dCc6XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsdGVyLnRvR3JhcGhRTCh2YWx1ZSk7XG4gICAgY2FzZSAnZW50aXR5SWRMaXN0JzpcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlci50b0dyYXBoUUwodmFsdWUpO1xuICAgIGNhc2UgJ2VudW0nOlxuICAgIGNhc2UgJ3N0cmluZ0xpc3QnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlci50b0dyYXBoUUwodmFsdWUpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge307XG4gIH1cbn07XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gbWVyZ2VXaGVyZShcbiAgYmFzZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHBhdGNoOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgY29uc3QgbmV4dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLmJhc2UgfTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGF0Y2gpKSB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgICB0eXBlb2YgbmV4dFtrZXldID09PSAnb2JqZWN0JyAmJlxuICAgICAgbmV4dFtrZXldICE9IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG5leHRba2V5XSlcbiAgICApIHtcbiAgICAgIG5leHRba2V5XSA9IG1lcmdlV2hlcmUoXG4gICAgICAgIG5leHRba2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5leHQ7XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyVmFsdWU8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGZpbHRlcnM6IEluZmVyRmlsdGVyczxTPixcbiAgaWQ6IHN0cmluZyxcbik6IEZpbHRlclZhbHVlIHtcbiAgY29uc3QgZW50cnkgPSBmaWx0ZXJzW2lkIGFzIGtleW9mIFNdO1xuICBpZiAoZW50cnkgPT0gbnVsbCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gJ29iamVjdCcgJiYgJ2VxJyBpbiBlbnRyeSkge1xuICAgIHJldHVybiAoZW50cnkgYXMgeyBlcT86IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfSkuZXE7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBpc0VtcHR5RmlsdGVyVmFsdWUodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZS50cmltKCkgPT09ICcnO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPT09IDA7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCYWNrb2ZmaWNlRmlsdGVyU2NoZW1hPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+W10sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU2NoZW1hPFdoZXJlPiB7XG4gIGNvbnN0IHNjaGVtYSA9IGRlZmluZVNjaGVtYShcbiAgICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBmaWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZmlsdGVyLmtpbmQpIHtcbiAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBib29sZWFuRmllbGQoREVGQVVMVF9PUEVSQVRPUlMpXTtcbiAgICAgICAgICBjYXNlICdlbnVtJzpcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgIGZpbHRlci5pZCxcbiAgICAgICAgICAgICAgZW51bUZpZWxkKFxuICAgICAgICAgICAgICAgIGZpbHRlci5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIERFRkFVTFRfT1BFUkFUT1JTLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgcmV0dXJuIFtmaWx0ZXIuaWQsIG51bWJlckZpZWxkKERFRkFVTFRfT1BFUkFUT1JTKV07XG4gICAgICAgICAgY2FzZSAnZW50aXR5SWQnOlxuICAgICAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcbiAgICAgICAgICBjYXNlICdzdHJpbmdMaXN0JzpcbiAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBzdHJpbmdGaWVsZChERUZBVUxUX09QRVJBVE9SUyldO1xuICAgICAgICAgIGNhc2UgJ2VudGl0eUlkTGlzdCc6XG4gICAgICAgICAgICByZXR1cm4gW2ZpbHRlci5pZCwgc3RyaW5nRmllbGQoWydpbiddKV07XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBhc3NlcnROZXZlcihmaWx0ZXIpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApLFxuICApO1xuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgZnVuY3Rpb24gdG9XaGVyZShwYXJzZWQ6IEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPik6IFdoZXJlIHwgbnVsbCB7XG4gICAgbGV0IHdoZXJlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xuICAgICAgY29uc3QgcGFyc2VkQnlJZCA9IHBhcnNlZCBhcyBSZWNvcmQ8c3RyaW5nLCB7IGluPzogcmVhZG9ubHkgc3RyaW5nW10gfT47XG4gICAgICBsZXQgdmFsdWU6IEZpbHRlclZhbHVlO1xuICAgICAgaWYgKGZpbHRlci5raW5kID09PSAnZW50aXR5SWRMaXN0Jykge1xuICAgICAgICB2YWx1ZSA9IHBhcnNlZEJ5SWRbZmlsdGVyLmlkXT8uaW47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IGdldEZpbHRlclZhbHVlKHBhcnNlZCwgZmlsdGVyLmlkKTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNFbXB0eUZpbHRlclZhbHVlKHZhbHVlKSkge1xuICAgICAgICBjb25zdCBwYXJ0aWFsID0gdG9HcmFwaFFMRmlsdGVyUGF0Y2goZmlsdGVyLCB2YWx1ZSk7XG4gICAgICAgIGlmICh3aGVyZSA9PSBudWxsKSB7XG4gICAgICAgICAgd2hlcmUgPSB7IC4uLnBhcnRpYWwgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aGVyZSA9IG1lcmdlV2hlcmUod2hlcmUsIHBhcnRpYWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdoZXJlID09IG51bGwgfHwgT2JqZWN0LmtleXMod2hlcmUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdoZXJlIGFzIFdoZXJlO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBmdW5jdGlvbiBmcm9tV2hlcmUod2hlcmU6IFdoZXJlIHwgbnVsbCk6IEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPiB7XG4gICAgaWYgKHdoZXJlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB7fSBhcyBJbmZlckZpbHRlcnM8dHlwZW9mIHNjaGVtYT47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xuICAgICAgaWYgKGZpbHRlci5mcm9tR3JhcGhRTCAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyLmZyb21HcmFwaFFMKHdoZXJlKTtcbiAgICAgICAgaWYgKCFpc0VtcHR5RmlsdGVyVmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgaWYgKGZpbHRlci5raW5kID09PSAnZW50aXR5SWRMaXN0Jykge1xuICAgICAgICAgICAgZmlsdGVyVmFsdWVzW2ZpbHRlci5pZF0gPSB7IGluOiB2YWx1ZSB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZXNbZmlsdGVyLmlkXSA9IHsgZXE6IHZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmYWxsYmFja0tleSA9IGZpbHRlci53aGVyZUtleSA/PyBmaWx0ZXIuaWQ7XG4gICAgICAgIGNvbnN0IHJhdyA9IHJlYWRXaGVyZVZhbHVlKHdoZXJlLCBmYWxsYmFja0tleSwgZmlsdGVyLnBhdGgpO1xuICAgICAgICBpZiAoIWlzRW1wdHlGaWx0ZXJWYWx1ZShyYXcpKSB7XG4gICAgICAgICAgaWYgKGZpbHRlci5raW5kID09PSAnZW50aXR5SWRMaXN0Jykge1xuICAgICAgICAgICAgZmlsdGVyVmFsdWVzW2ZpbHRlci5pZF0gPSB7IGluOiByYXcgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyVmFsdWVzW2ZpbHRlci5pZF0gPSB7IGVxOiByYXcgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyVmFsdWVzIGFzIEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPjtcbiAgfVxuXG4gIHJldHVybiB7IHNjaGVtYSwgdG9XaGVyZSwgZnJvbVdoZXJlIH07XG59XG4iXX0=
@@ -665,7 +665,7 @@ type BackofficeFilterBase<Where, Value> = {
665
665
  path?: readonly string[];
666
666
  pickerScope?: BackofficePickerScope<Where> | ((where: Where | null) => BackofficePickerScope<Where>);
667
667
  };
668
- export type BackofficeFilterSpec<Where> = (BackofficeFilterBase<Where, string> & {
668
+ export type BackofficeFilterSpec<Where, EntityId extends string = string> = (BackofficeFilterBase<Where, string> & {
669
669
  kind: 'text';
670
670
  placeholderLabel?: I18nLabel;
671
671
  placeholderText?: I18nLabel;
@@ -691,13 +691,16 @@ export type BackofficeFilterSpec<Where> = (BackofficeFilterBase<Where, string> &
691
691
  falseLabel?: I18nLabel;
692
692
  }) | (BackofficeFilterBase<Where, string> & {
693
693
  kind: 'entityId';
694
- entity: string;
694
+ entity: EntityId;
695
+ }) | (BackofficeFilterBase<Where, readonly string[]> & {
696
+ kind: 'entityIdList';
697
+ entity: EntityId;
695
698
  }) | (BackofficeFilterBase<Where, string> & {
696
699
  kind: 'stringList';
697
700
  placeholderLabel?: I18nLabel;
698
701
  placeholderText?: I18nLabel;
699
702
  });
700
- export type BackofficeConnectionListConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData = unknown, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any> = {
703
+ export type BackofficeConnectionListConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData = unknown, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = {
701
704
  kind: 'connection';
702
705
  title: I18nLabel;
703
706
  query: GraphQLTaggedNode;
@@ -710,12 +713,12 @@ export type BackofficeConnectionListConfig<TOperation extends OperationType, Row
710
713
  columns: readonly BackofficeColumnSpec<RowView>[];
711
714
  rowFlags?: readonly BackofficeRowFlagSpec<RowView>[];
712
715
  sorts: readonly BackofficeSortSpec<TSort>[];
713
- filters: readonly BackofficeFilterSpec<TWhere>[];
716
+ filters: readonly BackofficeFilterSpec<TWhere, TEntityId>[];
714
717
  responsive?: BackofficeListResponsiveProfile<RowView>;
715
718
  ui?: BackofficeListUiConfig;
716
719
  defaultState?: BackofficeListState<TWhere, TSort>;
717
720
  };
718
- export type BackofficeEntityListConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData = unknown, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any> = BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation>;
721
+ export type BackofficeEntityListConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData = unknown, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>;
719
722
  export type BackofficeBadgeItem = {
720
723
  id: string;
721
724
  label: string | I18nLabel;
@@ -1186,11 +1189,11 @@ export type BackofficeToolEntityConfig = {
1186
1189
  picker?: never;
1187
1190
  routes?: never;
1188
1191
  };
1189
- export type BackofficeListFacetConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any> = {
1192
+ export type BackofficeListFacetConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>, TCountOperation extends OperationType = any, TEntityId extends string = string> = {
1190
1193
  kind: 'list';
1191
1194
  id: string;
1192
1195
  label: I18nLabel;
1193
- list: BackofficeEntityListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation>;
1196
+ list: BackofficeEntityListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>;
1194
1197
  listActions?: readonly BackofficeListActionSpec[];
1195
1198
  };
1196
1199
  export type BackofficePickerFacetConfig<TOperation extends OperationType, RowRef, RowView, PickerFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, ValueQueryData = BackofficeAliasedPickerValueResponse<string, RowRef>> = {
@@ -1282,6 +1285,9 @@ export type BackofficeListDetailFacetLoaderMap = {
1282
1285
  detailLayout: BackofficeDetailLayoutFacetLoader;
1283
1286
  detailPage: BackofficeDetailPageFacetLoader;
1284
1287
  };
1288
+ export type BackofficeListDetailPickerFacetLoaderMap = BackofficeListDetailFacetLoaderMap & {
1289
+ picker: BackofficePickerFacetLoader;
1290
+ };
1285
1291
  export type BackofficeToolFacetLoaderMap = {
1286
1292
  tool: BackofficeToolFacetLoader;
1287
1293
  };