ngx-lift 1.0.0 → 1.2.0

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.
@@ -8,14 +8,14 @@ export class ArrayJoinPipe {
8
8
  // For non-array cases or unexpected types, return the value as is
9
9
  return value;
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ArrayJoinPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: ArrayJoinPipe, isStandalone: true, name: "arrayJoin" }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ArrayJoinPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: ArrayJoinPipe, isStandalone: true, name: "arrayJoin" }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ArrayJoinPipe, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ArrayJoinPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{
17
17
  name: 'arrayJoin',
18
18
  standalone: true,
19
19
  }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktam9pbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9waXBlcy9hcnJheS1qb2luLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBTWxELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxLQUFjLEVBQUUsWUFBb0IsR0FBRztRQUMvQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsa0VBQWtFO1FBQ2xFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FSVSxhQUFhOzRHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBSnpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5Sm9pbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Sm9pblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbHVlOiB1bmtub3duLCBzZXBhcmF0b3I6IHN0cmluZyA9ICcsJykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLmpvaW4oc2VwYXJhdG9yKTtcbiAgICB9XG5cbiAgICAvLyBGb3Igbm9uLWFycmF5IGNhc2VzIG9yIHVuZXhwZWN0ZWQgdHlwZXMsIHJldHVybiB0aGUgdmFsdWUgYXMgaXNcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktam9pbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9waXBlcy9hcnJheS1qb2luLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBTWxELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxLQUFjLEVBQUUsWUFBb0IsR0FBRztRQUMvQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsa0VBQWtFO1FBQ2xFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0FSVSxhQUFhOzZHQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBSnpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2FycmF5Sm9pbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEFycmF5Sm9pblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbHVlOiB1bmtub3duLCBzZXBhcmF0b3I6IHN0cmluZyA9ICcsJykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLmpvaW4oc2VwYXJhdG9yKTtcbiAgICB9XG5cbiAgICAvLyBGb3Igbm9uLWFycmF5IGNhc2VzIG9yIHVuZXhwZWN0ZWQgdHlwZXMsIHJldHVybiB0aGUgdmFsdWUgYXMgaXNcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Inject, LOCALE_ID, Pipe } from '@angular/core';
1
+ import { inject, LOCALE_ID, Pipe } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * import { LOCALE_ID, NgModule } from '@angular/core';
@@ -30,8 +30,8 @@ import * as i0 from "@angular/core";
30
30
  * export class AppModule {}
31
31
  */
