@plumile/backoffice-core 0.1.103 → 0.1.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,88 @@
1
- import type { BackofficeDetailLayoutFacetConfig, BackofficeDetailPageFacetConfig, BackofficeEntityManifestItem, BackofficeListDetailFacetLoaderMap, BackofficeListFacetConfig, BackofficePickerFacetConfig, BackofficeToolFacetConfig, BackofficeToolFacetLoaderMap, BackofficeToolEntityConfig } from './types.js';
1
+ import type { OperationType } from 'relay-runtime';
2
+ import type { BackofficeConnectionListConfig, BackofficeDetailLayoutFacetConfig, BackofficeDetailPageFacetConfig, BackofficeEntityListConfig, BackofficeEntityManifestItem, BackofficeEntityPickerConfig, BackofficeFilterPlacement, BackofficeFilterSpec, BackofficeListDetailFacetLoaderMap, BackofficeListFacetConfig, BackofficeListQueryInput, BackofficeOperationSort, BackofficeOperationWhere, BackofficePickerFacetConfig, BackofficePickerQueryInput, BackofficeRecordListConfig, BackofficeRelationFilterSpec, BackofficeSortSpec, BackofficeToolEntityConfig, BackofficeToolFacetConfig, BackofficeToolFacetLoaderMap, I18nLabel } from './types.js';
3
+ type FieldKeyOfType<Where, Value> = Extract<{
4
+ [Key in keyof Where]: NonNullable<Where[Key]> extends Value ? Key : never;
5
+ }[keyof Where], string>;
6
+ type StringFieldKey<Where> = FieldKeyOfType<Where, string>;
7
+ type BooleanFieldKey<Where> = FieldKeyOfType<Where, boolean>;
8
+ type NumberFieldKey<Where> = FieldKeyOfType<Where, number>;
9
+ type StandardListVariables<TOperation extends OperationType, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>> = {
10
+ where?: TWhere | null | undefined;
11
+ sort?: TSort | null | undefined;
12
+ count: number;
13
+ cursor?: string | null | undefined;
14
+ };
15
+ type StandardPickerVariables<TOperation extends OperationType, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>> = {
16
+ where?: TWhere | null | undefined;
17
+ count: number;
18
+ cursor?: string | null | undefined;
19
+ };
20
+ type StrictStandardListOperation<TOperation extends OperationType> = TOperation['variables'] extends StandardListVariables<TOperation> ? TOperation : never;
21
+ type StrictStandardPickerOperation<TOperation extends OperationType> = TOperation['variables'] extends StandardPickerVariables<TOperation> ? TOperation : never;
22
+ export type DefineBackofficeConnectionListInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>> = Omit<BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>, 'kind' | 'buildQueryVariables'> & {
23
+ buildQueryVariables?: (input: BackofficeListQueryInput<TOperation, TWhere, TSort>) => TOperation['variables'];
24
+ };
25
+ export type DefineBackofficeRecordListInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>> = Omit<BackofficeRecordListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>, 'buildQueryVariables'> & {
26
+ buildQueryVariables?: (input: BackofficeListQueryInput<TOperation, TWhere, TSort>) => TOperation['variables'];
27
+ };
28
+ export type DefineBackofficeListFacetInput<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>> = Omit<BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>, 'list'> & {
29
+ list: BackofficeEntityListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>;
30
+ };
31
+ export type DefineBackofficePickerInput<TOperation extends OperationType, RowRef, RowView, PickerFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>> = Omit<BackofficeEntityPickerConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>, 'buildQueryVariables'> & {
32
+ buildQueryVariables?: (input: BackofficePickerQueryInput<TOperation, TWhere>) => TOperation['variables'];
33
+ };
34
+ export declare const defineBackofficeConnectionList: <TOperation extends OperationType>() => <RowRef, RowView, ListFragmentData>(config: DefineBackofficeConnectionListInput<StrictStandardListOperation<TOperation>, RowRef, RowView, ListFragmentData>) => BackofficeConnectionListConfig<StrictStandardListOperation<TOperation>, RowRef, RowView, ListFragmentData>;
35
+ export declare const defineBackofficeCustomConnectionList: <TOperation extends OperationType, TWhere extends Record<string, unknown>, TSort extends string = BackofficeOperationSort<TOperation>>() => <RowRef, RowView, ListFragmentData>(config: DefineBackofficeConnectionListInput<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort> & {
36
+ buildQueryVariables: (input: BackofficeListQueryInput<TOperation, TWhere, TSort>) => TOperation["variables"];
37
+ }) => BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>;
38
+ export declare const defineBackofficeRecordList: <TOperation extends OperationType>() => <RowRef, RowView, ListFragmentData>(config: DefineBackofficeRecordListInput<StrictStandardListOperation<TOperation>, RowRef, RowView, ListFragmentData>) => BackofficeRecordListConfig<StrictStandardListOperation<TOperation>, RowRef, RowView, ListFragmentData>;
39
+ export declare const defineBackofficeCustomRecordList: <TOperation extends OperationType, TWhere extends Record<string, unknown>, TSort extends string = BackofficeOperationSort<TOperation>>() => <RowRef, RowView, ListFragmentData>(config: DefineBackofficeRecordListInput<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort> & {
40
+ buildQueryVariables: (input: BackofficeListQueryInput<TOperation, TWhere, TSort>) => TOperation["variables"];
41
+ }) => BackofficeRecordListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>;
42
+ export declare const defineBackofficeListFacet: <TOperation extends OperationType>() => <RowRef, RowView, ListFragmentData>(config: DefineBackofficeListFacetInput<StrictStandardListOperation<TOperation>, RowRef, RowView, ListFragmentData>) => BackofficeListFacetConfig<StrictStandardListOperation<TOperation>, RowRef, RowView, ListFragmentData>;
43
+ export declare const defineBackofficeCustomListFacet: <TOperation extends OperationType, TWhere extends Record<string, unknown>, TSort extends string = BackofficeOperationSort<TOperation>>() => <RowRef, RowView, ListFragmentData>(config: DefineBackofficeListFacetInput<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>) => BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>;
44
+ export declare const defineBackofficePicker: <TOperation extends OperationType>() => <RowRef, RowView, PickerFragmentData>(config: DefineBackofficePickerInput<StrictStandardPickerOperation<TOperation>, RowRef, RowView, PickerFragmentData>) => BackofficeEntityPickerConfig<StrictStandardPickerOperation<TOperation>, RowRef, RowView, PickerFragmentData>;
45
+ export declare const defineBackofficeCustomPicker: <TOperation extends OperationType, TWhere extends Record<string, unknown>>() => <RowRef, RowView, PickerFragmentData>(config: DefineBackofficePickerInput<TOperation, RowRef, RowView, PickerFragmentData, TWhere> & {
46
+ buildQueryVariables: (input: BackofficePickerQueryInput<TOperation, TWhere>) => TOperation["variables"];
47
+ }) => BackofficeEntityPickerConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>;
48
+ export declare const defineBackofficePickerFacet: <TOperation extends OperationType>() => <RowRef, RowView, PickerFragmentData>(config: BackofficePickerFacetConfig<StrictStandardPickerOperation<TOperation>, RowRef, RowView, PickerFragmentData>) => BackofficePickerFacetConfig<StrictStandardPickerOperation<TOperation>, RowRef, RowView, PickerFragmentData>;
49
+ export declare const defineBackofficeCustomPickerFacet: <TOperation extends OperationType, TWhere extends Record<string, unknown>>() => <RowRef, RowView, PickerFragmentData>(config: BackofficePickerFacetConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>) => BackofficePickerFacetConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>;
50
+ export declare const defineBackofficeRelationFilter: <TOperation extends OperationType, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>>() => (relation: BackofficeRelationFilterSpec<TOperation, TWhere>) => BackofficeRelationFilterSpec<TOperation, TWhere>;
51
+ export declare const defineBackofficeFilters: <TOperation extends OperationType, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>>() => <const Filters extends readonly BackofficeFilterSpec<TWhere>[]>(filters: Filters) => Filters;
52
+ export declare const defineBackofficeSorts: <TOperation extends OperationType, TSort extends string = BackofficeOperationSort<TOperation>>() => <const Sorts extends readonly BackofficeSortSpec<TSort>[]>(sorts: Sorts) => Sorts;
53
+ type FilterConfig = {
54
+ label: I18nLabel;
55
+ placement?: BackofficeFilterPlacement;
56
+ path?: readonly string[];
57
+ };
58
+ export declare const entityIdFilter: <Where, Key extends StringFieldKey<Where>>(key: Key, config: FilterConfig & {
59
+ entity: string;
60
+ }) => BackofficeFilterSpec<Where>;
61
+ export declare const textFilter: <Where, Key extends StringFieldKey<Where>>(key: Key, config: FilterConfig & {
62
+ placeholderLabel?: I18nLabel;
63
+ placeholderText?: I18nLabel;
64
+ }) => BackofficeFilterSpec<Where>;
65
+ export declare const datetimeFilter: <Where, Key extends StringFieldKey<Where>>(key: Key, config: FilterConfig & {
66
+ mode?: "from" | "to" | "exact";
67
+ placeholderLabel?: I18nLabel;
68
+ placeholderText?: I18nLabel;
69
+ }) => BackofficeFilterSpec<Where>;
70
+ export declare const numberFilter: <Where, Key extends NumberFieldKey<Where>>(key: Key, config: FilterConfig & {
71
+ placeholderLabel?: I18nLabel;
72
+ placeholderText?: I18nLabel;
73
+ inputMode?: "numeric" | "decimal";
74
+ }) => BackofficeFilterSpec<Where>;
75
+ export declare const enumFilter: <Where, Key extends StringFieldKey<Where>>(key: Key, config: FilterConfig & {
76
+ options: readonly Extract<NonNullable<Where[Key]>, string>[];
77
+ }) => BackofficeFilterSpec<Where>;
78
+ export declare const booleanFilter: <Where, Key extends BooleanFieldKey<Where>>(key: Key, config: FilterConfig & {
79
+ trueLabel?: I18nLabel;
80
+ falseLabel?: I18nLabel;
81
+ }) => BackofficeFilterSpec<Where>;
82
+ export declare const customFilter: <Where, Value>(filter: BackofficeFilterSpec<Where> & {
83
+ toGraphQL: (value: Value) => Partial<Where>;
84
+ }) => BackofficeFilterSpec<Where>;
2
85
  export declare const defineBackofficeToolEntity: <T extends BackofficeToolEntityConfig>(config: T) => T;
