@sumaris-net/ngx-components 18.10.11 → 18.10.13

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.
@@ -138,6 +138,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
138
138
  name: 'arrayFilter',
139
139
  }]
140
140
  }] });
141
+ export class ArraySortPipe {
142
+ transform(val, sortFn) {
143
+ if (!Array.isArray(val))
144
+ return null;
145
+ return val.sort(sortFn);
146
+ }
147
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArraySortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
148
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ArraySortPipe, name: "arraySort" });
149
+ }
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArraySortPipe, decorators: [{
151
+ type: Pipe,
152
+ args: [{
153
+ name: 'arraySort',
154
+ }]
155
+ }] });
141
156
  export class ArrayFindByPropertyPipe {
142
157
  transform(items, property, findValue) {
143
158
  if (!Array.isArray(items))
@@ -186,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
186
201
  name: 'arrayDistinct',
187
202
  }]
188
203
  }] });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9hcnJheXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUt0RixNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFNBQVMsQ0FBVSxHQUFrQjtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7d0dBSlUsaUJBQWlCO3NHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSDdCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEI7O0FBV0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsU0FBUyxDQUFVLEdBQWtCO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3JDLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt3R0FKVSxjQUFjO3NHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBSDFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7aUJBQ3JCOztBQVdELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBVSxHQUFrQixFQUFFLElBQW1FO1FBQ3hHLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFD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U0FBaUI7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDbkMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO3dHQUpVLGFBQWE7c0dBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFIekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztpQkFDbEI7O0FBV0QsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixTQUFTLENBQVUsR0FBa0IsRUFBRSxJQUF1RDtRQUM1RixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNyQyxNQUFNLFFBQVEsR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFFLElBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztRQUM5RSxPQUFPLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNJLENBQUM7d0dBTFUsaUJBQWlCO3NHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSDdCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGVBQWU7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlCeVBhdGgsIGlzTm90TmlsLCByZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5IH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnaXNOb3RFbXB0eUFycmF5Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90RW1wdHlBcnJheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHZhbC5sZW5ndGggPiAwO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2lzRW1wdHlBcnJheScsXG59KVxuZXhwb3J0IGNsYXNzIEVtcHR5QXJyYXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10pOiBib29sZWFuIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIHZhbC5sZW5ndGggPT09IDA7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnaXNBcnJheUxlbmd0aCcsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5TGVuZ3RoUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdLCBhcmdzPzogeyBncmVhdGVyVGhhbj86IG51bWJlcjsgZXF1YWxzPzogbnVtYmVyOyBsZXNzVGhhbj86IG51bWJlciB9KTogYm9vbGVhbiB7XG4gICAgYXJncyA9IGFyZ3MgfHwge307XG4gICAgY29uc3Qgc2l6ZSA9ICFBcnJheS5pc0FycmF5KHZhbCkgPyAwIDogdmFsLmxlbmd0aDtcbiAgICBpZiAoaXNOb3ROaWwoYXJncy5sZXNzVGhhbikpIHtcbiAgICAgIHJldHVybiBzaXplIDwgYXJncy5sZXNzVGhhbjtcbiAgICB9XG4gICAgaWYgKGlzTm90TmlsKGFyZ3MuZ3JlYXRlclRoYW4pKSB7XG4gICAgICByZXR1cm4gc2l6ZSA+IGFyZ3MuZ3JlYXRlclRoYW47XG4gICAgfVxuICAgIGlmIChpc05vdE5pbChhcmdzLmVxdWFscykpIHtcbiAgICAgIHJldHVybiBzaXplID09PSBhcmdzLmVxdWFscztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5Rmlyc3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZpcnN0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdKTogVCB8IG51bGwge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsLmxlbmd0aCA+IDAgPyB2YWxbMF0gOiBudWxsO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5TGFzdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5TGFzdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSk6IFQgfCBudWxsIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHZhbC5sZW5ndGggPiAwID8gdmFsW3ZhbC5sZW5ndGggLSAxXSA6IG51bGw7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlQbHVjaycsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5UGx1Y2tQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdmFsXG4gICAqIEBwYXJhbSBvcHRzIHByb3BlcnR5IHRvIGdldCwgb3Igb3B0aW9uc1xuICAgKi9cbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSwgb3B0czogc3RyaW5nIHwgc3RyaW5nW10gfCB7IHByb3BlcnR5OiBzdHJpbmcgfCBzdHJpbmdbXTsgb21pdE5pbD86IGJvb2xlYW4gfSk6IGFueVtdIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSB8fCAhb3B0cykgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcHJvcGVydHkgPSB0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheShvcHRzKSA/IChvcHRzIGFzIHN0cmluZyB8IHN0cmluZ1tdKSA6IG9wdHMucHJvcGVydHk7XG4gICAgcmV0dXJuIG9wdHNbJ29taXROaWwnXSAhPT0gdHJ1ZVxuICAgICAgPyB2YWwubWFwKCh2YWx1ZSkgPT4gZ2V0UHJvcGVydHlCeVBhdGgodmFsdWUsIHByb3BlcnR5KSlcbiAgICAgIDogdmFsLm1hcCgodmFsdWUpID0+IGdldFByb3BlcnR5QnlQYXRoKHZhbHVlLCBwcm9wZXJ0eSkpLmZpbHRlcihpc05vdE5pbCk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlJbmNsdWRlcycsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5SW5jbHVkZXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIHNlYXJjaEVsZW1lbnQ6IFQsIGZyb21JbmRleD86IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICh2YWwgJiYgdmFsLmluY2x1ZGVzKHNlYXJjaEVsZW1lbnQsIGZyb21JbmRleCkpIHx8IGZhbHNlO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5RmlsdGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIGZpbHRlckZuOiAoVCkgPT4gYm9vbGVhbik6IFRbXSB8IG51bGwge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsLmZpbHRlcihmaWx0ZXJGbik7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlGaW5kQnlQcm9wZXJ0eScsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5RmluZEJ5UHJvcGVydHlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55PihpdGVtczogdW5rbm93biB8IFRbXSwgcHJvcGVydHk6IHN0cmluZyB8IEFycmF5PHN0cmluZyB8IG51bWJlcj4sIGZpbmRWYWx1ZTogYW55KTogVCB8IG51bGwge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIGl0ZW1zLmZpbmQoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBnZXRQcm9wZXJ0eUJ5UGF0aChpdGVtLCBwcm9wZXJ0eSkgPT0gZmluZFZhbHVlO1xuICAgIH0pO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5Sm9pbicsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Sm9pblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSwgc2VwYXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHZhbC5qb2luKHNlcGFyYXRvcikgfHwgJyc7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlEaXN0aW5jdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5RGlzdGluY3RQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIG9wdHM/OiBzdHJpbmcgfCB7IHByb3BlcnR5OiBzdHJpbmc7IG9taXROaWw/OiBib29sZWFuIH0pOiBhbnlbXSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHByb3BlcnR5ID0gdHlwZW9mIG9wdHMgPT09ICdzdHJpbmcnID8gKG9wdHMgYXMgc3RyaW5nKSA6IG9wdHM/LnByb3BlcnR5O1xuICAgIHJldHVybiBvcHRzPy5bJ29taXROaWwnXSAhPT0gdHJ1ZSA/IHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXkodmFsLCBwcm9wZXJ0eSkgOiByZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5KHZhbCwgcHJvcGVydHkpLmZpbHRlcihpc05vdE5pbCk7XG4gIH1cbn1cbiJdfQ==
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9waXBlcy9hcnJheXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUt0RixNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFNBQVMsQ0FBVSxHQUFrQjtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN0QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7d0dBSlUsaUJBQWlCO3NHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBSDdCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEI7O0FBV0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsU0FBUyxDQUFVLEdBQWtCO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3JDLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt3R0FKVSxjQUFjO3NHQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBSDFCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7aUJBQ3JCOztBQVdELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBVSxHQUFrQixFQUFFLElBQW1FO1FBQ3hHLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFD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Qjs7NEZBQWpCLGlCQUFpQjtrQkFIN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRQcm9wZXJ0eUJ5UGF0aCwgaXNOb3ROaWwsIHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXkgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc05vdEVtcHR5QXJyYXknLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RFbXB0eUFycmF5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdmFsLmxlbmd0aCA+IDA7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnaXNFbXB0eUFycmF5Jyxcbn0pXG5leHBvcnQgY2xhc3MgRW1wdHlBcnJheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdmFsLmxlbmd0aCA9PT0gMDtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdpc0FycmF5TGVuZ3RoJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlMZW5ndGhQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIGFyZ3M/OiB7IGdyZWF0ZXJUaGFuPzogbnVtYmVyOyBlcXVhbHM/OiBudW1iZXI7IGxlc3NUaGFuPzogbnVtYmVyIH0pOiBib29sZWFuIHtcbiAgICBhcmdzID0gYXJncyB8fCB7fTtcbiAgICBjb25zdCBzaXplID0gIUFycmF5LmlzQXJyYXkodmFsKSA/IDAgOiB2YWwubGVuZ3RoO1xuICAgIGlmIChpc05vdE5pbChhcmdzLmxlc3NUaGFuKSkge1xuICAgICAgcmV0dXJuIHNpemUgPCBhcmdzLmxlc3NUaGFuO1xuICAgIH1cbiAgICBpZiAoaXNOb3ROaWwoYXJncy5ncmVhdGVyVGhhbikpIHtcbiAgICAgIHJldHVybiBzaXplID4gYXJncy5ncmVhdGVyVGhhbjtcbiAgICB9XG4gICAgaWYgKGlzTm90TmlsKGFyZ3MuZXF1YWxzKSkge1xuICAgICAgcmV0dXJuIHNpemUgPT09IGFyZ3MuZXF1YWxzO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlGaXJzdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Rmlyc3RQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10pOiBUIHwgbnVsbCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB2YWwubGVuZ3RoID4gMCA/IHZhbFswXSA6IG51bGw7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlMYXN0Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlMYXN0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdKTogVCB8IG51bGwge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsLmxlbmd0aCA+IDAgPyB2YWxbdmFsLmxlbmd0aCAtIDFdIDogbnVsbDtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdhcnJheVBsdWNrJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlQbHVja1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB2YWxcbiAgICogQHBhcmFtIG9wdHMgcHJvcGVydHkgdG8gZ2V0LCBvciBvcHRpb25zXG4gICAqL1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdLCBvcHRzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgcHJvcGVydHk6IHN0cmluZyB8IHN0cmluZ1tdOyBvbWl0TmlsPzogYm9vbGVhbiB9KTogYW55W10ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpIHx8ICFvcHRzKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IHR5cGVvZiBvcHRzID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KG9wdHMpID8gKG9wdHMgYXMgc3RyaW5nIHwgc3RyaW5nW10pIDogb3B0cy5wcm9wZXJ0eTtcbiAgICByZXR1cm4gb3B0c1snb21pdE5pbCddICE9PSB0cnVlXG4gICAgICA/IHZhbC5tYXAoKHZhbHVlKSA9PiBnZXRQcm9wZXJ0eUJ5UGF0aCh2YWx1ZSwgcHJvcGVydHkpKVxuICAgICAgOiB2YWwubWFwKCh2YWx1ZSkgPT4gZ2V0UHJvcGVydHlCeVBhdGgodmFsdWUsIHByb3BlcnR5KSkuZmlsdGVyKGlzTm90TmlsKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdhcnJheUluY2x1ZGVzJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlJbmNsdWRlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSwgc2VhcmNoRWxlbWVudDogVCwgZnJvbUluZGV4PzogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gKHZhbCAmJiB2YWwuaW5jbHVkZXMoc2VhcmNoRWxlbWVudCwgZnJvbUluZGV4KSkgfHwgZmFsc2U7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlGaWx0ZXInLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheUZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSwgZmlsdGVyRm46IChUKSA9PiBib29sZWFuKTogVFtdIHwgbnVsbCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB2YWwuZmlsdGVyKGZpbHRlckZuKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdhcnJheVNvcnQnLFxufSlcbmV4cG9ydCBjbGFzcyBBcnJheVNvcnRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybTxUID0gYW55Pih2YWw6IHVua25vd24gfCBUW10sIHNvcnRGbjogKGE6IFQsIGI6IFQpID0+IG51bWJlcik6IFRbXSB8IG51bGwge1xuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWwpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdmFsLnNvcnQoc29ydEZuKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdhcnJheUZpbmRCeVByb3BlcnR5Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlGaW5kQnlQcm9wZXJ0eVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KGl0ZW1zOiB1bmtub3duIHwgVFtdLCBwcm9wZXJ0eTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiwgZmluZFZhbHVlOiBhbnkpOiBUIHwgbnVsbCB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gaXRlbXMuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIGdldFByb3BlcnR5QnlQYXRoKGl0ZW0sIHByb3BlcnR5KSA9PSBmaW5kVmFsdWU7XG4gICAgfSk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnYXJyYXlKb2luJyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlKb2luUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VCA9IGFueT4odmFsOiB1bmtub3duIHwgVFtdLCBzZXBhcmF0b3I6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbCkpIHJldHVybiAnJztcbiAgICByZXR1cm4gdmFsLmpvaW4oc2VwYXJhdG9yKSB8fCAnJztcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdhcnJheURpc3RpbmN0Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlEaXN0aW5jdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtPFQgPSBhbnk+KHZhbDogdW5rbm93biB8IFRbXSwgb3B0cz86IHN0cmluZyB8IHsgcHJvcGVydHk6IHN0cmluZzsgb21pdE5pbD86IGJvb2xlYW4gfSk6IGFueVtdIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcHJvcGVydHkgPSB0eXBlb2Ygb3B0cyA9PT0gJ3N0cmluZycgPyAob3B0cyBhcyBzdHJpbmcpIDogb3B0cz8ucHJvcGVydHk7XG4gICAgcmV0dXJuIG9wdHM/Llsnb21pdE5pbCddICE9PSB0cnVlID8gcmVtb3ZlRHVwbGljYXRlc0Zyb21BcnJheSh2YWwsIHByb3BlcnR5KSA6IHJlbW92ZUR1cGxpY2F0ZXNGcm9tQXJyYXkodmFsLCBwcm9wZXJ0eSkuZmlsdGVyKGlzTm90TmlsKTtcbiAgfVxufVxuIl19