32
32
  export class ByteConverterPipe {
33
- constructor(locale) {
34
- this.locale = locale;
33
+ constructor() {
34
+ this.locale = inject(LOCALE_ID);
35
35
  }
36
36
  // If using navigator.language directly in the pipe, this approach directly uses the browser's language at the moment the ByteConverterPipe is constructed. If the user changes the language while using the application, it won't be automatically reflected. If dynamic language changes are a requirement, using the LOCALE_ID provider as demonstrated in the AppModule is a more Angular-centric approach.
37
37
  // private locale: string;
@@ -56,19 +56,16 @@ export class ByteConverterPipe {
56
56
  formatNumber(value) {
57
57
  return new Intl.NumberFormat(this.locale, { maximumFractionDigits: 2 }).format(value);
58
58
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ByteConverterPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }
60
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: ByteConverterPipe, isStandalone: true, name: "byteConverter" }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ByteConverterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
60
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: ByteConverterPipe, isStandalone: true, name: "byteConverter" }); }
61
61
  }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ByteConverterPipe, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ByteConverterPipe, decorators: [{
63
63
  type: Pipe,
64
64
  args: [{
65
65
  name: 'byteConverter',
66
66
  standalone: true,
67
67
  }]
68
- }], ctorParameters: () => [{ type: undefined, decorators: [{
69
- type: Inject,
70
- args: [LOCALE_ID]
71
- }] }] });
68
+ }] });
72
69
  const translations = {
73
70
  en: {
74
71
  BYTE: 'B',
@@ -156,4 +153,4 @@ const translations = {
156
153
  TB: 'ТБ',
157
154
  },
158
155
  };
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZS1jb252ZXJ0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvcGlwZXMvYnl0ZS1jb252ZXJ0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUVyRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBdUMsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBRXpELCtZQUErWTtJQUMvWSwwQkFBMEI7SUFDMUIsa0JBQWtCO0lBQ2xCLG9EQUFvRDtJQUNwRCw4Q0FBOEM7SUFDOUMsSUFBSTtJQUVKLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RCxPQUFPLEdBQUcsQ0FBQztTQUNaO1FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEQsS0FBSyxJQUFJLElBQUksQ0FBQztZQUNkLFNBQVMsRUFBRSxDQUFDO1NBQ2I7UUFFRCxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBYTtRQUNoQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUMscUJBQXFCLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEYsQ0FBQzs4R0EvQlUsaUJBQWlCLGtCQUNSLFNBQVM7NEdBRGxCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFFYyxNQUFNOzJCQUFDLFNBQVM7O0FBaUMvQixNQUFNLFlBQVksR0FBMkM7SUFDM0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsMERBQTBEO1FBQzFELElBQUksRUFBRSxHQUFHO1FBQ1QsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7S0FDVDtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRSxHQUFHO1FBQ1QsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7S0FDVDtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRSxHQUFHO1FBQ1QsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7S0FDVDtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRSxHQUFHO1FBQ1QsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7S0FDVDtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRSxHQUFHO1FBQ1QsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7S0FDVDtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRSxHQUFHO1FBQ1QsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7S0FDVDtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRSxHQUFHO1FBQ1QsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7S0FDVDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxHQUFHO1FBQ1QsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7S0FDVDtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxJQUFJO1FBQ1YsRUFBRSxFQUFFLEtBQUs7UUFDVCxFQUFFLEVBQUUsS0FBSztRQUNULEVBQUUsRUFBRSxNQUFNO1FBQ1YsRUFBRSxFQUFFLEtBQUs7S0FDVjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxLQUFLO1FBQ1gsRUFBRSxFQUFFLE1BQU07UUFDVixFQUFFLEVBQUUsTUFBTTtRQUNWLEVBQUUsRUFBRSxPQUFPO1FBQ1gsRUFBRSxFQUFFLE1BQU07S0FDWDtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRSxHQUFHO1FBQ1QsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7S0FDVDtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgTE9DQUxFX0lELCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBpbXBvcnQgeyBMT0NBTEVfSUQsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKiBpbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG4gKiBpbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tICcuL2FwcC5jb21wb25lbnQnO1xuICogaW1wb3J0IHsgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbiAqXG4gKiBpbXBvcnQgbG9jYWxlRW4gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZW4nO1xuICogaW1wb3J0IGxvY2FsZUZyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2ZyJztcbiAqXG4gKiAvLyBSZWdpc3RlciBsb2NhbGVzXG4gKiByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRW4pO1xuICogcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUZyKTtcbiAqXG4gKiBATmdNb2R1bGUoe1xuICogICBkZWNsYXJhdGlvbnM6IFtBcHBDb21wb25lbnRdLFxuICogICBpbXBvcnRzOiBbQnJvd3Nlck1vZHVsZV0sXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHtcbiAqICAgICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAqICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAqICAgICAgICAgLy8gVXNlIHRoZSBicm93c2VyJ3MgbGFuZ3VhZ2Ugb3IgYSBkZWZhdWx0IGxhbmd1YWdlXG4gKiAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubGFuZ3VhZ2UgfHwgJ2VuJztcbiAqICAgICAgIH0sXG4gKiAgICAgfSxcbiAqICAgXSxcbiAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XSxcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKi9cblxuQFBpcGUoe1xuICBuYW1lOiAnYnl0ZUNvbnZlcnRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEJ5dGVDb252ZXJ0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZTogc3RyaW5nKSB7fVxuXG4gIC8vIElmIHVzaW5nIG5hdmlnYXRvci5sYW5ndWFnZSBkaXJlY3RseSBpbiB0aGUgcGlwZSwgdGhpcyBhcHByb2FjaCBkaXJlY3RseSB1c2VzIHRoZSBicm93c2VyJ3MgbGFuZ3VhZ2UgYXQgdGhlIG1vbWVudCB0aGUgQnl0ZUNvbnZlcnRlclBpcGUgaXMgY29uc3RydWN0ZWQuIElmIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGxhbmd1YWdlIHdoaWxlIHVzaW5nIHRoZSBhcHBsaWNhdGlvbiwgaXQgd29uJ3QgYmUgYXV0b21hdGljYWxseSByZWZsZWN0ZWQuIElmIGR5bmFtaWMgbGFuZ3VhZ2UgY2hhbmdlcyBhcmUgYSByZXF1aXJlbWVudCwgdXNpbmcgdGhlIExPQ0FMRV9JRCBwcm92aWRlciBhcyBkZW1vbnN0cmF0ZWQgaW4gdGhlIEFwcE1vZHVsZSBpcyBhIG1vcmUgQW5ndWxhci1jZW50cmljIGFwcHJvYWNoLlxuICAvLyBwcml2YXRlIGxvY2FsZTogc3RyaW5nO1xuICAvLyBjb25zdHJ1Y3RvcigpIHtcbiAgLy8gICAvLyBVc2UgbmF2aWdhdG9yLmxhbmd1YWdlIGFzIHRoZSBkZWZhdWx0IGxvY2FsZVxuICAvLyAgIHRoaXMubG9jYWxlID0gbmF2aWdhdG9yLmxhbmd1YWdlIHx8ICdlbic7XG4gIC8vIH1cblxuICB0cmFuc2Zvcm0odmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICByZXR1cm4gJy0nO1xuICAgIH1cblxuICAgIGNvbnN0IHVuaXRzID0gWydCWVRFJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XG4gICAgbGV0IHVuaXRJbmRleCA9IDA7XG5cbiAgICB3aGlsZSAodmFsdWUgPj0gMTAyNCAmJiB1bml0SW5kZXggPCB1bml0cy5sZW5ndGggLSAxKSB7XG4gICAgICB2YWx1ZSAvPSAxMDI0O1xuICAgICAgdW5pdEluZGV4Kys7XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNsYXRpb25PYmplY3QgPSB0cmFuc2xhdGlvbnNbdGhpcy5sb2NhbGVdIHx8IHRyYW5zbGF0aW9uc1snZW4nXTtcbiAgICBjb25zdCBrZXkgPSB1bml0c1t1bml0SW5kZXhdO1xuXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlKSArICcgJyArIHRyYW5zbGF0aW9uT2JqZWN0W2tleV07XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KHRoaXMubG9jYWxlLCB7bWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyfSkuZm9ybWF0KHZhbHVlKTtcbiAgfVxufVxuXG5jb25zdCB0cmFuc2xhdGlvbnM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBlbjoge1xuICAgIEJZVEU6ICdCJyxcbiAgICBLQjogJ0tCJyxcbiAgICBNQjogJ01CJyxcbiAgICBHQjogJ0dCJyxcbiAgICBUQjogJ1RCJyxcbiAgfSxcbiAgJ2VuLVVTJzoge1xuICAgIC8vIFlvdSBjYW4gcHJvdmlkZSBzcGVjaWZpYyB2YXJpYXRpb25zIGZvciBlbi1VUyBpZiBuZWVkZWRcbiAgICBCWVRFOiAnQicsXG4gICAgS0I6ICdLQicsXG4gICAgTUI6ICdNQicsXG4gICAgR0I6ICdHQicsXG4gICAgVEI6ICdUQicsXG4gIH0sXG4gIGRlOiB7XG4gICAgQllURTogJ0InLFxuICAgIEtCOiAnS0InLFxuICAgIE1COiAnTUInLFxuICAgIEdCOiAnR0InLFxuICAgIFRCOiAnVEInLFxuICB9LFxuICBlczoge1xuICAgIEJZVEU6ICdCJyxcbiAgICBLQjogJ0tCJyxcbiAgICBNQjogJ01CJyxcbiAgICBHQjogJ0dCJyxcbiAgICBUQjogJ1RCJyxcbiAgfSxcbiAgZnI6IHtcbiAgICBCWVRFOiAnbycsXG4gICAgS0I6ICdLbycsXG4gICAgTUI6ICdNbycsXG4gICAgR0I6ICdHbycsXG4gICAgVEI6ICdUbycsXG4gIH0sXG4gIGl0OiB7XG4gICAgQllURTogJ0InLFxuICAgIEtCOiAnS0InLFxuICAgIE1COiAnTUInLFxuICAgIEdCOiAnR0InLFxuICAgIFRCOiAnVEInLFxuICB9LFxuICBqYToge1xuICAgIEJZVEU6ICdCJyxcbiAgICBLQjogJ0tCJyxcbiAgICBNQjogJ01CJyxcbiAgICBHQjogJ0dCJyxcbiAgICBUQjogJ1RCJyxcbiAgfSxcbiAga286IHtcbiAgICBCWVRFOiAnQicsXG4gICAgS0I6ICdLQicsXG4gICAgTUI6ICdNQicsXG4gICAgR0I6ICdHQicsXG4gICAgVEI6ICdUQicsXG4gIH0sXG4gICdwdC1CUic6IHtcbiAgICBCWVRFOiAnQicsXG4gICAgS0I6ICdLQicsXG4gICAgTUI6ICdNQicsXG4gICAgR0I6ICdHQicsXG4gICAgVEI6ICdUQicsXG4gIH0sXG4gICd6aC1DTic6IHtcbiAgICBCWVRFOiAn5a2X6IqCJyxcbiAgICBLQjogJ+WNg+Wtl+iKgicsXG4gICAgTUI6ICflhYblrZfoioInLFxuICAgIEdCOiAn5Y2D5YWG5a2X6IqCJyxcbiAgICBUQjogJ+WkquWtl+iKgicsXG4gIH0sXG4gICd6aC1UVyc6IHtcbiAgICBCWVRFOiAn5L2N5YWD57WEJyxcbiAgICBLQjogJ+WNg+S9jeWFg+e1hCcsXG4gICAgTUI6ICflhYbkvY3lhYPntYQnLFxuICAgIEdCOiAn5Y2D5YWG5L2N5YWD57WEJyxcbiAgICBUQjogJ+WkquS9jeWFg+e1hCcsXG4gIH0sXG4gIHJ1OiB7XG4gICAgQllURTogJ9CRJyxcbiAgICBLQjogJ9Ca0JEnLFxuICAgIE1COiAn0JzQkScsXG4gICAgR0I6ICfQk9CRJyxcbiAgICBUQjogJ9Ci0JEnLFxuICB9LFxufTtcbiJdfQ==
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZS1jb252ZXJ0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvcGlwZXMvYnl0ZS1jb252ZXJ0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUVyRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFKOUI7UUFLVSxXQUFNLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0tBOEI1QztJQTdCQywrWUFBK1k7SUFDL1ksMEJBQTBCO0lBQzFCLGtCQUFrQjtJQUNsQixvREFBb0Q7SUFDcEQsOENBQThDO0lBQzlDLElBQUk7SUFFSixTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekQsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUVsQixPQUFPLEtBQUssSUFBSSxJQUFJLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BELEtBQUssSUFBSSxJQUFJLENBQUM7WUFDZCxTQUFTLEVBQUUsQ0FBQztTQUNiO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWE7UUFDaEMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFDLHFCQUFxQixFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RGLENBQUM7K0dBOUJVLGlCQUFpQjs2R0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUo3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBa0NELE1BQU0sWUFBWSxHQUEyQztJQUMzRCxFQUFFLEVBQUU7UUFDRixJQUFJLEVBQUUsR0FBRztRQUNULEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO0tBQ1Q7SUFDRCxPQUFPLEVBQUU7UUFDUCwwREFBMEQ7UUFDMUQsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixFQUFFLEVBQUUsS0FBSztRQUNULEVBQUUsRUFBRSxLQUFLO1FBQ1QsRUFBRSxFQUFFLE1BQU07UUFDVixFQUFFLEVBQUUsS0FBSztLQUNWO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLEtBQUs7UUFDWCxFQUFFLEVBQUUsTUFBTTtRQUNWLEVBQUUsRUFBRSxNQUFNO1FBQ1YsRUFBRSxFQUFFLE9BQU87UUFDWCxFQUFFLEVBQUUsTUFBTTtLQUNYO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBMT0NBTEVfSUQsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIGltcG9ydCB7IExPQ0FMRV9JRCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqIGltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbiAqIGltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7XG4gKiBpbXBvcnQgeyByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuICpcbiAqIGltcG9ydCBsb2NhbGVFbiBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9lbic7XG4gKiBpbXBvcnQgbG9jYWxlRnIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZnInO1xuICpcbiAqIC8vIFJlZ2lzdGVyIGxvY2FsZXNcbiAqIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVFbik7XG4gKiByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRnIpO1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sXG4gKiAgIGltcG9ydHM6IFtCcm93c2VyTW9kdWxlXSxcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICogICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICogICAgICAgICAvLyBVc2UgdGhlIGJyb3dzZXIncyBsYW5ndWFnZSBvciBhIGRlZmF1bHQgbGFuZ3VhZ2VcbiAqICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5sYW5ndWFnZSB8fCAnZW4nO1xuICogICAgICAgfSxcbiAqICAgICB9LFxuICogICBdLFxuICogICBib290c3RyYXA6IFtBcHBDb21wb25lbnRdLFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGUge31cbiAqL1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdieXRlQ29udmVydGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQnl0ZUNvbnZlcnRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSBsb2NhbGUgPSBpbmplY3Q8c3RyaW5nPihMT0NBTEVfSUQpO1xuICAvLyBJZiB1c2luZyBuYXZpZ2F0b3IubGFuZ3VhZ2UgZGlyZWN0bHkgaW4gdGhlIHBpcGUsIHRoaXMgYXBwcm9hY2ggZGlyZWN0bHkgdXNlcyB0aGUgYnJvd3NlcidzIGxhbmd1YWdlIGF0IHRoZSBtb21lbnQgdGhlIEJ5dGVDb252ZXJ0ZXJQaXBlIGlzIGNvbnN0cnVjdGVkLiBJZiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBsYW5ndWFnZSB3aGlsZSB1c2luZyB0aGUgYXBwbGljYXRpb24sIGl0IHdvbid0IGJlIGF1dG9tYXRpY2FsbHkgcmVmbGVjdGVkLiBJZiBkeW5hbWljIGxhbmd1YWdlIGNoYW5nZXMgYXJlIGEgcmVxdWlyZW1lbnQsIHVzaW5nIHRoZSBMT0NBTEVfSUQgcHJvdmlkZXIgYXMgZGVtb25zdHJhdGVkIGluIHRoZSBBcHBNb2R1bGUgaXMgYSBtb3JlIEFuZ3VsYXItY2VudHJpYyBhcHByb2FjaC5cbiAgLy8gcHJpdmF0ZSBsb2NhbGU6IHN0cmluZztcbiAgLy8gY29uc3RydWN0b3IoKSB7XG4gIC8vICAgLy8gVXNlIG5hdmlnYXRvci5sYW5ndWFnZSBhcyB0aGUgZGVmYXVsdCBsb2NhbGVcbiAgLy8gICB0aGlzLmxvY2FsZSA9IG5hdmlnYXRvci5sYW5ndWFnZSB8fCAnZW4nO1xuICAvLyB9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IGlzTmFOKHZhbHVlKSkge1xuICAgICAgcmV0dXJuICctJztcbiAgICB9XG5cbiAgICBjb25zdCB1bml0cyA9IFsnQllURScsICdLQicsICdNQicsICdHQicsICdUQiddO1xuICAgIGxldCB1bml0SW5kZXggPSAwO1xuXG4gICAgd2hpbGUgKHZhbHVlID49IDEwMjQgJiYgdW5pdEluZGV4IDwgdW5pdHMubGVuZ3RoIC0gMSkge1xuICAgICAgdmFsdWUgLz0gMTAyNDtcbiAgICAgIHVuaXRJbmRleCsrO1xuICAgIH1cblxuICAgIGNvbnN0IHRyYW5zbGF0aW9uT2JqZWN0ID0gdHJhbnNsYXRpb25zW3RoaXMubG9jYWxlXSB8fCB0cmFuc2xhdGlvbnNbJ2VuJ107XG4gICAgY29uc3Qga2V5ID0gdW5pdHNbdW5pdEluZGV4XTtcblxuICAgIHJldHVybiB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSkgKyAnICcgKyB0cmFuc2xhdGlvbk9iamVjdFtrZXldO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCh0aGlzLmxvY2FsZSwge21heGltdW1GcmFjdGlvbkRpZ2l0czogMn0pLmZvcm1hdCh2YWx1ZSk7XG4gIH1cbn1cblxuY29uc3QgdHJhbnNsYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgZW46IHtcbiAgICBCWVRFOiAnQicsXG4gICAgS0I6ICdLQicsXG4gICAgTUI6ICdNQicsXG4gICAgR0I6ICdHQicsXG4gICAgVEI6ICdUQicsXG4gIH0sXG4gICdlbi1VUyc6IHtcbiAgICAvLyBZb3UgY2FuIHByb3ZpZGUgc3BlY2lmaWMgdmFyaWF0aW9ucyBmb3IgZW4tVVMgaWYgbmVlZGVkXG4gICAgQllURTogJ0InLFxuICAgIEtCOiAnS0InLFxuICAgIE1COiAnTUInLFxuICAgIEdCOiAnR0InLFxuICAgIFRCOiAnVEInLFxuICB9LFxuICBkZToge1xuICAgIEJZVEU6ICdCJyxcbiAgICBLQjogJ0tCJyxcbiAgICBNQjogJ01CJyxcbiAgICBHQjogJ0dCJyxcbiAgICBUQjogJ1RCJyxcbiAgfSxcbiAgZXM6IHtcbiAgICBCWVRFOiAnQicsXG4gICAgS0I6ICdLQicsXG4gICAgTUI6ICdNQicsXG4gICAgR0I6ICdHQicsXG4gICAgVEI6ICdUQicsXG4gIH0sXG4gIGZyOiB7XG4gICAgQllURTogJ28nLFxuICAgIEtCOiAnS28nLFxuICAgIE1COiAnTW8nLFxuICAgIEdCOiAnR28nLFxuICAgIFRCOiAnVG8nLFxuICB9LFxuICBpdDoge1xuICAgIEJZVEU6ICdCJyxcbiAgICBLQjogJ0tCJyxcbiAgICBNQjogJ01CJyxcbiAgICBHQjogJ0dCJyxcbiAgICBUQjogJ1RCJyxcbiAgfSxcbiAgamE6IHtcbiAgICBCWVRFOiAnQicsXG4gICAgS0I6ICdLQicsXG4gICAgTUI6ICdNQicsXG4gICAgR0I6ICdHQicsXG4gICAgVEI6ICdUQicsXG4gIH0sXG4gIGtvOiB7XG4gICAgQllURTogJ0InLFxuICAgIEtCOiAnS0InLFxuICAgIE1COiAnTUInLFxuICAgIEdCOiAnR0InLFxuICAgIFRCOiAnVEInLFxuICB9LFxuICAncHQtQlInOiB7XG4gICAgQllURTogJ0InLFxuICAgIEtCOiAnS0InLFxuICAgIE1COiAnTUInLFxuICAgIEdCOiAnR0InLFxuICAgIFRCOiAnVEInLFxuICB9LFxuICAnemgtQ04nOiB7XG4gICAgQllURTogJ+Wtl+iKgicsXG4gICAgS0I6ICfljYPlrZfoioInLFxuICAgIE1COiAn5YWG5a2X6IqCJyxcbiAgICBHQjogJ+WNg+WFhuWtl+iKgicsXG4gICAgVEI6ICflpKrlrZfoioInLFxuICB9LFxuICAnemgtVFcnOiB7XG4gICAgQllURTogJ+S9jeWFg+e1hCcsXG4gICAgS0I6ICfljYPkvY3lhYPntYQnLFxuICAgIE1COiAn5YWG5L2N5YWD57WEJyxcbiAgICBHQjogJ+WNg+WFhuS9jeWFg+e1hCcsXG4gICAgVEI6ICflpKrkvY3lhYPntYQnLFxuICB9LFxuICBydToge1xuICAgIEJZVEU6ICfQkScsXG4gICAgS0I6ICfQmtCRJyxcbiAgICBNQjogJ9Cc0JEnLFxuICAgIEdCOiAn0JPQkScsXG4gICAgVEI6ICfQotCRJyxcbiAgfSxcbn07XG4iXX0=
@@ -5,14 +5,14 @@ export class IsHttpsPipe {
5
5
  transform(value) {
6
6
  return httpsPattern.test(value);
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IsHttpsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: IsHttpsPipe, isStandalone: true, name: "isHttps" }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: IsHttpsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: IsHttpsPipe, isStandalone: true, name: "isHttps" }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: IsHttpsPipe, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: IsHttpsPipe, decorators: [{
12
12
  type: Pipe,
13
13
  args: [{
14
14
  name: 'isHttps',
15
15
  standalone: true,
16
16
  }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaHR0cHMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvcGlwZXMvaXMtaHR0cHMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sVUFBVSxDQUFDOztBQU10QyxNQUFNLE9BQU8sV0FBVztJQUN0QixTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0FIVSxXQUFXOzRHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBSnZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7b0JBQ2YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtodHRwc1BhdHRlcm59IGZyb20gJy4uL2NvbnN0JztcblxuQFBpcGUoe1xuICBuYW1lOiAnaXNIdHRwcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElzSHR0cHNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGh0dHBzUGF0dGVybi50ZXN0KHZhbHVlKTtcbiAgfVxufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaHR0cHMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvcGlwZXMvaXMtaHR0cHMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sVUFBVSxDQUFDOztBQU10QyxNQUFNLE9BQU8sV0FBVztJQUN0QixTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0FIVSxXQUFXOzZHQUFYLFdBQVc7OzRGQUFYLFdBQVc7a0JBSnZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7b0JBQ2YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtodHRwc1BhdHRlcm59IGZyb20gJy4uL2NvbnN0JztcblxuQFBpcGUoe1xuICBuYW1lOiAnaXNIdHRwcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElzSHR0cHNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGh0dHBzUGF0dGVybi50ZXN0KHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -23,14 +23,14 @@ export class MaskPipe {
23
23
  .map((char, i) => (i < unmaskedPrefixLength || i > value.length - unmaskedSuffixLength - 1 ? char : maskChar))
24
24
  .join('');
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MaskPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
27
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: MaskPipe, isStandalone: true, name: "mask" }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: MaskPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
27
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: MaskPipe, isStandalone: true, name: "mask" }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MaskPipe, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: MaskPipe, decorators: [{
30
30
  type: Pipe,
31
31
  args: [{
32
32
  name: 'mask',
33
33
  standalone: true,
34
34
  }]
35
35
  }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9waXBlcy9tYXNrLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBRWxELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFZckIsTUFBTSxPQUFPLFFBQVE7SUFDbkI7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEtBQWEsRUFBRSxVQUF1QixFQUFFO1FBQ2hELE1BQU0sRUFBQyxvQkFBb0IsR0FBRyxZQUFZLEVBQUUsb0JBQW9CLEdBQUcsWUFBWSxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQUMsR0FBRyxPQUFPLENBQUM7UUFFMUcsSUFDRSxLQUFLLENBQUMsTUFBTSxJQUFJLG9CQUFvQixHQUFHLG9CQUFvQjtZQUMzRCxvQkFBb0IsR0FBRyxDQUFDO1lBQ3hCLG9CQUFvQixHQUFHLENBQUM7WUFDeEIsQ0FBQyxNQUFNLEVBQ1A7WUFDQSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxLQUFLO2FBQ1QsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNULEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLG9CQUFvQixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM3RyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZCxDQUFDOzhHQXhCVSxRQUFROzRHQUFSLFFBQVE7OzJGQUFSLFFBQVE7a0JBSnBCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLE1BQU07b0JBQ1osVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgdW5tYXNrTnVtYmVyID0gNjtcbmNvbnN0IG1hc2tDaGFyID0gJyonO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hc2tPcHRpb25zIHtcbiAgdW5tYXNrZWRQcmVmaXhMZW5ndGg/OiBudW1iZXI7XG4gIHVubWFza2VkU3VmZml4TGVuZ3RoPzogbnVtYmVyO1xuICBtYXNrZWQ/OiBib29sZWFuO1xufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdtYXNrJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTWFza1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgdGhlIGlucHV0IHN0cmluZyBieSBtYXNraW5nIGNoYXJhY3RlcnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgbWFza2VkLlxuICAgKiBAcGFyYW0ge01hc2tPcHRpb25zfSBbb3B0aW9ucz17fV0gLSBPcHRpb25zIGZvciBjdXN0b21pemluZyB0aGUgbWFza2luZyBiZWhhdmlvci5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgbWFza2VkIHN0cmluZy5cbiAgICovXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBNYXNrT3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCB7dW5tYXNrZWRQcmVmaXhMZW5ndGggPSB1bm1hc2tOdW1iZXIsIHVubWFza2VkU3VmZml4TGVuZ3RoID0gdW5tYXNrTnVtYmVyLCBtYXNrZWQgPSB0cnVlfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAoXG4gICAgICB2YWx1ZS5sZW5ndGggPD0gdW5tYXNrZWRQcmVmaXhMZW5ndGggKyB1bm1hc2tlZFN1ZmZpeExlbmd0aCB8fFxuICAgICAgdW5tYXNrZWRQcmVmaXhMZW5ndGggPCAwIHx8XG4gICAgICB1bm1hc2tlZFN1ZmZpeExlbmd0aCA8IDAgfHxcbiAgICAgICFtYXNrZWRcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgICAgIC5zcGxpdCgnJylcbiAgICAgIC5tYXAoKGNoYXIsIGkpID0+IChpIDwgdW5tYXNrZWRQcmVmaXhMZW5ndGggfHwgaSA+IHZhbHVlLmxlbmd0aCAtIHVubWFza2VkU3VmZml4TGVuZ3RoIC0gMSA/IGNoYXIgOiBtYXNrQ2hhcikpXG4gICAgICAuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9waXBlcy9tYXNrLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBRWxELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFZckIsTUFBTSxPQUFPLFFBQVE7SUFDbkI7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEtBQWEsRUFBRSxVQUF1QixFQUFFO1FBQ2hELE1BQU0sRUFBQyxvQkFBb0IsR0FBRyxZQUFZLEVBQUUsb0JBQW9CLEdBQUcsWUFBWSxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQUMsR0FBRyxPQUFPLENBQUM7UUFFMUcsSUFDRSxLQUFLLENBQUMsTUFBTSxJQUFJLG9CQUFvQixHQUFHLG9CQUFvQjtZQUMzRCxvQkFBb0IsR0FBRyxDQUFDO1lBQ3hCLG9CQUFvQixHQUFHLENBQUM7WUFDeEIsQ0FBQyxNQUFNLEVBQ1A7WUFDQSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxLQUFLO2FBQ1QsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNULEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLG9CQUFvQixJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM3RyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZCxDQUFDOytHQXhCVSxRQUFROzZHQUFSLFFBQVE7OzRGQUFSLFFBQVE7a0JBSnBCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLE1BQU07b0JBQ1osVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuY29uc3QgdW5tYXNrTnVtYmVyID0gNjtcbmNvbnN0IG1hc2tDaGFyID0gJyonO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hc2tPcHRpb25zIHtcbiAgdW5tYXNrZWRQcmVmaXhMZW5ndGg/OiBudW1iZXI7XG4gIHVubWFza2VkU3VmZml4TGVuZ3RoPzogbnVtYmVyO1xuICBtYXNrZWQ/OiBib29sZWFuO1xufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdtYXNrJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTWFza1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgdGhlIGlucHV0IHN0cmluZyBieSBtYXNraW5nIGNoYXJhY3RlcnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFRoZSBpbnB1dCBzdHJpbmcgdG8gYmUgbWFza2VkLlxuICAgKiBAcGFyYW0ge01hc2tPcHRpb25zfSBbb3B0aW9ucz17fV0gLSBPcHRpb25zIGZvciBjdXN0b21pemluZyB0aGUgbWFza2luZyBiZWhhdmlvci5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgbWFza2VkIHN0cmluZy5cbiAgICovXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBNYXNrT3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCB7dW5tYXNrZWRQcmVmaXhMZW5ndGggPSB1bm1hc2tOdW1iZXIsIHVubWFza2VkU3VmZml4TGVuZ3RoID0gdW5tYXNrTnVtYmVyLCBtYXNrZWQgPSB0cnVlfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAoXG4gICAgICB2YWx1ZS5sZW5ndGggPD0gdW5tYXNrZWRQcmVmaXhMZW5ndGggKyB1bm1hc2tlZFN1ZmZpeExlbmd0aCB8fFxuICAgICAgdW5tYXNrZWRQcmVmaXhMZW5ndGggPCAwIHx8XG4gICAgICB1bm1hc2tlZFN1ZmZpeExlbmd0aCA8IDAgfHxcbiAgICAgICFtYXNrZWRcbiAgICApIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgICAgIC5zcGxpdCgnJylcbiAgICAgIC5tYXAoKGNoYXIsIGkpID0+IChpIDwgdW5tYXNrZWRQcmVmaXhMZW5ndGggfHwgaSA+IHZhbHVlLmxlbmd0aCAtIHVubWFza2VkU3VmZml4TGVuZ3RoIC0gMSA/IGNoYXIgOiBtYXNrQ2hhcikpXG4gICAgICAuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,81 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { assertInInjectionContext, computed, isSignal, untracked } from '@angular/core';
3
+ import { toObservable, toSignal } from '@angular/core/rxjs-interop';
4
+ import { combineLatest, distinctUntilChanged, from, identity, isObservable, startWith, } from 'rxjs';
5
+ /**
6
+ * Combines multiple `Observable` or `Signal` sources into a `Signal` that emits their values. It's like combineLatest.
7
+ *
8
+ * @param {ObservableSignalInputTuple} sources - Array or object of `Observable` or `Signal` values
9
+ * @param {OperatorFunction} [operator] - Operator to apply to the combined values
10
+ * @param {CombineFromOptions} [options] - Options including `initialValue` and `injector`
11
+ * @returns Signal emitting the combined values
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * export class Component {
16
+ * private readonly userService = inject(UserService);
17
+ * page = signal(2);
18
+ *
19
+ * data = combineFrom(
20
+ * [this.page, this.userService.users$],
21
+ * pipe(
22
+ * switchMap(([page, users]) => this.dataService.getData(page, users)),
23
+ * startWith([])
24
+ * )
25
+ * );
26
+ * }
27
+ * ```
28
+ */
29
+ export function combineFrom(...args) {
30
+ assertInInjectionContext(combineFrom);
31
+ const { normalizedSources, hasInitValue, operator, options } = normalizeArgs(args);
32
+ const ret = hasInitValue
33
+ ? toSignal(combineLatest(normalizedSources).pipe(operator), {
34
+ initialValue: options.initialValue,
35
+ injector: options?.injector,
36
+ })
37
+ : toSignal(combineLatest(normalizedSources).pipe(operator), {
38
+ injector: options?.injector,
39
+ // requireSync: true,
40
+ });
41
+ return ret;
42
+ }
43
+ function normalizeArgs(args) {
44
+ if (!args || args.length < 1 || typeof args[0] !== 'object') {
45
+ throw new TypeError('combineFrom needs sources');
46
+ }
47
+ const hasOperator = typeof args[1] === 'function';
48
+ if (args.length === 3 && !hasOperator) {
49
+ throw new TypeError('combineFrom needs a pipe operator as the second argument');
50
+ }
51
+ // pass sources and options
52
+ if (!hasOperator) {
53
+ // add identity function to args at index 1 as operator function as x=>x
54
+ args.splice(1, 0, identity);
55
+ }
56
+ // if no operator passed, identity will be operator
57
+ const [sources, operator, options] = args;
58
+ const hasInitValue = options?.initialValue !== undefined;
59
+ const normalizedSources = Object.entries(sources).reduce((acc, [keyOrIndex, source]) => {
60
+ if (isSignal(source)) {
61
+ acc[keyOrIndex] = toObservable(source, { injector: options?.injector }).pipe(
62
+ // toObservable doesn't immediately emit initialValue of the signal
63
+ startWith(untracked(source)));
64
+ }
65
+ else if (isObservable(source)) {
66
+ acc[keyOrIndex] = source.pipe(distinctUntilChanged());
67
+ }
68
+ else if (typeof source === 'function') {
69
+ // seldom use: pass function like () => 5
70
+ const computedRes = computed(source);
71
+ acc[keyOrIndex] = toObservable(computedRes, { injector: options?.injector }).pipe(startWith(source()));
72
+ }
73
+ else {
74
+ // seldom use: pass promise, Map, array, etc that from accepts
75
+ acc[keyOrIndex] = from(source).pipe(distinctUntilChanged());
76
+ }
77
+ return acc;
78
+ }, (Array.isArray(sources) ? [] : {}));
79
+ return { normalizedSources, operator, hasInitValue, options };
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZS1mcm9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9zaWduYWxzL2NvbWJpbmUtZnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFFLFFBQVEsRUFBWSxRQUFRLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxZQUFZLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUNMLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsSUFBSSxFQUNKLFFBQVEsRUFDUixZQUFZLEVBSVosU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBNkZkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQThCLEdBQUcsSUFBVztJQUNyRSx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV0QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUMsR0FBRyxhQUFhLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBRWhHLE1BQU0sR0FBRyxHQUFHLFlBQVk7UUFDdEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEQsWUFBWSxFQUFFLE9BQVEsQ0FBQyxZQUFhO1lBQ3BDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUTtTQUM1QixDQUFDO1FBQ0osQ0FBQyxDQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDekQsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRO1lBQzNCLHFCQUFxQjtTQUN0QixDQUFnQyxDQUFDO0lBRXRDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUNwQixJQUFXO0lBT1gsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDM0QsTUFBTSxJQUFJLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0tBQ2xEO0lBRUQsTUFBTSxXQUFXLEdBQUcsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssVUFBVSxDQUFDO0lBRWxELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDckMsTUFBTSxJQUFJLFNBQVMsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0tBQ2pGO0lBRUQsMkJBQTJCO0lBQzNCLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztLQUM3QjtJQUVELG1EQUFtRDtJQUNuRCxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7SUFFMUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxFQUFFLFlBQVksS0FBSyxTQUFTLENBQUM7SUFFekQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDdEQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtRQUM1QixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwQixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3hFLG1FQUFtRTtZQUNuRSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQzdCLENBQUM7U0FDSDthQUFNLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQy9CLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztTQUN2RDthQUFNLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ3ZDLHlDQUF5QztZQUN6QyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBdUIsQ0FBQyxDQUFDO1lBQ3RELEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RHO2FBQU07WUFDTCw4REFBOEQ7WUFDOUQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQ0QsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBUSxDQUMxQyxDQUFDO0lBRUYsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDLENBQUM7QUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7YXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBjb21wdXRlZCwgSW5qZWN0b3IsIGlzU2lnbmFsLCBTaWduYWwsIHVudHJhY2tlZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvT2JzZXJ2YWJsZSwgdG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmcm9tLFxuICBpZGVudGl0eSxcbiAgaXNPYnNlcnZhYmxlLFxuICBPYnNlcnZhYmxlSW5wdXQsXG4gIE9ic2VydmFibGVJbnB1dFR1cGxlLFxuICBPcGVyYXRvckZ1bmN0aW9uLFxuICBzdGFydFdpdGgsXG59IGZyb20gJ3J4anMnO1xuXG50eXBlIE9ic2VydmFibGVTaWduYWxJbnB1dDxUPiA9IE9ic2VydmFibGVJbnB1dDxUPiB8IFNpZ25hbDxUPjtcblxudHlwZSBPYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF06IE9ic2VydmFibGVTaWduYWxJbnB1dDxUW0tdPiB8ICgoKSA9PiBUW0tdKTtcbn07XG5cbi8vIHBpY2sgZnJvbSBUb1NpZ25hbE9wdGlvbnNcbmV4cG9ydCB0eXBlIENvbWJpbmVGcm9tT3B0aW9uczxJVmFsdWU+ID0ge1xuICByZWFkb25seSBpbmplY3Rvcj86IEluamVjdG9yO1xuICByZWFkb25seSBpbml0aWFsVmFsdWU/OiBJVmFsdWU7XG59O1xuXG4vLyBhcnJheSBpbnB1dHMgb25seVxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVGcm9tPElucHV0IGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdLCBPdXRwdXQgPSBJbnB1dD4oXG4gIHNvdXJjZXM6IHJlYWRvbmx5IFsuLi5PYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD5dLFxuKTogU2lnbmFsPE91dHB1dD47XG5cbi8vIC0tLS0tLS0tLS0gMyBhcmdzIHdpdGggYXJyYXkgaW5wdXRzIC0tLS0tLS0tLS0tLS1cbi8vIGNvbWJpbmVGcm9tKFtzaWduYWwsIG9icyRdLCBwaXBlT3BlcmF0b3IsIHsgaW5pdGlhbFZhbHVlOiBbMSwyXSB9KSwgSW5wdXQgaXMgW3NpZ25hbCwgb2JzJF1cbi8vIDEuIG5vIGluaXRpYWxWYWx1ZVxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVGcm9tPElucHV0IGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdLCBPdXRwdXQgPSBJbnB1dD4oXG4gIHNvdXJjZXM6IHJlYWRvbmx5IFsuLi5PYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD5dLFxuICBvcGVyYXRvcj86IE9wZXJhdG9yRnVuY3Rpb248SW5wdXQsIE91dHB1dD4sXG4gIG9wdGlvbnM/OiBDb21iaW5lRnJvbU9wdGlvbnM8dW5kZWZpbmVkPixcbik6IFNpZ25hbDxPdXRwdXQgfCB1bmRlZmluZWQ+O1xuLy8gMi4gaW5pdGlhbFZhbHVlIGlzIG51bGwsIHJldHVybmluZyB0eXBlIHNob3VsZCBpbmNsdWRlIG51bGxcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+XSxcbiAgb3BlcmF0b3I/OiBPcGVyYXRvckZ1bmN0aW9uPElucHV0LCBPdXRwdXQ+LFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPG51bGw+LFxuKTogU2lnbmFsPE91dHB1dCB8IG51bGw+O1xuLy8gMy4gcHJvdmlkZSBpbml0aWFsVmFsdWVcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+XSxcbiAgb3BlcmF0b3I/OiBPcGVyYXRvckZ1bmN0aW9uPElucHV0LCBPdXRwdXQ+LFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPE91dHB1dD4sXG4pOiBTaWduYWw8T3V0cHV0PjtcblxuLy8gLS0tLS0tLS0tLSAyIGFyZ3Mgd2l0IGFycmF5IGlucHV0cyAtLS0tLS0tLS0tLS0tXG4vLyAxLiBubyBpbml0aWFsVmFsdWVcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+XSxcbiAgb3B0aW9ucz86IENvbWJpbmVGcm9tT3B0aW9uczx1bmRlZmluZWQ+LFxuKTogU2lnbmFsPE91dHB1dCB8IHVuZGVmaW5lZD47XG4vLyAyLiBpbml0aWFsVmFsdWUgaXMgbnVsbCwgcmV0dXJuaW5nIHR5cGUgc2hvdWxkIGluY2x1ZGUgbnVsbFxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVGcm9tPElucHV0IGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdLCBPdXRwdXQgPSBJbnB1dD4oXG4gIHNvdXJjZXM6IHJlYWRvbmx5IFsuLi5PYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD5dLFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPG51bGw+LFxuKTogU2lnbmFsPE91dHB1dCB8IG51bGw+O1xuLy8gMy4gcHJvdmlkZSBpbml0aWFsVmFsdWVcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+XSxcbiAgb3B0aW9ucz86IENvbWJpbmVGcm9tT3B0aW9uczxPdXRwdXQ+LFxuKTogU2lnbmFsPE91dHB1dD47XG5cbi8vIG9iamVjdCBpbnB1dCBvbmx5LCBlLmcuIElucHV0IGlzIHsgYTogc2lnbmFsLCBiOiBvYnMkIH1cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiBPYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD4sXG4pOiBTaWduYWw8T3V0cHV0PjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0gMyBhcmdzIHdpdGggb2JqZWN0IGlucHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUZyb208SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCA9IElucHV0PihcbiAgc291cmNlczogT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+LFxuICBvcGVyYXRvcj86IE9wZXJhdG9yRnVuY3Rpb248SW5wdXQsIE91dHB1dD4sXG4gIG9wdGlvbnM/OiBDb21iaW5lRnJvbU9wdGlvbnM8dW5kZWZpbmVkPixcbik6IFNpZ25hbDxPdXRwdXQgfCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVGcm9tPElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgPSBJbnB1dD4oXG4gIHNvdXJjZXM6IE9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0PixcbiAgb3BlcmF0b3I/OiBPcGVyYXRvckZ1bmN0aW9uPElucHV0LCBPdXRwdXQ+LFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPG51bGw+LFxuKTogU2lnbmFsPE91dHB1dCB8IG51bGw+O1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVGcm9tPElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgPSBJbnB1dD4oXG4gIHNvdXJjZXM6IE9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0PixcbiAgb3BlcmF0b3I/OiBPcGVyYXRvckZ1bmN0aW9uPElucHV0LCBPdXRwdXQ+LFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPE91dHB1dD4sXG4pOiBTaWduYWw8T3V0cHV0PjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0gMiBhcmdzIHdpdGggb2JqZWN0IGlucHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUZyb208SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCA9IElucHV0PihcbiAgc291cmNlczogT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+LFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPHVuZGVmaW5lZD4sXG4pOiBTaWduYWw8T3V0cHV0IHwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiBPYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD4sXG4gIG9wdGlvbnM/OiBDb21iaW5lRnJvbU9wdGlvbnM8bnVsbD4sXG4pOiBTaWduYWw8T3V0cHV0IHwgbnVsbD47XG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUZyb208SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCA9IElucHV0PihcbiAgc291cmNlczogT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+LFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPE91dHB1dD4sXG4pOiBTaWduYWw8T3V0cHV0PjtcblxuLyoqXG4gKiBDb21iaW5lcyBtdWx0aXBsZSBgT2JzZXJ2YWJsZWAgb3IgYFNpZ25hbGAgc291cmNlcyBpbnRvIGEgYFNpZ25hbGAgdGhhdCBlbWl0cyB0aGVpciB2YWx1ZXMuIEl0J3MgbGlrZSBjb21iaW5lTGF0ZXN0LlxuICpcbiAqIEBwYXJhbSB7T2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGV9IHNvdXJjZXMgLSBBcnJheSBvciBvYmplY3Qgb2YgYE9ic2VydmFibGVgIG9yIGBTaWduYWxgIHZhbHVlc1xuICogQHBhcmFtIHtPcGVyYXRvckZ1bmN0aW9ufSBbb3BlcmF0b3JdIC0gT3BlcmF0b3IgdG8gYXBwbHkgdG8gdGhlIGNvbWJpbmVkIHZhbHVlc1xuICogQHBhcmFtIHtDb21iaW5lRnJvbU9wdGlvbnN9IFtvcHRpb25zXSAtIE9wdGlvbnMgaW5jbHVkaW5nIGBpbml0aWFsVmFsdWVgIGFuZCBgaW5qZWN0b3JgXG4gKiBAcmV0dXJucyBTaWduYWwgZW1pdHRpbmcgdGhlIGNvbWJpbmVkIHZhbHVlc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogZXhwb3J0IGNsYXNzIENvbXBvbmVudCB7XG4gKiAgcHJpdmF0ZSByZWFkb25seSB1c2VyU2VydmljZSA9IGluamVjdChVc2VyU2VydmljZSk7XG4gKiAgcGFnZSA9IHNpZ25hbCgyKTtcbiAqXG4gKiAgZGF0YSA9IGNvbWJpbmVGcm9tKFxuICogICAgW3RoaXMucGFnZSwgdGhpcy51c2VyU2VydmljZS51c2VycyRdLFxuICogICAgcGlwZShcbiAqICAgICAgc3dpdGNoTWFwKChbcGFnZSwgdXNlcnNdKSA9PiB0aGlzLmRhdGFTZXJ2aWNlLmdldERhdGEocGFnZSwgdXNlcnMpKSxcbiAqICAgICAgc3RhcnRXaXRoKFtdKVxuICogICAgKVxuICogICk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVGcm9tPElucHV0ID0gYW55LCBPdXRwdXQgPSBJbnB1dD4oLi4uYXJnczogYW55W10pOiBTaWduYWw8T3V0cHV0IHwgbnVsbCB8IHVuZGVmaW5lZD4ge1xuICBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoY29tYmluZUZyb20pO1xuXG4gIGNvbnN0IHtub3JtYWxpemVkU291cmNlcywgaGFzSW5pdFZhbHVlLCBvcGVyYXRvciwgb3B0aW9uc30gPSBub3JtYWxpemVBcmdzPElucHV0LCBPdXRwdXQ+KGFyZ3MpO1xuXG4gIGNvbnN0IHJldCA9IGhhc0luaXRWYWx1ZVxuICAgID8gdG9TaWduYWwoY29tYmluZUxhdGVzdChub3JtYWxpemVkU291cmNlcykucGlwZShvcGVyYXRvciksIHtcbiAgICAgICAgaW5pdGlhbFZhbHVlOiBvcHRpb25zIS5pbml0aWFsVmFsdWUhLFxuICAgICAgICBpbmplY3Rvcjogb3B0aW9ucz8uaW5qZWN0b3IsXG4gICAgICB9KVxuICAgIDogKHRvU2lnbmFsKGNvbWJpbmVMYXRlc3Qobm9ybWFsaXplZFNvdXJjZXMpLnBpcGUob3BlcmF0b3IpLCB7XG4gICAgICAgIGluamVjdG9yOiBvcHRpb25zPy5pbmplY3RvcixcbiAgICAgICAgLy8gcmVxdWlyZVN5bmM6IHRydWUsXG4gICAgICB9KSBhcyBTaWduYWw8T3V0cHV0IHwgdW5kZWZpbmVkPik7XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplQXJnczxJbnB1dCwgT3V0cHV0PihcbiAgYXJnczogYW55W10sXG4pOiB7XG4gIG5vcm1hbGl6ZWRTb3VyY2VzOiBPYnNlcnZhYmxlSW5wdXRUdXBsZTxJbnB1dD47XG4gIG9wZXJhdG9yOiBPcGVyYXRvckZ1bmN0aW9uPElucHV0LCBPdXRwdXQ+O1xuICBoYXNJbml0VmFsdWU6IGJvb2xlYW47XG4gIG9wdGlvbnM6IENvbWJpbmVGcm9tT3B0aW9uczxPdXRwdXQ+IHwgdW5kZWZpbmVkO1xufSB7XG4gIGlmICghYXJncyB8fCBhcmdzLmxlbmd0aCA8IDEgfHwgdHlwZW9mIGFyZ3NbMF0gIT09ICdvYmplY3QnKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY29tYmluZUZyb20gbmVlZHMgc291cmNlcycpO1xuICB9XG5cbiAgY29uc3QgaGFzT3BlcmF0b3IgPSB0eXBlb2YgYXJnc1sxXSA9PT0gJ2Z1bmN0aW9uJztcblxuICBpZiAoYXJncy5sZW5ndGggPT09IDMgJiYgIWhhc09wZXJhdG9yKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY29tYmluZUZyb20gbmVlZHMgYSBwaXBlIG9wZXJhdG9yIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQnKTtcbiAgfVxuXG4gIC8vIHBhc3Mgc291cmNlcyBhbmQgb3B0aW9uc1xuICBpZiAoIWhhc09wZXJhdG9yKSB7XG4gICAgLy8gYWRkIGlkZW50aXR5IGZ1bmN0aW9uIHRvIGFyZ3MgYXQgaW5kZXggMSBhcyBvcGVyYXRvciBmdW5jdGlvbiBhcyB4PT54XG4gICAgYXJncy5zcGxpY2UoMSwgMCwgaWRlbnRpdHkpO1xuICB9XG5cbiAgLy8gaWYgbm8gb3BlcmF0b3IgcGFzc2VkLCBpZGVudGl0eSB3aWxsIGJlIG9wZXJhdG9yXG4gIGNvbnN0IFtzb3VyY2VzLCBvcGVyYXRvciwgb3B0aW9uc10gPSBhcmdzO1xuXG4gIGNvbnN0IGhhc0luaXRWYWx1ZSA9IG9wdGlvbnM/LmluaXRpYWxWYWx1ZSAhPT0gdW5kZWZpbmVkO1xuXG4gIGNvbnN0IG5vcm1hbGl6ZWRTb3VyY2VzID0gT2JqZWN0LmVudHJpZXMoc291cmNlcykucmVkdWNlKFxuICAgIChhY2MsIFtrZXlPckluZGV4LCBzb3VyY2VdKSA9PiB7XG4gICAgICBpZiAoaXNTaWduYWwoc291cmNlKSkge1xuICAgICAgICBhY2Nba2V5T3JJbmRleF0gPSB0b09ic2VydmFibGUoc291cmNlLCB7aW5qZWN0b3I6IG9wdGlvbnM/LmluamVjdG9yfSkucGlwZShcbiAgICAgICAgICAvLyB0b09ic2VydmFibGUgZG9lc24ndCBpbW1lZGlhdGVseSBlbWl0IGluaXRpYWxWYWx1ZSBvZiB0aGUgc2lnbmFsXG4gICAgICAgICAgc3RhcnRXaXRoKHVudHJhY2tlZChzb3VyY2UpKSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNPYnNlcnZhYmxlKHNvdXJjZSkpIHtcbiAgICAgICAgYWNjW2tleU9ySW5kZXhdID0gc291cmNlLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgLy8gc2VsZG9tIHVzZTogcGFzcyBmdW5jdGlvbiBsaWtlICgpID0+IDVcbiAgICAgICAgY29uc3QgY29tcHV0ZWRSZXMgPSBjb21wdXRlZChzb3VyY2UgYXMgKCkgPT4gdW5rbm93bik7XG4gICAgICAgIGFjY1trZXlPckluZGV4XSA9IHRvT2JzZXJ2YWJsZShjb21wdXRlZFJlcywge2luamVjdG9yOiBvcHRpb25zPy5pbmplY3Rvcn0pLnBpcGUoc3RhcnRXaXRoKHNvdXJjZSgpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBzZWxkb20gdXNlOiBwYXNzIHByb21pc2UsIE1hcCwgYXJyYXksIGV0YyB0aGF0IGZyb20gYWNjZXB0c1xuICAgICAgICBhY2Nba2V5T3JJbmRleF0gPSBmcm9tKHNvdXJjZSBhcyBhbnkpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sXG4gICAgKEFycmF5LmlzQXJyYXkoc291cmNlcykgPyBbXSA6IHt9KSBhcyBhbnksXG4gICk7XG5cbiAgcmV0dXJuIHtub3JtYWxpemVkU291cmNlcywgb3BlcmF0b3IsIGhhc0luaXRWYWx1ZSwgb3B0aW9uc307XG59XG4iXX0=
@@ -1,3 +1,7 @@
1
+ export * from './combine-from';
1
2
  export * from './computed-async';
2
3
  export * from './create-notifier';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL3NpZ25hbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wdXRlZC1hc3luYyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1ub3RpZmllcic7XG4iXX0=
4
+ export * from './inject-params';
5
+ export * from './inject-query-params';
6
+ export * from './merge-from';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL3NpZ25hbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21iaW5lLWZyb20nO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wdXRlZC1hc3luYyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1ub3RpZmllcic7XG5leHBvcnQgKiBmcm9tICcuL2luamVjdC1wYXJhbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3QtcXVlcnktcGFyYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vbWVyZ2UtZnJvbSc7XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { assertInInjectionContext, inject } from '@angular/core';
2
+ import { toSignal } from '@angular/core/rxjs-interop';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { map } from 'rxjs';
5
+ export function injectParams(keyOrParamsTransform, options = {}) {
6
+ assertInInjectionContext(injectParams);
7
+ const route = inject(ActivatedRoute);
8
+ const initialParams = route.snapshot.params;
9
+ const { transform, initialValue } = options;
10
+ // injectParams(): Signal<Params>
11
+ if (!keyOrParamsTransform) {
12
+ return toSignal(route.params, { initialValue: initialParams });
13
+ }
14
+ // injectParams<Output>(fn: ParamsTransformFn<Output>): Signal<Output>
15
+ if (typeof keyOrParamsTransform === 'function') {
16
+ return toSignal(route.params.pipe(map(keyOrParamsTransform)), { initialValue: keyOrParamsTransform(initialParams) });
17
+ }
18
+ // keyOrParamsTransform is string.
19
+ // export function injectParams(key: string): Signal<string | null>;
20
+ // export function injectParams(key: string, options: { transform: (v: string) => boolean; initialValue: boolean }): Signal<boolean>;
21
+ // export function injectParams(key: string, options: { transform: (v: string) => number; initialValue: number }): Signal<number>;
22
+ // export function injectParams(key: string, options: { transform?: (v: string) => string; initialValue: string }): Signal<string>;
23
+ // export function injectParams(key: string, options: { transform: (v: string) => boolean; initialValue?: undefined }): Signal<boolean | null>;
24
+ // export function injectParams(key: string, options: { transform: (v: string) => number; initialValue?: undefined }): Signal<number | null>;
25
+ // export function injectParams(key: string, options: { transform: (v: string) => string; initialValue?: undefined }): Signal<string | null>;
26
+ const getParam = (params) => {
27
+ const param = params?.[keyOrParamsTransform];
28
+ if (!param) {
29
+ return initialValue ?? null;
30
+ }
31
+ return transform ? transform(param) : param;
32
+ };
33
+ return toSignal(route.params.pipe(map(getParam)), { initialValue: getParam(initialParams) });
34
+ }
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvc2lnbmFscy9pbmplY3QtcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxNQUFNLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBeUV6QixNQUFNLFVBQVUsWUFBWSxDQUMxQixvQkFBeUQsRUFDekQsVUFBaUMsRUFBRTtJQUVuQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV2QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFFNUMsTUFBTSxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsR0FBRyxPQUFPLENBQUM7SUFFMUMsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtRQUN6QixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUMsWUFBWSxFQUFFLGFBQWEsRUFBQyxDQUFDLENBQUM7S0FDOUQ7SUFFRCxzRUFBc0U7SUFDdEUsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFVBQVUsRUFBRTtRQUM5QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLEVBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxFQUFDLENBQUMsQ0FBQztLQUNwSDtJQUVELGtDQUFrQztJQUNsQyxvRUFBb0U7SUFDcEUscUlBQXFJO0lBQ3JJLGtJQUFrSTtJQUNsSSxtSUFBbUk7SUFDbkksK0lBQStJO0lBQy9JLDZJQUE2STtJQUM3SSw2SUFBNkk7SUFDN0ksTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBdUIsQ0FBQztRQUVuRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxZQUFZLElBQUksSUFBSSxDQUFDO1NBQzdCO1FBRUQsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUMsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBQyxDQUFDLENBQUM7QUFDN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBpbmplY3QsIHR5cGUgU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIHR5cGUgUGFyYW1zfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMnO1xuXG50eXBlIFBhcmFtc1RyYW5zZm9ybUZuPE91dHB1dD4gPSAocGFyYW1zOiBQYXJhbXMpID0+IE91dHB1dDtcblxuLyoqXG4gKiBUaGUgYElucHV0T3B0aW9uc2AgaW50ZXJmYWNlIGRlZmluZXMgb3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGJlaGF2aW9yIG9mIHRoZSBgaW5qZWN0UGFyYW1zYCBmdW5jdGlvbi5cbiAqXG4gKiBAdGVtcGxhdGUgT3V0cHV0IC0gVGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHJlYWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1zT3B0aW9uczxPdXRwdXQ+IHtcbiAgLyoqXG4gICAqIEEgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb24gdG8gY29udmVydCB0aGUgd3JpdHRlbiB2YWx1ZSB0byB0aGUgZXhwZWN0ZWQgcmVhZCB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBUaGUgdmFsdWUgdG8gdHJhbnNmb3JtLlxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgdmFsdWUuXG4gICAqL1xuICB0cmFuc2Zvcm0/OiAodjogc3RyaW5nKSA9PiBPdXRwdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHZhbHVlIHRvIHVzZSBpZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBwcmVzZW50IG9yIHVuZGVmaW5lZC5cbiAgICovXG4gIGluaXRpYWxWYWx1ZT86IE91dHB1dDtcbn1cblxuLyoqXG4gKiBJbmplY3RzIHRoZSBwYXJhbXMgZnJvbSB0aGUgY3VycmVudCByb3V0ZS5cbiAqIElmIGEga2V5IGlzIHByb3ZpZGVkLCByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGF0IGtleS5cbiAqIElmIGEgdHJhbnNmb3JtIGZ1bmN0aW9uIGlzIHByb3ZpZGVkLCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICogT3RoZXJ3aXNlLCByZXR1cm5zIHRoZSBlbnRpcmUgcGFyYW1zIG9iamVjdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcGFyYW1zID0gaW5qZWN0UGFyYW1zKCk7IC8vIFJldHVybnMgdGhlIGVudGlyZSBwYXJhbXMgb2JqZWN0XG4gKiBjb25zdCB1c2VySWQgPSBpbmplY3RQYXJhbXMoJ2lkJyk7IC8vIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnaWQnIHBhcmFtXG4gKiBjb25zdCB1c2VySWQgPSBpbmplY3RQYXJhbXMocCA9PiBwWydpZCddIGFzIHN0cmluZyk7IC8vIFJldHVybnMgdGhlICdpZCcgcGFyYW0gdXNpbmcgYSBjdXN0b20gdHJhbnNmb3JtIGZ1bmN0aW9uXG4gKiBjb25zdCB1c2VySWQgPSBpbmplY3RQYXJhbXMoJ2lkJywgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSwgaW5pdGlhbFZhbHVlOiAxIH0pO1xuICpcbiAqIEBwYXJhbSBrZXlPclBhcmFtc1RyYW5zZm9ybSBPUFRJT05BTCBUaGUga2V5IG9mIHRoZSBwYXJhbSB0byByZXR1cm4sIG9yIGEgdHJhbnNmb3JtIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBwYXJhbXMgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXMoKTogU2lnbmFsPFBhcmFtcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXM8T3V0cHV0PihmbjogUGFyYW1zVHJhbnNmb3JtRm48T3V0cHV0Pik6IFNpZ25hbDxPdXRwdXQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKGtleTogc3RyaW5nKTogU2lnbmFsPHN0cmluZyB8IG51bGw+O1xuXG4vLyBmb3IgYm9vbGVhbiBvciBudW1iZXIsIGlmIGluaXRpYWxWYWx1ZSBpcyBwcm92aWRlZCwgdHJhbnNmb3JtIGlzIGEgbXVzdFxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IGJvb2xlYW47IGluaXRpYWxWYWx1ZTogYm9vbGVhbn0sXG4pOiBTaWduYWw8Ym9vbGVhbj47XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gbnVtYmVyOyBpbml0aWFsVmFsdWU6IG51bWJlcn0sXG4pOiBTaWduYWw8bnVtYmVyPjtcbi8vIGZvciBzdHJpbmcsIHRyYW5zZm9ybSBpcyBvcHRpb25hbFxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm0/OiAodjogc3RyaW5nKSA9PiBzdHJpbmc7IGluaXRpYWxWYWx1ZTogc3RyaW5nfSxcbik6IFNpZ25hbDxzdHJpbmc+O1xuXG4vLyBpbml0aWFsVmFsdWUgbm90IHByb3ZpZGVkLCBtdXN0IHByb3ZpZGUgdHJhbnNmb3JtIGZuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gYm9vbGVhbjsgaW5pdGlhbFZhbHVlPzogdW5kZWZpbmVkfSxcbik6IFNpZ25hbDxib29sZWFuIHwgbnVsbD47XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gbnVtYmVyOyBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWR9LFxuKTogU2lnbmFsPG51bWJlciB8IG51bGw+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IHN0cmluZzsgaW5pdGlhbFZhbHVlPzogdW5kZWZpbmVkfSxcbik6IFNpZ25hbDxzdHJpbmcgfCBudWxsPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtczxPdXRwdXQ+KFxuICBrZXlPclBhcmFtc1RyYW5zZm9ybT86IHN0cmluZyB8IFBhcmFtc1RyYW5zZm9ybUZuPE91dHB1dD4sXG4gIG9wdGlvbnM6IFBhcmFtc09wdGlvbnM8T3V0cHV0PiA9IHt9LFxuKTogU2lnbmFsPE91dHB1dCB8IFBhcmFtcyB8IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBudWxsPiB7XG4gIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChpbmplY3RQYXJhbXMpO1xuXG4gIGNvbnN0IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgY29uc3QgaW5pdGlhbFBhcmFtcyA9IHJvdXRlLnNuYXBzaG90LnBhcmFtcztcblxuICBjb25zdCB7dHJhbnNmb3JtLCBpbml0aWFsVmFsdWV9ID0gb3B0aW9ucztcblxuICAvLyBpbmplY3RQYXJhbXMoKTogU2lnbmFsPFBhcmFtcz5cbiAgaWYgKCFrZXlPclBhcmFtc1RyYW5zZm9ybSkge1xuICAgIHJldHVybiB0b1NpZ25hbChyb3V0ZS5wYXJhbXMsIHtpbml0aWFsVmFsdWU6IGluaXRpYWxQYXJhbXN9KTtcbiAgfVxuXG4gIC8vIGluamVjdFBhcmFtczxPdXRwdXQ+KGZuOiBQYXJhbXNUcmFuc2Zvcm1GbjxPdXRwdXQ+KTogU2lnbmFsPE91dHB1dD5cbiAgaWYgKHR5cGVvZiBrZXlPclBhcmFtc1RyYW5zZm9ybSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0b1NpZ25hbChyb3V0ZS5wYXJhbXMucGlwZShtYXAoa2V5T3JQYXJhbXNUcmFuc2Zvcm0pKSwge2luaXRpYWxWYWx1ZToga2V5T3JQYXJhbXNUcmFuc2Zvcm0oaW5pdGlhbFBhcmFtcyl9KTtcbiAgfVxuXG4gIC8vIGtleU9yUGFyYW1zVHJhbnNmb3JtIGlzIHN0cmluZy5cbiAgLy8gZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhrZXk6IHN0cmluZyk6IFNpZ25hbDxzdHJpbmcgfCBudWxsPjtcbiAgLy8gZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhrZXk6IHN0cmluZywgb3B0aW9uczogeyB0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IGJvb2xlYW47IGluaXRpYWxWYWx1ZTogYm9vbGVhbiB9KTogU2lnbmFsPGJvb2xlYW4+O1xuICAvLyBleHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKGtleTogc3RyaW5nLCBvcHRpb25zOiB7IHRyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gbnVtYmVyOyBpbml0aWFsVmFsdWU6IG51bWJlciB9KTogU2lnbmFsPG51bWJlcj47XG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXMoa2V5OiBzdHJpbmcsIG9wdGlvbnM6IHsgdHJhbnNmb3JtPzogKHY6IHN0cmluZykgPT4gc3RyaW5nOyBpbml0aWFsVmFsdWU6IHN0cmluZyB9KTogU2lnbmFsPHN0cmluZz47XG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXMoa2V5OiBzdHJpbmcsIG9wdGlvbnM6IHsgdHJhbnNmb3JtOiAodjogc3RyaW5nKSA9PiBib29sZWFuOyBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWQgfSk6IFNpZ25hbDxib29sZWFuIHwgbnVsbD47XG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXMoa2V5OiBzdHJpbmcsIG9wdGlvbnM6IHsgdHJhbnNmb3JtOiAodjogc3RyaW5nKSA9PiBudW1iZXI7IGluaXRpYWxWYWx1ZT86IHVuZGVmaW5lZCB9KTogU2lnbmFsPG51bWJlciB8IG51bGw+O1xuICAvLyBleHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKGtleTogc3RyaW5nLCBvcHRpb25zOiB7IHRyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gc3RyaW5nOyBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWQgfSk6IFNpZ25hbDxzdHJpbmcgfCBudWxsPjtcbiAgY29uc3QgZ2V0UGFyYW0gPSAocGFyYW1zOiBQYXJhbXMpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IHBhcmFtcz8uW2tleU9yUGFyYW1zVHJhbnNmb3JtXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIXBhcmFtKSB7XG4gICAgICByZXR1cm4gaW5pdGlhbFZhbHVlID8/IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYW5zZm9ybSA/IHRyYW5zZm9ybShwYXJhbSkgOiBwYXJhbTtcbiAgfTtcblxuICByZXR1cm4gdG9TaWduYWwocm91dGUucGFyYW1zLnBpcGUobWFwKGdldFBhcmFtKSksIHtpbml0aWFsVmFsdWU6IGdldFBhcmFtKGluaXRpYWxQYXJhbXMpfSk7XG59XG4iXX0=
@@ -0,0 +1,53 @@
1
+ import { assertInInjectionContext, inject } from '@angular/core';
2
+ import { toSignal } from '@angular/core/rxjs-interop';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { map } from 'rxjs';
5
+ /**
6
+ * The `injectQueryParams` function allows you to access and manipulate query parameters from the current route.
7
+ *
8
+ * @template Output - The expected type of the read value.
9
+ * @param {string} keyOrParamsTransform - The name of the query parameter to retrieve, or a transform function to apply to the query parameters object.
10
+ * @param {QueryParamsOptions} options - Optional configuration options for the query parameter.
11
+ * @returns {QueryParamsOptions} A `Signal` that emits the transformed value of the specified query parameter, or the entire query parameters object if no key is provided.
12
+ *
13
+ * @example
14
+ * const search = injectQueryParams('search'); // returns the value of the 'search' query param
15
+ * const search = injectQueryParams(p => p['search'] as string); // same as above but can be used with a custom transform function
16
+ * const idParam = injectQueryParams('id', {transform: numberAttribute}); // returns the value fo the 'id' query params and transforms it into a number
17
+ * const idParam = injectQueryParams(p => numberAttribute(p['id'])); // same as above but can be used with a custom transform function
18
+ * const queryParams = injectQueryParams(); // returns the entire query params object
19
+ */
20
+ export function injectQueryParams(keyOrParamsTransform, options = {}) {
21
+ assertInInjectionContext(injectQueryParams);
22
+ const route = inject(ActivatedRoute);
23
+ const initialQueryParams = route.snapshot.queryParams;
24
+ const { transform, initialValue } = options;
25
+ // injectQueryParams(): Signal<Params>
26
+ if (!keyOrParamsTransform) {
27
+ return toSignal(route.queryParams, { initialValue: initialQueryParams });
28
+ }
29
+ // injectQueryParams<Output>(fn: QueryParamsTransformFn<Output>): Signal<Output>
30
+ if (typeof keyOrParamsTransform === 'function') {
31
+ return toSignal(route.queryParams.pipe(map(keyOrParamsTransform)), {
32
+ initialValue: keyOrParamsTransform(initialQueryParams),
33
+ });
34
+ }
35
+ // keyOrParamsTransform is string.
36
+ const getParam = (params) => {
37
+ const param = params?.[keyOrParamsTransform];
38
+ if (!param) {
39
+ return initialValue ?? null;
40
+ }
41
+ if (Array.isArray(param)) {
42
+ if (param.length < 1) {
43
+ return initialValue ?? null;
44
+ }
45
+ return transform ? transform(param[0]) : param[0];
46
+ }
47
+ return transform ? transform(param) : param;
48
+ };
49
+ return toSignal(route.queryParams.pipe(map(getParam)), {
50
+ initialValue: getParam(initialQueryParams),
51
+ });
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXF1ZXJ5LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvc2lnbmFscy9pbmplY3QtcXVlcnktcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxNQUFNLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBaUZ6Qjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0Isb0JBQThELEVBQzlELFVBQXNDLEVBQUU7SUFFeEMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUU1QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUV0RCxNQUFNLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQyxHQUFHLE9BQU8sQ0FBQztJQUUxQyxzQ0FBc0M7SUFDdEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1FBQ3pCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUMsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQsZ0ZBQWdGO0lBQ2hGLElBQUksT0FBTyxvQkFBb0IsS0FBSyxVQUFVLEVBQUU7UUFDOUMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRTtZQUNqRSxZQUFZLEVBQUUsb0JBQW9CLENBQUMsa0JBQWtCLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxrQ0FBa0M7SUFDbEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBa0MsQ0FBQztRQUU5RSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxZQUFZLElBQUksSUFBSSxDQUFDO1NBQzdCO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3BCLE9BQU8sWUFBWSxJQUFJLElBQUksQ0FBQzthQUM3QjtZQUNELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuRDtRQUVELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM5QyxDQUFDLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRTtRQUNyRCxZQUFZLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDO0tBQzNDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Fzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgaW5qZWN0LCB0eXBlIFNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCB0eXBlIFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzJztcblxudHlwZSBRdWVyeVBhcmFtc1RyYW5zZm9ybUZuPE91dHB1dD4gPSAocGFyYW1zOiBQYXJhbXMpID0+IE91dHB1dDtcblxuLyoqXG4gKiBUaGUgYElucHV0T3B0aW9uc2AgaW50ZXJmYWNlIGRlZmluZXMgb3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGJlaGF2aW9yIG9mIHRoZSBgaW5qZWN0UXVlcnlQYXJhbXNgIGZ1bmN0aW9uLlxuICpcbiAqIEB0ZW1wbGF0ZSBPdXRwdXQgLSBUaGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcmVhZCB2YWx1ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWVyeVBhcmFtc09wdGlvbnM8T3V0cHV0PiB7XG4gIC8qKlxuICAgKiBBIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uIHRvIGNvbnZlcnQgdGhlIHdyaXR0ZW4gdmFsdWUgdG8gdGhlIGV4cGVjdGVkIHJlYWQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2IC0gVGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIHZhbHVlLlxuICAgKi9cbiAgdHJhbnNmb3JtPzogKHY6IHN0cmluZykgPT4gT3V0cHV0O1xuXG4gIC8qKlxuICAgKiBUaGUgaW5pdGlhbCB2YWx1ZSB0byB1c2UgaWYgdGhlIHF1ZXJ5IHBhcmFtZXRlciBpcyBub3QgcHJlc2VudCBvciB1bmRlZmluZWQuXG4gICAqL1xuICBpbml0aWFsVmFsdWU/OiBPdXRwdXQ7XG59XG5cbi8qKlxuICogVGhlIGBpbmplY3RRdWVyeVBhcmFtc2AgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byBhY2Nlc3MgYW5kIG1hbmlwdWxhdGUgcXVlcnkgcGFyYW1ldGVycyBmcm9tIHRoZSBjdXJyZW50IHJvdXRlLlxuICpcbiAqIEByZXR1cm5zIEEgYFNpZ25hbGAgdGhhdCBlbWl0cyB0aGUgZW50aXJlIHF1ZXJ5IHBhcmFtZXRlcnMgb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UXVlcnlQYXJhbXMoKTogU2lnbmFsPFBhcmFtcz47XG5cbi8qKlxuICogVGhlIGBpbmplY3RRdWVyeVBhcmFtc2AgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byBhY2Nlc3MgYW5kIG1hbmlwdWxhdGUgcXVlcnkgcGFyYW1ldGVycyBmcm9tIHRoZSBjdXJyZW50IHJvdXRlLlxuICogSXQgcmV0cmlldmVzIHRoZSB2YWx1ZSBvZiBhIHF1ZXJ5IHBhcmFtZXRlciBiYXNlZCBvbiBhIGN1c3RvbSB0cmFuc2Zvcm0gZnVuY3Rpb24gYXBwbGllZCB0byB0aGUgcXVlcnkgcGFyYW1ldGVycyBvYmplY3QuXG4gKlxuICogQHRlbXBsYXRlIE91dHB1dCAtIFRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSByZWFkIHZhbHVlLlxuICogQHBhcmFtIHtRdWVyeVBhcmFtc1RyYW5zZm9ybUZuPE91dHB1dD59IGZuIC0gQSB0cmFuc2Zvcm0gZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgcXVlcnkgcGFyYW1ldGVycyBvYmplY3QgKGBwYXJhbXM6IFBhcmFtc2ApIGFuZCByZXR1cm5zIHRoZSBkZXNpcmVkIHZhbHVlLlxuICogQHJldHVybnMge1NpZ25hbH0gQSBgU2lnbmFsYCB0aGF0IGVtaXRzIHRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgY3VzdG9tIHRyYW5zZm9ybSBmdW5jdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2VhcmNoVmFsdWUgPSBpbmplY3RRdWVyeVBhcmFtcygocGFyYW1zKSA9PiBwYXJhbXNbJ3NlYXJjaCddIGFzIHN0cmluZyk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyeVBhcmFtczxPdXRwdXQ+KGZuOiBRdWVyeVBhcmFtc1RyYW5zZm9ybUZuPE91dHB1dD4pOiBTaWduYWw8T3V0cHV0PjtcblxuLyoqXG4gKiBUaGUgYGluamVjdFF1ZXJ5UGFyYW1zYCBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIGFjY2VzcyBhbmQgbWFuaXB1bGF0ZSBxdWVyeSBwYXJhbWV0ZXJzIGZyb20gdGhlIGN1cnJlbnQgcm91dGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBuYW1lIG9mIHRoZSBxdWVyeSBwYXJhbWV0ZXIgdG8gcmV0cmlldmUuXG4gKiBAcmV0dXJucyB7U2lnbmFsfSBBIGBTaWduYWxgIHRoYXQgZW1pdHMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcXVlcnkgcGFyYW1ldGVyLCBvciBgbnVsbGAgaWYgaXQncyBub3QgcHJlc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5UGFyYW1zKGtleTogc3RyaW5nKTogU2lnbmFsPHN0cmluZyB8IG51bGw+O1xuXG4vLyBmb3IgYm9vbGVhbiBvciBudW1iZXIsIGlmIGluaXRpYWxWYWx1ZSBpcyBwcm92aWRlZCwgdHJhbnNmb3JtIGlzIGEgbXVzdFxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gYm9vbGVhbjsgaW5pdGlhbFZhbHVlOiBib29sZWFufSxcbik6IFNpZ25hbDxib29sZWFuPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyeVBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IG51bWJlcjsgaW5pdGlhbFZhbHVlOiBudW1iZXJ9LFxuKTogU2lnbmFsPG51bWJlcj47XG4vLyBmb3Igc3RyaW5nLCB0cmFuc2Zvcm0gaXMgb3B0aW9uYWxcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyeVBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm0/OiAodjogc3RyaW5nKSA9PiBzdHJpbmc7IGluaXRpYWxWYWx1ZTogc3RyaW5nfSxcbik6IFNpZ25hbDxzdHJpbmc+O1xuXG4vLyBpbml0aWFsVmFsdWUgbm90IHByb3ZpZGVkLCBtdXN0IHByb3ZpZGUgdHJhbnNmb3JtIGZuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UXVlcnlQYXJhbXMoXG4gIGtleTogc3RyaW5nLFxuICBvcHRpb25zOiB7dHJhbnNmb3JtOiAodjogc3RyaW5nKSA9PiBib29sZWFuOyBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWR9LFxuKTogU2lnbmFsPGJvb2xlYW4gfCBudWxsPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyeVBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IG51bWJlcjsgaW5pdGlhbFZhbHVlPzogdW5kZWZpbmVkfSxcbik6IFNpZ25hbDxudW1iZXIgfCBudWxsPjtcbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyeVBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IHN0cmluZzsgaW5pdGlhbFZhbHVlPzogdW5kZWZpbmVkfSxcbik6IFNpZ25hbDxzdHJpbmcgfCBudWxsPjtcblxuLyoqXG4gKiBUaGUgYGluamVjdFF1ZXJ5UGFyYW1zYCBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIGFjY2VzcyBhbmQgbWFuaXB1bGF0ZSBxdWVyeSBwYXJhbWV0ZXJzIGZyb20gdGhlIGN1cnJlbnQgcm91dGUuXG4gKlxuICogQHRlbXBsYXRlIE91dHB1dCAtIFRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSByZWFkIHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9IGtleU9yUGFyYW1zVHJhbnNmb3JtIC0gVGhlIG5hbWUgb2YgdGhlIHF1ZXJ5IHBhcmFtZXRlciB0byByZXRyaWV2ZSwgb3IgYSB0cmFuc2Zvcm0gZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgb2JqZWN0LlxuICogQHBhcmFtIHtRdWVyeVBhcmFtc09wdGlvbnN9IG9wdGlvbnMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBxdWVyeSBwYXJhbWV0ZXIuXG4gKiBAcmV0dXJucyB7UXVlcnlQYXJhbXNPcHRpb25zfSBBIGBTaWduYWxgIHRoYXQgZW1pdHMgdGhlIHRyYW5zZm9ybWVkIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcXVlcnkgcGFyYW1ldGVyLCBvciB0aGUgZW50aXJlIHF1ZXJ5IHBhcmFtZXRlcnMgb2JqZWN0IGlmIG5vIGtleSBpcyBwcm92aWRlZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgc2VhcmNoID0gaW5qZWN0UXVlcnlQYXJhbXMoJ3NlYXJjaCcpOyAvLyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJ3NlYXJjaCcgcXVlcnkgcGFyYW1cbiAqIGNvbnN0IHNlYXJjaCA9IGluamVjdFF1ZXJ5UGFyYW1zKHAgPT4gcFsnc2VhcmNoJ10gYXMgc3RyaW5nKTsgLy8gc2FtZSBhcyBhYm92ZSBidXQgY2FuIGJlIHVzZWQgd2l0aCBhIGN1c3RvbSB0cmFuc2Zvcm0gZnVuY3Rpb25cbiAqIGNvbnN0IGlkUGFyYW0gPSBpbmplY3RRdWVyeVBhcmFtcygnaWQnLCB7dHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGV9KTsgLy8gcmV0dXJucyB0aGUgdmFsdWUgZm8gdGhlICdpZCcgcXVlcnkgcGFyYW1zIGFuZCB0cmFuc2Zvcm1zIGl0IGludG8gYSBudW1iZXJcbiAqIGNvbnN0IGlkUGFyYW0gPSBpbmplY3RRdWVyeVBhcmFtcyhwID0+IG51bWJlckF0dHJpYnV0ZShwWydpZCddKSk7IC8vIHNhbWUgYXMgYWJvdmUgYnV0IGNhbiBiZSB1c2VkIHdpdGggYSBjdXN0b20gdHJhbnNmb3JtIGZ1bmN0aW9uXG4gKiBjb25zdCBxdWVyeVBhcmFtcyA9IGluamVjdFF1ZXJ5UGFyYW1zKCk7IC8vIHJldHVybnMgdGhlIGVudGlyZSBxdWVyeSBwYXJhbXMgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyeVBhcmFtczxPdXRwdXQ+KFxuICBrZXlPclBhcmFtc1RyYW5zZm9ybT86IHN0cmluZyB8IFF1ZXJ5UGFyYW1zVHJhbnNmb3JtRm48T3V0cHV0PixcbiAgb3B0aW9uczogUXVlcnlQYXJhbXNPcHRpb25zPE91dHB1dD4gPSB7fSxcbik6IFNpZ25hbDxPdXRwdXQgfCBQYXJhbXMgfCBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgbnVsbD4ge1xuICBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoaW5qZWN0UXVlcnlQYXJhbXMpO1xuXG4gIGNvbnN0IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgY29uc3QgaW5pdGlhbFF1ZXJ5UGFyYW1zID0gcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XG5cbiAgY29uc3Qge3RyYW5zZm9ybSwgaW5pdGlhbFZhbHVlfSA9IG9wdGlvbnM7XG5cbiAgLy8gaW5qZWN0UXVlcnlQYXJhbXMoKTogU2lnbmFsPFBhcmFtcz5cbiAgaWYgKCFrZXlPclBhcmFtc1RyYW5zZm9ybSkge1xuICAgIHJldHVybiB0b1NpZ25hbChyb3V0ZS5xdWVyeVBhcmFtcywge2luaXRpYWxWYWx1ZTogaW5pdGlhbFF1ZXJ5UGFyYW1zfSk7XG4gIH1cblxuICAvLyBpbmplY3RRdWVyeVBhcmFtczxPdXRwdXQ+KGZuOiBRdWVyeVBhcmFtc1RyYW5zZm9ybUZuPE91dHB1dD4pOiBTaWduYWw8T3V0cHV0PlxuICBpZiAodHlwZW9mIGtleU9yUGFyYW1zVHJhbnNmb3JtID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIHRvU2lnbmFsKHJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUobWFwKGtleU9yUGFyYW1zVHJhbnNmb3JtKSksIHtcbiAgICAgIGluaXRpYWxWYWx1ZToga2V5T3JQYXJhbXNUcmFuc2Zvcm0oaW5pdGlhbFF1ZXJ5UGFyYW1zKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIGtleU9yUGFyYW1zVHJhbnNmb3JtIGlzIHN0cmluZy5cbiAgY29uc3QgZ2V0UGFyYW0gPSAocGFyYW1zOiBQYXJhbXMpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IHBhcmFtcz8uW2tleU9yUGFyYW1zVHJhbnNmb3JtXSBhcyBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAgIGlmICghcGFyYW0pIHtcbiAgICAgIHJldHVybiBpbml0aWFsVmFsdWUgPz8gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbSkpIHtcbiAgICAgIGlmIChwYXJhbS5sZW5ndGggPCAxKSB7XG4gICAgICAgIHJldHVybiBpbml0aWFsVmFsdWUgPz8gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cmFuc2Zvcm0gPyB0cmFuc2Zvcm0ocGFyYW1bMF0pIDogcGFyYW1bMF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYW5zZm9ybSA/IHRyYW5zZm9ybShwYXJhbSkgOiBwYXJhbTtcbiAgfTtcblxuICByZXR1cm4gdG9TaWduYWwocm91dGUucXVlcnlQYXJhbXMucGlwZShtYXAoZ2V0UGFyYW0pKSwge1xuICAgIGluaXRpYWxWYWx1ZTogZ2V0UGFyYW0oaW5pdGlhbFF1ZXJ5UGFyYW1zKSxcbiAgfSk7XG59XG4iXX0=
@@ -0,0 +1,71 @@
1
+ import { assertInInjectionContext, isSignal, untracked } from '@angular/core';
2
+ import { toObservable, toSignal } from '@angular/core/rxjs-interop';
3
+ import { distinctUntilChanged, from, identity, isObservable, merge, startWith, } from 'rxjs';
4
+ // No object inputs
5
+ /**
6
+ * merge multiple `Observable` or `Signal` sources into a `Signal` that emits the last value. It's like merge.
7
+ *
8
+ * @param {ObservableSignalInputTuple} sources - Array of `Observable` or `Signal` values
9
+ * @param {OperatorFunction} [operator] - Operator to apply to the merge
10
+ * @param {MergeFromOptions} [options] - Options including `initialValue` and `injector`
11
+ * @returns Signal emitting the latest merge result
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * export class Component {
16
+ * e$ = of(1).pipe(delay(1000));
17
+ * f = signal(2);
18
+ *
19
+ * data = mergeFrom(
20
+ * [this.e$, this.f],
21
+ * pipe(
22
+ * switchMap((res) => of(`${res} is coming~`)),
23
+ * startWith(0),
24
+ * ),
25
+ * );
26
+ * }
27
+ * ```
28
+ */
29
+ export function mergeFrom(...args) {
30
+ assertInInjectionContext(mergeFrom);
31
+ const [sources, operator = identity, options = {}] = parseArgs(args);
32
+ const normalizedSources = sources.map((source) => {
33
+ if (isSignal(source)) {
34
+ return toObservable(source, { injector: options.injector }).pipe(startWith(untracked(source)));
35
+ }
36
+ if (!isObservable(source)) {
37
+ source = from(source);
38
+ }
39
+ return source.pipe(distinctUntilChanged());
40
+ });
41
+ const merged$ = merge(...normalizedSources).pipe(operator);
42
+ if (options.initialValue !== undefined) {
43
+ return toSignal(merged$, { initialValue: options.initialValue, injector: options.injector });
44
+ }
45
+ return toSignal(merged$, { requireSync: true, injector: options.injector });
46
+ }
47
+ function parseArgs(args) {
48
+ if (!args || args.length < 1) {
49
+ throw new TypeError('mergeFrom needs sources');
50
+ }
51
+ if (args.length === 1) {
52
+ return [args[0], undefined, undefined];
53
+ }
54
+ if (args.length === 2) {
55
+ const hasOperator = typeof args[1] === 'function';
56
+ if (hasOperator) {
57
+ return [
58
+ args[0],
59
+ args[1],
60
+ undefined,
61
+ ];
62
+ }
63
+ return [
64
+ args[0],
65
+ undefined,
66
+ args[1],
67
+ ];
68
+ }
69
+ return args;
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtZnJvbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvc2lnbmFscy9tZXJnZS1mcm9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBWSxRQUFRLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBQyxZQUFZLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixJQUFJLEVBQ0osUUFBUSxFQUNSLFlBQVksRUFDWixLQUFLLEVBR0wsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBeUJkLG1CQUFtQjtBQUVuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUEyRCxHQUFHLElBQWU7SUFDcEcsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFcEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLEdBQUcsUUFBUSxFQUFFLE9BQU8sR0FBRyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBRXBGLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQy9DLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BCLE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUY7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkI7UUFFRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBbUQsQ0FBQyxDQUFDO0lBRXRHLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7UUFDdEMsT0FBTyxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFzQixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQztLQUN0RztJQUNELE9BQU8sUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBMkQsSUFBZTtJQUMxRixJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzVCLE1BQU0sSUFBSSxTQUFTLENBQUMseUJBQXlCLENBQUMsQ0FBQztLQUNoRDtJQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQW9ELEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBVSxDQUFDO0tBQ3BHO0lBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNyQixNQUFNLFdBQVcsR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUM7UUFFbEQsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPO2dCQUNMLElBQUksQ0FBQyxDQUFDLENBQW9EO2dCQUMxRCxJQUFJLENBQUMsQ0FBQyxDQUE0QztnQkFDbEQsU0FBUzthQUNELENBQUM7U0FDWjtRQUVELE9BQU87WUFDTCxJQUFJLENBQUMsQ0FBQyxDQUFvRDtZQUMxRCxTQUFTO1lBQ1QsSUFBSSxDQUFDLENBQUMsQ0FBNkI7U0FDM0IsQ0FBQztLQUNaO0lBRUQsT0FBTyxJQUlOLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthc3NlcnRJbkluamVjdGlvbkNvbnRleHQsIEluamVjdG9yLCBpc1NpZ25hbCwgU2lnbmFsLCB1bnRyYWNrZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b09ic2VydmFibGUsIHRvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbSxcbiAgaWRlbnRpdHksXG4gIGlzT2JzZXJ2YWJsZSxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgT3BlcmF0b3JGdW5jdGlvbixcbiAgc3RhcnRXaXRoLFxufSBmcm9tICdyeGpzJztcblxudHlwZSBPYnNlcnZhYmxlU2lnbmFsSW5wdXQ8VD4gPSBPYnNlcnZhYmxlSW5wdXQ8VD4gfCBTaWduYWw8VD47XG5cbnR5cGUgT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBPYnNlcnZhYmxlU2lnbmFsSW5wdXQ8VFtLXT47XG59O1xuXG4vLyBwaWNrIGZyb20gVG9TaWduYWxPcHRpb25zXG5leHBvcnQgdHlwZSBNZXJnZUZyb21PcHRpb25zPFQ+ID0ge1xuICByZWFkb25seSBpbmplY3Rvcj86IEluamVjdG9yO1xuICByZWFkb25seSBpbml0aWFsVmFsdWU/OiBUIHwgbnVsbDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUZyb208SW5wdXQgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sIE91dHB1dCA9IElucHV0W251bWJlcl0+KFxuICBzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+XSxcbiAgb3BlcmF0b3I/OiBPcGVyYXRvckZ1bmN0aW9uPElucHV0W251bWJlcl0sIE91dHB1dD4sXG4gIG9wdGlvbnM/OiBNZXJnZUZyb21PcHRpb25zPE91dHB1dD4sXG4pOiBTaWduYWw8T3V0cHV0PjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRnJvbTxJbnB1dCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgT3V0cHV0ID0gSW5wdXRbbnVtYmVyXT4oXG4gIHNvdXJjZXM6IHJlYWRvbmx5IFsuLi5PYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD5dLFxuICBvcHRpb25zPzogTWVyZ2VGcm9tT3B0aW9uczxPdXRwdXQ+LFxuKTogU2lnbmFsPE91dHB1dD47XG5cbi8vIE5vIG9iamVjdCBpbnB1dHNcblxuLyoqXG4gKiBtZXJnZSBtdWx0aXBsZSBgT2JzZXJ2YWJsZWAgb3IgYFNpZ25hbGAgc291cmNlcyBpbnRvIGEgYFNpZ25hbGAgdGhhdCBlbWl0cyB0aGUgbGFzdCB2YWx1ZS4gSXQncyBsaWtlIG1lcmdlLlxuICpcbiAqIEBwYXJhbSB7T2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGV9IHNvdXJjZXMgLSBBcnJheSBvZiBgT2JzZXJ2YWJsZWAgb3IgYFNpZ25hbGAgdmFsdWVzXG4gKiBAcGFyYW0ge09wZXJhdG9yRnVuY3Rpb259IFtvcGVyYXRvcl0gLSBPcGVyYXRvciB0byBhcHBseSB0byB0aGUgbWVyZ2VcbiAqIEBwYXJhbSB7TWVyZ2VGcm9tT3B0aW9uc30gW29wdGlvbnNdIC0gT3B0aW9ucyBpbmNsdWRpbmcgYGluaXRpYWxWYWx1ZWAgYW5kIGBpbmplY3RvcmBcbiAqIEByZXR1cm5zIFNpZ25hbCBlbWl0dGluZyB0aGUgbGF0ZXN0IG1lcmdlIHJlc3VsdFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogZXhwb3J0IGNsYXNzIENvbXBvbmVudCB7XG4gKiAgIGUkID0gb2YoMSkucGlwZShkZWxheSgxMDAwKSk7XG4gKiAgIGYgPSBzaWduYWwoMik7XG4gKlxuICogICBkYXRhID0gbWVyZ2VGcm9tKFxuICogICAgIFt0aGlzLmUkLCB0aGlzLmZdLFxuICogICAgIHBpcGUoXG4gKiAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4gb2YoYCR7cmVzfSBpcyBjb21pbmd+YCkpLFxuICogICAgICAgc3RhcnRXaXRoKDApLFxuICogICAgICksXG4gKiAgICk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRnJvbTxJbnB1dCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgT3V0cHV0ID0gSW5wdXRbbnVtYmVyXT4oLi4uYXJnczogdW5rbm93bltdKSB7XG4gIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChtZXJnZUZyb20pO1xuXG4gIGNvbnN0IFtzb3VyY2VzLCBvcGVyYXRvciA9IGlkZW50aXR5LCBvcHRpb25zID0ge31dID0gcGFyc2VBcmdzPElucHV0LCBPdXRwdXQ+KGFyZ3MpO1xuXG4gIGNvbnN0IG5vcm1hbGl6ZWRTb3VyY2VzID0gc291cmNlcy5tYXAoKHNvdXJjZSkgPT4ge1xuICAgIGlmIChpc1NpZ25hbChzb3VyY2UpKSB7XG4gICAgICByZXR1cm4gdG9PYnNlcnZhYmxlKHNvdXJjZSwge2luamVjdG9yOiBvcHRpb25zLmluamVjdG9yfSkucGlwZShzdGFydFdpdGgodW50cmFja2VkKHNvdXJjZSkpKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzT2JzZXJ2YWJsZShzb3VyY2UpKSB7XG4gICAgICBzb3VyY2UgPSBmcm9tKHNvdXJjZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICB9KTtcblxuICBjb25zdCBtZXJnZWQkID0gbWVyZ2UoLi4ubm9ybWFsaXplZFNvdXJjZXMpLnBpcGUob3BlcmF0b3IgYXMgT3BlcmF0b3JGdW5jdGlvbjxJbnB1dFtudW1iZXJdLCBPdXRwdXQ+KTtcblxuICBpZiAob3B0aW9ucy5pbml0aWFsVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB0b1NpZ25hbChtZXJnZWQkLCB7aW5pdGlhbFZhbHVlOiBvcHRpb25zLmluaXRpYWxWYWx1ZSBhcyBPdXRwdXQsIGluamVjdG9yOiBvcHRpb25zLmluamVjdG9yfSk7XG4gIH1cbiAgcmV0dXJuIHRvU2lnbmFsKG1lcmdlZCQsIHtyZXF1aXJlU3luYzogdHJ1ZSwgaW5qZWN0b3I6IG9wdGlvbnMuaW5qZWN0b3J9KTtcbn1cblxuZnVuY3Rpb24gcGFyc2VBcmdzPElucHV0IGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdLCBPdXRwdXQgPSBJbnB1dFtudW1iZXJdPihhcmdzOiB1bmtub3duW10pIHtcbiAgaWYgKCFhcmdzIHx8IGFyZ3MubGVuZ3RoIDwgMSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ21lcmdlRnJvbSBuZWVkcyBzb3VyY2VzJyk7XG4gIH1cblxuICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gW2FyZ3NbMF0gYXMgcmVhZG9ubHkgWy4uLk9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0Pl0sIHVuZGVmaW5lZCwgdW5kZWZpbmVkXSBhcyBjb25zdDtcbiAgfVxuXG4gIGlmIChhcmdzLmxlbmd0aCA9PT0gMikge1xuICAgIGNvbnN0IGhhc09wZXJhdG9yID0gdHlwZW9mIGFyZ3NbMV0gPT09ICdmdW5jdGlvbic7XG5cbiAgICBpZiAoaGFzT3BlcmF0b3IpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIGFyZ3NbMF0gYXMgcmVhZG9ubHkgWy4uLk9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0Pl0sXG4gICAgICAgIGFyZ3NbMV0gYXMgT3BlcmF0b3JGdW5jdGlvbjxJbnB1dFtudW1iZXJdLCBPdXRwdXQ+LFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICBdIGFzIGNvbnN0O1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICBhcmdzWzBdIGFzIHJlYWRvbmx5IFsuLi5PYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD5dLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgYXJnc1sxXSBhcyBNZXJnZUZyb21PcHRpb25zPE91dHB1dD4sXG4gICAgXSBhcyBjb25zdDtcbiAgfVxuXG4gIHJldHVybiBhcmdzIGFzIHVua25vd24gYXMgW1xuICAgIHJlYWRvbmx5IFsuLi5PYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD5dLFxuICAgIE9wZXJhdG9yRnVuY3Rpb248SW5wdXRbbnVtYmVyXSwgT3V0cHV0PixcbiAgICBNZXJnZUZyb21PcHRpb25zPE91dHB1dD4sXG4gIF07XG59XG4iXX0=