3
- export declare const createListFacet: <T extends BackofficeListFacetConfig>(config: T) => T;
4
- export declare const createPickerFacet: <T extends BackofficePickerFacetConfig>(config: T) => T;
5
86
  export declare const createDetailLayoutFacet: <T extends BackofficeDetailLayoutFacetConfig>(config: T) => T;
6
87
  export declare const createDetailPageFacet: <T extends BackofficeDetailPageFacetConfig>(config: T) => T;
7
88
  export declare const createToolFacet: <T extends BackofficeToolFacetConfig>(config: T) => T;
@@ -11,4 +92,5 @@ export declare const createListDetailManifest: <TFacets extends BackofficeListDe
11
92
  export declare const createToolManifest: <TFacets extends BackofficeToolFacetLoaderMap>(config: Omit<BackofficeEntityManifestItem, "kind" | "hasList" | "detailPages" | "defaultDetailPageId" | "facets"> & {
12
93
  facets: TFacets;
13
94
  }) => BackofficeEntityManifestItem;
95
+ export {};
14
96
  //# sourceMappingURL=builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iCAAiC,EACjC,+BAA+B,EAC/B,4BAA4B,EAC5B,kCAAkC,EAClC,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,4BAA4B,EAC5B,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,0BAA0B,GACrC,CAAC,SAAS,0BAA0B,EAEpC,QAAQ,CAAC,KACR,CAEF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,yBAAyB,EACjE,QAAQ,CAAC,KACR,CAEF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,2BAA2B,EACrE,QAAQ,CAAC,KACR,CAEF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,CAAC,SAAS,iCAAiC,EAE3C,QAAQ,CAAC,KACR,CAEF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,CAAC,SAAS,+BAA+B,EAEzC,QAAQ,CAAC,KACR,CAEF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,yBAAyB,EACjE,QAAQ,CAAC,KACR,CAEF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,OAAO,SAAS,kCAAkC,EAElD,QAAQ,IAAI,CAAC,4BAA4B,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG;IAC9D,MAAM,EAAE,OAAO,CAAC;CACjB,KACA,4BAKF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,SAAS,4BAA4B,EAE5C,QAAQ,IAAI,CACV,4BAA4B,EAC5B,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,qBAAqB,GAAG,QAAQ,CACtE,GAAG;IACF,MAAM,EAAE,OAAO,CAAC;CACjB,KACA,4BAQF,CAAC"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/builders.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,210 @@
