@plumile/backoffice-core 0.1.188 → 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.
- package/lib/esm/builders.d.ts +19 -8
- package/lib/esm/builders.d.ts.map +1 -1
- package/lib/esm/builders.js +78 -6
- package/lib/esm/capabilities.d.ts.map +1 -1
- package/lib/esm/capabilities.js +1 -1
- package/lib/esm/config/entity-builders.d.ts +3 -3
- package/lib/esm/config/entity-builders.d.ts.map +1 -1
- package/lib/esm/config/entity-builders.js +1 -1
- package/lib/esm/config/filters.d.ts +10 -3
- package/lib/esm/config/filters.d.ts.map +1 -1
- package/lib/esm/config/filters.js +74 -1
- package/lib/esm/filters/schema.d.ts.map +1 -1
- package/lib/esm/filters/schema.js +47 -11
- package/lib/esm/types.d.ts +17 -7
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/builders.d.ts +19 -8
- package/lib/types/builders.d.ts.map +1 -1
- package/lib/types/capabilities.d.ts.map +1 -1
- package/lib/types/config/entity-builders.d.ts +3 -3
- package/lib/types/config/entity-builders.d.ts.map +1 -1
- package/lib/types/config/filters.d.ts +10 -3
- package/lib/types/config/filters.d.ts.map +1 -1
- package/lib/types/filters/schema.d.ts.map +1 -1
- package/lib/types/types.d.ts +17 -7
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -210,4 +210,4 @@ export const buildBackofficeEntityPickerConfig = (options) => {
|
|
|
210
210
|
}),
|
|
211
211
|
};
|
|
212
212
|
};
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWJ1aWxkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9lbnRpdHktYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUEwQjNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQWlDLE1BQU0sWUFBWSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlCcEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUc7SUFDL0MsT0FBTyxFQUFFLFNBQVM7SUFDbEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsY0FBYyxFQUFFO1FBQ2QsT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsQ0FBQztRQUNaLE1BQU0sRUFBRTtZQUNOLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxPQUFPLEVBQUUsU0FBUztRQUNsQixXQUFXLEVBQUUsTUFBTTtRQUNuQixrQkFBa0IsRUFBRSxDQUFDO1FBQ3JCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDK0IsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxPQUF3QyxFQUNSLEVBQUU7SUFDbEMsSUFBSSxLQUFLLEdBQW1DLElBQUksQ0FBQztJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFD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S0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDbkQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7NEJBQ3RCLEtBQUssR0FBRyxTQUFTLENBQUM7d0JBQ3BCLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxPQUFPO29CQUNMLEtBQUs7b0JBQ0wsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQztZQUNKLENBQUMsQ0FBQztLQUNMLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxUYWdnZWROb2RlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5cbmltcG9ydCB7IEJBQ0tPRkZJQ0VfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4uL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VBbGlhc2VkUGlja2VyVmFsdWVSZXNwb25zZSxcbiAgQmFja29mZmljZUNvbHVtblNwZWMsXG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uLFxuICBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxDb250ZW50U3BlYyxcbiAgQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGUsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYyxcbiAgQmFja29mZmljZURldGFpbFZhcmlhYmxlcyxcbiAgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlSZWxhdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dCxcbiAgQmFja29mZmljZUxpc3RSZXNwb25zaXZlUHJvZmlsZSxcbiAgQmFja29mZmljZUxpc3RTdGF0ZSxcbiAgQmFja29mZmljZUxpc3RVaUNvbmZpZyxcbiAgQmFja29mZmljZU9wZXJhdGlvblNvcnQsXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZSxcbiAgQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQsXG4gIEJhY2tvZmZpY2VQaWNrZXJWYWx1ZUNvbmZpZyxcbiAgQmFja29mZmljZVJ1bnRpbWVFbnRpdHlDb3VudENvbmZpZyxcbiAgQmFja29mZmljZVJvd0ZsYWdTcGVjLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IGJ1aWxkR2VuZXJpY0RldGFpbEhlYWRlciB9IGZyb20gJy4vZGV0YWlsLmpzJztcbmltcG9ydCB7IG1hcEZpbHRlcnMsIHR5cGUgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWMgfSBmcm9tICcuL2ZpbHRlcnMuanMnO1xuaW1wb3J0IHsgZ2V0Um93SWQgfSBmcm9tICcuL2xpc3QuanMnO1xuaW1wb3J0IHsgbWFwU29ydHMsIHR5cGUgQmFja29mZmljZUxlZ2FjeVNvcnRTcGVjIH0gZnJvbSAnLi9zb3J0cy5qcyc7XG5pbXBvcnQgeyBzZXRXaGVyZVZhbHVlIH0gZnJvbSAnLi4vZmlsdGVycy93aGVyZS5qcyc7XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VXaGVyZUVudHJ5ID0ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHVua25vd247XG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VQaWNrZXJTZWFyY2hDb25maWc8V2hlcmU+ID0ge1xuICB3aGVyZUtleTogRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPjtcbiAgcGF0aD86IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZVBpY2tlclNjb3BlQ29uZmlnPFdoZXJlPiA9IHtcbiAga2V5czogcmVhZG9ubHkgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPltdO1xufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDS09GRklDRV9MSVNUX1VJX0NPTkZJRyA9IHtcbiAgZGVuc2l0eTogJ2NvbXBhY3QnLFxuICBkaXNwbGF5TW9kZTogJ2F1dG8nLFxuICBpbmZpbml0ZVNjcm9sbDoge1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgcm9vdE1hcmdpbjogJzcyMHB4IDBweCcsXG4gICAgdGhyZXNob2xkOiAwLFxuICAgIHN0YXR1czoge1xuICAgICAgc2hvd0xvYWRlZENvdW50OiB0cnVlLFxuICAgICAgc2hvd1RvdGFsQ291bnQ6IHRydWUsXG4gICAgICBzaG93RW5kU3RhdGU6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgdG9vbGJhcjoge1xuICAgIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgICBkaXNwbGF5TW9kZTogJ2F1dG8nLFxuICAgIG1heFByb21vdGVkRmlsdGVyczogMixcbiAgICBzaG93UmVmcmVzaDogdHJ1ZSxcbiAgICBzaG93U29ydDogdHJ1ZSxcbiAgICBzaG93RmlsdGVyQ2hpcHM6ICdhdXRvJyxcbiAgfSxcbn0gc2F0aXNmaWVzIEJhY2tvZmZpY2VMaXN0VWlDb25maWc7XG5cbmV4cG9ydCBjb25zdCBidWlsZFdoZXJlRnJvbUVudHJpZXMgPSAoXG4gIGVudHJpZXM6IHJlYWRvbmx5IEJhY2tvZmZpY2VXaGVyZUVudHJ5W10sXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPT4ge1xuICBsZXQgd2hlcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCA9IG51bGw7XG4gIGVudHJpZXMuZm9yRWFjaCgoeyBrZXksIHBhdGgsIHZhbHVlIH0pID0+IHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRXaGVyZSA9IHNldFdoZXJlVmFsdWUod2hlcmUsIGtleSwgdmFsdWUsIHBhdGgpO1xuICAgIGlmIChuZXh0V2hlcmUgIT0gbnVsbCkge1xuICAgICAgd2hlcmUgPSBuZXh0V2hlcmU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHdoZXJlO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQaWNrZXJTZWFyY2hGcm9tRmlsdGVycyA9IDxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgRmlsdGVyV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFdoZXJlLFxuPihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8RmlsdGVyV2hlcmU+W10sXG4pOiBCYWNrb2ZmaWNlUGlja2VyU2VhcmNoQ29uZmlnPFdoZXJlPiB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IG1hdGNoID0gZmlsdGVycy5maW5kKChmaWx0ZXIpID0+IHtcbiAgICByZXR1cm4gZmlsdGVyLmtpbmQgPT09ICd0ZXh0Q29udGFpbnMnO1xuICB9KTtcbiAgaWYgKG1hdGNoID09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHdoZXJlS2V5ID0gKG1hdGNoLndoZXJlS2V5ID8/IG1hdGNoLmlkKSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+O1xuICByZXR1cm4geyB3aGVyZUtleSwgcGF0aDogbWF0Y2gucGF0aCB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQaWNrZXJTY29wZUZyb21GaWx0ZXJzID0gPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBGaWx0ZXJXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gV2hlcmUsXG4+KFxuICBmaWx0ZXJzOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyU3BlYzxGaWx0ZXJXaGVyZT5bXSxcbiAgc3VwcG9ydGVkS2V5czogcmVhZG9ubHkgc3RyaW5nW10sXG4pOiBCYWNrb2ZmaWNlUGlja2VyU2NvcGVDb25maWc8V2hlcmU+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3Qgc2NvcGVkS2V5cyA9IG5ldyBTZXQ8RXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPj4oKTtcbiAgZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICBjb25zdCBrZXkgPSBTdHJpbmcoZmlsdGVyLndoZXJlS2V5ID8/IGZpbHRlci5pZCk7XG4gICAgaWYgKHN1cHBvcnRlZEtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgc2NvcGVkS2V5cy5hZGQoXG4gICAgICAgIChmaWx0ZXIud2hlcmVLZXkgPz8gZmlsdGVyLmlkKSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+LFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuICBpZiAoc2NvcGVkS2V5cy5zaXplID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4geyBrZXlzOiBBcnJheS5mcm9tKHNjb3BlZEtleXMpIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYgZXh0ZW5kcyBvYmplY3QsXG4gIFJvd1ZpZXcgZXh0ZW5kcyBvYmplY3QsXG4gIExpc3RGcmFnbWVudERhdGEgPSB1bmtub3duLFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4+KG9wdGlvbnM6IHtcbiAgdGl0bGU6IEkxOG5MYWJlbDtcbiAgY29sdW1uczogcmVhZG9ubHkgQmFja29mZmljZUNvbHVtblNwZWM8Um93Vmlldz5bXTtcbiAgcm93RmxhZ3M/OiByZWFkb25seSBCYWNrb2ZmaWNlUm93RmxhZ1NwZWM8Um93Vmlldz5bXTtcbiAgc29ydHM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lTb3J0U3BlYzxTb3J0PltdO1xuICBmaWx0ZXJzOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyU3BlYzxXaGVyZT5bXTtcbiAgZGVmYXVsdFN0YXRlOiBCYWNrb2ZmaWNlTGlzdFN0YXRlPFdoZXJlLCBTb3J0PjtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGNvdW50OiBCYWNrb2ZmaWNlUnVudGltZUVudGl0eUNvdW50Q29uZmlnPFdoZXJlPjtcbiAgZ2V0Q29ubmVjdGlvbjogKGRhdGE6IExpc3RGcmFnbWVudERhdGEpID0+IEJhY2tvZmZpY2VDb25uZWN0aW9uPFJvd1JlZj47XG4gIHRvUm93OiAocm93UmVmOiBSb3dSZWYpID0+IFJvd1ZpZXc7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBXaGVyZSwgU29ydD4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG4gIHJlc3BvbnNpdmU/OiBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVQcm9maWxlPFJvd1ZpZXc+O1xuICB1aT86IEJhY2tvZmZpY2VMaXN0VWlDb25maWc7XG59KTogQmFja29mZmljZUNvbm5lY3Rpb25MaXN0Q29uZmlnPFxuICBUT3BlcmF0aW9uLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIExpc3RGcmFnbWVudERhdGEsXG4gIFdoZXJlLFxuICBTb3J0XG4+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiAnY29ubmVjdGlvbicsXG4gICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgcXVlcnk6IG9wdGlvbnMucXVlcnksXG4gICAgZnJhZ21lbnQ6IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgY291bnQ6IG9wdGlvbnMuY291bnQsXG4gICAgZ2V0Q29ubmVjdGlvbjogb3B0aW9ucy5nZXRDb25uZWN0aW9uLFxuICAgIHRvUm93OiBvcHRpb25zLnRvUm93LFxuICAgIGdldFJvd0lkLFxuICAgIGNvbHVtbnM6IG9wdGlvbnMuY29sdW1ucyxcbiAgICByb3dGbGFnczogb3B0aW9ucy5yb3dGbGFncyxcbiAgICBzb3J0czogbWFwU29ydHMob3B0aW9ucy5zb3J0cyksXG4gICAgZmlsdGVyczogbWFwRmlsdGVycyhvcHRpb25zLmZpbHRlcnMpLFxuICAgIGRlZmF1bHRTdGF0ZTogb3B0aW9ucy5kZWZhdWx0U3RhdGUsXG4gICAgYnVpbGRRdWVyeVZhcmlhYmxlczpcbiAgICAgIG9wdGlvbnMuYnVpbGRRdWVyeVZhcmlhYmxlcyA/P1xuICAgICAgKChpbnB1dCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHdoZXJlOiBpbnB1dC53aGVyZSxcbiAgICAgICAgICBzb3J0OiBpbnB1dC5zb3J0LFxuICAgICAgICAgIGNvdW50OiBpbnB1dC5jb3VudCxcbiAgICAgICAgICBjdXJzb3I6IGlucHV0LmN1cnNvcixcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgIHJlc3BvbnNpdmU6IG9wdGlvbnMucmVzcG9uc2l2ZSA/PyB7XG4gICAgICBtb2RlOiAnYXV0bycsXG4gICAgICBkZW5zaXR5OiAnY29tcGFjdCcsXG4gICAgfSxcbiAgICB1aTogb3B0aW9ucy51aSA/PyBERUZBVUxUX0JBQ0tPRkZJQ0VfTElTVF9VSV9DT05GSUcsXG4gIH07XG59O1xuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEJhY2tvZmZpY2VEZXRhaWxQYWdlQ29uZmlnPFxuICBEZXRhaWxWaWV3IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sXG4gIERldGFpbERhdGEgPSBEZXRhaWxWaWV3LFxuICBMYXlvdXRWaWV3ID0gRGV0YWlsVmlldyxcbiAgRGV0YWlsUXVlcnlEYXRhID0gdW5rbm93bixcbiAgRGV0YWlsRnJhZ21lbnRLZXkgPSB1bmtub3duLFxuICBEZXRhaWxRdWVyeVZhcmlhYmxlcyA9IHsgaWQ6IHN0cmluZyB9LFxuPihvcHRpb25zOiB7XG4gIGlkOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgbGFiZWw6IEkxOG5MYWJlbDtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIHRvVmlldzogKGRhdGE6IERldGFpbERhdGEpID0+IERldGFpbFZpZXc7XG4gIGNvbnRlbnQ6IHJlYWRvbmx5IEJhY2tvZmZpY2VEZXRhaWxDb250ZW50U3BlYzxEZXRhaWxWaWV3PltdO1xuICBhY3Rpb25zPzogcmVhZG9ubHkgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWM8RGV0YWlsVmlldz5bXTtcbiAgcmVzb2x2ZU5vZGU6IChcbiAgICBkYXRhOiBEZXRhaWxRdWVyeURhdGEsXG4gICAgY29udGV4dDogeyBpZDogc3RyaW5nOyBkZXRhaWxJZD86IHN0cmluZyB9LFxuICApID0+IERldGFpbEZyYWdtZW50S2V5IHwgbnVsbDtcbiAgYnVpbGRWYXJpYWJsZXM/OiAoaW5wdXQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICB9KSA9PiBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzPERldGFpbFF1ZXJ5VmFyaWFibGVzPjtcbiAgaXNWaXNpYmxlPzogKGxheW91dFBhZ2U6IExheW91dFZpZXcpID0+IGJvb2xlYW47XG4gIHByb2ZpbGU/OiBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0UHJvZmlsZTxEZXRhaWxWaWV3Pjtcbn0pOiBCYWNrb2ZmaWNlRGV0YWlsUGFnZVNwZWM8XG4gIERldGFpbFZpZXcsXG4gIExheW91dFZpZXcsXG4gIERldGFpbERhdGEsXG4gIERldGFpbFF1ZXJ5RGF0YSxcbiAgRGV0YWlsRnJhZ21lbnRLZXksXG4gIERldGFpbFF1ZXJ5VmFyaWFibGVzXG4+IHtcbiAgcmV0dXJuIHtcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICByZXNvbHZlTm9kZTogb3B0aW9ucy5yZXNvbHZlTm9kZSxcbiAgICB0b1ZpZXc6IG9wdGlvbnMudG9WaWV3LFxuICAgIGJ1aWxkVmFyaWFibGVzOiBvcHRpb25zLmJ1aWxkVmFyaWFibGVzLFxuICAgIGlkOiBvcHRpb25zLmlkLFxuICAgIHBhdGg6IG9wdGlvbnMucGF0aCxcbiAgICBsYWJlbDogb3B0aW9ucy5sYWJlbCxcbiAgICBjb250ZW50OiBvcHRpb25zLmNvbnRlbnQsXG4gICAgYWN0aW9uczogb3B0aW9ucy5hY3Rpb25zLFxuICAgIGlzVmlzaWJsZTogb3B0aW9ucy5pc1Zpc2libGUsXG4gICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgYnVpbGRCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnID0gPFxuICBMYXlvdXREYXRhIGV4dGVuZHMgb2JqZWN0LFxuICBMYXlvdXRWaWV3IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sXG4gIE1haW5EYXRhIGV4dGVuZHMgb2JqZWN0ID0gTGF5b3V0RGF0YSxcbiAgTWFpblZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSA9IExheW91dFZpZXcsXG4gIExheW91dFF1ZXJ5RGF0YSA9IHVua25vd24sXG4gIE1haW5RdWVyeURhdGEgPSB1bmtub3duLFxuICBMYXlvdXRGcmFnbWVudEtleSA9IHVua25vd24sXG4gIE1haW5GcmFnbWVudEtleSA9IHVua25vd24sXG4gIExheW91dFF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4gIE1haW5RdWVyeVZhcmlhYmxlcyA9IHsgaWQ6IHN0cmluZyB9LFxuPihvcHRpb25zOiB7XG4gIHRpdGxlOiBJMThuTGFiZWw7XG4gIGhlYWRlclRpdGxlPzogSTE4bkxhYmVsO1xuICBoZWFkZXJTdWJ0aXRsZT86IEkxOG5MYWJlbDtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIHRvVmlldzogKGRhdGE6IE1haW5EYXRhKSA9PiBNYWluVmlldztcbiAgYWN0aW9ucz86IHJlYWRvbmx5IEJhY2tvZmZpY2VFbnRpdHlBY3Rpb25TcGVjPE1haW5WaWV3PltdO1xuICBsYXlvdXRRdWVyeT86IEdyYXBoUUxUYWdnZWROb2RlO1xuICBsYXlvdXRGcmFnbWVudD86IEdyYXBoUUxUYWdnZWROb2RlO1xuICBsYXlvdXRUb1ZpZXc/OiAoZGF0YTogTGF5b3V0RGF0YSkgPT4gTGF5b3V0VmlldztcbiAgaGVhZGVyPzogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgICBMYXlvdXREYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTGF5b3V0UXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBMYXlvdXRGcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXNcbiAgPlsnaGVhZGVyJ107XG4gIHJlc29sdmVOb2RlOiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydtYWluUGFnZSddWydyZXNvbHZlTm9kZSddO1xuICBsYXlvdXRSZXNvbHZlTm9kZTogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgICBMYXlvdXREYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTGF5b3V0UXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBMYXlvdXRGcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXNcbiAgPlsnbGF5b3V0UGFnZSddWydyZXNvbHZlTm9kZSddO1xuICBidWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8TWFpblF1ZXJ5VmFyaWFibGVzPjtcbiAgbGF5b3V0QnVpbGRWYXJpYWJsZXM/OiAoaW5wdXQ6IHtcbiAgICBpZDogc3RyaW5nO1xuICB9KSA9PiBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzPExheW91dFF1ZXJ5VmFyaWFibGVzPjtcbiAgcmVsYXRpb25zPzogcmVhZG9ubHkgQmFja29mZmljZUVudGl0eVJlbGF0aW9uU3BlYzxMYXlvdXRWaWV3PltdO1xuICBkZXRhaWxDb250ZW50PzogcmVhZG9ubHkgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjPE1haW5WaWV3PltdO1xuICBtYWluUGFnZUlkPzogc3RyaW5nO1xuICBtYWluUGFnZVBhdGg/OiBzdHJpbmc7XG4gIG1haW5QYWdlTGFiZWw/OiBJMThuTGFiZWw7XG4gIHN1YlBhZ2VzPzogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgICBMYXlvdXREYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTGF5b3V0UXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBMYXlvdXRGcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXNcbiAgPlsnc3ViUGFnZXMnXTtcbiAgcHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPExheW91dFZpZXc+O1xuICBtYWluUGFnZVByb2ZpbGU/OiBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0UHJvZmlsZTxNYWluVmlldz47XG59KTogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgTGF5b3V0RGF0YSxcbiAgTGF5b3V0VmlldyxcbiAgTWFpbkRhdGEsXG4gIE1haW5WaWV3LFxuICBNYWluRGF0YSxcbiAgTWFpblZpZXcsXG4gIExheW91dFF1ZXJ5RGF0YSxcbiAgTWFpblF1ZXJ5RGF0YSxcbiAgTWFpblF1ZXJ5RGF0YSxcbiAgTGF5b3V0RnJhZ21lbnRLZXksXG4gIE1haW5GcmFnbWVudEtleSxcbiAgTWFpbkZyYWdtZW50S2V5LFxuICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICBNYWluUXVlcnlWYXJpYWJsZXNcbj4gPT4ge1xuICBjb25zdCBkZWZhdWx0SGVhZGVyID0gYnVpbGRHZW5lcmljRGV0YWlsSGVhZGVyKHtcbiAgICB0aXRsZTogb3B0aW9ucy5oZWFkZXJUaXRsZSA/PyBvcHRpb25zLnRpdGxlLFxuICAgIHN1YnRpdGxlOiBvcHRpb25zLmhlYWRlclN1YnRpdGxlLFxuICB9KTtcbiAgY29uc3QgbWFpblBhZ2VJZCA9IG9wdGlvbnMubWFpblBhZ2VJZCA/PyAnb3ZlcnZpZXcnO1xuICBjb25zdCBtYWluUGFnZVBhdGggPSBvcHRpb25zLm1haW5QYWdlUGF0aCA/PyAnb3ZlcnZpZXcnO1xuICBjb25zdCBtYWluUGFnZUxhYmVsID0gb3B0aW9ucy5tYWluUGFnZUxhYmVsID8/IG9wdGlvbnMudGl0bGU7XG4gIGNvbnN0IG1haW5QYWdlID0gYnVpbGRCYWNrb2ZmaWNlRGV0YWlsUGFnZUNvbmZpZzxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+KHtcbiAgICBpZDogbWFpblBhZ2VJZCxcbiAgICBwYXRoOiBtYWluUGFnZVBhdGgsXG4gICAgbGFiZWw6IG1haW5QYWdlTGFiZWwsXG4gICAgcXVlcnk6IG9wdGlvbnMucXVlcnksXG4gICAgZnJhZ21lbnQ6IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgcmVzb2x2ZU5vZGU6IG9wdGlvbnMucmVzb2x2ZU5vZGUsXG4gICAgdG9WaWV3OiBvcHRpb25zLnRvVmlldyxcbiAgICBidWlsZFZhcmlhYmxlczogb3B0aW9ucy5idWlsZFZhcmlhYmxlcyxcbiAgICBjb250ZW50OiBvcHRpb25zLmRldGFpbENvbnRlbnQgPz8gW10sXG4gICAgYWN0aW9uczogb3B0aW9ucy5hY3Rpb25zLFxuICAgIHByb2ZpbGU6IG9wdGlvbnMubWFpblBhZ2VQcm9maWxlLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHRpdGxlOiBvcHRpb25zLnRpdGxlLFxuICAgIGhlYWRlcjogb3B0aW9ucy5oZWFkZXIgPz8gZGVmYXVsdEhlYWRlcixcbiAgICByZWxhdGlvbnM6IG9wdGlvbnMucmVsYXRpb25zLFxuICAgIGxheW91dFBhZ2U6IHtcbiAgICAgIHF1ZXJ5OiBvcHRpb25zLmxheW91dFF1ZXJ5ID8/IG9wdGlvbnMucXVlcnksXG4gICAgICBmcmFnbWVudDogb3B0aW9ucy5sYXlvdXRGcmFnbWVudCA/PyBvcHRpb25zLmZyYWdtZW50LFxuICAgICAgcmVzb2x2ZU5vZGU6IG9wdGlvbnMubGF5b3V0UmVzb2x2ZU5vZGUsXG4gICAgICB0b1ZpZXc6XG4gICAgICAgIG9wdGlvbnMubGF5b3V0VG9WaWV3ID8/XG4gICAgICAgIChvcHRpb25zLnRvVmlldyBhcyB1bmtub3duIGFzIChkYXRhOiBMYXlvdXREYXRhKSA9PiBMYXlvdXRWaWV3KSxcbiAgICAgIGJ1aWxkVmFyaWFibGVzOlxuICAgICAgICBvcHRpb25zLmxheW91dEJ1aWxkVmFyaWFibGVzID8/XG4gICAgICAgIChvcHRpb25zLmJ1aWxkVmFyaWFibGVzIGFzIHVua25vd24gYXNcbiAgICAgICAgICB8ICgoaW5wdXQ6IHtcbiAgICAgICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAgIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8TGF5b3V0UXVlcnlWYXJpYWJsZXM+KVxuICAgICAgICAgIHwgdW5kZWZpbmVkKSxcbiAgICB9LFxuICAgIG1haW5QYWdlLFxuICAgIHN1YlBhZ2VzOiBvcHRpb25zLnN1YlBhZ2VzLFxuICAgIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VDb25uZWN0aW9uRGV0YWlsVmFyaWFibGVzID0gPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBTb3J0IGV4dGVuZHMgc3RyaW5nLFxuPihpbnB1dDoge1xuICBkZXRhaWxJZDogc3RyaW5nO1xuICB3aGVyZTogV2hlcmUgfCBudWxsO1xuICBzb3J0OiBTb3J0IHwgbnVsbDtcbn0pOiBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzPHtcbiAgd2hlcmU6IFdoZXJlIHwgbnVsbDtcbiAgc29ydDogU29ydCB8IG51bGw7XG4gIGNvdW50OiBudW1iZXI7XG59PiA9PiB7XG4gIHJldHVybiB7XG4gICAgZGV0YWlsSWQ6IGlucHV0LmRldGFpbElkLFxuICAgIHZhcmlhYmxlczoge1xuICAgICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgICAgc29ydDogaW5wdXQuc29ydCxcbiAgICAgIGNvdW50OiBCQUNLT0ZGSUNFX0xJU1RfREVGQVVMVFMucGFnZVNpemUsXG4gICAgfSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYgZXh0ZW5kcyBvYmplY3QsXG4gIFJvd1ZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgUGlja2VyRnJhZ21lbnREYXRhID0gdW5rbm93bixcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZTxUT3BlcmF0aW9uPixcbiAgVmFsdWVRdWVyeURhdGEgPSBCYWNrb2ZmaWNlQWxpYXNlZFBpY2tlclZhbHVlUmVzcG9uc2U8c3RyaW5nLCBSb3dSZWY+LFxuPihvcHRpb25zOiB7XG4gIHF1ZXJ5OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgZnJhZ21lbnQ6IEdyYXBoUUxUYWdnZWROb2RlO1xuICB2YWx1ZT86IEJhY2tvZmZpY2VQaWNrZXJWYWx1ZUNvbmZpZzxSb3dSZWYsIFJvd1ZpZXcsIFZhbHVlUXVlcnlEYXRhPjtcbiAgZ2V0Q29ubmVjdGlvbjogKGRhdGE6IFBpY2tlckZyYWdtZW50RGF0YSkgPT4gQmFja29mZmljZUNvbm5lY3Rpb248Um93UmVmPjtcbiAgdG9Sb3c6IChyb3dSZWY6IFJvd1JlZikgPT4gUm93VmlldztcbiAgZ2V0Um93SWQ/OiAocm93OiBSb3dWaWV3KSA9PiBzdHJpbmc7XG4gIHNlYXJjaD86IEJhY2tvZmZpY2VQaWNrZXJTZWFyY2hDb25maWc8V2hlcmU+O1xuICBzY29wZT86IEJhY2tvZmZpY2VQaWNrZXJTY29wZUNvbmZpZzxXaGVyZT47XG4gIHNlYXJjaEVuYWJsZWQ/OiBib29sZWFuO1xuICBzZWFyY2hSZXF1aXJlZD86IGJvb2xlYW47XG4gIHNlYXJjaFBsYWNlaG9sZGVyPzogSTE4bkxhYmVsO1xuICBidWlsZFF1ZXJ5VmFyaWFibGVzPzogKFxuICAgIGlucHV0OiBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dDxUT3BlcmF0aW9uLCBXaGVyZT4sXG4gICkgPT4gVE9wZXJhdGlvblsndmFyaWFibGVzJ107XG59KTogQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZzxcbiAgVE9wZXJhdGlvbixcbiAgUm93UmVmLFxuICBSb3dWaWV3LFxuICBQaWNrZXJGcmFnbWVudERhdGEsXG4gIFdoZXJlLFxuICBWYWx1ZVF1ZXJ5RGF0YVxuPiA9PiB7XG4gIGNvbnN0IHNlYXJjaENvbmZpZyA9IG9wdGlvbnMuc2VhcmNoO1xuICBjb25zdCBzY29wZUtleXMgPSBvcHRpb25zLnNjb3BlPy5rZXlzID8/IFtdO1xuICBjb25zdCBzZWFyY2hSZXF1aXJlZCA9IG9wdGlvbnMuc2VhcmNoUmVxdWlyZWQgPz8gZmFsc2U7XG4gIGNvbnN0IHNlYXJjaEVuYWJsZWQgPVxuICAgIG9wdGlvbnMuc2VhcmNoRW5hYmxlZCA/PyAoc2VhcmNoQ29uZmlnICE9IG51bGwgfHwgc2VhcmNoUmVxdWlyZWQpO1xuICBjb25zdCBnZXRSZXNvbHZlZFJvd0lkID1cbiAgICBvcHRpb25zLmdldFJvd0lkID8/XG4gICAgKChyb3c6IFJvd1ZpZXcpID0+IHtcbiAgICAgIHJldHVybiByb3cuaWQ7XG4gICAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICB2YWx1ZTogb3B0aW9ucy52YWx1ZSxcbiAgICBnZXRDb25uZWN0aW9uOiBvcHRpb25zLmdldENvbm5lY3Rpb24sXG4gICAgdG9Sb3c6IG9wdGlvbnMudG9Sb3csXG4gICAgZ2V0Um93SWQ6IGdldFJlc29sdmVkUm93SWQsXG4gICAgc2VhcmNoRW5hYmxlZCxcbiAgICBzZWFyY2hSZXF1aXJlZCxcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogb3B0aW9ucy5zZWFyY2hQbGFjZWhvbGRlcixcbiAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgb3B0aW9ucy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/XG4gICAgICAoKGlucHV0KSA9PiB7XG4gICAgICAgIGNvbnN0IHRyaW1tZWQgPSBpbnB1dC5zZWFyY2gudHJpbSgpO1xuICAgICAgICBsZXQgd2hlcmU6IFdoZXJlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGlmIChzZWFyY2hDb25maWcgIT0gbnVsbCAmJiB0cmltbWVkICE9PSAnJykge1xuICAgICAgICAgIGNvbnN0IG5leHRXaGVyZSA9IHNldFdoZXJlVmFsdWUoXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgc2VhcmNoQ29uZmlnLndoZXJlS2V5LFxuICAgICAgICAgICAgdHJpbW1lZCxcbiAgICAgICAgICAgIHNlYXJjaENvbmZpZy5wYXRoLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG5leHRXaGVyZSAhPSBudWxsKSB7XG4gICAgICAgICAgICB3aGVyZSA9IG5leHRXaGVyZSBhcyBXaGVyZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0LnNjb3BlICE9IG51bGwgJiYgc2NvcGVLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzY29wZUtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnNjb3BlPy5bU3RyaW5nKGtleSldO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV4dFdoZXJlID0gc2V0V2hlcmVWYWx1ZSh3aGVyZSwga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBpZiAobmV4dFdoZXJlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgd2hlcmUgPSBuZXh0V2hlcmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB3aGVyZSxcbiAgICAgICAgICBjb3VudDogMjAsXG4gICAgICAgICAgY3Vyc29yOiBudWxsLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gIH07XG59O1xuIl19
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWJ1aWxkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9lbnRpdHktYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUEwQjNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQWlDLE1BQU0sWUFBWSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlCcEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUc7SUFDL0MsT0FBTyxFQUFFLFNBQVM7SUFDbEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsY0FBYyxFQUFFO1FBQ2QsT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsQ0FBQztRQUNaLE1BQU0sRUFBRTtZQUNOLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxPQUFPLEVBQUUsU0FBUztRQUNsQixXQUFXLEVBQUUsTUFBTTtRQUNuQixrQkFBa0IsRUFBRSxDQUFDO1FBQ3JCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDK0IsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxPQUF3QyxFQUNSLEVBQUU7SUFDbEMsSUFBSSxLQUFLLEdBQW1DLElBQUksQ0FBQztJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFD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S0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDbkQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7NEJBQ3RCLEtBQUssR0FBRyxTQUFTLENBQUM7d0JBQ3BCLENBQUM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFDRCxPQUFPO29CQUNMLEtBQUs7b0JBQ0wsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQztZQUNKLENBQUMsQ0FBQztLQUNMLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEdyYXBoUUxUYWdnZWROb2RlLCBPcGVyYXRpb25UeXBlIH0gZnJvbSAncmVsYXktcnVudGltZSc7XG5cbmltcG9ydCB7IEJBQ0tPRkZJQ0VfTElTVF9ERUZBVUxUUyB9IGZyb20gJy4uL2NvbnN0YW50cy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJhY2tvZmZpY2VBbGlhc2VkUGlja2VyVmFsdWVSZXNwb25zZSxcbiAgQmFja29mZmljZUNvbHVtblNwZWMsXG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uLFxuICBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcsXG4gIEJhY2tvZmZpY2VEZXRhaWxDb250ZW50U3BlYyxcbiAgQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGUsXG4gIEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYyxcbiAgQmFja29mZmljZURldGFpbFZhcmlhYmxlcyxcbiAgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWcsXG4gIEJhY2tvZmZpY2VFbnRpdHlSZWxhdGlvblNwZWMsXG4gIEJhY2tvZmZpY2VMaXN0UXVlcnlJbnB1dCxcbiAgQmFja29mZmljZUxpc3RSZXNwb25zaXZlUHJvZmlsZSxcbiAgQmFja29mZmljZUxpc3RTdGF0ZSxcbiAgQmFja29mZmljZUxpc3RVaUNvbmZpZyxcbiAgQmFja29mZmljZU9wZXJhdGlvblNvcnQsXG4gIEJhY2tvZmZpY2VPcGVyYXRpb25XaGVyZSxcbiAgQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQsXG4gIEJhY2tvZmZpY2VQaWNrZXJWYWx1ZUNvbmZpZyxcbiAgQmFja29mZmljZVJ1bnRpbWVFbnRpdHlDb3VudENvbmZpZyxcbiAgQmFja29mZmljZVJvd0ZsYWdTcGVjLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IGJ1aWxkR2VuZXJpY0RldGFpbEhlYWRlciB9IGZyb20gJy4vZGV0YWlsLmpzJztcbmltcG9ydCB7IG1hcEZpbHRlcnMsIHR5cGUgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWMgfSBmcm9tICcuL2ZpbHRlcnMuanMnO1xuaW1wb3J0IHsgZ2V0Um93SWQgfSBmcm9tICcuL2xpc3QuanMnO1xuaW1wb3J0IHsgbWFwU29ydHMsIHR5cGUgQmFja29mZmljZUxlZ2FjeVNvcnRTcGVjIH0gZnJvbSAnLi9zb3J0cy5qcyc7XG5pbXBvcnQgeyBzZXRXaGVyZVZhbHVlIH0gZnJvbSAnLi4vZmlsdGVycy93aGVyZS5qcyc7XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VXaGVyZUVudHJ5ID0ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHVua25vd247XG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VQaWNrZXJTZWFyY2hDb25maWc8V2hlcmU+ID0ge1xuICB3aGVyZUtleTogRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPjtcbiAgcGF0aD86IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZVBpY2tlclNjb3BlQ29uZmlnPFdoZXJlPiA9IHtcbiAga2V5czogcmVhZG9ubHkgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPltdO1xufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQkFDS09GRklDRV9MSVNUX1VJX0NPTkZJRyA9IHtcbiAgZGVuc2l0eTogJ2NvbXBhY3QnLFxuICBkaXNwbGF5TW9kZTogJ2F1dG8nLFxuICBpbmZpbml0ZVNjcm9sbDoge1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgcm9vdE1hcmdpbjogJzcyMHB4IDBweCcsXG4gICAgdGhyZXNob2xkOiAwLFxuICAgIHN0YXR1czoge1xuICAgICAgc2hvd0xvYWRlZENvdW50OiB0cnVlLFxuICAgICAgc2hvd1RvdGFsQ291bnQ6IHRydWUsXG4gICAgICBzaG93RW5kU3RhdGU6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgdG9vbGJhcjoge1xuICAgIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgICBkaXNwbGF5TW9kZTogJ2F1dG8nLFxuICAgIG1heFByb21vdGVkRmlsdGVyczogMixcbiAgICBzaG93UmVmcmVzaDogdHJ1ZSxcbiAgICBzaG93U29ydDogdHJ1ZSxcbiAgICBzaG93RmlsdGVyQ2hpcHM6ICdhdXRvJyxcbiAgfSxcbn0gc2F0aXNmaWVzIEJhY2tvZmZpY2VMaXN0VWlDb25maWc7XG5cbmV4cG9ydCBjb25zdCBidWlsZFdoZXJlRnJvbUVudHJpZXMgPSAoXG4gIGVudHJpZXM6IHJlYWRvbmx5IEJhY2tvZmZpY2VXaGVyZUVudHJ5W10sXG4pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPT4ge1xuICBsZXQgd2hlcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCA9IG51bGw7XG4gIGVudHJpZXMuZm9yRWFjaCgoeyBrZXksIHBhdGgsIHZhbHVlIH0pID0+IHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5leHRXaGVyZSA9IHNldFdoZXJlVmFsdWUod2hlcmUsIGtleSwgdmFsdWUsIHBhdGgpO1xuICAgIGlmIChuZXh0V2hlcmUgIT0gbnVsbCkge1xuICAgICAgd2hlcmUgPSBuZXh0V2hlcmU7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHdoZXJlO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQaWNrZXJTZWFyY2hGcm9tRmlsdGVycyA9IDxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgRmlsdGVyV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFdoZXJlLFxuPihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8RmlsdGVyV2hlcmU+W10sXG4pOiBCYWNrb2ZmaWNlUGlja2VyU2VhcmNoQ29uZmlnPFdoZXJlPiB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IG1hdGNoID0gZmlsdGVycy5maW5kKChmaWx0ZXIpID0+IHtcbiAgICByZXR1cm4gZmlsdGVyLmtpbmQgPT09ICd0ZXh0Q29udGFpbnMnO1xuICB9KTtcbiAgaWYgKG1hdGNoID09IG51bGwpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IHdoZXJlS2V5ID0gKG1hdGNoLndoZXJlS2V5ID8/IG1hdGNoLmlkKSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+O1xuICByZXR1cm4geyB3aGVyZUtleSwgcGF0aDogbWF0Y2gucGF0aCB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmVQaWNrZXJTY29wZUZyb21GaWx0ZXJzID0gPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBGaWx0ZXJXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gV2hlcmUsXG4+KFxuICBmaWx0ZXJzOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyU3BlYzxGaWx0ZXJXaGVyZT5bXSxcbiAgc3VwcG9ydGVkS2V5czogcmVhZG9ubHkgc3RyaW5nW10sXG4pOiBCYWNrb2ZmaWNlUGlja2VyU2NvcGVDb25maWc8V2hlcmU+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3Qgc2NvcGVkS2V5cyA9IG5ldyBTZXQ8RXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPj4oKTtcbiAgZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICBjb25zdCBrZXkgPSBTdHJpbmcoZmlsdGVyLndoZXJlS2V5ID8/IGZpbHRlci5pZCk7XG4gICAgaWYgKHN1cHBvcnRlZEtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgc2NvcGVkS2V5cy5hZGQoXG4gICAgICAgIChmaWx0ZXIud2hlcmVLZXkgPz8gZmlsdGVyLmlkKSBhcyBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+LFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuICBpZiAoc2NvcGVkS2V5cy5zaXplID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4geyBrZXlzOiBBcnJheS5mcm9tKHNjb3BlZEtleXMpIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWcgPSA8XG4gIFRPcGVyYXRpb24gZXh0ZW5kcyBPcGVyYXRpb25UeXBlLFxuICBSb3dSZWYgZXh0ZW5kcyBvYmplY3QsXG4gIFJvd1ZpZXcgZXh0ZW5kcyBvYmplY3QsXG4gIExpc3RGcmFnbWVudERhdGEgPSB1bmtub3duLFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBTb3J0IGV4dGVuZHMgc3RyaW5nID0gQmFja29mZmljZU9wZXJhdGlvblNvcnQ8VE9wZXJhdGlvbj4sXG4gIEVudGl0eUlkIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuPihvcHRpb25zOiB7XG4gIHRpdGxlOiBJMThuTGFiZWw7XG4gIGNvbHVtbnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VDb2x1bW5TcGVjPFJvd1ZpZXc+W107XG4gIHJvd0ZsYWdzPzogcmVhZG9ubHkgQmFja29mZmljZVJvd0ZsYWdTcGVjPFJvd1ZpZXc+W107XG4gIHNvcnRzOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5U29ydFNwZWM8U29ydD5bXTtcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8V2hlcmUsIEVudGl0eUlkPltdO1xuICBkZWZhdWx0U3RhdGU6IEJhY2tvZmZpY2VMaXN0U3RhdGU8V2hlcmUsIFNvcnQ+O1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgY291bnQ6IEJhY2tvZmZpY2VSdW50aW1lRW50aXR5Q291bnRDb25maWc8V2hlcmU+O1xuICBnZXRDb25uZWN0aW9uOiAoZGF0YTogTGlzdEZyYWdtZW50RGF0YSkgPT4gQmFja29mZmljZUNvbm5lY3Rpb248Um93UmVmPjtcbiAgdG9Sb3c6IChyb3dSZWY6IFJvd1JlZikgPT4gUm93VmlldztcbiAgYnVpbGRRdWVyeVZhcmlhYmxlcz86IChcbiAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFdoZXJlLCBTb3J0PixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgcmVzcG9uc2l2ZT86IEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZVByb2ZpbGU8Um93Vmlldz47XG4gIHVpPzogQmFja29mZmljZUxpc3RVaUNvbmZpZztcbn0pOiBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWc8XG4gIFRPcGVyYXRpb24sXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgV2hlcmUsXG4gIFNvcnQsXG4gIGFueSxcbiAgRW50aXR5SWRcbj4gPT4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdjb25uZWN0aW9uJyxcbiAgICB0aXRsZTogb3B0aW9ucy50aXRsZSxcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICBjb3VudDogb3B0aW9ucy5jb3VudCxcbiAgICBnZXRDb25uZWN0aW9uOiBvcHRpb25zLmdldENvbm5lY3Rpb24sXG4gICAgdG9Sb3c6IG9wdGlvbnMudG9Sb3csXG4gICAgZ2V0Um93SWQsXG4gICAgY29sdW1uczogb3B0aW9ucy5jb2x1bW5zLFxuICAgIHJvd0ZsYWdzOiBvcHRpb25zLnJvd0ZsYWdzLFxuICAgIHNvcnRzOiBtYXBTb3J0cyhvcHRpb25zLnNvcnRzKSxcbiAgICBmaWx0ZXJzOiBtYXBGaWx0ZXJzKG9wdGlvbnMuZmlsdGVycyksXG4gICAgZGVmYXVsdFN0YXRlOiBvcHRpb25zLmRlZmF1bHRTdGF0ZSxcbiAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgb3B0aW9ucy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/XG4gICAgICAoKGlucHV0KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgICAgICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgICAgICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgICAgICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgcmVzcG9uc2l2ZTogb3B0aW9ucy5yZXNwb25zaXZlID8/IHtcbiAgICAgIG1vZGU6ICdhdXRvJyxcbiAgICAgIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgICB9LFxuICAgIHVpOiBvcHRpb25zLnVpID8/IERFRkFVTFRfQkFDS09GRklDRV9MSVNUX1VJX0NPTkZJRyxcbiAgfTtcbn07XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQmFja29mZmljZURldGFpbFBhZ2VDb25maWc8XG4gIERldGFpbFZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgRGV0YWlsRGF0YSA9IERldGFpbFZpZXcsXG4gIExheW91dFZpZXcgPSBEZXRhaWxWaWV3LFxuICBEZXRhaWxRdWVyeURhdGEgPSB1bmtub3duLFxuICBEZXRhaWxGcmFnbWVudEtleSA9IHVua25vd24sXG4gIERldGFpbFF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4+KG9wdGlvbnM6IHtcbiAgaWQ6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBsYWJlbDogSTE4bkxhYmVsO1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgdG9WaWV3OiAoZGF0YTogRGV0YWlsRGF0YSkgPT4gRGV0YWlsVmlldztcbiAgY29udGVudDogcmVhZG9ubHkgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjPERldGFpbFZpZXc+W107XG4gIGFjdGlvbnM/OiByZWFkb25seSBCYWNrb2ZmaWNlRW50aXR5QWN0aW9uU3BlYzxEZXRhaWxWaWV3PltdO1xuICByZXNvbHZlTm9kZTogKFxuICAgIGRhdGE6IERldGFpbFF1ZXJ5RGF0YSxcbiAgICBjb250ZXh0OiB7IGlkOiBzdHJpbmc7IGRldGFpbElkPzogc3RyaW5nIH0sXG4gICkgPT4gRGV0YWlsRnJhZ21lbnRLZXkgfCBudWxsO1xuICBidWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8RGV0YWlsUXVlcnlWYXJpYWJsZXM+O1xuICBpc1Zpc2libGU/OiAobGF5b3V0UGFnZTogTGF5b3V0VmlldykgPT4gYm9vbGVhbjtcbiAgcHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPERldGFpbFZpZXc+O1xufSk6IEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYzxcbiAgRGV0YWlsVmlldyxcbiAgTGF5b3V0VmlldyxcbiAgRGV0YWlsRGF0YSxcbiAgRGV0YWlsUXVlcnlEYXRhLFxuICBEZXRhaWxGcmFnbWVudEtleSxcbiAgRGV0YWlsUXVlcnlWYXJpYWJsZXNcbj4ge1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxuICAgIGZyYWdtZW50OiBvcHRpb25zLmZyYWdtZW50LFxuICAgIHJlc29sdmVOb2RlOiBvcHRpb25zLnJlc29sdmVOb2RlLFxuICAgIHRvVmlldzogb3B0aW9ucy50b1ZpZXcsXG4gICAgYnVpbGRWYXJpYWJsZXM6IG9wdGlvbnMuYnVpbGRWYXJpYWJsZXMsXG4gICAgaWQ6IG9wdGlvbnMuaWQsXG4gICAgcGF0aDogb3B0aW9ucy5wYXRoLFxuICAgIGxhYmVsOiBvcHRpb25zLmxhYmVsLFxuICAgIGNvbnRlbnQ6IG9wdGlvbnMuY29udGVudCxcbiAgICBhY3Rpb25zOiBvcHRpb25zLmFjdGlvbnMsXG4gICAgaXNWaXNpYmxlOiBvcHRpb25zLmlzVmlzaWJsZSxcbiAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcgPSA8XG4gIExheW91dERhdGEgZXh0ZW5kcyBvYmplY3QsXG4gIExheW91dFZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgTWFpbkRhdGEgZXh0ZW5kcyBvYmplY3QgPSBMYXlvdXREYXRhLFxuICBNYWluVmlldyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ID0gTGF5b3V0VmlldyxcbiAgTGF5b3V0UXVlcnlEYXRhID0gdW5rbm93bixcbiAgTWFpblF1ZXJ5RGF0YSA9IHVua25vd24sXG4gIExheW91dEZyYWdtZW50S2V5ID0gdW5rbm93bixcbiAgTWFpbkZyYWdtZW50S2V5ID0gdW5rbm93bixcbiAgTGF5b3V0UXVlcnlWYXJpYWJsZXMgPSB7IGlkOiBzdHJpbmcgfSxcbiAgTWFpblF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4+KG9wdGlvbnM6IHtcbiAgdGl0bGU6IEkxOG5MYWJlbDtcbiAgaGVhZGVyVGl0bGU/OiBJMThuTGFiZWw7XG4gIGhlYWRlclN1YnRpdGxlPzogSTE4bkxhYmVsO1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgdG9WaWV3OiAoZGF0YTogTWFpbkRhdGEpID0+IE1haW5WaWV3O1xuICBhY3Rpb25zPzogcmVhZG9ubHkgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWM8TWFpblZpZXc+W107XG4gIGxheW91dFF1ZXJ5PzogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGxheW91dEZyYWdtZW50PzogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGxheW91dFRvVmlldz86IChkYXRhOiBMYXlvdXREYXRhKSA9PiBMYXlvdXRWaWV3O1xuICBoZWFkZXI/OiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydoZWFkZXInXTtcbiAgcmVzb2x2ZU5vZGU6IEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWc8XG4gICAgTGF5b3V0RGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIExheW91dFF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTGF5b3V0RnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID5bJ21haW5QYWdlJ11bJ3Jlc29sdmVOb2RlJ107XG4gIGxheW91dFJlc29sdmVOb2RlOiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydsYXlvdXRQYWdlJ11bJ3Jlc29sdmVOb2RlJ107XG4gIGJ1aWxkVmFyaWFibGVzPzogKGlucHV0OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfSkgPT4gQmFja29mZmljZURldGFpbFZhcmlhYmxlczxNYWluUXVlcnlWYXJpYWJsZXM+O1xuICBsYXlvdXRCdWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8TGF5b3V0UXVlcnlWYXJpYWJsZXM+O1xuICByZWxhdGlvbnM/OiByZWFkb25seSBCYWNrb2ZmaWNlRW50aXR5UmVsYXRpb25TcGVjPExheW91dFZpZXc+W107XG4gIGRldGFpbENvbnRlbnQ/OiByZWFkb25seSBCYWNrb2ZmaWNlRGV0YWlsQ29udGVudFNwZWM8TWFpblZpZXc+W107XG4gIG1haW5QYWdlSWQ/OiBzdHJpbmc7XG4gIG1haW5QYWdlUGF0aD86IHN0cmluZztcbiAgbWFpblBhZ2VMYWJlbD86IEkxOG5MYWJlbDtcbiAgc3ViUGFnZXM/OiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydzdWJQYWdlcyddO1xuICBwcm9maWxlPzogQmFja29mZmljZURldGFpbExheW91dFByb2ZpbGU8TGF5b3V0Vmlldz47XG4gIG1haW5QYWdlUHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPE1haW5WaWV3Pjtcbn0pOiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICBMYXlvdXREYXRhLFxuICBMYXlvdXRWaWV3LFxuICBNYWluRGF0YSxcbiAgTWFpblZpZXcsXG4gIE1haW5EYXRhLFxuICBNYWluVmlldyxcbiAgTGF5b3V0UXVlcnlEYXRhLFxuICBNYWluUXVlcnlEYXRhLFxuICBNYWluUXVlcnlEYXRhLFxuICBMYXlvdXRGcmFnbWVudEtleSxcbiAgTWFpbkZyYWdtZW50S2V5LFxuICBNYWluRnJhZ21lbnRLZXksXG4gIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gIE1haW5RdWVyeVZhcmlhYmxlc1xuPiA9PiB7XG4gIGNvbnN0IGRlZmF1bHRIZWFkZXIgPSBidWlsZEdlbmVyaWNEZXRhaWxIZWFkZXIoe1xuICAgIHRpdGxlOiBvcHRpb25zLmhlYWRlclRpdGxlID8/IG9wdGlvbnMudGl0bGUsXG4gICAgc3VidGl0bGU6IG9wdGlvbnMuaGVhZGVyU3VidGl0bGUsXG4gIH0pO1xuICBjb25zdCBtYWluUGFnZUlkID0gb3B0aW9ucy5tYWluUGFnZUlkID8/ICdvdmVydmlldyc7XG4gIGNvbnN0IG1haW5QYWdlUGF0aCA9IG9wdGlvbnMubWFpblBhZ2VQYXRoID8/ICdvdmVydmlldyc7XG4gIGNvbnN0IG1haW5QYWdlTGFiZWwgPSBvcHRpb25zLm1haW5QYWdlTGFiZWwgPz8gb3B0aW9ucy50aXRsZTtcbiAgY29uc3QgbWFpblBhZ2UgPSBidWlsZEJhY2tvZmZpY2VEZXRhaWxQYWdlQ29uZmlnPFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID4oe1xuICAgIGlkOiBtYWluUGFnZUlkLFxuICAgIHBhdGg6IG1haW5QYWdlUGF0aCxcbiAgICBsYWJlbDogbWFpblBhZ2VMYWJlbCxcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICByZXNvbHZlTm9kZTogb3B0aW9ucy5yZXNvbHZlTm9kZSxcbiAgICB0b1ZpZXc6IG9wdGlvbnMudG9WaWV3LFxuICAgIGJ1aWxkVmFyaWFibGVzOiBvcHRpb25zLmJ1aWxkVmFyaWFibGVzLFxuICAgIGNvbnRlbnQ6IG9wdGlvbnMuZGV0YWlsQ29udGVudCA/PyBbXSxcbiAgICBhY3Rpb25zOiBvcHRpb25zLmFjdGlvbnMsXG4gICAgcHJvZmlsZTogb3B0aW9ucy5tYWluUGFnZVByb2ZpbGUsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgdGl0bGU6IG9wdGlvbnMudGl0bGUsXG4gICAgaGVhZGVyOiBvcHRpb25zLmhlYWRlciA/PyBkZWZhdWx0SGVhZGVyLFxuICAgIHJlbGF0aW9uczogb3B0aW9ucy5yZWxhdGlvbnMsXG4gICAgbGF5b3V0UGFnZToge1xuICAgICAgcXVlcnk6IG9wdGlvbnMubGF5b3V0UXVlcnkgPz8gb3B0aW9ucy5xdWVyeSxcbiAgICAgIGZyYWdtZW50OiBvcHRpb25zLmxheW91dEZyYWdtZW50ID8/IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgICByZXNvbHZlTm9kZTogb3B0aW9ucy5sYXlvdXRSZXNvbHZlTm9kZSxcbiAgICAgIHRvVmlldzpcbiAgICAgICAgb3B0aW9ucy5sYXlvdXRUb1ZpZXcgPz9cbiAgICAgICAgKG9wdGlvbnMudG9WaWV3IGFzIHVua25vd24gYXMgKGRhdGE6IExheW91dERhdGEpID0+IExheW91dFZpZXcpLFxuICAgICAgYnVpbGRWYXJpYWJsZXM6XG4gICAgICAgIG9wdGlvbnMubGF5b3V0QnVpbGRWYXJpYWJsZXMgPz9cbiAgICAgICAgKG9wdGlvbnMuYnVpbGRWYXJpYWJsZXMgYXMgdW5rbm93biBhc1xuICAgICAgICAgIHwgKChpbnB1dDoge1xuICAgICAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgICAgfSkgPT4gQmFja29mZmljZURldGFpbFZhcmlhYmxlczxMYXlvdXRRdWVyeVZhcmlhYmxlcz4pXG4gICAgICAgICAgfCB1bmRlZmluZWQpLFxuICAgIH0sXG4gICAgbWFpblBhZ2UsXG4gICAgc3ViUGFnZXM6IG9wdGlvbnMuc3ViUGFnZXMsXG4gICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkQmFja29mZmljZUNvbm5lY3Rpb25EZXRhaWxWYXJpYWJsZXMgPSA8XG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFNvcnQgZXh0ZW5kcyBzdHJpbmcsXG4+KGlucHV0OiB7XG4gIGRldGFpbElkOiBzdHJpbmc7XG4gIHdoZXJlOiBXaGVyZSB8IG51bGw7XG4gIHNvcnQ6IFNvcnQgfCBudWxsO1xufSk6IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8e1xuICB3aGVyZTogV2hlcmUgfCBudWxsO1xuICBzb3J0OiBTb3J0IHwgbnVsbDtcbiAgY291bnQ6IG51bWJlcjtcbn0+ID0+IHtcbiAgcmV0dXJuIHtcbiAgICBkZXRhaWxJZDogaW5wdXQuZGV0YWlsSWQsXG4gICAgdmFyaWFibGVzOiB7XG4gICAgICB3aGVyZTogaW5wdXQud2hlcmUsXG4gICAgICBzb3J0OiBpbnB1dC5zb3J0LFxuICAgICAgY291bnQ6IEJBQ0tPRkZJQ0VfTElTVF9ERUZBVUxUUy5wYWdlU2l6ZSxcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZiBleHRlbmRzIG9iamVjdCxcbiAgUm93VmlldyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9LFxuICBQaWNrZXJGcmFnbWVudERhdGEgPSB1bmtub3duLFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gQmFja29mZmljZU9wZXJhdGlvbldoZXJlPFRPcGVyYXRpb24+LFxuICBWYWx1ZVF1ZXJ5RGF0YSA9IEJhY2tvZmZpY2VBbGlhc2VkUGlja2VyVmFsdWVSZXNwb25zZTxzdHJpbmcsIFJvd1JlZj4sXG4+KG9wdGlvbnM6IHtcbiAgcXVlcnk6IEdyYXBoUUxUYWdnZWROb2RlO1xuICBmcmFnbWVudDogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIHZhbHVlPzogQmFja29mZmljZVBpY2tlclZhbHVlQ29uZmlnPFJvd1JlZiwgUm93VmlldywgVmFsdWVRdWVyeURhdGE+O1xuICBnZXRDb25uZWN0aW9uOiAoZGF0YTogUGlja2VyRnJhZ21lbnREYXRhKSA9PiBCYWNrb2ZmaWNlQ29ubmVjdGlvbjxSb3dSZWY+O1xuICB0b1JvdzogKHJvd1JlZjogUm93UmVmKSA9PiBSb3dWaWV3O1xuICBnZXRSb3dJZD86IChyb3c6IFJvd1ZpZXcpID0+IHN0cmluZztcbiAgc2VhcmNoPzogQmFja29mZmljZVBpY2tlclNlYXJjaENvbmZpZzxXaGVyZT47XG4gIHNjb3BlPzogQmFja29mZmljZVBpY2tlclNjb3BlQ29uZmlnPFdoZXJlPjtcbiAgc2VhcmNoRW5hYmxlZD86IGJvb2xlYW47XG4gIHNlYXJjaFJlcXVpcmVkPzogYm9vbGVhbjtcbiAgc2VhcmNoUGxhY2Vob2xkZXI/OiBJMThuTGFiZWw7XG4gIGJ1aWxkUXVlcnlWYXJpYWJsZXM/OiAoXG4gICAgaW5wdXQ6IEJhY2tvZmZpY2VQaWNrZXJRdWVyeUlucHV0PFRPcGVyYXRpb24sIFdoZXJlPixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbn0pOiBCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnPFxuICBUT3BlcmF0aW9uLFxuICBSb3dSZWYsXG4gIFJvd1ZpZXcsXG4gIFBpY2tlckZyYWdtZW50RGF0YSxcbiAgV2hlcmUsXG4gIFZhbHVlUXVlcnlEYXRhXG4+ID0+IHtcbiAgY29uc3Qgc2VhcmNoQ29uZmlnID0gb3B0aW9ucy5zZWFyY2g7XG4gIGNvbnN0IHNjb3BlS2V5cyA9IG9wdGlvbnMuc2NvcGU/LmtleXMgPz8gW107XG4gIGNvbnN0IHNlYXJjaFJlcXVpcmVkID0gb3B0aW9ucy5zZWFyY2hSZXF1aXJlZCA/PyBmYWxzZTtcbiAgY29uc3Qgc2VhcmNoRW5hYmxlZCA9XG4gICAgb3B0aW9ucy5zZWFyY2hFbmFibGVkID8/IChzZWFyY2hDb25maWcgIT0gbnVsbCB8fCBzZWFyY2hSZXF1aXJlZCk7XG4gIGNvbnN0IGdldFJlc29sdmVkUm93SWQgPVxuICAgIG9wdGlvbnMuZ2V0Um93SWQgPz9cbiAgICAoKHJvdzogUm93VmlldykgPT4ge1xuICAgICAgcmV0dXJuIHJvdy5pZDtcbiAgICB9KTtcblxuICByZXR1cm4ge1xuICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxuICAgIGZyYWdtZW50OiBvcHRpb25zLmZyYWdtZW50LFxuICAgIHZhbHVlOiBvcHRpb25zLnZhbHVlLFxuICAgIGdldENvbm5lY3Rpb246IG9wdGlvbnMuZ2V0Q29ubmVjdGlvbixcbiAgICB0b1Jvdzogb3B0aW9ucy50b1JvdyxcbiAgICBnZXRSb3dJZDogZ2V0UmVzb2x2ZWRSb3dJZCxcbiAgICBzZWFyY2hFbmFibGVkLFxuICAgIHNlYXJjaFJlcXVpcmVkLFxuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiBvcHRpb25zLnNlYXJjaFBsYWNlaG9sZGVyLFxuICAgIGJ1aWxkUXVlcnlWYXJpYWJsZXM6XG4gICAgICBvcHRpb25zLmJ1aWxkUXVlcnlWYXJpYWJsZXMgPz9cbiAgICAgICgoaW5wdXQpID0+IHtcbiAgICAgICAgY29uc3QgdHJpbW1lZCA9IGlucHV0LnNlYXJjaC50cmltKCk7XG4gICAgICAgIGxldCB3aGVyZTogV2hlcmUgfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKHNlYXJjaENvbmZpZyAhPSBudWxsICYmIHRyaW1tZWQgIT09ICcnKSB7XG4gICAgICAgICAgY29uc3QgbmV4dFdoZXJlID0gc2V0V2hlcmVWYWx1ZShcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBzZWFyY2hDb25maWcud2hlcmVLZXksXG4gICAgICAgICAgICB0cmltbWVkLFxuICAgICAgICAgICAgc2VhcmNoQ29uZmlnLnBhdGgsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAobmV4dFdoZXJlICE9IG51bGwpIHtcbiAgICAgICAgICAgIHdoZXJlID0gbmV4dFdoZXJlIGFzIFdoZXJlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXQuc2NvcGUgIT0gbnVsbCAmJiBzY29wZUtleXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHNjb3BlS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2NvcGU/LltTdHJpbmcoa2V5KV07XG4gICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBuZXh0V2hlcmUgPSBzZXRXaGVyZVZhbHVlKHdoZXJlLCBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChuZXh0V2hlcmUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICB3aGVyZSA9IG5leHRXaGVyZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHdoZXJlLFxuICAgICAgICAgIGNvdW50OiAyMCxcbiAgICAgICAgICBjdXJzb3I6IG51bGwsXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgfTtcbn07XG4iXX0=
|
|
@@ -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,8 +34,15 @@ export type BackofficeLegacyFilterSpec<Where> = (BackofficeLegacyFilterBase<Wher
|
|
|
34
34
|
falseLabel?: I18nLabel;
|
|
35
35
|
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
36
36
|
kind: 'entityId';
|
|
37
|
-
entity:
|
|
37
|
+
entity: EntityId;
|
|
38
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
39
|
+
kind: 'entityIdList';
|
|
40
|
+
entity: EntityId;
|
|
41
|
+
}) | (BackofficeLegacyFilterBase<Where> & {
|
|
42
|
+
kind: 'stringList';
|
|
43
|
+
placeholderLabel?: I18nLabel;
|
|
44
|
+
placeholderText?: I18nLabel;
|
|
38
45
|
});
|
|
39
|
-
export declare function mapFilters<Where extends Record<string, unknown
|
|
46
|
+
export declare function mapFilters<Where extends Record<string, unknown>, EntityId extends string = string>(filters: readonly BackofficeLegacyFilterSpec<Where, EntityId>[]): readonly BackofficeFilterSpec<Where, EntityId>[];
|
|
40
47
|
export {};
|
|
41
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,
|
|
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,79 @@ 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
|
+
};
|
|
122
|
+
case 'stringList':
|
|
123
|
+
return {
|
|
124
|
+
...base,
|
|
125
|
+
kind: 'stringList',
|
|
126
|
+
placeholderLabel: filter.placeholderLabel,
|
|
127
|
+
placeholderText: filter.placeholderText,
|
|
128
|
+
toGraphQL: (value) => {
|
|
129
|
+
if (typeof value !== 'string') {
|
|
130
|
+
return {};
|
|
131
|
+
}
|
|
132
|
+
const values = value
|
|
133
|
+
.split(/[\n,]+/u)
|
|
134
|
+
.map((entry) => {
|
|
135
|
+
return entry.trim();
|
|
136
|
+
})
|
|
137
|
+
.filter((entry) => {
|
|
138
|
+
return entry !== '';
|
|
139
|
+
});
|
|
140
|
+
return buildWhere(key, values, filter.path);
|
|
141
|
+
},
|
|
142
|
+
fromGraphQL: (where) => {
|
|
143
|
+
const raw = readWhereValue(where, key, filter.path);
|
|
144
|
+
if (!Array.isArray(raw)) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
const values = raw
|
|
148
|
+
.map((entry) => {
|
|
149
|
+
if (typeof entry !== 'string') {
|
|
150
|
+
return '';
|
|
151
|
+
}
|
|
152
|
+
return entry.trim();
|
|
153
|
+
})
|
|
154
|
+
.filter((entry) => {
|
|
155
|
+
return entry !== '';
|
|
156
|
+
});
|
|
157
|
+
if (values.length === 0) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
return values.join(', ');
|
|
161
|
+
},
|
|
162
|
+
};
|
|
90
163
|
default:
|
|
91
164
|
return {
|
|
92
165
|
...base,
|
|
@@ -95,4 +168,4 @@ export function mapFilters(filters) {
|
|
|
95
168
|
}
|
|
96
169
|
});
|
|
97
170
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb25maWcvZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBZ0RwRSxNQUFNLFVBQVUsR0FBRyxDQUNqQixHQUFpQyxFQUNqQyxLQUFjLEVBQ2QsSUFBd0IsRUFDUixFQUFFO0lBQ2xCLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFDRCxPQUFPLElBQXNCLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUN2QixLQUFtQixFQUNXLEVBQUU7SUFDaEMsTUFBTSxLQUFLLEdBQWlDLEVBQUUsQ0FBQztJQUMvQyxNQUFNLElBQUksR0FBRztRQUNYLGdCQUFnQjtRQUNoQixTQUFTO1FBQ1QsV0FBVztRQUNYLGNBQWM7S0FDTixDQUFDO0lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ25CLE1BQU0sUUFBUSxHQUFHLEdBQW1DLENBQUM7UUFDckQsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUdqQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFLRixNQUFNLFVBQVUsVUFBVSxDQUN4QixPQUFxRDtJQUVyRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUM1QixNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBaUMsQ0FBQztRQUMzRSxNQUFNLElBQUksR0FBRztZQUNYLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNiLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDM0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixTQUFTLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRTtnQkFDNUIsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0MsQ0FBQztTQUNGLENBQUM7UUFFRixRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixLQUFLLGNBQWM7Z0JBQ2pCLE9BQU87b0JBQ0wsR0FBRyxJQUFJO29CQUNQLElBQUksRUFBRSxNQUFNO29CQUNaLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7b0JBQ3pDLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtpQkFDeEMsQ0FBQztZQUNKLEtBQUssVUFBVTtnQkFDYixPQUFPO29CQUNMLEdBQUcsSUFBSTtvQkFDUCxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO29CQUNqQixnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO29CQUN6QyxlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7aUJBQ3hDLENBQUM7WUFDSixLQUFLLFFBQVE7Z0JBQ1gsT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtvQkFDekMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO29CQUN2QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7aUJBQzVCLENBQUM7WUFDSixLQUFLLFFBQVE7Z0JBQ1gsT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsSUFBSSxFQUFFLE1BQU07b0JBQ1osT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7d0JBQ3JDLE9BQU87NEJBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLOzRCQUNuQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7eUJBQ3BCLENBQUM7b0JBQ0osQ0FBQyxDQUFDO2lCQUNILENBQUM7WUFDSixLQUFLLFNBQVM7Z0JBQ1osT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO29CQUMzQixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVU7aUJBQzlCLENBQUM7WUFDSixLQUFLLFVBQVU7Z0JBQ2IsT0FBTztvQkFDTCxHQUFHLElBQUk7b0JBQ1AsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDckIsV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ3JCLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pDLENBQUM7aUJBQ0YsQ0FBQztZQUNKO2dCQUNFLE9BQU87b0JBQ0wsR0FBRyxJQUFJO29CQUNQLElBQUksRUFBRSxNQUFNO2lCQUNiLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBCYWNrb2ZmaWNlRmlsdGVyU3BlYyxcbiAgQmFja29mZmljZVBpY2tlclNjb3BlLFxuICBJMThuTGFiZWwsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IHJlYWRXaGVyZVZhbHVlLCBzZXRXaGVyZVZhbHVlIH0gZnJvbSAnLi4vZmlsdGVycy93aGVyZS5qcyc7XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJPcHRpb24gPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGxhYmVsOiBJMThuTGFiZWw7XG59O1xuXG50eXBlIEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJCYXNlPFdoZXJlPiA9IHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IEkxOG5MYWJlbDtcbiAgd2hlcmVLZXk/OiBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+O1xuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIHBsYWNlbWVudD86ICdxdWljaycgfCAnZHJhd2VyJyB8ICdib3RoJztcbn07XG5cbmV4cG9ydCB0eXBlIEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPFdoZXJlPiA9XG4gIHwgKEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJCYXNlPFdoZXJlPiAmIHtcbiAgICAgIGtpbmQ6ICd0ZXh0Q29udGFpbnMnO1xuICAgICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnZGF0ZXRpbWUnO1xuICAgICAgbW9kZT86ICdmcm9tJyB8ICd0bycgfCAnZXhhY3QnO1xuICAgICAgcGxhY2Vob2xkZXJMYWJlbD86IEkxOG5MYWJlbDtcbiAgICAgIHBsYWNlaG9sZGVyVGV4dD86IEkxOG5MYWJlbDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnbnVtYmVyJztcbiAgICAgIHBsYWNlaG9sZGVyTGFiZWw/OiBJMThuTGFiZWw7XG4gICAgICBwbGFjZWhvbGRlclRleHQ/OiBJMThuTGFiZWw7XG4gICAgICBpbnB1dE1vZGU/OiAnbnVtZXJpYycgfCAnZGVjaW1hbCc7XG4gICAgfSlcbiAgfCAoQmFja29mZmljZUxlZ2FjeUZpbHRlckJhc2U8V2hlcmU+ICYge1xuICAgICAga2luZDogJ3NlbGVjdCc7XG4gICAgICBvcHRpb25zOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyT3B0aW9uW107XG4gICAgfSlcbiAgfCAoQmFja29mZmljZUxlZ2FjeUZpbHRlckJhc2U8V2hlcmU+ICYge1xuICAgICAga2luZDogJ2Jvb2xlYW4nO1xuICAgICAgdHJ1ZUxhYmVsPzogSTE4bkxhYmVsO1xuICAgICAgZmFsc2VMYWJlbD86IEkxOG5MYWJlbDtcbiAgICB9KVxuICB8IChCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyQmFzZTxXaGVyZT4gJiB7XG4gICAgICBraW5kOiAnZW50aXR5SWQnO1xuICAgICAgZW50aXR5OiBzdHJpbmc7XG4gICAgfSk7XG5cbmNvbnN0IGJ1aWxkV2hlcmUgPSA8V2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIGtleTogRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPixcbiAgdmFsdWU6IHVua25vd24sXG4gIHBhdGg/OiByZWFkb25seSBzdHJpbmdbXSxcbik6IFBhcnRpYWw8V2hlcmU+ID0+IHtcbiAgY29uc3QgbmV4dCA9IHNldFdoZXJlVmFsdWUobnVsbCwga2V5LCB2YWx1ZSwgcGF0aCk7XG4gIGlmIChuZXh0ID09IG51bGwpIHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgcmV0dXJuIG5leHQgYXMgUGFydGlhbDxXaGVyZT47XG59O1xuXG5jb25zdCBidWlsZFBpY2tlclNjb3BlID0gPFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICB3aGVyZTogV2hlcmUgfCBudWxsLFxuKTogQmFja29mZmljZVBpY2tlclNjb3BlPFdoZXJlPiA9PiB7XG4gIGNvbnN0IHNjb3BlOiBCYWNrb2ZmaWNlUGlja2VyU2NvcGU8V2hlcmU+ID0ge307XG4gIGNvbnN0IGtleXMgPSBbXG4gICAgJ29yZ2FuaXphdGlvbklkJyxcbiAgICAnZ3JvdXBJZCcsXG4gICAgJ3Byb2plY3RJZCcsXG4gICAgJ2luaXRpYXRpdmVJZCcsXG4gIF0gYXMgY29uc3Q7XG4gIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3Qgd2hlcmVLZXkgPSBrZXkgYXMgRXh0cmFjdDxrZXlvZiBXaGVyZSwgc3RyaW5nPjtcbiAgICBjb25zdCB2YWx1ZSA9IHJlYWRXaGVyZVZhbHVlKHdoZXJlLCB3aGVyZUtleSk7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHNjb3BlW3doZXJlS2V5XSA9IHZhbHVlIGFzIEV4dHJhY3Q8XG4gICAgICAgIE5vbk51bGxhYmxlPFdoZXJlW3R5cGVvZiB3aGVyZUtleV0+LFxuICAgICAgICBzdHJpbmdcbiAgICAgID47XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHNjb3BlO1xufTtcblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFwRmlsdGVyczxXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeUZpbHRlclNwZWM8V2hlcmU+W10sXG4pOiByZWFkb25seSBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT5bXSB7XG4gIHJldHVybiBmaWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gKGZpbHRlci53aGVyZUtleSA/PyBmaWx0ZXIuaWQpIGFzIEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz47XG4gICAgY29uc3QgYmFzZSA9IHtcbiAgICAgIGlkOiBmaWx0ZXIuaWQsXG4gICAgICBsYWJlbDogZmlsdGVyLmxhYmVsLFxuICAgICAgcGxhY2VtZW50OiBmaWx0ZXIucGxhY2VtZW50LFxuICAgICAgd2hlcmVLZXk6IGZpbHRlci53aGVyZUtleSxcbiAgICAgIHBhdGg6IGZpbHRlci5wYXRoLFxuICAgICAgdG9HcmFwaFFMOiAodmFsdWU6IHVua25vd24pID0+IHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkV2hlcmUoa2V5LCB2YWx1ZSwgZmlsdGVyLnBhdGgpO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgc3dpdGNoIChmaWx0ZXIua2luZCkge1xuICAgICAgY2FzZSAndGV4dENvbnRhaW5zJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICd0ZXh0JyxcbiAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiBmaWx0ZXIucGxhY2Vob2xkZXJMYWJlbCxcbiAgICAgICAgICBwbGFjZWhvbGRlclRleHQ6IGZpbHRlci5wbGFjZWhvbGRlclRleHQsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdkYXRldGltZSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnZGF0ZXRpbWUnLFxuICAgICAgICAgIG1vZGU6IGZpbHRlci5tb2RlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyTGFiZWw6IGZpbHRlci5wbGFjZWhvbGRlckxhYmVsLFxuICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dDogZmlsdGVyLnBsYWNlaG9sZGVyVGV4dCxcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnbnVtYmVyJyxcbiAgICAgICAgICBwbGFjZWhvbGRlckxhYmVsOiBmaWx0ZXIucGxhY2Vob2xkZXJMYWJlbCxcbiAgICAgICAgICBwbGFjZWhvbGRlclRleHQ6IGZpbHRlci5wbGFjZWhvbGRlclRleHQsXG4gICAgICAgICAgaW5wdXRNb2RlOiBmaWx0ZXIuaW5wdXRNb2RlLFxuICAgICAgICB9O1xuICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICdlbnVtJyxcbiAgICAgICAgICBvcHRpb25zOiBmaWx0ZXIub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgbGFiZWw6IG9wdGlvbi5sYWJlbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgIGtpbmQ6ICdib29sZWFuJyxcbiAgICAgICAgICB0cnVlTGFiZWw6IGZpbHRlci50cnVlTGFiZWwsXG4gICAgICAgICAgZmFsc2VMYWJlbDogZmlsdGVyLmZhbHNlTGFiZWwsXG4gICAgICAgIH07XG4gICAgICBjYXNlICdlbnRpdHlJZCc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAnZW50aXR5SWQnLFxuICAgICAgICAgIGVudGl0eTogZmlsdGVyLmVudGl0eSxcbiAgICAgICAgICBwaWNrZXJTY29wZTogKHdoZXJlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRQaWNrZXJTY29wZSh3aGVyZSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICBraW5kOiAndGV4dCcsXG4gICAgICAgIH07XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
|
|
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":"
|
|
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,12 +18,22 @@ const toGraphQLFilterPatch = (filter, value) => {
|
|
|
16
18
|
return filter.toGraphQL(value);
|
|
17
19
|
case 'datetime':
|
|
18
20
|
case 'entityId':
|
|
19
|
-
case 'enum':
|
|
20
21
|
case 'text':
|
|
21
22
|
if (typeof value !== 'string') {
|
|
22
23
|
return {};
|
|
23
24
|
}
|
|
24
25
|
return filter.toGraphQL(value);
|
|
26
|
+
case 'entityIdList':
|
|
27
|
+
if (!Array.isArray(value)) {
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
return filter.toGraphQL(value);
|
|
31
|
+
case 'enum':
|
|
32
|
+
case 'stringList':
|
|
33
|
+
if (typeof value !== 'string') {
|
|
34
|
+
return {};
|
|
35
|
+
}
|
|
36
|
+
return filter.toGraphQL(value);
|
|
25
37
|
default:
|
|
26
38
|
return {};
|
|
27
39
|
}
|
|
@@ -60,6 +72,9 @@ function isEmptyFilterValue(value) {
|
|
|
60
72
|
if (typeof value === 'string') {
|
|
61
73
|
return value.trim() === '';
|
|
62
74
|
}
|
|
75
|
+
if (Array.isArray(value)) {
|
|
76
|
+
return value.length === 0;
|
|
77
|
+
}
|
|
63
78
|
return false;
|
|
64
79
|
}
|
|
65
80
|
export function createBackofficeFilterSchema(filters) {
|
|
@@ -76,17 +91,28 @@ export function createBackofficeFilterSchema(filters) {
|
|
|
76
91
|
];
|
|
77
92
|
case 'number':
|
|
78
93
|
return [filter.id, numberField(DEFAULT_OPERATORS)];
|
|
79
|
-
case 'datetime':
|
|
80
94
|
case 'entityId':
|
|
95
|
+
case 'datetime':
|
|
96
|
+
case 'stringList':
|
|
81
97
|
case 'text':
|
|
82
|
-
default:
|
|
83
98
|
return [filter.id, stringField(DEFAULT_OPERATORS)];
|
|
99
|
+
case 'entityIdList':
|
|
100
|
+
return [filter.id, stringField(['in'])];
|
|
101
|
+
default:
|
|
102
|
+
return assertNever(filter);
|
|
84
103
|
}
|
|
85
104
|
})));
|
|
86
105
|
function toWhere(parsed) {
|
|
87
106
|
let where = null;
|
|
88
107
|
for (const filter of filters) {
|
|
89
|
-
const
|
|
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
|
+
}
|
|
90
116
|
if (!isEmptyFilterValue(value)) {
|
|
91
117
|
const partial = toGraphQLFilterPatch(filter, value);
|
|
92
118
|
if (where == null) {
|
|
@@ -104,26 +130,36 @@ export function createBackofficeFilterSchema(filters) {
|
|
|
104
130
|
}
|
|
105
131
|
function fromWhere(where) {
|
|
106
132
|
if (where == null) {
|
|
107
|
-
return
|
|
133
|
+
return {};
|
|
108
134
|
}
|
|
109
|
-
const
|
|
135
|
+
const filterValues = {};
|
|
110
136
|
for (const filter of filters) {
|
|
111
137
|
if (filter.fromGraphQL != null) {
|
|
112
138
|
const value = filter.fromGraphQL(where);
|
|
113
139
|
if (!isEmptyFilterValue(value)) {
|
|
114
|
-
|
|
140
|
+
if (filter.kind === 'entityIdList') {
|
|
141
|
+
filterValues[filter.id] = { in: value };
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
filterValues[filter.id] = { eq: value };
|
|
145
|
+
}
|
|
115
146
|
}
|
|
116
147
|
}
|
|
117
148
|
else {
|
|
118
149
|
const fallbackKey = filter.whereKey ?? filter.id;
|
|
119
150
|
const raw = readWhereValue(where, fallbackKey, filter.path);
|
|
120
151
|
if (!isEmptyFilterValue(raw)) {
|
|
121
|
-
|
|
152
|
+
if (filter.kind === 'entityIdList') {
|
|
153
|
+
filterValues[filter.id] = { in: raw };
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
filterValues[filter.id] = { eq: raw };
|
|
157
|
+
}
|
|
122
158
|
}
|
|
123
159
|
}
|
|
124
160
|
}
|
|
125
|
-
return
|
|
161
|
+
return filterValues;
|
|
126
162
|
}
|
|
127
163
|
return { schema, toWhere, fromWhere };
|
|
128
164
|
}
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZpbHRlcnMvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWdCLE1BQU0saUNBQWlDLENBQUM7QUFDL0UsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFDWCxXQUFXLEdBQ1osTUFBTSxpQ0FBaUMsQ0FBQztBQUl6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBUTVDLE1BQU0saUJBQWlCLEdBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7QUFJbEQsTUFBTSxvQkFBb0IsR0FBRyxDQUMzQixNQUFtQyxFQUNuQyxLQUFrQixFQUNGLEVBQUU7SUFDbEIsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsS0FBSyxTQUFTO1lBQ1osSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLEtBQUssUUFBUTtZQUNYLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLFVBQVUsQ0FBQztRQUNoQixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssTUFBTTtZQUNULElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQztZQUNFLE9BQU8sRUFB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QUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFvQixDQUFDO2dCQUM1QyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFrQixDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FDbkIsT0FBNEMsQ0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYnVpbGRFcUZpbHRlcnMsIHR5cGUgRXFJbnB1dCB9IGZyb20gJ0BwbHVtaWxlL2ZpbHRlci1xdWVyeS9tdXRhdGUuanMnO1xuaW1wb3J0IHtcbiAgYm9vbGVhbkZpZWxkLFxuICBkZWZpbmVTY2hlbWEsXG4gIGVudW1GaWVsZCxcbiAgbnVtYmVyRmllbGQsXG4gIHN0cmluZ0ZpZWxkLFxufSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvc2NoZW1hLmpzJztcbmltcG9ydCB7IHR5cGUgSW5mZXJGaWx0ZXJzLCB0eXBlIFNjaGVtYSB9IGZyb20gJ0BwbHVtaWxlL2ZpbHRlci1xdWVyeS90eXBlcy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQmFja29mZmljZUZpbHRlclNwZWMgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyByZWFkV2hlcmVWYWx1ZSB9IGZyb20gJy4vd2hlcmUuanMnO1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlRmlsdGVyU2NoZW1hPFdoZXJlLCBTIGV4dGVuZHMgU2NoZW1hID0gU2NoZW1hPiA9IHtcbiAgc2NoZW1hOiBTO1xuICB0b1doZXJlOiAoZmlsdGVyczogSW5mZXJGaWx0ZXJzPFM+KSA9PiBXaGVyZSB8IG51bGw7XG4gIGZyb21XaGVyZTogKHdoZXJlOiBXaGVyZSB8IG51bGwpID0+IEluZmVyRmlsdGVyczxTPjtcbn07XG5cbmNvbnN0IERFRkFVTFRfT1BFUkFUT1JTOiByZWFkb25seSBbJ2VxJ10gPSBbJ2VxJ107XG5cbnR5cGUgRmlsdGVyVmFsdWUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG5jb25zdCB0b0dyYXBoUUxGaWx0ZXJQYXRjaCA9IDxXaGVyZT4oXG4gIGZpbHRlcjogQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+LFxuICB2YWx1ZTogRmlsdGVyVmFsdWUsXG4pOiBQYXJ0aWFsPFdoZXJlPiA9PiB7XG4gIHN3aXRjaCAoZmlsdGVyLmtpbmQpIHtcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsdGVyLnRvR3JhcGhRTCh2YWx1ZSk7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXIudG9HcmFwaFFMKHZhbHVlKTtcbiAgICBjYXNlICdkYXRldGltZSc6XG4gICAgY2FzZSAnZW50aXR5SWQnOlxuICAgIGNhc2UgJ2VudW0nOlxuICAgIGNhc2UgJ3RleHQnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlci50b0dyYXBoUUwodmFsdWUpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge307XG4gIH1cbn07XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gbWVyZ2VXaGVyZShcbiAgYmFzZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHBhdGNoOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgY29uc3QgbmV4dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLmJhc2UgfTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGF0Y2gpKSB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgICB0eXBlb2YgbmV4dFtrZXldID09PSAnb2JqZWN0JyAmJlxuICAgICAgbmV4dFtrZXldICE9IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG5leHRba2V5XSlcbiAgICApIHtcbiAgICAgIG5leHRba2V5XSA9IG1lcmdlV2hlcmUoXG4gICAgICAgIG5leHRba2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5leHQ7XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyVmFsdWU8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGZpbHRlcnM6IEluZmVyRmlsdGVyczxTPixcbiAgaWQ6IHN0cmluZyxcbik6IEZpbHRlclZhbHVlIHtcbiAgY29uc3QgZW50cnkgPSBmaWx0ZXJzW2lkIGFzIGtleW9mIFNdO1xuICBpZiAoZW50cnkgPT0gbnVsbCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gJ29iamVjdCcgJiYgJ2VxJyBpbiBlbnRyeSkge1xuICAgIHJldHVybiAoZW50cnkgYXMgeyBlcT86IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfSkuZXE7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBpc0VtcHR5RmlsdGVyVmFsdWUodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZS50cmltKCkgPT09ICcnO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFja29mZmljZUZpbHRlclNjaGVtYTxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4oXG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VGaWx0ZXJTcGVjPFdoZXJlPltdLFxuKTogQmFja29mZmljZUZpbHRlclNjaGVtYTxXaGVyZT4ge1xuICBjb25zdCBzY2hlbWEgPSBkZWZpbmVTY2hlbWEoXG4gICAgT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgZmlsdGVycy5tYXAoKGZpbHRlcikgPT4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci5raW5kKSB7XG4gICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICByZXR1cm4gW2ZpbHRlci5pZCwgYm9vbGVhbkZpZWxkKERFRkFVTFRfT1BFUkFUT1JTKV07XG4gICAgICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBmaWx0ZXIuaWQsXG4gICAgICAgICAgICAgIGVudW1GaWVsZChcbiAgICAgICAgICAgICAgICBmaWx0ZXIub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBERUZBVUxUX09QRVJBVE9SUyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBudW1iZXJGaWVsZChERUZBVUxUX09QRVJBVE9SUyldO1xuICAgICAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcbiAgICAgICAgICBjYXNlICdlbnRpdHlJZCc6XG4gICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBzdHJpbmdGaWVsZChERUZBVUxUX09QRVJBVE9SUyldO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApLFxuICApO1xuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgZnVuY3Rpb24gdG9XaGVyZShwYXJzZWQ6IEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPik6IFdoZXJlIHwgbnVsbCB7XG4gICAgbGV0IHdoZXJlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xuICAgICAgY29uc3QgdmFsdWUgPSBnZXRGaWx0ZXJWYWx1ZShwYXJzZWQsIGZpbHRlci5pZCk7XG4gICAgICBpZiAoIWlzRW1wdHlGaWx0ZXJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgcGFydGlhbCA9IHRvR3JhcGhRTEZpbHRlclBhdGNoKGZpbHRlciwgdmFsdWUpO1xuICAgICAgICBpZiAod2hlcmUgPT0gbnVsbCkge1xuICAgICAgICAgIHdoZXJlID0geyAuLi5wYXJ0aWFsIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2hlcmUgPSBtZXJnZVdoZXJlKHdoZXJlLCBwYXJ0aWFsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh3aGVyZSA9PSBudWxsIHx8IE9iamVjdC5rZXlzKHdoZXJlKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB3aGVyZSBhcyBXaGVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgZnVuY3Rpb24gZnJvbVdoZXJlKHdoZXJlOiBXaGVyZSB8IG51bGwpOiBJbmZlckZpbHRlcnM8dHlwZW9mIHNjaGVtYT4ge1xuICAgIGlmICh3aGVyZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gYnVpbGRFcUZpbHRlcnMoe30pO1xuICAgIH1cblxuICAgIGNvbnN0IGVxSW5wdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQ+ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBmaWx0ZXJzKSB7XG4gICAgICBpZiAoZmlsdGVyLmZyb21HcmFwaFFMICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXIuZnJvbUdyYXBoUUwod2hlcmUpO1xuICAgICAgICBpZiAoIWlzRW1wdHlGaWx0ZXJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgICBlcUlucHV0W2ZpbHRlci5pZF0gPSB2YWx1ZSBhcyBGaWx0ZXJWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZmFsbGJhY2tLZXkgPSBmaWx0ZXIud2hlcmVLZXkgPz8gZmlsdGVyLmlkO1xuICAgICAgICBjb25zdCByYXcgPSByZWFkV2hlcmVWYWx1ZSh3aGVyZSwgZmFsbGJhY2tLZXksIGZpbHRlci5wYXRoKTtcbiAgICAgICAgaWYgKCFpc0VtcHR5RmlsdGVyVmFsdWUocmF3KSkge1xuICAgICAgICAgIGVxSW5wdXRbZmlsdGVyLmlkXSA9IHJhdyBhcyBGaWx0ZXJWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBidWlsZEVxRmlsdGVyczx0eXBlb2Ygc2NoZW1hPihcbiAgICAgIGVxSW5wdXQgYXMgdW5rbm93biBhcyBFcUlucHV0PHR5cGVvZiBzY2hlbWE+LFxuICAgICk7XG4gIH1cblxuICByZXR1cm4geyBzY2hlbWEsIHRvV2hlcmUsIGZyb21XaGVyZSB9O1xufVxuIl19
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZpbHRlcnMvc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUNaLFNBQVMsRUFDVCxXQUFXLEVBQ1gsV0FBVyxHQUNaLE1BQU0saUNBQWlDLENBQUM7QUFJekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVE1QyxNQUFNLGlCQUFpQixHQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO0FBSWxELE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBWSxFQUFTLEVBQUU7SUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNyRSxDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQzNCLE1BQW1DLEVBQ25DLEtBQWtCLEVBQ0YsRUFBRTtJQUNsQixRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixLQUFLLFNBQVM7WUFDWixJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsS0FBSyxRQUFRO1lBQ1gsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssVUFBVSxDQUFDO1FBQ2hCLEtBQUssTUFBTTtZQUNULElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUNE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Y0FBYyxFQUFFLENBQUM7d0JBQ25DLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7b0JBQzFDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDO29CQUMxQyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxNQUFNLEdBQUcsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM3QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7d0JBQ25DLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQ3hDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDO29CQUN4QyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sWUFBMkMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5GaWVsZCxcbiAgZGVmaW5lU2NoZW1hLFxuICBlbnVtRmllbGQsXG4gIG51bWJlckZpZWxkLFxuICBzdHJpbmdGaWVsZCxcbn0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3NjaGVtYS5qcyc7XG5pbXBvcnQgeyB0eXBlIEluZmVyRmlsdGVycywgdHlwZSBTY2hlbWEgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvdHlwZXMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEJhY2tvZmZpY2VGaWx0ZXJTcGVjIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHsgcmVhZFdoZXJlVmFsdWUgfSBmcm9tICcuL3doZXJlLmpzJztcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZUZpbHRlclNjaGVtYTxXaGVyZSwgUyBleHRlbmRzIFNjaGVtYSA9IFNjaGVtYT4gPSB7XG4gIHNjaGVtYTogUztcbiAgdG9XaGVyZTogKGZpbHRlcnM6IEluZmVyRmlsdGVyczxTPikgPT4gV2hlcmUgfCBudWxsO1xuICBmcm9tV2hlcmU6ICh3aGVyZTogV2hlcmUgfCBudWxsKSA9PiBJbmZlckZpbHRlcnM8Uz47XG59O1xuXG5jb25zdCBERUZBVUxUX09QRVJBVE9SUzogcmVhZG9ubHkgWydlcSddID0gWydlcSddO1xuXG50eXBlIEZpbHRlclZhbHVlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG5jb25zdCBhc3NlcnROZXZlciA9ICh2YWx1ZTogbmV2ZXIpOiBuZXZlciA9PiB7XG4gIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgYmFja29mZmljZSBmaWx0ZXI6ICR7U3RyaW5nKHZhbHVlKX1gKTtcbn07XG5cbmNvbnN0IHRvR3JhcGhRTEZpbHRlclBhdGNoID0gPFdoZXJlPihcbiAgZmlsdGVyOiBCYWNrb2ZmaWNlRmlsdGVyU3BlYzxXaGVyZT4sXG4gIHZhbHVlOiBGaWx0ZXJWYWx1ZSxcbik6IFBhcnRpYWw8V2hlcmU+ID0+IHtcbiAgc3dpdGNoIChmaWx0ZXIua2luZCkge1xuICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWx0ZXIudG9HcmFwaFFMKHZhbHVlKTtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlci50b0dyYXBoUUwodmFsdWUpO1xuICAgIGNhc2UgJ2RhdGV0aW1lJzpcbiAgICBjYXNlICdlbnRpdHlJZCc6XG4gICAgY2FzZSAndGV4dCc6XG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsdGVyLnRvR3JhcGhRTCh2YWx1ZSk7XG4gICAgY2FzZSAnZW50aXR5SWRMaXN0JzpcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlci50b0dyYXBoUUwodmFsdWUpO1xuICAgIGNhc2UgJ2VudW0nOlxuICAgIGNhc2UgJ3N0cmluZ0xpc3QnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlci50b0dyYXBoUUwodmFsdWUpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4ge307XG4gIH1cbn07XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gbWVyZ2VXaGVyZShcbiAgYmFzZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHBhdGNoOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgY29uc3QgbmV4dDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLmJhc2UgfTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocGF0Y2gpKSB7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT0gbnVsbCAmJlxuICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgICB0eXBlb2YgbmV4dFtrZXldID09PSAnb2JqZWN0JyAmJlxuICAgICAgbmV4dFtrZXldICE9IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KG5leHRba2V5XSlcbiAgICApIHtcbiAgICAgIG5leHRba2V5XSA9IG1lcmdlV2hlcmUoXG4gICAgICAgIG5leHRba2V5XSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgICAgdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5leHQ7XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyVmFsdWU8UyBleHRlbmRzIFNjaGVtYT4oXG4gIGZpbHRlcnM6IEluZmVyRmlsdGVyczxTPixcbiAgaWQ6IHN0cmluZyxcbik6IEZpbHRlclZhbHVlIHtcbiAgY29uc3QgZW50cnkgPSBmaWx0ZXJzW2lkIGFzIGtleW9mIFNdO1xuICBpZiAoZW50cnkgPT0gbnVsbCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBlbnRyeSA9PT0gJ29iamVjdCcgJiYgJ2VxJyBpbiBlbnRyeSkge1xuICAgIHJldHVybiAoZW50cnkgYXMgeyBlcT86IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfSkuZXE7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBpc0VtcHR5RmlsdGVyVmFsdWUodmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZS50cmltKCkgPT09ICcnO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPT09IDA7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCYWNrb2ZmaWNlRmlsdGVyU2NoZW1hPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuPihcbiAgZmlsdGVyczogcmVhZG9ubHkgQmFja29mZmljZUZpbHRlclNwZWM8V2hlcmU+W10sXG4pOiBCYWNrb2ZmaWNlRmlsdGVyU2NoZW1hPFdoZXJlPiB7XG4gIGNvbnN0IHNjaGVtYSA9IGRlZmluZVNjaGVtYShcbiAgICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBmaWx0ZXJzLm1hcCgoZmlsdGVyKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZmlsdGVyLmtpbmQpIHtcbiAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBib29sZWFuRmllbGQoREVGQVVMVF9PUEVSQVRPUlMpXTtcbiAgICAgICAgICBjYXNlICdlbnVtJzpcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgIGZpbHRlci5pZCxcbiAgICAgICAgICAgICAgZW51bUZpZWxkKFxuICAgICAgICAgICAgICAgIGZpbHRlci5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIERFRkFVTFRfT1BFUkFUT1JTLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgcmV0dXJuIFtmaWx0ZXIuaWQsIG51bWJlckZpZWxkKERFRkFVTFRfT1BFUkFUT1JTKV07XG4gICAgICAgICAgY2FzZSAnZW50aXR5SWQnOlxuICAgICAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcbiAgICAgICAgICBjYXNlICdzdHJpbmdMaXN0JzpcbiAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgIHJldHVybiBbZmlsdGVyLmlkLCBzdHJpbmdGaWVsZChERUZBVUxUX09QRVJBVE9SUyldO1xuICAgICAgICAgIGNhc2UgJ2VudGl0eUlkTGlzdCc6XG4gICAgICAgICAgICByZXR1cm4gW2ZpbHRlci5pZCwgc3RyaW5nRmllbGQoWydpbiddKV07XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBhc3NlcnROZXZlcihmaWx0ZXIpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApLFxuICApO1xuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgZnVuY3Rpb24gdG9XaGVyZShwYXJzZWQ6IEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPik6IFdoZXJlIHwgbnVsbCB7XG4gICAgbGV0IHdoZXJlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xuICAgICAgY29uc3QgcGFyc2VkQnlJZCA9IHBhcnNlZCBhcyBSZWNvcmQ8c3RyaW5nLCB7IGluPzogcmVhZG9ubHkgc3RyaW5nW10gfT47XG4gICAgICBsZXQgdmFsdWU6IEZpbHRlclZhbHVlO1xuICAgICAgaWYgKGZpbHRlci5raW5kID09PSAnZW50aXR5SWRMaXN0Jykge1xuICAgICAgICB2YWx1ZSA9IHBhcnNlZEJ5SWRbZmlsdGVyLmlkXT8uaW47XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IGdldEZpbHRlclZhbHVlKHBhcnNlZCwgZmlsdGVyLmlkKTtcbiAgICAgIH1cbiAgICAgIGlmICghaXNFbXB0eUZpbHRlclZhbHVlKHZhbHVlKSkge1xuICAgICAgICBjb25zdCBwYXJ0aWFsID0gdG9HcmFwaFFMRmlsdGVyUGF0Y2goZmlsdGVyLCB2YWx1ZSk7XG4gICAgICAgIGlmICh3aGVyZSA9PSBudWxsKSB7XG4gICAgICAgICAgd2hlcmUgPSB7IC4uLnBhcnRpYWwgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3aGVyZSA9IG1lcmdlV2hlcmUod2hlcmUsIHBhcnRpYWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHdoZXJlID09IG51bGwgfHwgT2JqZWN0LmtleXMod2hlcmUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdoZXJlIGFzIFdoZXJlO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBmdW5jdGlvbiBmcm9tV2hlcmUod2hlcmU6IFdoZXJlIHwgbnVsbCk6IEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPiB7XG4gICAgaWYgKHdoZXJlID09IG51bGwpIHtcbiAgICAgIHJldHVybiB7fSBhcyBJbmZlckZpbHRlcnM8dHlwZW9mIHNjaGVtYT47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xuICAgICAgaWYgKGZpbHRlci5mcm9tR3JhcGhRTCAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyLmZyb21HcmFwaFFMKHdoZXJlKTtcbiAgICAgICAgaWYgKCFpc0VtcHR5RmlsdGVyVmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgaWYgKGZpbHRlci5raW5kID09PSAnZW50aXR5SWRMaXN0Jykge1xuICAgICAgICAgICAgZmlsdGVyVmFsdWVzW2ZpbHRlci5pZF0gPSB7IGluOiB2YWx1ZSB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZXNbZmlsdGVyLmlkXSA9IHsgZXE6IHZhbHVlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBmYWxsYmFja0tleSA9IGZpbHRlci53aGVyZUtleSA/PyBmaWx0ZXIuaWQ7XG4gICAgICAgIGNvbnN0IHJhdyA9IHJlYWRXaGVyZVZhbHVlKHdoZXJlLCBmYWxsYmFja0tleSwgZmlsdGVyLnBhdGgpO1xuICAgICAgICBpZiAoIWlzRW1wdHlGaWx0ZXJWYWx1ZShyYXcpKSB7XG4gICAgICAgICAgaWYgKGZpbHRlci5raW5kID09PSAnZW50aXR5SWRMaXN0Jykge1xuICAgICAgICAgICAgZmlsdGVyVmFsdWVzW2ZpbHRlci5pZF0gPSB7IGluOiByYXcgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsdGVyVmFsdWVzW2ZpbHRlci5pZF0gPSB7IGVxOiByYXcgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyVmFsdWVzIGFzIEluZmVyRmlsdGVyczx0eXBlb2Ygc2NoZW1hPjtcbiAgfVxuXG4gIHJldHVybiB7IHNjaGVtYSwgdG9XaGVyZSwgZnJvbVdoZXJlIH07XG59XG4iXX0=
|
package/lib/esm/types.d.ts
CHANGED
|
@@ -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,9 +691,16 @@ export type BackofficeFilterSpec<Where> = (BackofficeFilterBase<Where, string> &
|
|
|
691
691
|
falseLabel?: I18nLabel;
|
|
692
692
|
}) | (BackofficeFilterBase<Where, string> & {
|
|
693
693
|
kind: 'entityId';
|
|
694
|
-
entity:
|
|
694
|
+
entity: EntityId;
|
|
695
|
+
}) | (BackofficeFilterBase<Where, readonly string[]> & {
|
|
696
|
+
kind: 'entityIdList';
|
|
697
|
+
entity: EntityId;
|
|
698
|
+
}) | (BackofficeFilterBase<Where, string> & {
|
|
699
|
+
kind: 'stringList';
|
|
700
|
+
placeholderLabel?: I18nLabel;
|
|
701
|
+
placeholderText?: I18nLabel;
|
|
695
702
|
});
|
|
696
|
-
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> = {
|
|
697
704
|
kind: 'connection';
|
|
698
705
|
title: I18nLabel;
|
|
699
706
|
query: GraphQLTaggedNode;
|
|
@@ -706,12 +713,12 @@ export type BackofficeConnectionListConfig<TOperation extends OperationType, Row
|
|
|
706
713
|
columns: readonly BackofficeColumnSpec<RowView>[];
|
|
707
714
|
rowFlags?: readonly BackofficeRowFlagSpec<RowView>[];
|
|
708
715
|
sorts: readonly BackofficeSortSpec<TSort>[];
|
|
709
|
-
filters: readonly BackofficeFilterSpec<TWhere>[];
|
|
716
|
+
filters: readonly BackofficeFilterSpec<TWhere, TEntityId>[];
|
|
710
717
|
responsive?: BackofficeListResponsiveProfile<RowView>;
|
|
711
718
|
ui?: BackofficeListUiConfig;
|
|
712
719
|
defaultState?: BackofficeListState<TWhere, TSort>;
|
|
713
720
|
};
|
|
714
|
-
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>;
|
|
715
722
|
export type BackofficeBadgeItem = {
|
|
716
723
|
id: string;
|
|
717
724
|
label: string | I18nLabel;
|
|
@@ -1182,11 +1189,11 @@ export type BackofficeToolEntityConfig = {
|
|
|
1182
1189
|
picker?: never;
|
|
1183
1190
|
routes?: never;
|
|
1184
1191
|
};
|
|
1185
|
-
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> = {
|
|
1186
1193
|
kind: 'list';
|
|
1187
1194
|
id: string;
|
|
1188
1195
|
label: I18nLabel;
|
|
1189
|
-
list: BackofficeEntityListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation>;
|
|
1196
|
+
list: BackofficeEntityListConfig<TOperation, RowRef, RowView, ListFragmentData, TWhere, TSort, TCountOperation, TEntityId>;
|
|
1190
1197
|
listActions?: readonly BackofficeListActionSpec[];
|
|
1191
1198
|
};
|
|
1192
1199
|
export type BackofficePickerFacetConfig<TOperation extends OperationType, RowRef, RowView, PickerFragmentData, TWhere extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, ValueQueryData = BackofficeAliasedPickerValueResponse<string, RowRef>> = {
|
|
@@ -1278,6 +1285,9 @@ export type BackofficeListDetailFacetLoaderMap = {
|
|
|
1278
1285
|
detailLayout: BackofficeDetailLayoutFacetLoader;
|
|
1279
1286
|
detailPage: BackofficeDetailPageFacetLoader;
|
|
1280
1287
|
};
|
|
1288
|
+
export type BackofficeListDetailPickerFacetLoaderMap = BackofficeListDetailFacetLoaderMap & {
|
|
1289
|
+
picker: BackofficePickerFacetLoader;
|
|
1290
|
+
};
|
|
1281
1291
|
export type BackofficeToolFacetLoaderMap = {
|
|
1282
1292
|
tool: BackofficeToolFacetLoader;
|
|
1283
1293
|
};
|