1
- export const defineBackofficeToolEntity = (config) => {
2
- return config;
1
+ const buildStandardListVariables = (input) => {
2
+ return {
3
+ where: input.where,
4
+ sort: input.sort,
5
+ count: input.count,
6
+ cursor: input.cursor,
7
+ };
3
8
  };
4
- export const createListFacet = (config) => {
5
- return config;
9
+ const buildStandardPickerVariables = (input) => {
10
+ const search = input.search.trim();
11
+ let where = null;
12
+ if (input.scope != null) {
13
+ const scopedWhere = Object.fromEntries(Object.entries(input.scope).filter(([, value]) => {
14
+ return typeof value === 'string' && value.trim() !== '';
15
+ }));
16
+ where = scopedWhere;
17
+ }
18
+ let searchVariable = search;
19
+ if (search === '') {
20
+ searchVariable = null;
21
+ }
22
+ return {
23
+ where,
24
+ search: searchVariable,
25
+ count: 20,
26
+ cursor: null,
27
+ };
28
+ };
29
+ export const defineBackofficeConnectionList = () => {
30
+ return (config) => {
31
+ return {
32
+ ...config,
33
+ kind: 'connection',
34
+ buildQueryVariables: config.buildQueryVariables ?? buildStandardListVariables,
35
+ };
36
+ };
37
+ };
38
+ export const defineBackofficeCustomConnectionList = () => {
39
+ return (config) => {
40
+ return {
41
+ ...config,
42
+ kind: 'connection',
43
+ };
44
+ };
45
+ };
46
+ export const defineBackofficeRecordList = () => {
47
+ return (config) => {
48
+ return {
49
+ ...config,
50
+ buildQueryVariables: config.buildQueryVariables ?? buildStandardListVariables,
51
+ };
52
+ };
53
+ };
54
+ export const defineBackofficeCustomRecordList = () => {
55
+ return (config) => {
56
+ return config;
57
+ };
58
+ };
59
+ export const defineBackofficeListFacet = () => {
60
+ return (config) => {
61
+ return config;
62
+ };
63
+ };
64
+ export const defineBackofficeCustomListFacet = () => {
65
+ return (config) => {
66
+ return config;
67
+ };
68
+ };
69
+ export const defineBackofficePicker = () => {
70
+ return (config) => {
71
+ return {
72
+ ...config,
73
+ buildQueryVariables: config.buildQueryVariables ?? buildStandardPickerVariables,
74
+ };
75
+ };
76
+ };
77
+ export const defineBackofficeCustomPicker = () => {
78
+ return (config) => {
79
+ return config;
80
+ };
81
+ };
82
+ export const defineBackofficePickerFacet = () => {
83
+ return (config) => {
84
+ return config;
85
+ };
86
+ };
87
+ export const defineBackofficeCustomPickerFacet = () => {
88
+ return (config) => {
89
+ return config;
90
+ };
6
91
  };
7
- export const createPickerFacet = (config) => {
92
+ export const defineBackofficeRelationFilter = () => {
93
+ return (relation) => {
94
+ return relation;
95
+ };
96
+ };
97
+ export const defineBackofficeFilters = () => {
98
+ return (filters) => {
99
+ return filters;
100
+ };
101
+ };
102
+ export const defineBackofficeSorts = () => {
103
+ return (sorts) => {
104
+ return sorts;
105
+ };
106
+ };
107
+ export const entityIdFilter = (key, config) => {
108
+ return {
109
+ id: key,
110
+ kind: 'entityId',
111
+ entity: config.entity,
112
+ label: config.label,
113
+ placement: config.placement,
114
+ whereKey: key,
115
+ path: config.path,
116
+ toGraphQL: (value) => {
117
+ return { [key]: value };
118
+ },
119
+ };
120
+ };
121
+ export const textFilter = (key, config) => {
122
+ return {
123
+ id: key,
124
+ kind: 'text',
125
+ label: config.label,
126
+ placement: config.placement,
127
+ whereKey: key,
128
+ path: config.path,
129
+ placeholderLabel: config.placeholderLabel,
130
+ placeholderText: config.placeholderText,
131
+ toGraphQL: (value) => {
132
+ return { [key]: value };
133
+ },
134
+ };
135
+ };
136
+ export const datetimeFilter = (key, config) => {
137
+ return {
138
+ id: key,
139
+ kind: 'datetime',
140
+ label: config.label,
141
+ placement: config.placement,
142
+ whereKey: key,
143
+ path: config.path,
144
+ mode: config.mode,
145
+ placeholderLabel: config.placeholderLabel,
146
+ placeholderText: config.placeholderText,
147
+ toGraphQL: (value) => {
148
+ return { [key]: value };
149
+ },
150
+ };
151
+ };
152
+ export const numberFilter = (key, config) => {
153
+ return {
154
+ id: key,
155
+ kind: 'number',
156
+ label: config.label,
157
+ placement: config.placement,
158
+ whereKey: key,
159
+ path: config.path,
160
+ placeholderLabel: config.placeholderLabel,
161
+ placeholderText: config.placeholderText,
162
+ inputMode: config.inputMode,
163
+ toGraphQL: (value) => {
164
+ return { [key]: value };
165
+ },
166
+ };
167
+ };
168
+ export const enumFilter = (key, config) => {
169
+ return {
170
+ id: key,
171
+ kind: 'enum',
172
+ label: config.label,
173
+ placement: config.placement,
174
+ whereKey: key,
175
+ path: config.path,
176
+ options: config.options.map((value) => {
177
+ return {
178
+ value,
179
+ label: () => {
180
+ return value;
181
+ },
182
+ };
183
+ }),
184
+ toGraphQL: (value) => {
185
+ return { [key]: value };
186
+ },
187
+ };
188
+ };
189
+ export const booleanFilter = (key, config) => {
190
+ return {
191
+ id: key,
192
+ kind: 'boolean',
193
+ label: config.label,
194
+ placement: config.placement,
195
+ whereKey: key,
196
+ path: config.path,
197
+ trueLabel: config.trueLabel,
198
+ falseLabel: config.falseLabel,
199
+ toGraphQL: (value) => {
200
+ return { [key]: value };
201
+ },
202
+ };
203
+ };
204
+ export const customFilter = (filter) => {
205
+ return filter;
206
+ };
207
+ export const defineBackofficeToolEntity = (config) => {
8
208
  return config;
9
209
  };
10
210
  export const createDetailLayoutFacet = (config) => {
@@ -31,4 +231,4 @@ export const createToolManifest = (config) => {
31
231
  defaultDetailPageId: undefined,
32
232
  };
33
233
  };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FHeEMsTUFBUyxFQUNOLEVBQUU7SUFDTCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsTUFBUyxFQUNOLEVBQUU7SUFDTCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixNQUFTLEVBQ04sRUFBRTtJQUNMLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBR3JDLE1BQVMsRUFDTixFQUFFO0lBQ0wsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FHbkMsTUFBUyxFQUNOLEVBQUU7SUFDTCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsTUFBUyxFQUNOLEVBQUU7SUFDTCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUd0QyxNQUVDLEVBQzZCLEVBQUU7SUFDaEMsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxhQUFhO0tBQ3BCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUdoQyxNQUtDLEVBQzZCLEVBQUU7SUFDaEMsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLEtBQUs7UUFDZCxXQUFXLEVBQUUsU0FBUztRQUN0QixtQkFBbUIsRUFBRSxTQUFTO0tBQy9CLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRGYWNldENvbmZpZyxcbiAgQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZyxcbiAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgQmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcCxcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZyxcbiAgQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlVG9vbEZhY2V0Q29uZmlnLFxuICBCYWNrb2ZmaWNlVG9vbEZhY2V0TG9hZGVyTWFwLFxuICBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlVG9vbEVudGl0eSA9IDxcbiAgVCBleHRlbmRzIEJhY2tvZmZpY2VUb29sRW50aXR5Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTGlzdEZhY2V0ID0gPFQgZXh0ZW5kcyBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUGlja2VyRmFjZXQgPSA8VCBleHRlbmRzIEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZz4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURldGFpbExheW91dEZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGV0YWlsUGFnZUZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRvb2xGYWNldCA9IDxUIGV4dGVuZHMgQmFja29mZmljZVRvb2xGYWNldENvbmZpZz4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCA9IDxcbiAgVEZhY2V0cyBleHRlbmRzIEJhY2tvZmZpY2VMaXN0RGV0YWlsRmFjZXRMb2FkZXJNYXAsXG4+KFxuICBjb25maWc6IE9taXQ8QmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSwgJ2tpbmQnIHwgJ2ZhY2V0cyc+ICYge1xuICAgIGZhY2V0czogVEZhY2V0cztcbiAgfSxcbik6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0gPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICBraW5kOiAnbGlzdC1kZXRhaWwnLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRvb2xNYW5pZmVzdCA9IDxcbiAgVEZhY2V0cyBleHRlbmRzIEJhY2tvZmZpY2VUb29sRmFjZXRMb2FkZXJNYXAsXG4+KFxuICBjb25maWc6IE9taXQ8XG4gICAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgICAna2luZCcgfCAnaGFzTGlzdCcgfCAnZGV0YWlsUGFnZXMnIHwgJ2RlZmF1bHREZXRhaWxQYWdlSWQnIHwgJ2ZhY2V0cydcbiAgPiAmIHtcbiAgICBmYWNldHM6IFRGYWNldHM7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAga2luZDogJ3Rvb2wnLFxuICAgIGhhc0xpc3Q6IGZhbHNlLFxuICAgIGRldGFpbFBhZ2VzOiB1bmRlZmluZWQsXG4gICAgZGVmYXVsdERldGFpbFBhZ2VJZDogdW5kZWZpbmVkLFxuICB9O1xufTtcbiJdfQ==
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0tBLE1BQU0sMEJBQTBCLEdBQUcsQ0FLakMsS0FBMEQsRUFDakMsRUFBRTtJQUMzQixPQUFPO1FBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO0tBQ3JCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLDRCQUE0QixHQUFHLENBSW5DLEtBQXFELEVBQzVCLEVBQUU7SUFDM0IsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBQ2hDLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN4QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixLQUFLLEdBQUcsV0FBcUIsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxjQUFjLEdBQWtCLE1BQU0sQ0FBQztJQUMzQyxJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNsQixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPO1FBQ0wsS0FBSztRQUNMLE1BQU0sRUFBRSxj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QUFvQixDQUFDO1FBQzVDLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQzFCLE1BRUMsRUFDNEIsRUFBRTtJQUMvQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUd4QyxNQUFTLEVBQ04sRUFBRTtJQUNMLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBR3JDLE1BQVMsRUFDTixFQUFFO0lBQ0wsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FHbkMsTUFBUyxFQUNOLEVBQUU7SUFDTCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsTUFBUyxFQUNOLEVBQUU7SUFDTCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUd0QyxNQUVDLEVBQzZCLEVBQUU7SUFDaEMsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxhQUFhO0tBQ3BCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUdoQyxNQUtDLEVBQzZCLEVBQUU7SUFDaEMsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLEtBQUs7UUFDZCxXQUFXLEVBQUUsU0FBUztRQUN0QixtQkFBbUIsRUFBRSxTQUFTO0tBQy9CLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9wZXJhdGlvblR5cGUgfSBmcm9tICdyZWxheS1ydW50aW1lJztcbmltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0RmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlMaXN0Q29uZmlnLFxuICBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtLFxuICBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnLFxuICBCYWNrb2ZmaWNlRmlsdGVyUGxhY2VtZW50LFxuICBCYWNrb2ZmaWNlRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZUxpc3REZXRhaWxGYWNldExvYWRlck1hcCxcbiAgQmFja29mZmljZUxpc3RGYWNldENvbmZpZyxcbiAgQmFja29mZmljZUxpc3RRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWcsXG4gIEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlUmVjb3JkTGlzdENvbmZpZyxcbiAgQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZVNvcnRTcGVjLFxuICBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbiAgQmFja29mZmljZVRvb2xGYWNldENvbmZpZyxcbiAgQmFja29mZmljZVRvb2xGYWNldExvYWRlck1hcCxcbiAgSTE4bkxhYmVsLFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgVmFsdWU+ID0gRXh0cmFjdDxcbiAge1xuICAgIFtLZXkgaW4ga2V5b2YgV2hlcmVdOiBOb25OdWxsYWJsZTxXaGVyZVtLZXldPiBleHRlbmRzIFZhbHVlID8gS2V5IDogbmV2ZXI7XG4gIH1ba2V5b2YgV2hlcmVdLFxuICBzdHJpbmdcbj47XG5cbnR5cGUgU3RyaW5nRmllbGRLZXk8V2hlcmU+ID0gRmllbGRLZXlPZlR5cGU8V2hlcmUsIHN0cmluZz47XG50eXBlIEJvb2xlYW5GaWVsZEtleTxXaGVyZT4gPSBGaWVsZEtleU9mVHlwZTxXaGVyZSwgYm9vbGVhbj47XG50eXBlIE51bWJlckZpZWxkS2V5PFdoZXJlPiA9IEZpZWxkS2V5T2ZUeXBlPFdoZXJlLCBudW1iZXI+O1xuXG50eXBlIFN0YW5kYXJkTGlzdFZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBUU29ydCBleHRlbmRzIHN0cmluZyA9IEJhY2tvZmZpY2VPcGVyYXRpb25Tb3J0PFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBzb3J0PzogVFNvcnQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdGFuZGFyZFBpY2tlclZhcmlhYmxlczxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPiA9IHtcbiAgd2hlcmU/OiBUV2hlcmUgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb3VudDogbnVtYmVyO1xuICBjdXJzb3I/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGU+ID1cbiAgVE9wZXJhdGlvblsndmFyaWFibGVzJ10gZXh0ZW5kcyBTdGFuZGFyZExpc3RWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG50eXBlIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlPiA9XG4gIFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddIGV4dGVuZHMgU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXM8VE9wZXJhdGlvbj5cbiAgICA/IFRPcGVyYXRpb25cbiAgICA6IG5ldmVyO1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RJbnB1dDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFRTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnRcbiAgPixcbiAgJ2tpbmQnIHwgJ2J1aWxkUXVlcnlWYXJpYWJsZXMnXG4+ICYge1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG59O1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlUmVjb3JkTGlzdElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlUmVjb3JkTGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0XG4gID4sXG4gICdidWlsZFF1ZXJ5VmFyaWFibGVzJ1xuPiAmIHtcbiAgYnVpbGRRdWVyeVZhcmlhYmxlcz86IChcbiAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZSwgVFNvcnQ+LFxuICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xufTtcblxuZXhwb3J0IHR5cGUgRGVmaW5lQmFja29mZmljZUxpc3RGYWNldElucHV0PFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBMaXN0RnJhZ21lbnREYXRhLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4gPSBPbWl0PFxuICBCYWNrb2ZmaWNlTGlzdEZhY2V0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnRcbiAgPixcbiAgJ2xpc3QnXG4+ICYge1xuICBsaXN0OiBCYWNrb2ZmaWNlRW50aXR5TGlzdENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0XG4gID47XG59O1xuXG5leHBvcnQgdHlwZSBEZWZpbmVCYWNrb2ZmaWNlUGlja2VySW5wdXQ8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4+ID0gT21pdDxcbiAgQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPixcbiAgJ2J1aWxkUXVlcnlWYXJpYWJsZXMnXG4+ICYge1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBUV2hlcmU+LFxuICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oXG4gIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIHJldHVybiB7XG4gICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICB9O1xufTtcblxuY29uc3QgYnVpbGRTdGFuZGFyZFBpY2tlclZhcmlhYmxlcyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuPihcbiAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4pOiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXSA9PiB7XG4gIGNvbnN0IHNlYXJjaCA9IGlucHV0LnNlYXJjaC50cmltKCk7XG4gIGxldCB3aGVyZTogVFdoZXJlIHwgbnVsbCA9IG51bGw7XG4gIGlmIChpbnB1dC5zY29wZSAhPSBudWxsKSB7XG4gICAgY29uc3Qgc2NvcGVkV2hlcmUgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhpbnB1dC5zY29wZSkuZmlsdGVyKChbLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpICE9PSAnJztcbiAgICAgIH0pLFxuICAgICk7XG4gICAgd2hlcmUgPSBzY29wZWRXaGVyZSBhcyBUV2hlcmU7XG4gIH1cbiAgbGV0IHNlYXJjaFZhcmlhYmxlOiBzdHJpbmcgfCBudWxsID0gc2VhcmNoO1xuICBpZiAoc2VhcmNoID09PSAnJykge1xuICAgIHNlYXJjaFZhcmlhYmxlID0gbnVsbDtcbiAgfVxuICByZXR1cm4ge1xuICAgIHdoZXJlLFxuICAgIHNlYXJjaDogc2VhcmNoVmFyaWFibGUsXG4gICAgY291bnQ6IDIwLFxuICAgIGN1cnNvcjogbnVsbCxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZUNvbm5lY3Rpb25MaXN0SW5wdXQ8XG4gICAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2luZDogJ2Nvbm5lY3Rpb24nLFxuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczpcbiAgICAgICAgY29uZmlnLmJ1aWxkUXVlcnlWYXJpYWJsZXMgPz8gYnVpbGRTdGFuZGFyZExpc3RWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tQ29ubmVjdGlvbkxpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdElucHV0PFxuICAgICAgVE9wZXJhdGlvbixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlLFxuICAgICAgVFNvcnRcbiAgICA+ICYge1xuICAgICAgYnVpbGRRdWVyeVZhcmlhYmxlczogKFxuICAgICAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZSwgVFNvcnQ+LFxuICAgICAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgICB9LFxuICApOiBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBMaXN0RnJhZ21lbnREYXRhLFxuICAgIFRXaGVyZSxcbiAgICBUU29ydFxuICA+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY29uZmlnLFxuICAgICAga2luZDogJ2Nvbm5lY3Rpb24nLFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVJlY29yZExpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIExpc3RGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZVJlY29yZExpc3RJbnB1dDxcbiAgICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZVJlY29yZExpc3RDb25maWc8XG4gICAgU3RyaWN0U3RhbmRhcmRMaXN0T3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGFcbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICAgIGNvbmZpZy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/IGJ1aWxkU3RhbmRhcmRMaXN0VmFyaWFibGVzLFxuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUN1c3RvbVJlY29yZExpc3QgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VSZWNvcmRMaXN0SW5wdXQ8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgICBUV2hlcmUsXG4gICAgICBUU29ydFxuICAgID4gJiB7XG4gICAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOiAoXG4gICAgICAgIGlucHV0OiBCYWNrb2ZmaWNlTGlzdFF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgVFdoZXJlLCBUU29ydD4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VSZWNvcmRMaXN0Q29uZmlnPFxuICAgIFRPcGVyYXRpb24sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmUsXG4gICAgVFNvcnRcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlTGlzdEZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgICAgIFN0cmljdFN0YW5kYXJkTGlzdE9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICAgIFJvd1JlZixcbiAgICAgIFJvd1ZpZXcsXG4gICAgICBMaXN0RnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZExpc3RPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgUm93UmVmLFxuICAgIFJvd1ZpZXcsXG4gICAgTGlzdEZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21MaXN0RmFjZXQgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBMaXN0RnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VMaXN0RmFjZXRJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgTGlzdEZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZSxcbiAgICAgIFRTb3J0XG4gICAgPixcbiAgKTogQmFja29mZmljZUxpc3RGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIExpc3RGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlLFxuICAgIFRTb3J0XG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlciA9IDxUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZT4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogRGVmaW5lQmFja29mZmljZVBpY2tlcklucHV0PFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgICBTdHJpY3RTdGFuZGFyZFBpY2tlck9wZXJhdGlvbjxUT3BlcmF0aW9uPixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGFcbiAgPiA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICAgIGNvbmZpZy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/IGJ1aWxkU3RhbmRhcmRQaWNrZXJWYXJpYWJsZXMsXG4gICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlQ3VzdG9tUGlja2VyID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KCkgPT4ge1xuICByZXR1cm4gPFJvd1JlZiwgUm93VmlldywgUGlja2VyRnJhZ21lbnREYXRhPihcbiAgICBjb25maWc6IERlZmluZUJhY2tvZmZpY2VQaWNrZXJJbnB1dDxcbiAgICAgIFRPcGVyYXRpb24sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhLFxuICAgICAgVFdoZXJlXG4gICAgPiAmIHtcbiAgICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6IChcbiAgICAgICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFRXaGVyZT4sXG4gICAgICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xuICAgIH0sXG4gICk6IEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWc8XG4gICAgVE9wZXJhdGlvbixcbiAgICBSb3dSZWYsXG4gICAgUm93VmlldyxcbiAgICBQaWNrZXJGcmFnbWVudERhdGEsXG4gICAgVFdoZXJlXG4gID4gPT4ge1xuICAgIHJldHVybiBjb25maWc7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVBpY2tlckZhY2V0ID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbj4oKSA9PiB7XG4gIHJldHVybiA8Um93UmVmLCBSb3dWaWV3LCBQaWNrZXJGcmFnbWVudERhdGE+KFxuICAgIGNvbmZpZzogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgICAgU3RyaWN0U3RhbmRhcmRQaWNrZXJPcGVyYXRpb248VE9wZXJhdGlvbj4sXG4gICAgICBSb3dSZWYsXG4gICAgICBSb3dWaWV3LFxuICAgICAgUGlja2VyRnJhZ21lbnREYXRhXG4gICAgPixcbiAgKTogQmFja29mZmljZVBpY2tlckZhY2V0Q29uZmlnPFxuICAgIFN0cmljdFN0YW5kYXJkUGlja2VyT3BlcmF0aW9uPFRPcGVyYXRpb24+LFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YVxuICA+ID0+IHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlZmluZUJhY2tvZmZpY2VDdXN0b21QaWNrZXJGYWNldCA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFRXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPigpID0+IHtcbiAgcmV0dXJuIDxSb3dSZWYsIFJvd1ZpZXcsIFBpY2tlckZyYWdtZW50RGF0YT4oXG4gICAgY29uZmlnOiBCYWNrb2ZmaWNlUGlja2VyRmFjZXRDb25maWc8XG4gICAgICBUT3BlcmF0aW9uLFxuICAgICAgUm93UmVmLFxuICAgICAgUm93VmlldyxcbiAgICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICAgIFRXaGVyZVxuICAgID4sXG4gICk6IEJhY2tvZmZpY2VQaWNrZXJGYWNldENvbmZpZzxcbiAgICBUT3BlcmF0aW9uLFxuICAgIFJvd1JlZixcbiAgICBSb3dWaWV3LFxuICAgIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgICBUV2hlcmVcbiAgPiA9PiB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZpbmVCYWNrb2ZmaWNlUmVsYXRpb25GaWx0ZXIgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiAoXG4gICAgcmVsYXRpb246IEJhY2tvZmZpY2VSZWxhdGlvbkZpbHRlclNwZWM8VE9wZXJhdGlvbiwgVFdoZXJlPixcbiAgKTogQmFja29mZmljZVJlbGF0aW9uRmlsdGVyU3BlYzxUT3BlcmF0aW9uLCBUV2hlcmU+ID0+IHtcbiAgICByZXR1cm4gcmVsYXRpb247XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZUZpbHRlcnMgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBUV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Y29uc3QgRmlsdGVycyBleHRlbmRzIHJlYWRvbmx5IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFRXaGVyZT5bXT4oXG4gICAgZmlsdGVyczogRmlsdGVycyxcbiAgKTogRmlsdGVycyA9PiB7XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVNvcnRzID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgVFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4oKSA9PiB7XG4gIHJldHVybiA8Y29uc3QgU29ydHMgZXh0ZW5kcyByZWFkb25seSBCYWNrb2ZmaWNlU29ydFNwZWM8VFNvcnQ+W10+KFxuICAgIHNvcnRzOiBTb3J0cyxcbiAgKTogU29ydHMgPT4ge1xuICAgIHJldHVybiBzb3J0cztcbiAgfTtcbn07XG5cbnR5cGUgRmlsdGVyQ29uZmlnID0ge1xuICBsYWJlbDogSTE4bkxhYmVsO1xuICBwbGFjZW1lbnQ/OiBCYWNrb2ZmaWNlRmlsdGVyUGxhY2VtZW50O1xuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW107XG59O1xuXG5leHBvcnQgY29uc3QgZW50aXR5SWRGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHsgZW50aXR5OiBzdHJpbmcgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAnZW50aXR5SWQnLFxuICAgIGVudGl0eTogY29uZmlnLmVudGl0eSxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiB7XG4gICAgaWQ6IGtleSxcbiAgICBraW5kOiAndGV4dCcsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgdG9HcmFwaFFMOiAodmFsdWUpID0+IHtcbiAgICAgIHJldHVybiB7IFtrZXldOiB2YWx1ZSB9IGFzIFBhcnRpYWw8V2hlcmU+O1xuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGF0ZXRpbWVGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBtb2RlPzogJ2Zyb20nIHwgJ3RvJyB8ICdleGFjdCc7XG4gICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2RhdGV0aW1lJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIG1vZGU6IGNvbmZpZy5tb2RlLFxuICAgIHBsYWNlaG9sZGVyTGFiZWw6IGNvbmZpZy5wbGFjZWhvbGRlckxhYmVsLFxuICAgIHBsYWNlaG9sZGVyVGV4dDogY29uZmlnLnBsYWNlaG9sZGVyVGV4dCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBudW1iZXJGaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIE51bWJlckZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBwbGFjZWhvbGRlckxhYmVsPzogSTE4bkxhYmVsO1xuICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICBpbnB1dE1vZGU/OiAnbnVtZXJpYycgfCAnZGVjaW1hbCc7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ251bWJlcicsXG4gICAgbGFiZWw6IGNvbmZpZy5sYWJlbCxcbiAgICBwbGFjZW1lbnQ6IGNvbmZpZy5wbGFjZW1lbnQsXG4gICAgd2hlcmVLZXk6IGtleSxcbiAgICBwYXRoOiBjb25maWcucGF0aCxcbiAgICBwbGFjZWhvbGRlckxhYmVsOiBjb25maWcucGxhY2Vob2xkZXJMYWJlbCxcbiAgICBwbGFjZWhvbGRlclRleHQ6IGNvbmZpZy5wbGFjZWhvbGRlclRleHQsXG4gICAgaW5wdXRNb2RlOiBjb25maWcuaW5wdXRNb2RlLFxuICAgIHRvR3JhcGhRTDogKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4geyBba2V5XTogdmFsdWUgfSBhcyBQYXJ0aWFsPFdoZXJlPjtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGVudW1GaWx0ZXIgPSA8V2hlcmUsIEtleSBleHRlbmRzIFN0cmluZ0ZpZWxkS2V5PFdoZXJlPj4oXG4gIGtleTogS2V5LFxuICBjb25maWc6IEZpbHRlckNvbmZpZyAmIHtcbiAgICBvcHRpb25zOiByZWFkb25seSBFeHRyYWN0PE5vbk51bGxhYmxlPFdoZXJlW0tleV0+LCBzdHJpbmc+W107XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGlkOiBrZXksXG4gICAga2luZDogJ2VudW0nLFxuICAgIGxhYmVsOiBjb25maWcubGFiZWwsXG4gICAgcGxhY2VtZW50OiBjb25maWcucGxhY2VtZW50LFxuICAgIHdoZXJlS2V5OiBrZXksXG4gICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgb3B0aW9uczogY29uZmlnLm9wdGlvbnMubWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGxhYmVsOiAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KSxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBib29sZWFuRmlsdGVyID0gPFdoZXJlLCBLZXkgZXh0ZW5kcyBCb29sZWFuRmllbGRLZXk8V2hlcmU+PihcbiAga2V5OiBLZXksXG4gIGNvbmZpZzogRmlsdGVyQ29uZmlnICYge1xuICAgIHRydWVMYWJlbD86IEkxOG5MYWJlbDtcbiAgICBmYWxzZUxhYmVsPzogSTE4bkxhYmVsO1xuICB9LFxuKTogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoga2V5LFxuICAgIGtpbmQ6ICdib29sZWFuJyxcbiAgICBsYWJlbDogY29uZmlnLmxhYmVsLFxuICAgIHBsYWNlbWVudDogY29uZmlnLnBsYWNlbWVudCxcbiAgICB3aGVyZUtleToga2V5LFxuICAgIHBhdGg6IGNvbmZpZy5wYXRoLFxuICAgIHRydWVMYWJlbDogY29uZmlnLnRydWVMYWJlbCxcbiAgICBmYWxzZUxhYmVsOiBjb25maWcuZmFsc2VMYWJlbCxcbiAgICB0b0dyYXBoUUw6ICh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuIHsgW2tleV06IHZhbHVlIH0gYXMgUGFydGlhbDxXaGVyZT47XG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjdXN0b21GaWx0ZXIgPSA8V2hlcmUsIFZhbHVlPihcbiAgZmlsdGVyOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4gJiB7XG4gICAgdG9HcmFwaFFMOiAodmFsdWU6IFZhbHVlKSA9PiBQYXJ0aWFsPFdoZXJlPjtcbiAgfSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPiA9PiB7XG4gIHJldHVybiBmaWx0ZXI7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmaW5lQmFja29mZmljZVRvb2xFbnRpdHkgPSA8XG4gIFQgZXh0ZW5kcyBCYWNrb2ZmaWNlVG9vbEVudGl0eUNvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZURldGFpbExheW91dEZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbExheW91dEZhY2V0Q29uZmlnLFxuPihcbiAgY29uZmlnOiBULFxuKTogVCA9PiB7XG4gIHJldHVybiBjb25maWc7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGV0YWlsUGFnZUZhY2V0ID0gPFxuICBUIGV4dGVuZHMgQmFja29mZmljZURldGFpbFBhZ2VGYWNldENvbmZpZyxcbj4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRvb2xGYWNldCA9IDxUIGV4dGVuZHMgQmFja29mZmljZVRvb2xGYWNldENvbmZpZz4oXG4gIGNvbmZpZzogVCxcbik6IFQgPT4ge1xuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUxpc3REZXRhaWxNYW5pZmVzdCA9IDxcbiAgVEZhY2V0cyBleHRlbmRzIEJhY2tvZmZpY2VMaXN0RGV0YWlsRmFjZXRMb2FkZXJNYXAsXG4+KFxuICBjb25maWc6IE9taXQ8QmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSwgJ2tpbmQnIHwgJ2ZhY2V0cyc+ICYge1xuICAgIGZhY2V0czogVEZhY2V0cztcbiAgfSxcbik6IEJhY2tvZmZpY2VFbnRpdHlNYW5pZmVzdEl0ZW0gPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLmNvbmZpZyxcbiAgICBraW5kOiAnbGlzdC1kZXRhaWwnLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRvb2xNYW5pZmVzdCA9IDxcbiAgVEZhY2V0cyBleHRlbmRzIEJhY2tvZmZpY2VUb29sRmFjZXRMb2FkZXJNYXAsXG4+KFxuICBjb25maWc6IE9taXQ8XG4gICAgQmFja29mZmljZUVudGl0eU1hbmlmZXN0SXRlbSxcbiAgICAna2luZCcgfCAnaGFzTGlzdCcgfCAnZGV0YWlsUGFnZXMnIHwgJ2RlZmF1bHREZXRhaWxQYWdlSWQnIHwgJ2ZhY2V0cydcbiAgPiAmIHtcbiAgICBmYWNldHM6IFRGYWNldHM7XG4gIH0sXG4pOiBCYWNrb2ZmaWNlRW50aXR5TWFuaWZlc3RJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAga2luZDogJ3Rvb2wnLFxuICAgIGhhc0xpc3Q6IGZhbHNlLFxuICAgIGRldGFpbFBhZ2VzOiB1bmRlZmluZWQsXG4gICAgZGVmYXVsdERldGFpbFBhZ2VJZDogdW5kZWZpbmVkLFxuICB9O1xufTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/filters/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,YAAY,EACjB,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAE/B,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;AAmEF,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,CAkF/B"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/filters/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,MAAM,EACZ,MAAM,uBAAuB,CAAC;AAE/B,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;AAmEF,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,CAqF/B"}
@@ -1,4 +1,4 @@
1
- import { booleanField, buildEqFilters, defineSchema, enumField, stringField, } from '@plumile/filter-query';
1
+ import { booleanField, buildEqFilters, defineSchema, enumField, numberField, stringField, } from '@plumile/filter-query';
2
2
  import { readWhereValue } from './where.js';
3
3
  const DEFAULT_OPERATORS = ['eq'];
4
4
  function mergeWhere(base, patch) {
@@ -49,6 +49,9 @@ export function createBackofficeFilterSchema(filters) {
49
49
  return option.value;
50
50
  }), DEFAULT_OPERATORS),
51
51
  ];
52
+ case 'number':
53
+ return [filter.id, numberField(DEFAULT_OPERATORS)];
54
+ case 'datetime':
52
55
  case 'entityId':
53
56
  case 'text':
54
57
  default:
@@ -98,4 +101,4 @@ export function createBackofficeFilterSchema(filters) {
98
101
  }
99
102
  return { schema, toWhere, fromWhere };
100
103
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZpbHRlcnMvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLFlBQVksRUFDWixTQUFTLEVBQ1QsV0FBVyxHQUlaLE1BQU0sdUJBQXVCLENBQUM7QUFHL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVE1QyxNQUFNLGlCQUFpQixHQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBT2xELFNBQVMsVUFBVSxDQUNqQixJQUE2QixFQUM3QixLQUE4QjtJQUU5QixNQUFNLElBQUksR0FBNEIsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ2xELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakQsSUFDRSxLQUFLLElBQUksSUFBSTtZQUNiLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFDekIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRO1lBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJO1lBQ2pCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDekIsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLENBQ3BCLElBQUksQ0FBQyxHQUFHLENBQTRCLEVBQ3BDLEtBQWdDLENBQ2pDLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFLRCxTQUFTLGNB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QUFDO1FBRUQsTUFBTSxPQUFPLEdBQWlELEVBQUUsQ0FBQztRQUVqRSxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQy9CLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBb0IsQ0FBQztnQkFDNUMsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ2pELE1BQU0sR0FBRyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzdCLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBa0IsQ0FBQztnQkFDMUMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxjQUFjLENBQ25CLE9BQTRDLENBQzdDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5GaWVsZCxcbiAgYnVpbGRFcUZpbHRlcnMsXG4gIGRlZmluZVNjaGVtYSxcbiAgZW51bUZpZWxkLFxuICBzdHJpbmdGaWVsZCxcbiAgdHlwZSBFcUlucHV0LFxuICB0eXBlIEluZmVyRmlsdGVycyxcbiAgdHlwZSBTY2hlbWEsXG59IGZyb20gJ0BwbHVtaWxlL2ZpbHRlci1xdWVyeSc7XG5cbmltcG9ydCB0eXBlIHsgQmFja29mZmljZUZpbHRlclNwZWMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyByZWFkV2hlcmVWYWx1ZSB9IGZyb20gJy4vd2hlcmUuanMnO1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlRmlsdGVyU2NoZW1hPFdoZXJlLCBTIGV4dGVuZHMgU2NoZW1hID0gU2NoZW1hPiA9IHtcbiAgc2NoZW1hOiBTO1xuICB0b1doZXJlOiAoZmlsdGVyczogSW5mZXJGaWx0ZXJzPFM+KSA9PiBXaGVyZSB8IG51bGw7XG4gIGZyb21XaGVyZTogKHdoZXJlOiBXaGVyZSB8IG51bGwpID0+IEluZmVyRmlsdGVyczxTPjtcbn07XG5cbmNvbnN0IERFRkFVTFRfT1BFUkFUT1JTOiByZWFkb25seSBbJ2VxJ10gPSBbJ2VxJ107XG5cbnR5cGUgRmlsdGVyVmFsdWUgPSBzdHJpbmcgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIG1lcmdlV2hlcmUoXG4gIGJhc2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBwYXRjaDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIGNvbnN0IG5leHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0geyAuLi5iYXNlIH07XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHBhdGNoKSkge1xuICAgIGlmIChcbiAgICAgIHZhbHVlICE9IG51bGwgJiZcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgICAgdHlwZW9mIG5leHRba2V5XSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIG5leHRba2V5XSAhPSBudWxsICYmXG4gICAgICAhQXJyYXkuaXNBcnJheShuZXh0W2tleV0pXG4gICAgKSB7XG4gICAgICBuZXh0W2tleV0gPSBtZXJnZVdoZXJlKFxuICAgICAgICBuZXh0W2tleV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXh0O1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIGdldEZpbHRlclZhbHVlPFMgZXh0ZW5kcyBTY2hlbWE+KFxuICBmaWx0ZXJzOiBJbmZlckZpbHRlcnM8Uz4sXG4gIGlkOiBzdHJpbmcsXG4pOiBGaWx0ZXJWYWx1ZSB7XG4gIGNvbnN0IGVudHJ5ID0gZmlsdGVyc1tpZCBhcyBrZXlvZiBTXTtcbiAgaWYgKGVudHJ5ID09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGlmICh0eXBlb2YgZW50cnkgPT09ICdvYmplY3QnICYmICdlcScgaW4gZW50cnkpIHtcbiAgICByZXR1cm4gKGVudHJ5IGFzIHsgZXE/OiBzdHJpbmcgfCBib29sZWFuIH0pLmVxO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gaXNFbXB0eUZpbHRlclZhbHVlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWUudHJpbSgpID09PSAnJztcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhY2tvZmZpY2VGaWx0ZXJTY2hlbWE8XG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4+KFxuICBmaWx0ZXJzOiByZWFkb25seSBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT5bXSxcbik6IEJhY2tvZmZpY2VGaWx0ZXJTY2hlbWE8V2hlcmU+IHtcbiAgY29uc3Qgc2NoZW1hID0gZGVmaW5lU2NoZW1hKFxuICAgIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIGZpbHRlcnMubWFwKChmaWx0ZXIpID0+IHtcbiAgICAgICAgc3dpdGNoIChmaWx0ZXIua2luZCkge1xuICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgcmV0dXJuIFtmaWx0ZXIuaWQsIGJvb2xlYW5GaWVsZChERUZBVUxUX09QRVJBVE9SUyldO1xuICAgICAgICAgIGNhc2UgJ2VudW0nOlxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgZmlsdGVyLmlkLFxuICAgICAgICAgICAgICBlbnVtRmllbGQoXG4gICAgICAgICAgICAgICAgZmlsdGVyLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udmFsdWU7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgREVGQVVMVF9PUEVSQVRPUlMsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgIGNhc2UgJ2VudGl0eUlkJzpcbiAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFtmaWx0ZXIuaWQsIHN0cmluZ0ZpZWxkKERFRkFVTFRfT1BFUkFUT1JTKV07XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICksXG4gICk7XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBmdW5jdGlvbiB0b1doZXJlKHBhcnNlZDogSW5mZXJGaWx0ZXJzPHR5cGVvZiBzY2hlbWE+KTogV2hlcmUgfCBudWxsIHtcbiAgICBsZXQgd2hlcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBmaWx0ZXJzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGdldEZpbHRlclZhbHVlKHBhcnNlZCwgZmlsdGVyLmlkKTtcbiAgICAgIGlmICghaXNFbXB0eUZpbHRlclZhbHVlKHZhbHVlKSkge1xuICAgICAgICBjb25zdCBwYXJ0aWFsID0gZmlsdGVyLnRvR3JhcGhRTCh2YWx1ZSBhcyBuZXZlcik7XG4gICAgICAgIGlmICh3aGVyZSA9PSBudWxsKSB7XG4gICAgICAgICAgd2hlcmUgPSB7IC4uLnBhcnRpYWwgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aGVyZSA9IG1lcmdlV2hlcmUod2hlcmUsIHBhcnRpYWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdoZXJlID09IG51bGwgfHwgT2JqZWN0LmtleXMod2hlcmUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdoZXJlIGFzIFdoZXJlO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBmdW5jdGlvbiBmcm9tV2hlcmUod2hlcmU6IFdoZXJlIHwgbnVsbCk6IEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPiB7XG4gICAgaWYgKHdoZXJlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBidWlsZEVxRmlsdGVycyh7fSk7XG4gICAgfVxuXG4gICAgY29uc3QgZXFJbnB1dDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgYm9vbGVhbiB8IHVuZGVmaW5lZD4gPSB7fTtcblxuICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMpIHtcbiAgICAgIGlmIChmaWx0ZXIuZnJvbUdyYXBoUUwgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGZpbHRlci5mcm9tR3JhcGhRTCh3aGVyZSk7XG4gICAgICAgIGlmICghaXNFbXB0eUZpbHRlclZhbHVlKHZhbHVlKSkge1xuICAgICAgICAgIGVxSW5wdXRbZmlsdGVyLmlkXSA9IHZhbHVlIGFzIEZpbHRlclZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmYWxsYmFja0tleSA9IGZpbHRlci53aGVyZUtleSA/PyBmaWx0ZXIuaWQ7XG4gICAgICAgIGNvbnN0IHJhdyA9IHJlYWRXaGVyZVZhbHVlKHdoZXJlLCBmYWxsYmFja0tleSwgZmlsdGVyLnBhdGgpO1xuICAgICAgICBpZiAoIWlzRW1wdHlGaWx0ZXJWYWx1ZShyYXcpKSB7XG4gICAgICAgICAgZXFJbnB1dFtmaWx0ZXIuaWRdID0gcmF3IGFzIEZpbHRlclZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkRXFGaWx0ZXJzPHR5cGVvZiBzY2hlbWE+KFxuICAgICAgZXFJbnB1dCBhcyB1bmtub3duIGFzIEVxSW5wdXQ8dHlwZW9mIHNjaGVtYT4sXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiB7IHNjaGVtYSwgdG9XaGVyZSwgZnJvbVdoZXJlIH07XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZpbHRlcnMvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLFlBQVksRUFDWixTQUFTLEVBQ1QsV0FBVyxFQUNYLFdBQVcsR0FJWixNQUFNLHVCQUF1QixDQUFDO0FBRy9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFRNUMsTUFBTSxpQkFBaUIsR0FBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQU9sRCxTQUFTLFVBQVUsQ0FDakIsSUFBNkIsRUFDN0IsS0FBOEI7SUFFOUIsTUFBTSxJQUFJLEdBQTRCLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNsRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pELElBQ0UsS0FBSyxJQUFJLElBQUk7WUFDYixPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3pCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUTtZQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSTtZQUNqQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3pCLENBQUM7WUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUNwQixJQUFJLENBQUMsR0FBRyxDQUE0QixFQUNwQyxLQUFnQyxDQUNqQyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FB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QUN4QixDQUFDO0lBS0QsU0FBUyxTQUFTLENBQUMsS0FBbUI7UUFDcEMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsT0FBTyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUEwRCxFQUFFLENBQUM7UUFFMUUsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMvQixPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQW9CLENBQUM7Z0JBQzVDLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQWtCLENBQUM7Z0JBQzFDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUNuQixPQUE0QyxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuRmllbGQsXG4gIGJ1aWxkRXFGaWx0ZXJzLFxuICBkZWZpbmVTY2hlbWEsXG4gIGVudW1GaWVsZCxcbiAgbnVtYmVyRmllbGQsXG4gIHN0cmluZ0ZpZWxkLFxuICB0eXBlIEVxSW5wdXQsXG4gIHR5cGUgSW5mZXJGaWx0ZXJzLFxuICB0eXBlIFNjaGVtYSxcbn0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5JztcblxuaW1wb3J0IHR5cGUgeyBCYWNrb2ZmaWNlRmlsdGVyU3BlYyB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IHJlYWRXaGVyZVZhbHVlIH0gZnJvbSAnLi93aGVyZS5qcyc7XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VGaWx0ZXJTY2hlbWE8V2hlcmUsIFMgZXh0ZW5kcyBTY2hlbWEgPSBTY2hlbWE+ID0ge1xuICBzY2hlbWE6IFM7XG4gIHRvV2hlcmU6IChmaWx0ZXJzOiBJbmZlckZpbHRlcnM8Uz4pID0+IFdoZXJlIHwgbnVsbDtcbiAgZnJvbVdoZXJlOiAod2hlcmU6IFdoZXJlIHwgbnVsbCkgPT4gSW5mZXJGaWx0ZXJzPFM+O1xufTtcblxuY29uc3QgREVGQVVMVF9PUEVSQVRPUlM6IHJlYWRvbmx5IFsnZXEnXSA9IFsnZXEnXTtcblxudHlwZSBGaWx0ZXJWYWx1ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gbWVyZ2VXaGVyZShcbiAgYmFzZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHBhdGNoOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgY29uc3QgbmV4dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLmJhc2UgfTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGF0Y2gpKSB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgICB0eXBlb2YgbmV4dFtrZXldID09PSAnb2JqZWN0JyAmJlxuICAgICAgbmV4dFtrZXldICE9IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG5leHRba2V5XSlcbiAgICApIHtcbiAgICAgIG5leHRba2V5XSA9IG1lcmdlV2hlcmUoXG4gICAgICAgIG5leHRba2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5leHQ7XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyVmFsdWU8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGZpbHRlcnM6IEluZmVyRmlsdGVyczxTPixcbiAgaWQ6IHN0cmluZyxcbik6IEZpbHRlclZhbHVlIHtcbiAgY29uc3QgZW50cnkgPSBmaWx0ZXJzW2lkIGFzIGtleW9mIFNdO1xuICBpZiAoZW50cnkgPT0gbnVsbCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gJ29iamVjdCcgJiYgJ2VxJyBpbiBlbnRyeSkge1xuICAgIHJldHVybiAoZW50cnkgYXMgeyBlcT86IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfSkuZXE7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBpc0VtcHR5RmlsdGVyVmFsdWUodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZS50cmltKCkgPT09ICcnO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFja29mZmljZUZpbHRlclNjaGVtYTxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4oXG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPltdLFxuKTogQmFja29mZmljZUZpbHRlclNjaGVtYTxXaGVyZT4ge1xuICBjb25zdCBzY2hlbWEgPSBkZWZpbmVTY2hlbWEoXG4gICAgT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgZmlsdGVycy5tYXAoKGZpbHRlcikgPT4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci5raW5kKSB7XG4gICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICByZXR1cm4gW2ZpbHRlci5pZCwgYm9vbGVhbkZpZWxkKERFRkFVTFRfT1BFUkFUT1JTKV07XG4gICAgICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBmaWx0ZXIuaWQsXG4gICAgICAgICAgICAgIGVudW1GaWVsZChcbiAgICAgICAgICAgICAgICBmaWx0ZXIub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBERUZBVUxUX09QRVJBVE9SUyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBudW1iZXJGaWVsZChERUZBVUxUX09QRVJBVE9SUyldO1xuICAgICAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcbiAgICAgICAgICBjYXNlICdlbnRpdHlJZCc6XG4gICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBzdHJpbmdGaWVsZChERUZBVUxUX09QRVJBVE9SUyldO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApLFxuICApO1xuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgZnVuY3Rpb24gdG9XaGVyZShwYXJzZWQ6IEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPik6IFdoZXJlIHwgbnVsbCB7XG4gICAgbGV0IHdoZXJlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xuICAgICAgY29uc3QgdmFsdWUgPSBnZXRGaWx0ZXJWYWx1ZShwYXJzZWQsIGZpbHRlci5pZCk7XG4gICAgICBpZiAoIWlzRW1wdHlGaWx0ZXJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgcGFydGlhbCA9IGZpbHRlci50b0dyYXBoUUwodmFsdWUgYXMgbmV2ZXIpO1xuICAgICAgICBpZiAod2hlcmUgPT0gbnVsbCkge1xuICAgICAgICAgIHdoZXJlID0geyAuLi5wYXJ0aWFsIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2hlcmUgPSBtZXJnZVdoZXJlKHdoZXJlLCBwYXJ0aWFsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3aGVyZSA9PSBudWxsIHx8IE9iamVjdC5rZXlzKHdoZXJlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB3aGVyZSBhcyBXaGVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgZnVuY3Rpb24gZnJvbVdoZXJlKHdoZXJlOiBXaGVyZSB8IG51bGwpOiBJbmZlckZpbHRlcnM8dHlwZW9mIHNjaGVtYT4ge1xuICAgIGlmICh3aGVyZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gYnVpbGRFcUZpbHRlcnMoe30pO1xuICAgIH1cblxuICAgIGNvbnN0IGVxSW5wdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ+ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBmaWx0ZXJzKSB7XG4gICAgICBpZiAoZmlsdGVyLmZyb21HcmFwaFFMICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXIuZnJvbUdyYXBoUUwod2hlcmUpO1xuICAgICAgICBpZiAoIWlzRW1wdHlGaWx0ZXJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgICBlcUlucHV0W2ZpbHRlci5pZF0gPSB2YWx1ZSBhcyBGaWx0ZXJWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmFsbGJhY2tLZXkgPSBmaWx0ZXIud2hlcmVLZXkgPz8gZmlsdGVyLmlkO1xuICAgICAgICBjb25zdCByYXcgPSByZWFkV2hlcmVWYWx1ZSh3aGVyZSwgZmFsbGJhY2tLZXksIGZpbHRlci5wYXRoKTtcbiAgICAgICAgaWYgKCFpc0VtcHR5RmlsdGVyVmFsdWUocmF3KSkge1xuICAgICAgICAgIGVxSW5wdXRbZmlsdGVyLmlkXSA9IHJhdyBhcyBGaWx0ZXJWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBidWlsZEVxRmlsdGVyczx0eXBlb2Ygc2NoZW1hPihcbiAgICAgIGVxSW5wdXQgYXMgdW5rbm93biBhcyBFcUlucHV0PHR5cGVvZiBzY2hlbWE+LFxuICAgICk7XG4gIH1cblxuICByZXR1cm4geyBzY2hlbWEsIHRvV2hlcmUsIGZyb21XaGVyZSB9O1xufVxuIl19
@@ -1,11 +1,12 @@
1
- import type { BackofficeEntityManifestItem, BackofficeDetailLayoutFacetConfig, BackofficeDetailPageFacetConfig, BackofficeListFacetConfig, BackofficeLoadedEntityFacetModule, BackofficePickerFacetConfig, BackofficeToolEntityConfig, BackofficeToolFacetConfig, BackofficeResolvedToolFacetConfig, BackofficeResolvedDetailLayoutFacetConfig, BackofficeResolvedDetailPageFacetConfig, BackofficeResolvedEntityFacetModule, BackofficeResolvedListFacetConfig, BackofficeResolvedPickerFacetConfig } from './types.js';
1
+ import type { BackofficeOperationSort, BackofficeOperationWhere, BackofficeEntityManifestItem, BackofficeDetailLayoutFacetConfig, BackofficeDetailPageFacetConfig, BackofficeListFacetConfig, BackofficeLoadedEntityFacetModule, BackofficePickerFacetConfig, BackofficeToolEntityConfig, BackofficeToolFacetConfig, BackofficeResolvedToolFacetConfig, BackofficeResolvedDetailLayoutFacetConfig, BackofficeResolvedDetailPageFacetConfig, BackofficeResolvedEntityFacetModule, BackofficeResolvedListFacetConfig, BackofficeResolvedPickerFacetConfig } from './types.js';
2
+ import type { OperationType } from 'relay-runtime';
2
3
  export type ResolveBackofficeEntityOptions = {
3
4
  basePath: string;
4
5
  };
5
6
  export declare const resolveBackofficeToolRoute: (basePath: string, toolId: string, routeOverride?: string) => string;
6
7
  export declare function extractBackofficeToolFacetConfig(config: BackofficeToolEntityConfig): BackofficeToolFacetConfig;
7
- export declare function resolveBackofficeListFacetConfig<Where extends Record<string, unknown>, Sort extends string, RowRef, RowView, ListQueryData, ListFragmentData, ListQueryVariables>(config: BackofficeListFacetConfig<Where, Sort, RowRef, RowView, ListQueryData, ListFragmentData, ListQueryVariables>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedListFacetConfig<Where, Sort, RowRef, RowView, ListQueryData, ListFragmentData, ListQueryVariables>;
8
- export declare function resolveBackofficePickerFacetConfig<RowRef, RowView, PickerQueryData, PickerFragmentData, PickerQueryVariables>(config: BackofficePickerFacetConfig<RowRef, RowView, PickerQueryData, PickerFragmentData, PickerQueryVariables>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedPickerFacetConfig<RowRef, RowView, PickerQueryData, PickerFragmentData, PickerQueryVariables>;
8
+ export declare function resolveBackofficeListFacetConfig<TOperation extends OperationType, RowRef, RowView, ListFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, TSort extends string = BackofficeOperationSort<TOperation>>(config: BackofficeListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedListFacetConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort>;
9
+ export declare function resolveBackofficePickerFacetConfig<TOperation extends OperationType, RowRef, RowView, PickerFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>>(config: BackofficePickerFacetConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedPickerFacetConfig<TOperation, RowRef, RowView, PickerFragmentData, TWhere>;
9
10
  export declare function resolveBackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables>(config: BackofficeDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedDetailLayoutFacetConfig<LayoutRef, LayoutView, LayoutQueryData, LayoutFragmentRef, LayoutQueryVariables>;
10
11
  export declare function resolveBackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables>(config: BackofficeDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables>, manifest: BackofficeEntityManifestItem, _options: ResolveBackofficeEntityOptions): BackofficeResolvedDetailPageFacetConfig<LayoutView, DetailRef, DetailView, DetailQueryData, DetailFragmentRef, DetailQueryVariables>;
11
12
  export declare function resolveBackofficeToolFacetConfig(config: BackofficeToolFacetConfig, manifest: BackofficeEntityManifestItem, options: ResolveBackofficeEntityOptions): BackofficeResolvedToolFacetConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,iCAAiC,EACjC,+BAA+B,EAG/B,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,iCAAiC,EACjC,yCAAyC,EACzC,uCAAuC,EACvC,mCAAmC,EACnC,iCAAiC,EACjC,mCAAmC,EACpC,MAAM,YAAY,CAAC;AAIpB,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAwDF,eAAO,MAAM,0BAA0B,GACrC,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,gBAAgB,MAAM,KACrB,MASF,CAAC;AAqCF,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,0BAA0B,GACjC,yBAAyB,CAW3B;AAKD,wBAAgB,gCAAgC,CAC9C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,SAAS,MAAM,EACnB,MAAM,EACN,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAElB,MAAM,EAAE,yBAAyB,CAC/B,KAAK,EACL,IAAI,EACJ,MAAM,EACN,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,kBAAkB,CACnB,EACD,QAAQ,EAAE,4BAA4B,EAEtC,QAAQ,EAAE,8BAA8B,GACvC,iCAAiC,CAClC,KAAK,EACL,IAAI,EACJ,MAAM,EACN,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,kBAAkB,CACnB,CAoBA;AAKD,wBAAgB,kCAAkC,CAChD,MAAM,EACN,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EAEpB,MAAM,EAAE,2BAA2B,CACjC,MAAM,EACN,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,oBAAoB,CACrB,EACD,QAAQ,EAAE,4BAA4B,EAEtC,QAAQ,EAAE,8BAA8B,GACvC,mCAAmC,CACpC,MAAM,EACN,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,oBAAoB,CACrB,CAEA;AAKD,wBAAgB,wCAAwC,CACtD,SAAS,EACT,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EAEpB,MAAM,EAAE,iCAAiC,CACvC,SAAS,EACT,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,oBAAoB,CACrB,EACD,QAAQ,EAAE,4BAA4B,EAEtC,QAAQ,EAAE,8BAA8B,GACvC,yCAAyC,CAC1C,SAAS,EACT,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,oBAAoB,CACrB,CAEA;AAKD,wBAAgB,sCAAsC,CACpD,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EAEpB,MAAM,EAAE,+BAA+B,CACrC,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,oBAAoB,CACrB,EACD,QAAQ,EAAE,4BAA4B,EAEtC,QAAQ,EAAE,8BAA8B,GACvC,uCAAuC,CACxC,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,oBAAoB,CACrB,CAEA;AAKD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,yBAAyB,EACjC,QAAQ,EAAE,4BAA4B,EACtC,OAAO,EAAE,8BAA8B,GACtC,iCAAiC,CAmBnC;AAKD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,4BAA4B,EACtC,MAAM,EAAE,iCAAiC,EACzC,OAAO,EAAE,8BAA8B,GACtC,mCAAmC,CAmErC"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/resolve.ts"],"names":[],"mappings":"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"}