ngx-lift 1.10.2 → 19.0.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.
Files changed (106) hide show
  1. package/README.md +5 -1
  2. package/fesm2022/ngx-lift.mjs +738 -194
  3. package/fesm2022/ngx-lift.mjs.map +1 -1
  4. package/index.d.ts +1638 -3
  5. package/package.json +6 -6
  6. package/esm2022/lib/const.mjs +0 -10
  7. package/esm2022/lib/models/async-state.model.mjs +0 -2
  8. package/esm2022/lib/models/index.mjs +0 -6
  9. package/esm2022/lib/models/kubernetes-list.model.mjs +0 -2
  10. package/esm2022/lib/models/kubernetes-object-condition.model.mjs +0 -2
  11. package/esm2022/lib/models/kubernetes-object-meta.model.mjs +0 -2
  12. package/esm2022/lib/models/kubernetes-object.model.mjs +0 -2
  13. package/esm2022/lib/operators/combine-latest-eager.operator.mjs +0 -48
  14. package/esm2022/lib/operators/create-async-state.operator.mjs +0 -61
  15. package/esm2022/lib/operators/distinct-on-change.operator.mjs +0 -80
  16. package/esm2022/lib/operators/index.mjs +0 -9
  17. package/esm2022/lib/operators/kubernetes-pagination.operator.mjs +0 -71
  18. package/esm2022/lib/operators/logger.operator.mjs +0 -21
  19. package/esm2022/lib/operators/poll.operator.mjs +0 -39
  20. package/esm2022/lib/operators/start-with-tap.operator.mjs +0 -15
  21. package/esm2022/lib/operators/switch-map-with-async-state.operator.mjs +0 -33
  22. package/esm2022/lib/pipes/array-join.pipe.mjs +0 -21
  23. package/esm2022/lib/pipes/byte-converter.pipe.mjs +0 -150
  24. package/esm2022/lib/pipes/index.mjs +0 -6
  25. package/esm2022/lib/pipes/is-https.pipe.mjs +0 -18
  26. package/esm2022/lib/pipes/mask.pipe.mjs +0 -36
  27. package/esm2022/lib/pipes/range.pipe.mjs +0 -19
  28. package/esm2022/lib/signals/combine-from.mjs +0 -81
  29. package/esm2022/lib/signals/computed-async.mjs +0 -63
  30. package/esm2022/lib/signals/create-trigger.mjs +0 -11
  31. package/esm2022/lib/signals/index.mjs +0 -7
  32. package/esm2022/lib/signals/inject-params.mjs +0 -35
  33. package/esm2022/lib/signals/inject-query-params.mjs +0 -53
  34. package/esm2022/lib/signals/merge-from.mjs +0 -71
  35. package/esm2022/lib/utils/difference-in-days.util.mjs +0 -25
  36. package/esm2022/lib/utils/form.util.mjs +0 -56
  37. package/esm2022/lib/utils/idle-detection/idle-detection.config.mjs +0 -7
  38. package/esm2022/lib/utils/idle-detection/idle-detection.module.mjs +0 -25
  39. package/esm2022/lib/utils/idle-detection/idle-detection.service.mjs +0 -190
  40. package/esm2022/lib/utils/idle-detection/index.mjs +0 -4
  41. package/esm2022/lib/utils/index.mjs +0 -10
  42. package/esm2022/lib/utils/internal.util.mjs +0 -13
  43. package/esm2022/lib/utils/is-empty.util.mjs +0 -49
  44. package/esm2022/lib/utils/is-equal.util.mjs +0 -24
  45. package/esm2022/lib/utils/is-promise.util.mjs +0 -5
  46. package/esm2022/lib/utils/omit-by.util.mjs +0 -12
  47. package/esm2022/lib/utils/pick-by.util.mjs +0 -16
  48. package/esm2022/lib/utils/range.util.mjs +0 -28
  49. package/esm2022/lib/utils/url.util.mjs +0 -34
  50. package/esm2022/lib/validators/date-range.validator.mjs +0 -58
  51. package/esm2022/lib/validators/index.mjs +0 -5
  52. package/esm2022/lib/validators/intersection.validator.mjs +0 -34
  53. package/esm2022/lib/validators/unique.validator.mjs +0 -64
  54. package/esm2022/lib/validators/url.validator.mjs +0 -14
  55. package/esm2022/ngx-lift.mjs +0 -5
  56. package/esm2022/public-api.mjs +0 -10
  57. package/lib/const.d.ts +0 -5
  58. package/lib/models/async-state.model.d.ts +0 -22
  59. package/lib/models/index.d.ts +0 -5
  60. package/lib/models/kubernetes-list.model.d.ts +0 -10
  61. package/lib/models/kubernetes-object-condition.model.d.ts +0 -28
  62. package/lib/models/kubernetes-object-meta.model.d.ts +0 -38
  63. package/lib/models/kubernetes-object.model.d.ts +0 -8
  64. package/lib/operators/combine-latest-eager.operator.d.ts +0 -7
  65. package/lib/operators/create-async-state.operator.d.ts +0 -64
  66. package/lib/operators/distinct-on-change.operator.d.ts +0 -55
  67. package/lib/operators/index.d.ts +0 -8
  68. package/lib/operators/kubernetes-pagination.operator.d.ts +0 -30
  69. package/lib/operators/logger.operator.d.ts +0 -11
  70. package/lib/operators/poll.operator.d.ts +0 -39
  71. package/lib/operators/start-with-tap.operator.d.ts +0 -10
  72. package/lib/operators/switch-map-with-async-state.operator.d.ts +0 -31
  73. package/lib/pipes/array-join.pipe.d.ts +0 -7
  74. package/lib/pipes/byte-converter.pipe.d.ts +0 -40
  75. package/lib/pipes/index.d.ts +0 -5
  76. package/lib/pipes/is-https.pipe.d.ts +0 -7
  77. package/lib/pipes/mask.pipe.d.ts +0 -19
  78. package/lib/pipes/range.pipe.d.ts +0 -10
  79. package/lib/signals/combine-from.d.ts +0 -25
  80. package/lib/signals/computed-async.d.ts +0 -29
  81. package/lib/signals/create-trigger.d.ts +0 -4
  82. package/lib/signals/index.d.ts +0 -6
  83. package/lib/signals/inject-params.d.ts +0 -63
  84. package/lib/signals/inject-query-params.d.ts +0 -71
  85. package/lib/signals/merge-from.d.ts +0 -13
  86. package/lib/utils/difference-in-days.util.d.ts +0 -19
  87. package/lib/utils/form.util.d.ts +0 -18
  88. package/lib/utils/idle-detection/idle-detection.config.d.ts +0 -5
  89. package/lib/utils/idle-detection/idle-detection.module.d.ts +0 -13
  90. package/lib/utils/idle-detection/idle-detection.service.d.ts +0 -119
  91. package/lib/utils/idle-detection/index.d.ts +0 -3
  92. package/lib/utils/index.d.ts +0 -9
  93. package/lib/utils/internal.util.d.ts +0 -4
  94. package/lib/utils/is-empty.util.d.ts +0 -10
  95. package/lib/utils/is-equal.util.d.ts +0 -7
  96. package/lib/utils/is-promise.util.d.ts +0 -1
  97. package/lib/utils/omit-by.util.d.ts +0 -7
  98. package/lib/utils/pick-by.util.d.ts +0 -7
  99. package/lib/utils/range.util.d.ts +0 -12
  100. package/lib/utils/url.util.d.ts +0 -24
  101. package/lib/validators/date-range.validator.d.ts +0 -19
  102. package/lib/validators/index.d.ts +0 -4
  103. package/lib/validators/intersection.validator.d.ts +0 -9
  104. package/lib/validators/unique.validator.d.ts +0 -18
  105. package/lib/validators/url.validator.d.ts +0 -3
  106. package/public-api.d.ts +0 -6
@@ -1,150 +0,0 @@
1
- import { inject, LOCALE_ID, Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * import { LOCALE_ID, NgModule } from '@angular/core';
5
- * import { BrowserModule } from '@angular/platform-browser';
6
- * import { AppComponent } from './app.component';
7
- * import { registerLocaleData } from '@angular/common';
8
- *
9
- * import localeEn from '@angular/common/locales/en';
10
- * import localeFr from '@angular/common/locales/fr';
11
- *
12
- * // Register locales
13
- * registerLocaleData(localeEn);
14
- * registerLocaleData(localeFr);
15
- *
16
- * @NgModule({
17
- * declarations: [AppComponent],
18
- * imports: [BrowserModule],
19
- * providers: [
20
- * {
21
- * provide: LOCALE_ID,
22
- * useFactory: () => {
23
- * // Use the browser's language or a default language
24
- * return navigator.language || 'en';
25
- * },
26
- * },
27
- * ],
28
- * bootstrap: [AppComponent],
29
- * })
30
- * export class AppModule {}
31
- */
32
- export class ByteConverterPipe {
33
- constructor() {
34
- this.locale = inject(LOCALE_ID);
35
- }
36
- transform(value) {
37
- if (value === null || value === undefined || isNaN(value)) {
38
- return null;
39
- }
40
- const units = ['BYTE', 'KB', 'MB', 'GB', 'TB'];
41
- let unitIndex = 0;
42
- while (value >= 1024 && unitIndex < units.length - 1) {
43
- value /= 1024;
44
- unitIndex++;
45
- }
46
- const translationObject = translations[this.locale] || translations['en'];
47
- const key = units[unitIndex];
48
- return this.formatNumber(value) + ' ' + translationObject[key];
49
- }
50
- formatNumber(value) {
51
- return new Intl.NumberFormat(this.locale, { maximumFractionDigits: 2 }).format(value);
52
- }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ByteConverterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
54
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ByteConverterPipe, isStandalone: true, name: "byteConverter" }); }
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ByteConverterPipe, decorators: [{
57
- type: Pipe,
58
- args: [{
59
- name: 'byteConverter',
60
- standalone: true,
61
- }]
62
- }] });
63
- const translations = {
64
- en: {
65
- BYTE: 'B',
66
- KB: 'KB',
67
- MB: 'MB',
68
- GB: 'GB',
69
- TB: 'TB',
70
- },
71
- 'en-US': {
72
- // You can provide specific variations for en-US if needed
73
- BYTE: 'B',
74
- KB: 'KB',
75
- MB: 'MB',
76
- GB: 'GB',
77
- TB: 'TB',
78
- },
79
- de: {
80
- BYTE: 'B',
81
- KB: 'KB',
82
- MB: 'MB',
83
- GB: 'GB',
84
- TB: 'TB',
85
- },
86
- es: {
87
- BYTE: 'B',
88
- KB: 'KB',
89
- MB: 'MB',
90
- GB: 'GB',
91
- TB: 'TB',
92
- },
93
- fr: {
94
- BYTE: 'o',
95
- KB: 'Ko',
96
- MB: 'Mo',
97
- GB: 'Go',
98
- TB: 'To',
99
- },
100
- it: {
101
- BYTE: 'B',
102
- KB: 'KB',
103
- MB: 'MB',
104
- GB: 'GB',
105
- TB: 'TB',
106
- },
107
- ja: {
108
- BYTE: 'B',
109
- KB: 'KB',
110
- MB: 'MB',
111
- GB: 'GB',
112
- TB: 'TB',
113
- },
114
- ko: {
115
- BYTE: 'B',
116
- KB: 'KB',
117
- MB: 'MB',
118
- GB: 'GB',
119
- TB: 'TB',
120
- },
121
- 'pt-BR': {
122
- BYTE: 'B',
123
- KB: 'KB',
124
- MB: 'MB',
125
- GB: 'GB',
126
- TB: 'TB',
127
- },
128
- 'zh-CN': {
129
- BYTE: '字节',
130
- KB: '千字节',
131
- MB: '兆字节',
132
- GB: '千兆字节',
133
- TB: '太字节',
134
- },
135
- 'zh-TW': {
136
- BYTE: '位元組',
137
- KB: '千位元組',
138
- MB: '兆位元組',
139
- GB: '千兆位元組',
140
- TB: '太位元組',
141
- },
142
- ru: {
143
- BYTE: 'Б',
144
- KB: 'КБ',
145
- MB: 'МБ',
146
- GB: 'ГБ',
147
- TB: 'ТБ',
148
- },
149
- };
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZS1jb252ZXJ0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvcGlwZXMvYnl0ZS1jb252ZXJ0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUVyRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFKOUI7UUFLVSxXQUFNLEdBQUcsTUFBTSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0tBaUM1QztJQXRCQyxTQUFTLENBQUMsS0FBaUM7UUFDekMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0MsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxLQUFLLElBQUksSUFBSSxDQUFDO1lBQ2QsU0FBUyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWE7UUFDaEMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFDLHFCQUFxQixFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RGLENBQUM7K0dBakNVLGlCQUFpQjs2R0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUo3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO29CQUNyQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBcUNELE1BQU0sWUFBWSxHQUEyQztJQUMzRCxFQUFFLEVBQUU7UUFDRixJQUFJLEVBQUUsR0FBRztRQUNULEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO0tBQ1Q7SUFDRCxPQUFPLEVBQUU7UUFDUCwwREFBMEQ7UUFDMUQsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixFQUFFLEVBQUUsS0FBSztRQUNULEVBQUUsRUFBRSxLQUFLO1FBQ1QsRUFBRSxFQUFFLE1BQU07UUFDVixFQUFFLEVBQUUsS0FBSztLQUNWO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLEtBQUs7UUFDWCxFQUFFLEVBQUUsTUFBTTtRQUNWLEVBQUUsRUFBRSxNQUFNO1FBQ1YsRUFBRSxFQUFFLE9BQU87UUFDWCxFQUFFLEVBQUUsTUFBTTtLQUNYO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLEdBQUc7UUFDVCxFQUFFLEVBQUUsSUFBSTtRQUNSLEVBQUUsRUFBRSxJQUFJO1FBQ1IsRUFBRSxFQUFFLElBQUk7UUFDUixFQUFFLEVBQUUsSUFBSTtLQUNUO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aW5qZWN0LCBMT0NBTEVfSUQsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIGltcG9ydCB7IExPQ0FMRV9JRCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqIGltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbiAqIGltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7XG4gKiBpbXBvcnQgeyByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuICpcbiAqIGltcG9ydCBsb2NhbGVFbiBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9lbic7XG4gKiBpbXBvcnQgbG9jYWxlRnIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZnInO1xuICpcbiAqIC8vIFJlZ2lzdGVyIGxvY2FsZXNcbiAqIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVFbik7XG4gKiByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRnIpO1xuICpcbiAqIEBOZ01vZHVsZSh7XG4gKiAgIGRlY2xhcmF0aW9uczogW0FwcENvbXBvbmVudF0sXG4gKiAgIGltcG9ydHM6IFtCcm93c2VyTW9kdWxlXSxcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICogICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICogICAgICAgICAvLyBVc2UgdGhlIGJyb3dzZXIncyBsYW5ndWFnZSBvciBhIGRlZmF1bHQgbGFuZ3VhZ2VcbiAqICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5sYW5ndWFnZSB8fCAnZW4nO1xuICogICAgICAgfSxcbiAqICAgICB9LFxuICogICBdLFxuICogICBib290c3RyYXA6IFtBcHBDb21wb25lbnRdLFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGUge31cbiAqL1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdieXRlQ29udmVydGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQnl0ZUNvbnZlcnRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSBsb2NhbGUgPSBpbmplY3Q8c3RyaW5nPihMT0NBTEVfSUQpO1xuICAvLyBJZiB1c2luZyBuYXZpZ2F0b3IubGFuZ3VhZ2UgZGlyZWN0bHkgaW4gdGhlIHBpcGUsIHRoaXMgYXBwcm9hY2ggZGlyZWN0bHkgdXNlcyB0aGUgYnJvd3NlcidzIGxhbmd1YWdlIGF0IHRoZSBtb21lbnQgdGhlIEJ5dGVDb252ZXJ0ZXJQaXBlIGlzIGNvbnN0cnVjdGVkLiBJZiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBsYW5ndWFnZSB3aGlsZSB1c2luZyB0aGUgYXBwbGljYXRpb24sIGl0IHdvbid0IGJlIGF1dG9tYXRpY2FsbHkgcmVmbGVjdGVkLiBJZiBkeW5hbWljIGxhbmd1YWdlIGNoYW5nZXMgYXJlIGEgcmVxdWlyZW1lbnQsIHVzaW5nIHRoZSBMT0NBTEVfSUQgcHJvdmlkZXIgYXMgZGVtb25zdHJhdGVkIGluIHRoZSBBcHBNb2R1bGUgaXMgYSBtb3JlIEFuZ3VsYXItY2VudHJpYyBhcHByb2FjaC5cbiAgLy8gcHJpdmF0ZSBsb2NhbGU6IHN0cmluZztcbiAgLy8gY29uc3RydWN0b3IoKSB7XG4gIC8vICAgLy8gVXNlIG5hdmlnYXRvci5sYW5ndWFnZSBhcyB0aGUgZGVmYXVsdCBsb2NhbGVcbiAgLy8gICB0aGlzLmxvY2FsZSA9IG5hdmlnYXRvci5sYW5ndWFnZSB8fCAnZW4nO1xuICAvLyB9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIpOiBzdHJpbmc7XG4gIHRyYW5zZm9ybSh2YWx1ZT86IG51bWJlcik6IHN0cmluZyB8IG51bGw7XG4gIHRyYW5zZm9ybSh2YWx1ZT86IG51bWJlciB8IG51bGwpOiBzdHJpbmcgfCBudWxsO1xuICB0cmFuc2Zvcm0odmFsdWU/OiBudWxsIHwgbnVtYmVyIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgaXNOYU4odmFsdWUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB1bml0cyA9IFsnQllURScsICdLQicsICdNQicsICdHQicsICdUQiddO1xuICAgIGxldCB1bml0SW5kZXggPSAwO1xuXG4gICAgd2hpbGUgKHZhbHVlID49IDEwMjQgJiYgdW5pdEluZGV4IDwgdW5pdHMubGVuZ3RoIC0gMSkge1xuICAgICAgdmFsdWUgLz0gMTAyNDtcbiAgICAgIHVuaXRJbmRleCsrO1xuICAgIH1cblxuICAgIGNvbnN0IHRyYW5zbGF0aW9uT2JqZWN0ID0gdHJhbnNsYXRpb25zW3RoaXMubG9jYWxlXSB8fCB0cmFuc2xhdGlvbnNbJ2VuJ107XG4gICAgY29uc3Qga2V5ID0gdW5pdHNbdW5pdEluZGV4XTtcblxuICAgIHJldHVybiB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZSkgKyAnICcgKyB0cmFuc2xhdGlvbk9iamVjdFtrZXldO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCh0aGlzLmxvY2FsZSwge21heGltdW1GcmFjdGlvbkRpZ2l0czogMn0pLmZvcm1hdCh2YWx1ZSk7XG4gIH1cbn1cblxuY29uc3QgdHJhbnNsYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgZW46IHtcbiAgICBCWVRFOiAnQicsXG4gICAgS0I6ICdLQicsXG4gICAgTUI6ICdNQicsXG4gICAgR0I6ICdHQicsXG4gICAgVEI6ICdUQicsXG4gIH0sXG4gICdlbi1VUyc6IHtcbiAgICAvLyBZb3UgY2FuIHByb3ZpZGUgc3BlY2lmaWMgdmFyaWF0aW9ucyBmb3IgZW4tVVMgaWYgbmVlZGVkXG4gICAgQllURTogJ0InLFxuICAgIEtCOiAnS0InLFxuICAgIE1COiAnTUInLFxuICAgIEdCOiAnR0InLFxuICAgIFRCOiAnVEInLFxuICB9LFxuICBkZToge1xuICAgIEJZVEU6ICdCJyxcbiAgICBLQjogJ0tCJyxcbiAgICBNQjogJ01CJyxcbiAgICBHQjogJ0dCJyxcbiAgICBUQjogJ1RCJyxcbiAgfSxcbiAgZXM6IHtcbiAgICBCWVRFOiAnQicsXG4gICAgS0I6ICdLQicsXG4gICAgTUI6ICdNQicsXG4gICAgR0I6ICdHQicsXG4gICAgVEI6ICdUQicsXG4gIH0sXG4gIGZyOiB7XG4gICAgQllURTogJ28nLFxuICAgIEtCOiAnS28nLFxuICAgIE1COiAnTW8nLFxuICAgIEdCOiAnR28nLFxuICAgIFRCOiAnVG8nLFxuICB9LFxuICBpdDoge1xuICAgIEJZVEU6ICdCJyxcbiAgICBLQjogJ0tCJyxcbiAgICBNQjogJ01CJyxcbiAgICBHQjogJ0dCJyxcbiAgICBUQjogJ1RCJyxcbiAgfSxcbiAgamE6IHtcbiAgICBCWVRFOiAnQicsXG4gICAgS0I6ICdLQicsXG4gICAgTUI6ICdNQicsXG4gICAgR0I6ICdHQicsXG4gICAgVEI6ICdUQicsXG4gIH0sXG4gIGtvOiB7XG4gICAgQllURTogJ0InLFxuICAgIEtCOiAnS0InLFxuICAgIE1COiAnTUInLFxuICAgIEdCOiAnR0InLFxuICAgIFRCOiAnVEInLFxuICB9LFxuICAncHQtQlInOiB7XG4gICAgQllURTogJ0InLFxuICAgIEtCOiAnS0InLFxuICAgIE1COiAnTUInLFxuICAgIEdCOiAnR0InLFxuICAgIFRCOiAnVEInLFxuICB9LFxuICAnemgtQ04nOiB7XG4gICAgQllURTogJ+Wtl+iKgicsXG4gICAgS0I6ICfljYPlrZfoioInLFxuICAgIE1COiAn5YWG5a2X6IqCJyxcbiAgICBHQjogJ+WNg+WFhuWtl+iKgicsXG4gICAgVEI6ICflpKrlrZfoioInLFxuICB9LFxuICAnemgtVFcnOiB7XG4gICAgQllURTogJ+S9jeWFg+e1hCcsXG4gICAgS0I6ICfljYPkvY3lhYPntYQnLFxuICAgIE1COiAn5YWG5L2N5YWD57WEJyxcbiAgICBHQjogJ+WNg+WFhuS9jeWFg+e1hCcsXG4gICAgVEI6ICflpKrkvY3lhYPntYQnLFxuICB9LFxuICBydToge1xuICAgIEJZVEU6ICfQkScsXG4gICAgS0I6ICfQmtCRJyxcbiAgICBNQjogJ9Cc0JEnLFxuICAgIEdCOiAn0JPQkScsXG4gICAgVEI6ICfQotCRJyxcbiAgfSxcbn07XG4iXX0=
@@ -1,6 +0,0 @@
1
- export * from './array-join.pipe';
2
- export * from './byte-converter.pipe';
3
- export * from './is-https.pipe';
4
- export * from './mask.pipe';
5
- export * from './range.pipe';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcnJheS1qb2luLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ieXRlLWNvbnZlcnRlci5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vaXMtaHR0cHMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL21hc2sucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlLnBpcGUnO1xuIl19
@@ -1,18 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { isHttps } from '../utils';
3
- import * as i0 from "@angular/core";
4
- export class IsHttpsPipe {
5
- transform(value) {
6
- return isHttps(value);
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsHttpsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
9
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IsHttpsPipe, isStandalone: true, name: "isHttps" }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsHttpsPipe, decorators: [{
12
- type: Pipe,
13
- args: [{
14
- name: 'isHttps',
15
- standalone: true,
16
- }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaHR0cHMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvcGlwZXMvaXMtaHR0cHMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sVUFBVSxDQUFDOztBQU1qQyxNQUFNLE9BQU8sV0FBVztJQUN0QixTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDOytHQUhVLFdBQVc7NkdBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFKdkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztvQkFDZixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge2lzSHR0cHN9IGZyb20gJy4uL3V0aWxzJztcblxuQFBpcGUoe1xuICBuYW1lOiAnaXNIdHRwcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElzSHR0cHNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzSHR0cHModmFsdWUpO1xuICB9XG59XG4iXX0=
@@ -1,36 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- const unmaskNumber = 6;
4
- const maskChar = '*';
5
- export class MaskPipe {
6
- /**
7
- * Transforms the input string by masking characters based on the provided options.
8
- *
9
- * @param {string} value - The input string to be masked.
10
- * @param {MaskOptions} [options={}] - Options for customizing the masking behavior.
11
- * @returns {string} - The masked string.
12
- */
13
- transform(value, options = {}) {
14
- const { unmaskedPrefixLength = unmaskNumber, unmaskedSuffixLength = unmaskNumber, masked = true } = options;
15
- if (value.length <= unmaskedPrefixLength + unmaskedSuffixLength ||
16
- unmaskedPrefixLength < 0 ||
17
- unmaskedSuffixLength < 0 ||
18
- !masked) {
19
- return value;
20
- }
21
- return value
22
- .split('')
23
- .map((char, i) => (i < unmaskedPrefixLength || i > value.length - unmaskedSuffixLength - 1 ? char : maskChar))
24
- .join('');
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MaskPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
27
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: MaskPipe, isStandalone: true, name: "mask" }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MaskPipe, decorators: [{
30
- type: Pipe,
31
- args: [{
32
- name: 'mask',
33
- standalone: true,
34
- }]
35
- }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9waXBlcy9tYXNrLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7O0FBRWxELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQUN2QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFZckIsTUFBTSxPQUFPLFFBQVE7SUFDbkI7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEtBQWEsRUFBRSxVQUF1QixFQUFFO1FBQ2hELE1BQU0sRUFBQyxvQkFBb0IsR0FBRyxZQUFZLEVBQUUsb0JBQW9CLEdBQUcsWUFBWSxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQUMsR0FBRyxPQUFPLENBQUM7UUFFMUcsSUFDRSxLQUFLLENBQUMsTUFBTSxJQUFJLG9CQUFvQixHQUFHLG9CQUFvQjtZQUMzRCxvQkFBb0IsR0FBRyxDQUFDO1lBQ3hCLG9CQUFvQixHQUFHLENBQUM7WUFDeEIsQ0FBQyxNQUFNLEVBQ1AsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sS0FBSzthQUNULEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDVCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxvQkFBb0IsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDN0csSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2QsQ0FBQzsrR0F4QlUsUUFBUTs2R0FBUixRQUFROzs0RkFBUixRQUFRO2tCQUpwQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxNQUFNO29CQUNaLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IHVubWFza051bWJlciA9IDY7XG5jb25zdCBtYXNrQ2hhciA9ICcqJztcblxuZXhwb3J0IGludGVyZmFjZSBNYXNrT3B0aW9ucyB7XG4gIHVubWFza2VkUHJlZml4TGVuZ3RoPzogbnVtYmVyO1xuICB1bm1hc2tlZFN1ZmZpeExlbmd0aD86IG51bWJlcjtcbiAgbWFza2VkPzogYm9vbGVhbjtcbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnbWFzaycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE1hc2tQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIHRoZSBpbnB1dCBzdHJpbmcgYnkgbWFza2luZyBjaGFyYWN0ZXJzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBUaGUgaW5wdXQgc3RyaW5nIHRvIGJlIG1hc2tlZC5cbiAgICogQHBhcmFtIHtNYXNrT3B0aW9uc30gW29wdGlvbnM9e31dIC0gT3B0aW9ucyBmb3IgY3VzdG9taXppbmcgdGhlIG1hc2tpbmcgYmVoYXZpb3IuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIG1hc2tlZCBzdHJpbmcuXG4gICAqL1xuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgb3B0aW9uczogTWFza09wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gICAgY29uc3Qge3VubWFza2VkUHJlZml4TGVuZ3RoID0gdW5tYXNrTnVtYmVyLCB1bm1hc2tlZFN1ZmZpeExlbmd0aCA9IHVubWFza051bWJlciwgbWFza2VkID0gdHJ1ZX0gPSBvcHRpb25zO1xuXG4gICAgaWYgKFxuICAgICAgdmFsdWUubGVuZ3RoIDw9IHVubWFza2VkUHJlZml4TGVuZ3RoICsgdW5tYXNrZWRTdWZmaXhMZW5ndGggfHxcbiAgICAgIHVubWFza2VkUHJlZml4TGVuZ3RoIDwgMCB8fFxuICAgICAgdW5tYXNrZWRTdWZmaXhMZW5ndGggPCAwIHx8XG4gICAgICAhbWFza2VkXG4gICAgKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAuc3BsaXQoJycpXG4gICAgICAubWFwKChjaGFyLCBpKSA9PiAoaSA8IHVubWFza2VkUHJlZml4TGVuZ3RoIHx8IGkgPiB2YWx1ZS5sZW5ndGggLSB1bm1hc2tlZFN1ZmZpeExlbmd0aCAtIDEgPyBjaGFyIDogbWFza0NoYXIpKVxuICAgICAgLmpvaW4oJycpO1xuICB9XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import { range } from '../utils';
3
- import * as i0 from "@angular/core";
4
- export class RangePipe {
5
- transform(value) {
6
- const input = value;
7
- return range(...input);
8
- }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RangePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
10
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RangePipe, isStandalone: true, name: "range" }); }
11
- }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RangePipe, decorators: [{
13
- type: Pipe,
14
- args: [{
15
- name: 'range',
16
- standalone: true,
17
- }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvcGlwZXMvcmFuZ2UucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sVUFBVSxDQUFDOztBQU0vQixNQUFNLE9BQU8sU0FBUztJQUtwQixTQUFTLENBQUMsS0FBYztRQUN0QixNQUFNLEtBQUssR0FBRyxLQUEwQyxDQUFDO1FBQ3pELE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQzsrR0FSVSxTQUFTOzZHQUFULFNBQVM7OzRGQUFULFNBQVM7a0JBSnJCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLE9BQU87b0JBQ2IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtyYW5nZX0gZnJvbSAnLi4vdXRpbHMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdyYW5nZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IFtudW1iZXJdKTogbnVtYmVyW107XG4gIHRyYW5zZm9ybSh2YWx1ZTogW251bWJlciwgbnVtYmVyXSk6IG51bWJlcltdO1xuICB0cmFuc2Zvcm0odmFsdWU6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSk6IG51bWJlcltdO1xuICB0cmFuc2Zvcm0odmFsdWU6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBib29sZWFuXSk6IG51bWJlcltdO1xuICB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24pOiBudW1iZXJbXSB7XG4gICAgY29uc3QgaW5wdXQgPSB2YWx1ZSBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgYm9vbGVhbl07XG4gICAgcmV0dXJuIHJhbmdlKC4uLmlucHV0KTtcbiAgfVxufVxuIl19
@@ -1,81 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluZS1mcm9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpZnQvc3JjL2xpYi9zaWduYWxzL2NvbWJpbmUtZnJvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFFLFFBQVEsRUFBWSxRQUFRLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxZQUFZLEVBQUUsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUNMLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsSUFBSSxFQUNKLFFBQVEsRUFDUixZQUFZLEVBSVosU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBNkZkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQThCLEdBQUcsSUFBVztJQUNyRSx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV0QyxNQUFNLEVBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUMsR0FBRyxhQUFhLENBQWdCLElBQUksQ0FBQyxDQUFDO0lBRWhHLE1BQU0sR0FBRyxHQUFHLFlBQVk7UUFDdEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEQsWUFBWSxFQUFFLE9BQVEsQ0FBQyxZQUFhO1lBQ3BDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUTtTQUM1QixDQUFDO1FBQ0osQ0FBQyxDQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDekQsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRO1lBQzNCLHFCQUFxQjtTQUN0QixDQUFnQyxDQUFDO0lBRXRDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUNwQixJQUFXO0lBT1gsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM1RCxNQUFNLElBQUksU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVUsQ0FBQztJQUVsRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLFNBQVMsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7SUFFMUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxFQUFFLFlBQVksS0FBSyxTQUFTLENBQUM7SUFFekQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDdEQsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtRQUM1QixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JCLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLElBQUk7WUFDeEUsbUVBQW1FO1lBQ25FLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDN0IsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUN4Qyx5Q0FBeUM7WUFDekMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE1BQXVCLENBQUMsQ0FBQztZQUN0RCxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2RyxDQUFDO2FBQU0sQ0FBQztZQUNOLDhEQUE4RDtZQUM5RCxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUNELENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQVEsQ0FDMUMsQ0FBQztJQUVGLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBQyxDQUFDO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQge2Fzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgY29tcHV0ZWQsIEluamVjdG9yLCBpc1NpZ25hbCwgU2lnbmFsLCB1bnRyYWNrZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0b09ic2VydmFibGUsIHRvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbSxcbiAgaWRlbnRpdHksXG4gIGlzT2JzZXJ2YWJsZSxcbiAgT2JzZXJ2YWJsZUlucHV0LFxuICBPYnNlcnZhYmxlSW5wdXRUdXBsZSxcbiAgT3BlcmF0b3JGdW5jdGlvbixcbiAgc3RhcnRXaXRoLFxufSBmcm9tICdyeGpzJztcblxudHlwZSBPYnNlcnZhYmxlU2lnbmFsSW5wdXQ8VD4gPSBPYnNlcnZhYmxlSW5wdXQ8VD4gfCBTaWduYWw8VD47XG5cbnR5cGUgT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBPYnNlcnZhYmxlU2lnbmFsSW5wdXQ8VFtLXT4gfCAoKCkgPT4gVFtLXSk7XG59O1xuXG4vLyBwaWNrIGZyb20gVG9TaWduYWxPcHRpb25zXG5leHBvcnQgdHlwZSBDb21iaW5lRnJvbU9wdGlvbnM8SVZhbHVlPiA9IHtcbiAgcmVhZG9ubHkgaW5qZWN0b3I/OiBJbmplY3RvcjtcbiAgcmVhZG9ubHkgaW5pdGlhbFZhbHVlPzogSVZhbHVlO1xufTtcblxuLy8gYXJyYXkgaW5wdXRzIG9ubHlcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+XSxcbik6IFNpZ25hbDxPdXRwdXQ+O1xuXG4vLyAtLS0tLS0tLS0tIDMgYXJncyB3aXRoIGFycmF5IGlucHV0cyAtLS0tLS0tLS0tLS0tXG4vLyBjb21iaW5lRnJvbShbc2lnbmFsLCBvYnMkXSwgcGlwZU9wZXJhdG9yLCB7IGluaXRpYWxWYWx1ZTogWzEsMl0gfSksIElucHV0IGlzIFtzaWduYWwsIG9icyRdXG4vLyAxLiBubyBpbml0aWFsVmFsdWVcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+XSxcbiAgb3BlcmF0b3I/OiBPcGVyYXRvckZ1bmN0aW9uPElucHV0LCBPdXRwdXQ+LFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPHVuZGVmaW5lZD4sXG4pOiBTaWduYWw8T3V0cHV0IHwgdW5kZWZpbmVkPjtcbi8vIDIuIGluaXRpYWxWYWx1ZSBpcyBudWxsLCByZXR1cm5pbmcgdHlwZSBzaG91bGQgaW5jbHVkZSBudWxsXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUZyb208SW5wdXQgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sIE91dHB1dCA9IElucHV0PihcbiAgc291cmNlczogcmVhZG9ubHkgWy4uLk9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0Pl0sXG4gIG9wZXJhdG9yPzogT3BlcmF0b3JGdW5jdGlvbjxJbnB1dCwgT3V0cHV0PixcbiAgb3B0aW9ucz86IENvbWJpbmVGcm9tT3B0aW9uczxudWxsPixcbik6IFNpZ25hbDxPdXRwdXQgfCBudWxsPjtcbi8vIDMuIHByb3ZpZGUgaW5pdGlhbFZhbHVlXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUZyb208SW5wdXQgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sIE91dHB1dCA9IElucHV0PihcbiAgc291cmNlczogcmVhZG9ubHkgWy4uLk9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0Pl0sXG4gIG9wZXJhdG9yPzogT3BlcmF0b3JGdW5jdGlvbjxJbnB1dCwgT3V0cHV0PixcbiAgb3B0aW9ucz86IENvbWJpbmVGcm9tT3B0aW9uczxPdXRwdXQ+LFxuKTogU2lnbmFsPE91dHB1dD47XG5cbi8vIC0tLS0tLS0tLS0gMiBhcmdzIHdpdCBhcnJheSBpbnB1dHMgLS0tLS0tLS0tLS0tLVxuLy8gMS4gbm8gaW5pdGlhbFZhbHVlXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUZyb208SW5wdXQgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sIE91dHB1dCA9IElucHV0PihcbiAgc291cmNlczogcmVhZG9ubHkgWy4uLk9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0Pl0sXG4gIG9wdGlvbnM/OiBDb21iaW5lRnJvbU9wdGlvbnM8dW5kZWZpbmVkPixcbik6IFNpZ25hbDxPdXRwdXQgfCB1bmRlZmluZWQ+O1xuLy8gMi4gaW5pdGlhbFZhbHVlIGlzIG51bGwsIHJldHVybmluZyB0eXBlIHNob3VsZCBpbmNsdWRlIG51bGxcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXSwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiByZWFkb25seSBbLi4uT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+XSxcbiAgb3B0aW9ucz86IENvbWJpbmVGcm9tT3B0aW9uczxudWxsPixcbik6IFNpZ25hbDxPdXRwdXQgfCBudWxsPjtcbi8vIDMuIHByb3ZpZGUgaW5pdGlhbFZhbHVlXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUZyb208SW5wdXQgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10sIE91dHB1dCA9IElucHV0PihcbiAgc291cmNlczogcmVhZG9ubHkgWy4uLk9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0Pl0sXG4gIG9wdGlvbnM/OiBDb21iaW5lRnJvbU9wdGlvbnM8T3V0cHV0Pixcbik6IFNpZ25hbDxPdXRwdXQ+O1xuXG4vLyBvYmplY3QgaW5wdXQgb25seSwgZS5nLiBJbnB1dCBpcyB7IGE6IHNpZ25hbCwgYjogb2JzJCB9XG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUZyb208SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCA9IElucHV0PihcbiAgc291cmNlczogT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+LFxuKTogU2lnbmFsPE91dHB1dD47XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tIDMgYXJncyB3aXRoIG9iamVjdCBpbnB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVGcm9tPElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgPSBJbnB1dD4oXG4gIHNvdXJjZXM6IE9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0PixcbiAgb3BlcmF0b3I/OiBPcGVyYXRvckZ1bmN0aW9uPElucHV0LCBPdXRwdXQ+LFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPHVuZGVmaW5lZD4sXG4pOiBTaWduYWw8T3V0cHV0IHwgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiBPYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD4sXG4gIG9wZXJhdG9yPzogT3BlcmF0b3JGdW5jdGlvbjxJbnB1dCwgT3V0cHV0PixcbiAgb3B0aW9ucz86IENvbWJpbmVGcm9tT3B0aW9uczxudWxsPixcbik6IFNpZ25hbDxPdXRwdXQgfCBudWxsPjtcbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0ID0gSW5wdXQ+KFxuICBzb3VyY2VzOiBPYnNlcnZhYmxlU2lnbmFsSW5wdXRUdXBsZTxJbnB1dD4sXG4gIG9wZXJhdG9yPzogT3BlcmF0b3JGdW5jdGlvbjxJbnB1dCwgT3V0cHV0PixcbiAgb3B0aW9ucz86IENvbWJpbmVGcm9tT3B0aW9uczxPdXRwdXQ+LFxuKTogU2lnbmFsPE91dHB1dD47XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tIDIgYXJncyB3aXRoIG9iamVjdCBpbnB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVGcm9tPElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgPSBJbnB1dD4oXG4gIHNvdXJjZXM6IE9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0PixcbiAgb3B0aW9ucz86IENvbWJpbmVGcm9tT3B0aW9uczx1bmRlZmluZWQ+LFxuKTogU2lnbmFsPE91dHB1dCB8IHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUZyb208SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCA9IElucHV0PihcbiAgc291cmNlczogT2JzZXJ2YWJsZVNpZ25hbElucHV0VHVwbGU8SW5wdXQ+LFxuICBvcHRpb25zPzogQ29tYmluZUZyb21PcHRpb25zPG51bGw+LFxuKTogU2lnbmFsPE91dHB1dCB8IG51bGw+O1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVGcm9tPElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgPSBJbnB1dD4oXG4gIHNvdXJjZXM6IE9ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlPElucHV0PixcbiAgb3B0aW9ucz86IENvbWJpbmVGcm9tT3B0aW9uczxPdXRwdXQ+LFxuKTogU2lnbmFsPE91dHB1dD47XG5cbi8qKlxuICogQ29tYmluZXMgbXVsdGlwbGUgYE9ic2VydmFibGVgIG9yIGBTaWduYWxgIHNvdXJjZXMgaW50byBhIGBTaWduYWxgIHRoYXQgZW1pdHMgdGhlaXIgdmFsdWVzLiBJdCdzIGxpa2UgY29tYmluZUxhdGVzdC5cbiAqXG4gKiBAcGFyYW0ge09ic2VydmFibGVTaWduYWxJbnB1dFR1cGxlfSBzb3VyY2VzIC0gQXJyYXkgb3Igb2JqZWN0IG9mIGBPYnNlcnZhYmxlYCBvciBgU2lnbmFsYCB2YWx1ZXNcbiAqIEBwYXJhbSB7T3BlcmF0b3JGdW5jdGlvbn0gW29wZXJhdG9yXSAtIE9wZXJhdG9yIHRvIGFwcGx5IHRvIHRoZSBjb21iaW5lZCB2YWx1ZXNcbiAqIEBwYXJhbSB7Q29tYmluZUZyb21PcHRpb25zfSBbb3B0aW9uc10gLSBPcHRpb25zIGluY2x1ZGluZyBgaW5pdGlhbFZhbHVlYCBhbmQgYGluamVjdG9yYFxuICogQHJldHVybnMgU2lnbmFsIGVtaXR0aW5nIHRoZSBjb21iaW5lZCB2YWx1ZXNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGV4cG9ydCBjbGFzcyBDb21wb25lbnQge1xuICogIHByaXZhdGUgcmVhZG9ubHkgdXNlclNlcnZpY2UgPSBpbmplY3QoVXNlclNlcnZpY2UpO1xuICogIHBhZ2UgPSBzaWduYWwoMik7XG4gKlxuICogIGRhdGEgPSBjb21iaW5lRnJvbShcbiAqICAgIFt0aGlzLnBhZ2UsIHRoaXMudXNlclNlcnZpY2UudXNlcnMkXSxcbiAqICAgIHBpcGUoXG4gKiAgICAgIHN3aXRjaE1hcCgoW3BhZ2UsIHVzZXJzXSkgPT4gdGhpcy5kYXRhU2VydmljZS5nZXREYXRhKHBhZ2UsIHVzZXJzKSksXG4gKiAgICAgIHN0YXJ0V2l0aChbXSlcbiAqICAgIClcbiAqICApO1xuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lRnJvbTxJbnB1dCA9IGFueSwgT3V0cHV0ID0gSW5wdXQ+KC4uLmFyZ3M6IGFueVtdKTogU2lnbmFsPE91dHB1dCB8IG51bGwgfCB1bmRlZmluZWQ+IHtcbiAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGNvbWJpbmVGcm9tKTtcblxuICBjb25zdCB7bm9ybWFsaXplZFNvdXJjZXMsIGhhc0luaXRWYWx1ZSwgb3BlcmF0b3IsIG9wdGlvbnN9ID0gbm9ybWFsaXplQXJnczxJbnB1dCwgT3V0cHV0PihhcmdzKTtcblxuICBjb25zdCByZXQgPSBoYXNJbml0VmFsdWVcbiAgICA/IHRvU2lnbmFsKGNvbWJpbmVMYXRlc3Qobm9ybWFsaXplZFNvdXJjZXMpLnBpcGUob3BlcmF0b3IpLCB7XG4gICAgICAgIGluaXRpYWxWYWx1ZTogb3B0aW9ucyEuaW5pdGlhbFZhbHVlISxcbiAgICAgICAgaW5qZWN0b3I6IG9wdGlvbnM/LmluamVjdG9yLFxuICAgICAgfSlcbiAgICA6ICh0b1NpZ25hbChjb21iaW5lTGF0ZXN0KG5vcm1hbGl6ZWRTb3VyY2VzKS5waXBlKG9wZXJhdG9yKSwge1xuICAgICAgICBpbmplY3Rvcjogb3B0aW9ucz8uaW5qZWN0b3IsXG4gICAgICAgIC8vIHJlcXVpcmVTeW5jOiB0cnVlLFxuICAgICAgfSkgYXMgU2lnbmFsPE91dHB1dCB8IHVuZGVmaW5lZD4pO1xuXG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUFyZ3M8SW5wdXQsIE91dHB1dD4oXG4gIGFyZ3M6IGFueVtdLFxuKToge1xuICBub3JtYWxpemVkU291cmNlczogT2JzZXJ2YWJsZUlucHV0VHVwbGU8SW5wdXQ+O1xuICBvcGVyYXRvcjogT3BlcmF0b3JGdW5jdGlvbjxJbnB1dCwgT3V0cHV0PjtcbiAgaGFzSW5pdFZhbHVlOiBib29sZWFuO1xuICBvcHRpb25zOiBDb21iaW5lRnJvbU9wdGlvbnM8T3V0cHV0PiB8IHVuZGVmaW5lZDtcbn0ge1xuICBpZiAoIWFyZ3MgfHwgYXJncy5sZW5ndGggPCAxIHx8IHR5cGVvZiBhcmdzWzBdICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2NvbWJpbmVGcm9tIG5lZWRzIHNvdXJjZXMnKTtcbiAgfVxuXG4gIGNvbnN0IGhhc09wZXJhdG9yID0gdHlwZW9mIGFyZ3NbMV0gPT09ICdmdW5jdGlvbic7XG5cbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAzICYmICFoYXNPcGVyYXRvcikge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2NvbWJpbmVGcm9tIG5lZWRzIGEgcGlwZSBvcGVyYXRvciBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50Jyk7XG4gIH1cblxuICAvLyBwYXNzIHNvdXJjZXMgYW5kIG9wdGlvbnNcbiAgaWYgKCFoYXNPcGVyYXRvcikge1xuICAgIC8vIGFkZCBpZGVudGl0eSBmdW5jdGlvbiB0byBhcmdzIGF0IGluZGV4IDEgYXMgb3BlcmF0b3IgZnVuY3Rpb24gYXMgeD0+eFxuICAgIGFyZ3Muc3BsaWNlKDEsIDAsIGlkZW50aXR5KTtcbiAgfVxuXG4gIC8vIGlmIG5vIG9wZXJhdG9yIHBhc3NlZCwgaWRlbnRpdHkgd2lsbCBiZSBvcGVyYXRvclxuICBjb25zdCBbc291cmNlcywgb3BlcmF0b3IsIG9wdGlvbnNdID0gYXJncztcblxuICBjb25zdCBoYXNJbml0VmFsdWUgPSBvcHRpb25zPy5pbml0aWFsVmFsdWUgIT09IHVuZGVmaW5lZDtcblxuICBjb25zdCBub3JtYWxpemVkU291cmNlcyA9IE9iamVjdC5lbnRyaWVzKHNvdXJjZXMpLnJlZHVjZShcbiAgICAoYWNjLCBba2V5T3JJbmRleCwgc291cmNlXSkgPT4ge1xuICAgICAgaWYgKGlzU2lnbmFsKHNvdXJjZSkpIHtcbiAgICAgICAgYWNjW2tleU9ySW5kZXhdID0gdG9PYnNlcnZhYmxlKHNvdXJjZSwge2luamVjdG9yOiBvcHRpb25zPy5pbmplY3Rvcn0pLnBpcGUoXG4gICAgICAgICAgLy8gdG9PYnNlcnZhYmxlIGRvZXNuJ3QgaW1tZWRpYXRlbHkgZW1pdCBpbml0aWFsVmFsdWUgb2YgdGhlIHNpZ25hbFxuICAgICAgICAgIHN0YXJ0V2l0aCh1bnRyYWNrZWQoc291cmNlKSksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKGlzT2JzZXJ2YWJsZShzb3VyY2UpKSB7XG4gICAgICAgIGFjY1trZXlPckluZGV4XSA9IHNvdXJjZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc291cmNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIHNlbGRvbSB1c2U6IHBhc3MgZnVuY3Rpb24gbGlrZSAoKSA9PiA1XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkUmVzID0gY29tcHV0ZWQoc291cmNlIGFzICgpID0+IHVua25vd24pO1xuICAgICAgICBhY2Nba2V5T3JJbmRleF0gPSB0b09ic2VydmFibGUoY29tcHV0ZWRSZXMsIHtpbmplY3Rvcjogb3B0aW9ucz8uaW5qZWN0b3J9KS5waXBlKHN0YXJ0V2l0aChzb3VyY2UoKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gc2VsZG9tIHVzZTogcGFzcyBwcm9taXNlLCBNYXAsIGFycmF5LCBldGMgdGhhdCBmcm9tIGFjY2VwdHNcbiAgICAgICAgYWNjW2tleU9ySW5kZXhdID0gZnJvbShzb3VyY2UgYXMgYW55KS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIChBcnJheS5pc0FycmF5KHNvdXJjZXMpID8gW10gOiB7fSkgYXMgYW55LFxuICApO1xuXG4gIHJldHVybiB7bm9ybWFsaXplZFNvdXJjZXMsIG9wZXJhdG9yLCBoYXNJbml0VmFsdWUsIG9wdGlvbnN9O1xufVxuIl19
@@ -1,63 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { computed, DestroyRef, effect, inject, signal, untracked } from '@angular/core';
3
- import { concatAll, exhaustAll, isObservable, mergeAll, Subject, switchAll } from 'rxjs';
4
- export function computedAsync(computeFn, options = {}) {
5
- const destroyRef = inject(DestroyRef);
6
- const sourceSubject = new Subject();
7
- const source$ = flattenObservable(sourceSubject, options.behavior || 'switch');
8
- const sourceValue = signal(options.initialValue);
9
- const sourceResult = source$.subscribe({
10
- next: (value) => sourceValue.set(value),
11
- error: (error) => {
12
- sourceValue.set(error);
13
- // Error should be handled by the user
14
- // throw error;
15
- },
16
- });
17
- destroyRef.onDestroy(() => sourceResult.unsubscribe());
18
- if (options.requireSync && options.initialValue === undefined) {
19
- const initialEmission = computeFn(undefined);
20
- if (isPromise(initialEmission)) {
21
- throw new Error(`Promises cannot work with requireSync. Set requireSync to false or pass an initialValue.`);
22
- }
23
- if (isObservable(initialEmission)) {
24
- sourceSubject.next(initialEmission);
25
- }
26
- else {
27
- // primitive value T
28
- sourceValue.set(initialEmission);
29
- }
30
- }
31
- if (options.requireSync && sourceValue() === undefined) {
32
- throw new Error(`The observable doesn't emit synchronously. Set requireSync to false or pass an initialValue.`);
33
- }
34
- let shouldSkipFirstComputation = options.requireSync === true;
35
- effect(() => {
36
- const currentValue = untracked(() => sourceValue());
37
- const newSource = computeFn(currentValue);
38
- if (shouldSkipFirstComputation) {
39
- shouldSkipFirstComputation = false;
40
- return;
41
- }
42
- if (isPromise(newSource) || isObservable(newSource)) {
43
- untracked(() => sourceSubject.next(newSource));
44
- }
45
- else {
46
- untracked(() => sourceValue.set(newSource));
47
- }
48
- });
49
- return computed(() => sourceValue(), { equal: options.equal });
50
- }
51
- function flattenObservable(source, behavior) {
52
- const behaviorMap = {
53
- switch: switchAll,
54
- merge: mergeAll,
55
- concat: concatAll,
56
- exhaust: exhaustAll,
57
- };
58
- return source.pipe(behaviorMap[behavior]());
59
- }
60
- function isPromise(value) {
61
- return value && typeof value.then === 'function';
62
- }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZWQtYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL3NpZ25hbHMvY29tcHV0ZWQtYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBQyxRQUFRLEVBQXlCLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBaURuRyxNQUFNLFVBQVUsYUFBYSxDQUMzQixTQUE0RSxFQUM1RSxVQUFlLEVBQUU7SUFFakIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXRDLE1BQU0sYUFBYSxHQUFHLElBQUksT0FBTyxFQUE4QixDQUFDO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFDO0lBRS9FLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBZ0IsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWhFLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDckMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN2QyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNmLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsc0NBQXNDO1lBQ3RDLGVBQWU7UUFDakIsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVILFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFdkQsSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDOUQsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLElBQUksU0FBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO1FBQzlHLENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ2xDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixvQkFBb0I7WUFDcEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxXQUFXLEVBQUUsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN2RCxNQUFNLElBQUksS0FBSyxDQUFDLDhGQUE4RixDQUFDLENBQUM7SUFDbEgsQ0FBQztJQUVELElBQUksMEJBQTBCLEdBQUcsT0FBTyxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUM7SUFFOUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNWLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXBELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUxQyxJQUFJLDBCQUEwQixFQUFFLENBQUM7WUFDL0IsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO1lBQ25DLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFPLEVBQUUsRUFBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQ3hCLE1BQTJDLEVBQzNDLFFBQStCO0lBRS9CLE1BQU0sV0FBVyxHQUFHO1FBQ2xCLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLEtBQUssRUFBRSxRQUFRO1FBQ2YsTUFBTSxFQUFFLFNBQVM7UUFDakIsT0FBTyxFQUFFLFVBQVU7S0FDcEIsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBSSxLQUFVO0lBQzlCLE9BQU8sS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7Y29tcHV0ZWQsIENyZWF0ZUNvbXB1dGVkT3B0aW9ucywgRGVzdHJveVJlZiwgZWZmZWN0LCBpbmplY3QsIFNpZ25hbCwgc2lnbmFsLCB1bnRyYWNrZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjb25jYXRBbGwsIGV4aGF1c3RBbGwsIGlzT2JzZXJ2YWJsZSwgbWVyZ2VBbGwsIE9ic2VydmFibGUsIFN1YmplY3QsIHN3aXRjaEFsbH0gZnJvbSAncnhqcyc7XG5cbnR5cGUgQ29tcHV0ZWRBc3luY0JlaGF2aW9yID0gJ3N3aXRjaCcgfCAnbWVyZ2UnIHwgJ2NvbmNhdCcgfCAnZXhoYXVzdCc7XG5cbi8vIHsgZXF1YWwsIGJlaGF2aW9yIH1cbnR5cGUgQmFzZU9wdGlvbnM8VD4gPSBDcmVhdGVDb21wdXRlZE9wdGlvbnM8VD4gJiB7YmVoYXZpb3I/OiBDb21wdXRlZEFzeW5jQmVoYXZpb3J9O1xuXG50eXBlIE9wdGlvbnNXaXRoSW5pdGlhbFZhbHVlPFQ+ID0ge2luaXRpYWxWYWx1ZTogVH0gJiBCYXNlT3B0aW9uczxUPjtcbnR5cGUgT3B0aW9uc1dpdGhPcHRpb25hbEluaXRpYWxWYWx1ZTxUPiA9IHtpbml0aWFsVmFsdWU/OiB1bmRlZmluZWR9ICYgQmFzZU9wdGlvbnM8VD47XG50eXBlIE9wdGlvbnNXaXRoUmVxdWlyZVN5bmM8VD4gPSB7cmVxdWlyZVN5bmM6IHRydWV9ICYgQmFzZU9wdGlvbnM8VD47XG5cbi8vIHdpdGhvdXQgb3B0aW9uc1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVkQXN5bmM8VD4oXG4gIGNvbXB1dGVGbjogKHByZXZpb3VzVmFsdWU/OiBUKSA9PiBPYnNlcnZhYmxlPFQ+IHwgUHJvbWlzZTxUPiB8IFQgfCB1bmRlZmluZWQsXG4pOiBTaWduYWw8VCB8IHVuZGVmaW5lZD47XG5cbi8vIHdpdGggb3B0aW9uYWwgaW5pdGlhbFZhbHVlXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZWRBc3luYzxUPihcbiAgY29tcHV0ZUZuOiAocHJldmlvdXNWYWx1ZT86IFQpID0+IE9ic2VydmFibGU8VD4gfCBQcm9taXNlPFQ+IHwgVCB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uczogT3B0aW9uc1dpdGhPcHRpb25hbEluaXRpYWxWYWx1ZTxUPixcbik6IFNpZ25hbDxUIHwgdW5kZWZpbmVkPjtcblxuLy8gd2l0aCBpbml0aWFsVmFsdWVcbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlZEFzeW5jPFQ+KFxuICBjb21wdXRlRm46IChwcmV2aW91c1ZhbHVlPzogVCkgPT4gT2JzZXJ2YWJsZTxUPiB8IFByb21pc2U8VD4gfCBUIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zOiBPcHRpb25zV2l0aEluaXRpYWxWYWx1ZTxUPixcbik6IFNpZ25hbDxUPjtcblxuLy8gZm9yIHByb21pc2UsIHdpdGhvdXQgaW5pdGlhbFZhbHVlIGJ1dCBzZXQgcmVxdWlyZVN5bmMgYXMgdHJ1ZSwgdGhyb3cgZXJyb3JcbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlZEFzeW5jPFQ+KFxuICBjb21wdXRlRm46IChwcmV2aW91c1ZhbHVlPzogVCkgPT4gUHJvbWlzZTxUPixcbiAgb3B0aW9uczogT3B0aW9uc1dpdGhPcHRpb25hbEluaXRpYWxWYWx1ZTxUPiAmIHtyZXF1aXJlU3luYzogdHJ1ZX0sXG4pOiBuZXZlcjtcblxuLy8gZm9yIG9ic2VydmFibGVzLCB3aXRob3V0IGluaXRpYWxWYWx1ZSwgd2l0aG91dCByZXF1aXJlU3luYywgcmV0dXJuIFQgfCB1bmRlZmluZWRcbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlZEFzeW5jPFQ+KFxuICBjb21wdXRlRm46IChwcmV2aW91c1ZhbHVlPzogVCkgPT4gT2JzZXJ2YWJsZTxUPiB8IFQgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM6IHtcbiAgICBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWQ7XG4gICAgcmVxdWlyZVN5bmM/OiBmYWxzZTtcbiAgfSAmIEJhc2VPcHRpb25zPFQ+LFxuKTogU2lnbmFsPFQgfCB1bmRlZmluZWQ+O1xuXG4vLyBmb3Igb2JzZXJ2YWJsZXMsIHdpdGhvdXQgaW5pdGlhbFZhbHVlLCBidXQgcmVxdWlyZVN5bmMgaXMgdHJ1ZSwgcmV0dXJuIFRcbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlZEFzeW5jPFQ+KFxuICBjb21wdXRlRm46IChwcmV2aW91c1ZhbHVlPzogVCkgPT4gT2JzZXJ2YWJsZTxUPiB8IFQsXG4gIG9wdGlvbnM6IE9wdGlvbnNXaXRoUmVxdWlyZVN5bmM8VD4gJiB7aW5pdGlhbFZhbHVlPzogdW5kZWZpbmVkIHwgVH0sXG4pOiBTaWduYWw8VD47XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlZEFzeW5jPFQ+KFxuICBjb21wdXRlRm46IChwcmV2aW91c1ZhbHVlPzogVCkgPT4gT2JzZXJ2YWJsZTxUPiB8IFByb21pc2U8VD4gfCBUIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zOiBhbnkgPSB7fSxcbik6IFNpZ25hbDxUIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3Qgc291cmNlU3ViamVjdCA9IG5ldyBTdWJqZWN0PFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+PigpO1xuICBjb25zdCBzb3VyY2UkID0gZmxhdHRlbk9ic2VydmFibGUoc291cmNlU3ViamVjdCwgb3B0aW9ucy5iZWhhdmlvciB8fCAnc3dpdGNoJyk7XG5cbiAgY29uc3Qgc291cmNlVmFsdWUgPSBzaWduYWw8VCB8IHVuZGVmaW5lZD4ob3B0aW9ucy5pbml0aWFsVmFsdWUpO1xuXG4gIGNvbnN0IHNvdXJjZVJlc3VsdCA9IHNvdXJjZSQuc3Vic2NyaWJlKHtcbiAgICBuZXh0OiAodmFsdWUpID0+IHNvdXJjZVZhbHVlLnNldCh2YWx1ZSksXG4gICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgc291cmNlVmFsdWUuc2V0KGVycm9yKTtcbiAgICAgIC8vIEVycm9yIHNob3VsZCBiZSBoYW5kbGVkIGJ5IHRoZSB1c2VyXG4gICAgICAvLyB0aHJvdyBlcnJvcjtcbiAgICB9LFxuICB9KTtcblxuICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiBzb3VyY2VSZXN1bHQudW5zdWJzY3JpYmUoKSk7XG5cbiAgaWYgKG9wdGlvbnMucmVxdWlyZVN5bmMgJiYgb3B0aW9ucy5pbml0aWFsVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGluaXRpYWxFbWlzc2lvbiA9IGNvbXB1dGVGbih1bmRlZmluZWQpO1xuXG4gICAgaWYgKGlzUHJvbWlzZShpbml0aWFsRW1pc3Npb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb21pc2VzIGNhbm5vdCB3b3JrIHdpdGggcmVxdWlyZVN5bmMuIFNldCByZXF1aXJlU3luYyB0byBmYWxzZSBvciBwYXNzIGFuIGluaXRpYWxWYWx1ZS5gKTtcbiAgICB9XG5cbiAgICBpZiAoaXNPYnNlcnZhYmxlKGluaXRpYWxFbWlzc2lvbikpIHtcbiAgICAgIHNvdXJjZVN1YmplY3QubmV4dChpbml0aWFsRW1pc3Npb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBwcmltaXRpdmUgdmFsdWUgVFxuICAgICAgc291cmNlVmFsdWUuc2V0KGluaXRpYWxFbWlzc2lvbik7XG4gICAgfVxuICB9XG5cbiAgaWYgKG9wdGlvbnMucmVxdWlyZVN5bmMgJiYgc291cmNlVmFsdWUoKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgb2JzZXJ2YWJsZSBkb2Vzbid0IGVtaXQgc3luY2hyb25vdXNseS4gU2V0IHJlcXVpcmVTeW5jIHRvIGZhbHNlIG9yIHBhc3MgYW4gaW5pdGlhbFZhbHVlLmApO1xuICB9XG5cbiAgbGV0IHNob3VsZFNraXBGaXJzdENvbXB1dGF0aW9uID0gb3B0aW9ucy5yZXF1aXJlU3luYyA9PT0gdHJ1ZTtcblxuICBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHVudHJhY2tlZCgoKSA9PiBzb3VyY2VWYWx1ZSgpKTtcblxuICAgIGNvbnN0IG5ld1NvdXJjZSA9IGNvbXB1dGVGbihjdXJyZW50VmFsdWUpO1xuXG4gICAgaWYgKHNob3VsZFNraXBGaXJzdENvbXB1dGF0aW9uKSB7XG4gICAgICBzaG91bGRTa2lwRmlyc3RDb21wdXRhdGlvbiA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc1Byb21pc2UobmV3U291cmNlKSB8fCBpc09ic2VydmFibGUobmV3U291cmNlKSkge1xuICAgICAgdW50cmFja2VkKCgpID0+IHNvdXJjZVN1YmplY3QubmV4dChuZXdTb3VyY2UpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdW50cmFja2VkKCgpID0+IHNvdXJjZVZhbHVlLnNldChuZXdTb3VyY2UpKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiBzb3VyY2VWYWx1ZSgpIGFzIFQsIHtlcXVhbDogb3B0aW9ucy5lcXVhbH0pO1xufVxuXG5mdW5jdGlvbiBmbGF0dGVuT2JzZXJ2YWJsZTxUPihcbiAgc291cmNlOiBTdWJqZWN0PFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+PixcbiAgYmVoYXZpb3I6IENvbXB1dGVkQXN5bmNCZWhhdmlvcixcbik6IE9ic2VydmFibGU8VD4ge1xuICBjb25zdCBiZWhhdmlvck1hcCA9IHtcbiAgICBzd2l0Y2g6IHN3aXRjaEFsbCxcbiAgICBtZXJnZTogbWVyZ2VBbGwsXG4gICAgY29uY2F0OiBjb25jYXRBbGwsXG4gICAgZXhoYXVzdDogZXhoYXVzdEFsbCxcbiAgfTtcblxuICByZXR1cm4gc291cmNlLnBpcGUoYmVoYXZpb3JNYXBbYmVoYXZpb3JdKCkpO1xufVxuXG5mdW5jdGlvbiBpc1Byb21pc2U8VD4odmFsdWU6IGFueSk6IHZhbHVlIGlzIFByb21pc2U8VD4ge1xuICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlLnRoZW4gPT09ICdmdW5jdGlvbic7XG59XG4iXX0=
@@ -1,11 +0,0 @@
1
- import { signal } from '@angular/core';
2
- export function createTrigger() {
3
- const sourceSignal = signal(0);
4
- return {
5
- next: () => {
6
- sourceSignal.update((v) => v + 1);
7
- },
8
- value: sourceSignal.asReadonly(),
9
- };
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRyaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL3NpZ25hbHMvY3JlYXRlLXRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVyQyxNQUFNLFVBQVUsYUFBYTtJQUMzQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFL0IsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDVCxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELEtBQUssRUFBRSxZQUFZLENBQUMsVUFBVSxFQUFFO0tBQ2pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcigpIHtcbiAgY29uc3Qgc291cmNlU2lnbmFsID0gc2lnbmFsKDApO1xuXG4gIHJldHVybiB7XG4gICAgbmV4dDogKCkgPT4ge1xuICAgICAgc291cmNlU2lnbmFsLnVwZGF0ZSgodikgPT4gdiArIDEpO1xuICAgIH0sXG4gICAgdmFsdWU6IHNvdXJjZVNpZ25hbC5hc1JlYWRvbmx5KCksXG4gIH07XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- export * from './combine-from';
2
- export * from './computed-async';
3
- export * from './create-trigger';
4
- export * from './inject-params';
5
- export * from './inject-query-params';
6
- export * from './merge-from';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGlmdC9zcmMvbGliL3NpZ25hbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21iaW5lLWZyb20nO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wdXRlZC1hc3luYyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS10cmlnZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vaW5qZWN0LXBhcmFtcyc7XG5leHBvcnQgKiBmcm9tICcuL2luamVjdC1xdWVyeS1wYXJhbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZXJnZS1mcm9tJztcbiJdfQ==
@@ -1,35 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvc2lnbmFscy9pbmplY3QtcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxNQUFNLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBeUV6QixNQUFNLFVBQVUsWUFBWSxDQUMxQixvQkFBeUQsRUFDekQsVUFBaUMsRUFBRTtJQUVuQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV2QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFFNUMsTUFBTSxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsR0FBRyxPQUFPLENBQUM7SUFFMUMsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzFCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsc0VBQXNFO0lBQ3RFLElBQUksT0FBTyxvQkFBb0IsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLEVBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLG9FQUFvRTtJQUNwRSxxSUFBcUk7SUFDckksa0lBQWtJO0lBQ2xJLG1JQUFtSTtJQUNuSSwrSUFBK0k7SUFDL0ksNklBQTZJO0lBQzdJLDZJQUE2STtJQUM3SSxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLG9CQUFvQixDQUF1QixDQUFDO1FBRW5FLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sWUFBWSxJQUFJLElBQUksQ0FBQztRQUM5QixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUMsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBQyxDQUFDLENBQUM7QUFDN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBpbmplY3QsIHR5cGUgU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIHR5cGUgUGFyYW1zfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMnO1xuXG50eXBlIFBhcmFtc1RyYW5zZm9ybUZuPE91dHB1dD4gPSAocGFyYW1zOiBQYXJhbXMpID0+IE91dHB1dDtcblxuLyoqXG4gKiBUaGUgYElucHV0T3B0aW9uc2AgaW50ZXJmYWNlIGRlZmluZXMgb3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIGJlaGF2aW9yIG9mIHRoZSBgaW5qZWN0UGFyYW1zYCBmdW5jdGlvbi5cbiAqXG4gKiBAdGVtcGxhdGUgT3V0cHV0IC0gVGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHJlYWQgdmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1zT3B0aW9uczxPdXRwdXQ+IHtcbiAgLyoqXG4gICAqIEEgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb24gdG8gY29udmVydCB0aGUgd3JpdHRlbiB2YWx1ZSB0byB0aGUgZXhwZWN0ZWQgcmVhZCB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBUaGUgdmFsdWUgdG8gdHJhbnNmb3JtLlxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgdmFsdWUuXG4gICAqL1xuICB0cmFuc2Zvcm0/OiAodjogc3RyaW5nKSA9PiBPdXRwdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHZhbHVlIHRvIHVzZSBpZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBwcmVzZW50IG9yIHVuZGVmaW5lZC5cbiAgICovXG4gIGluaXRpYWxWYWx1ZT86IE91dHB1dDtcbn1cblxuLyoqXG4gKiBJbmplY3RzIHRoZSBwYXJhbXMgZnJvbSB0aGUgY3VycmVudCByb3V0ZS5cbiAqIElmIGEga2V5IGlzIHByb3ZpZGVkLCByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGF0IGtleS5cbiAqIElmIGEgdHJhbnNmb3JtIGZ1bmN0aW9uIGlzIHByb3ZpZGVkLCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICogT3RoZXJ3aXNlLCByZXR1cm5zIHRoZSBlbnRpcmUgcGFyYW1zIG9iamVjdC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcGFyYW1zID0gaW5qZWN0UGFyYW1zKCk7IC8vIFJldHVybnMgdGhlIGVudGlyZSBwYXJhbXMgb2JqZWN0XG4gKiBjb25zdCB1c2VySWQgPSBpbmplY3RQYXJhbXMoJ2lkJyk7IC8vIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnaWQnIHBhcmFtXG4gKiBjb25zdCB1c2VySWQgPSBpbmplY3RQYXJhbXMocCA9PiBwWydpZCddIGFzIHN0cmluZyk7IC8vIFJldHVybnMgdGhlICdpZCcgcGFyYW0gdXNpbmcgYSBjdXN0b20gdHJhbnNmb3JtIGZ1bmN0aW9uXG4gKiBjb25zdCB1c2VySWQgPSBpbmplY3RQYXJhbXMoJ2lkJywgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSwgaW5pdGlhbFZhbHVlOiAxIH0pO1xuICpcbiAqIEBwYXJhbSBrZXlPclBhcmFtc1RyYW5zZm9ybSBPUFRJT05BTCBUaGUga2V5IG9mIHRoZSBwYXJhbSB0byByZXR1cm4sIG9yIGEgdHJhbnNmb3JtIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBwYXJhbXMgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXMoKTogU2lnbmFsPFBhcmFtcz47XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXM8T3V0cHV0PihmbjogUGFyYW1zVHJhbnNmb3JtRm48T3V0cHV0Pik6IFNpZ25hbDxPdXRwdXQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKGtleTogc3RyaW5nKTogU2lnbmFsPHN0cmluZyB8IG51bGw+O1xuXG4vLyBmb3IgYm9vbGVhbiBvciBudW1iZXIsIGlmIGluaXRpYWxWYWx1ZSBpcyBwcm92aWRlZCwgdHJhbnNmb3JtIGlzIGEgbXVzdFxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IGJvb2xlYW47IGluaXRpYWxWYWx1ZTogYm9vbGVhbn0sXG4pOiBTaWduYWw8Ym9vbGVhbj47XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gbnVtYmVyOyBpbml0aWFsVmFsdWU6IG51bWJlcn0sXG4pOiBTaWduYWw8bnVtYmVyPjtcbi8vIGZvciBzdHJpbmcsIHRyYW5zZm9ybSBpcyBvcHRpb25hbFxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm0/OiAodjogc3RyaW5nKSA9PiBzdHJpbmc7IGluaXRpYWxWYWx1ZTogc3RyaW5nfSxcbik6IFNpZ25hbDxzdHJpbmc+O1xuXG4vLyBpbml0aWFsVmFsdWUgbm90IHByb3ZpZGVkLCBtdXN0IHByb3ZpZGUgdHJhbnNmb3JtIGZuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gYm9vbGVhbjsgaW5pdGlhbFZhbHVlPzogdW5kZWZpbmVkfSxcbik6IFNpZ25hbDxib29sZWFuIHwgbnVsbD47XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gbnVtYmVyOyBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWR9LFxuKTogU2lnbmFsPG51bWJlciB8IG51bGw+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IHN0cmluZzsgaW5pdGlhbFZhbHVlPzogdW5kZWZpbmVkfSxcbik6IFNpZ25hbDxzdHJpbmcgfCBudWxsPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtczxPdXRwdXQ+KFxuICBrZXlPclBhcmFtc1RyYW5zZm9ybT86IHN0cmluZyB8IFBhcmFtc1RyYW5zZm9ybUZuPE91dHB1dD4sXG4gIG9wdGlvbnM6IFBhcmFtc09wdGlvbnM8T3V0cHV0PiA9IHt9LFxuKTogU2lnbmFsPE91dHB1dCB8IFBhcmFtcyB8IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBudWxsPiB7XG4gIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChpbmplY3RQYXJhbXMpO1xuXG4gIGNvbnN0IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgY29uc3QgaW5pdGlhbFBhcmFtcyA9IHJvdXRlLnNuYXBzaG90LnBhcmFtcztcblxuICBjb25zdCB7dHJhbnNmb3JtLCBpbml0aWFsVmFsdWV9ID0gb3B0aW9ucztcblxuICAvLyBpbmplY3RQYXJhbXMoKTogU2lnbmFsPFBhcmFtcz5cbiAgaWYgKCFrZXlPclBhcmFtc1RyYW5zZm9ybSkge1xuICAgIHJldHVybiB0b1NpZ25hbChyb3V0ZS5wYXJhbXMsIHtpbml0aWFsVmFsdWU6IGluaXRpYWxQYXJhbXN9KTtcbiAgfVxuXG4gIC8vIGluamVjdFBhcmFtczxPdXRwdXQ+KGZuOiBQYXJhbXNUcmFuc2Zvcm1GbjxPdXRwdXQ+KTogU2lnbmFsPE91dHB1dD5cbiAgaWYgKHR5cGVvZiBrZXlPclBhcmFtc1RyYW5zZm9ybSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0b1NpZ25hbChyb3V0ZS5wYXJhbXMucGlwZShtYXAoa2V5T3JQYXJhbXNUcmFuc2Zvcm0pKSwge2luaXRpYWxWYWx1ZToga2V5T3JQYXJhbXNUcmFuc2Zvcm0oaW5pdGlhbFBhcmFtcyl9KTtcbiAgfVxuXG4gIC8vIGtleU9yUGFyYW1zVHJhbnNmb3JtIGlzIHN0cmluZy5cbiAgLy8gZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhrZXk6IHN0cmluZyk6IFNpZ25hbDxzdHJpbmcgfCBudWxsPjtcbiAgLy8gZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhcmFtcyhrZXk6IHN0cmluZywgb3B0aW9uczogeyB0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IGJvb2xlYW47IGluaXRpYWxWYWx1ZTogYm9vbGVhbiB9KTogU2lnbmFsPGJvb2xlYW4+O1xuICAvLyBleHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKGtleTogc3RyaW5nLCBvcHRpb25zOiB7IHRyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gbnVtYmVyOyBpbml0aWFsVmFsdWU6IG51bWJlciB9KTogU2lnbmFsPG51bWJlcj47XG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXMoa2V5OiBzdHJpbmcsIG9wdGlvbnM6IHsgdHJhbnNmb3JtPzogKHY6IHN0cmluZykgPT4gc3RyaW5nOyBpbml0aWFsVmFsdWU6IHN0cmluZyB9KTogU2lnbmFsPHN0cmluZz47XG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXMoa2V5OiBzdHJpbmcsIG9wdGlvbnM6IHsgdHJhbnNmb3JtOiAodjogc3RyaW5nKSA9PiBib29sZWFuOyBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWQgfSk6IFNpZ25hbDxib29sZWFuIHwgbnVsbD47XG4gIC8vIGV4cG9ydCBmdW5jdGlvbiBpbmplY3RQYXJhbXMoa2V5OiBzdHJpbmcsIG9wdGlvbnM6IHsgdHJhbnNmb3JtOiAodjogc3RyaW5nKSA9PiBudW1iZXI7IGluaXRpYWxWYWx1ZT86IHVuZGVmaW5lZCB9KTogU2lnbmFsPG51bWJlciB8IG51bGw+O1xuICAvLyBleHBvcnQgZnVuY3Rpb24gaW5qZWN0UGFyYW1zKGtleTogc3RyaW5nLCBvcHRpb25zOiB7IHRyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gc3RyaW5nOyBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWQgfSk6IFNpZ25hbDxzdHJpbmcgfCBudWxsPjtcbiAgY29uc3QgZ2V0UGFyYW0gPSAocGFyYW1zOiBQYXJhbXMpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IHBhcmFtcz8uW2tleU9yUGFyYW1zVHJhbnNmb3JtXSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIXBhcmFtKSB7XG4gICAgICByZXR1cm4gaW5pdGlhbFZhbHVlID8/IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYW5zZm9ybSA/IHRyYW5zZm9ybShwYXJhbSkgOiBwYXJhbTtcbiAgfTtcblxuICByZXR1cm4gdG9TaWduYWwocm91dGUucGFyYW1zLnBpcGUobWFwKGdldFBhcmFtKSksIHtpbml0aWFsVmFsdWU6IGdldFBhcmFtKGluaXRpYWxQYXJhbXMpfSk7XG59XG4iXX0=
@@ -1,53 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXF1ZXJ5LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWZ0L3NyYy9saWIvc2lnbmFscy9pbmplY3QtcXVlcnktcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxNQUFNLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBaUZ6Qjs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0Isb0JBQThELEVBQzlELFVBQXNDLEVBQUU7SUFFeEMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUU1QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztJQUV0RCxNQUFNLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBQyxHQUFHLE9BQU8sQ0FBQztJQUUxQyxzQ0FBc0M7SUFDdEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDMUIsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixJQUFJLE9BQU8sb0JBQW9CLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDL0MsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRTtZQUNqRSxZQUFZLEVBQUUsb0JBQW9CLENBQUMsa0JBQWtCLENBQUM7U0FDdkQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLG9CQUFvQixDQUFrQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sWUFBWSxJQUFJLElBQUksQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixPQUFPLFlBQVksSUFBSSxJQUFJLENBQUM7WUFDOUIsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzlDLENBQUMsQ0FBQztJQUVGLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO1FBQ3JELFlBQVksRUFBRSxRQUFRLENBQUMsa0JBQWtCLENBQUM7S0FDM0MsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBpbmplY3QsIHR5cGUgU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dG9TaWduYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIHR5cGUgUGFyYW1zfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMnO1xuXG50eXBlIFF1ZXJ5UGFyYW1zVHJhbnNmb3JtRm48T3V0cHV0PiA9IChwYXJhbXM6IFBhcmFtcykgPT4gT3V0cHV0O1xuXG4vKipcbiAqIFRoZSBgSW5wdXRPcHRpb25zYCBpbnRlcmZhY2UgZGVmaW5lcyBvcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgYmVoYXZpb3Igb2YgdGhlIGBpbmplY3RRdWVyeVBhcmFtc2AgZnVuY3Rpb24uXG4gKlxuICogQHRlbXBsYXRlIE91dHB1dCAtIFRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSByZWFkIHZhbHVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UGFyYW1zT3B0aW9uczxPdXRwdXQ+IHtcbiAgLyoqXG4gICAqIEEgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb24gdG8gY29udmVydCB0aGUgd3JpdHRlbiB2YWx1ZSB0byB0aGUgZXhwZWN0ZWQgcmVhZCB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHYgLSBUaGUgdmFsdWUgdG8gdHJhbnNmb3JtLlxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgdmFsdWUuXG4gICAqL1xuICB0cmFuc2Zvcm0/OiAodjogc3RyaW5nKSA9PiBPdXRwdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsIHZhbHVlIHRvIHVzZSBpZiB0aGUgcXVlcnkgcGFyYW1ldGVyIGlzIG5vdCBwcmVzZW50IG9yIHVuZGVmaW5lZC5cbiAgICovXG4gIGluaXRpYWxWYWx1ZT86IE91dHB1dDtcbn1cblxuLyoqXG4gKiBUaGUgYGluamVjdFF1ZXJ5UGFyYW1zYCBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIGFjY2VzcyBhbmQgbWFuaXB1bGF0ZSBxdWVyeSBwYXJhbWV0ZXJzIGZyb20gdGhlIGN1cnJlbnQgcm91dGUuXG4gKlxuICogQHJldHVybnMgQSBgU2lnbmFsYCB0aGF0IGVtaXRzIHRoZSBlbnRpcmUgcXVlcnkgcGFyYW1ldGVycyBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyeVBhcmFtcygpOiBTaWduYWw8UGFyYW1zPjtcblxuLyoqXG4gKiBUaGUgYGluamVjdFF1ZXJ5UGFyYW1zYCBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIGFjY2VzcyBhbmQgbWFuaXB1bGF0ZSBxdWVyeSBwYXJhbWV0ZXJzIGZyb20gdGhlIGN1cnJlbnQgcm91dGUuXG4gKiBJdCByZXRyaWV2ZXMgdGhlIHZhbHVlIG9mIGEgcXVlcnkgcGFyYW1ldGVyIGJhc2VkIG9uIGEgY3VzdG9tIHRyYW5zZm9ybSBmdW5jdGlvbiBhcHBsaWVkIHRvIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIG9iamVjdC5cbiAqXG4gKiBAdGVtcGxhdGUgT3V0cHV0IC0gVGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHJlYWQgdmFsdWUuXG4gKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zVHJhbnNmb3JtRm48T3V0cHV0Pn0gZm4gLSBBIHRyYW5zZm9ybSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIG9iamVjdCAoYHBhcmFtczogUGFyYW1zYCkgYW5kIHJldHVybnMgdGhlIGRlc2lyZWQgdmFsdWUuXG4gKiBAcmV0dXJucyB7U2lnbmFsfSBBIGBTaWduYWxgIHRoYXQgZW1pdHMgdGhlIHRyYW5zZm9ybWVkIHZhbHVlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjdXN0b20gdHJhbnNmb3JtIGZ1bmN0aW9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzZWFyY2hWYWx1ZSA9IGluamVjdFF1ZXJ5UGFyYW1zKChwYXJhbXMpID0+IHBhcmFtc1snc2VhcmNoJ10gYXMgc3RyaW5nKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5UGFyYW1zPE91dHB1dD4oZm46IFF1ZXJ5UGFyYW1zVHJhbnNmb3JtRm48T3V0cHV0Pik6IFNpZ25hbDxPdXRwdXQ+O1xuXG4vKipcbiAqIFRoZSBgaW5qZWN0UXVlcnlQYXJhbXNgIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gYWNjZXNzIGFuZCBtYW5pcHVsYXRlIHF1ZXJ5IHBhcmFtZXRlcnMgZnJvbSB0aGUgY3VycmVudCByb3V0ZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIG5hbWUgb2YgdGhlIHF1ZXJ5IHBhcmFtZXRlciB0byByZXRyaWV2ZS5cbiAqIEByZXR1cm5zIHtTaWduYWx9IEEgYFNpZ25hbGAgdGhhdCBlbWl0cyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBxdWVyeSBwYXJhbWV0ZXIsIG9yIGBudWxsYCBpZiBpdCdzIG5vdCBwcmVzZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UXVlcnlQYXJhbXMoa2V5OiBzdHJpbmcpOiBTaWduYWw8c3RyaW5nIHwgbnVsbD47XG5cbi8vIGZvciBib29sZWFuIG9yIG51bWJlciwgaWYgaW5pdGlhbFZhbHVlIGlzIHByb3ZpZGVkLCB0cmFuc2Zvcm0gaXMgYSBtdXN0XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0UXVlcnlQYXJhbXMoXG4gIGtleTogc3RyaW5nLFxuICBvcHRpb25zOiB7dHJhbnNmb3JtOiAodjogc3RyaW5nKSA9PiBib29sZWFuOyBpbml0aWFsVmFsdWU6IGJvb2xlYW59LFxuKTogU2lnbmFsPGJvb2xlYW4+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gbnVtYmVyOyBpbml0aWFsVmFsdWU6IG51bWJlcn0sXG4pOiBTaWduYWw8bnVtYmVyPjtcbi8vIGZvciBzdHJpbmcsIHRyYW5zZm9ybSBpcyBvcHRpb25hbFxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybT86ICh2OiBzdHJpbmcpID0+IHN0cmluZzsgaW5pdGlhbFZhbHVlOiBzdHJpbmd9LFxuKTogU2lnbmFsPHN0cmluZz47XG5cbi8vIGluaXRpYWxWYWx1ZSBub3QgcHJvdmlkZWQsIG11c3QgcHJvdmlkZSB0cmFuc2Zvcm0gZm5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RRdWVyeVBhcmFtcyhcbiAga2V5OiBzdHJpbmcsXG4gIG9wdGlvbnM6IHt0cmFuc2Zvcm06ICh2OiBzdHJpbmcpID0+IGJvb2xlYW47IGluaXRpYWxWYWx1ZT86IHVuZGVmaW5lZH0sXG4pOiBTaWduYWw8Ym9vbGVhbiB8IG51bGw+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gbnVtYmVyOyBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWR9LFxuKTogU2lnbmFsPG51bWJlciB8IG51bGw+O1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5UGFyYW1zKFxuICBrZXk6IHN0cmluZyxcbiAgb3B0aW9uczoge3RyYW5zZm9ybTogKHY6IHN0cmluZykgPT4gc3RyaW5nOyBpbml0aWFsVmFsdWU/OiB1bmRlZmluZWR9LFxuKTogU2lnbmFsPHN0cmluZyB8IG51bGw+O1xuXG4vKipcbiAqIFRoZSBgaW5qZWN0UXVlcnlQYXJhbXNgIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gYWNjZXNzIGFuZCBtYW5pcHVsYXRlIHF1ZXJ5IHBhcmFtZXRlcnMgZnJvbSB0aGUgY3VycmVudCByb3V0ZS5cbiAqXG4gKiBAdGVtcGxhdGUgT3V0cHV0IC0gVGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHJlYWQgdmFsdWUuXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5T3JQYXJhbXNUcmFuc2Zvcm0gLSBUaGUgbmFtZSBvZiB0aGUgcXVlcnkgcGFyYW1ldGVyIHRvIHJldHJpZXZlLCBvciBhIHRyYW5zZm9ybSBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgcXVlcnkgcGFyYW1ldGVycyBvYmplY3QuXG4gKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zT3B0aW9uc30gb3B0aW9ucyAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHF1ZXJ5IHBhcmFtZXRlci5cbiAqIEByZXR1cm5zIHtRdWVyeVBhcmFtc09wdGlvbnN9IEEgYFNpZ25hbGAgdGhhdCBlbWl0cyB0aGUgdHJhbnNmb3JtZWQgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBxdWVyeSBwYXJhbWV0ZXIsIG9yIHRoZSBlbnRpcmUgcXVlcnkgcGFyYW1ldGVycyBvYmplY3QgaWYgbm8ga2V5IGlzIHByb3ZpZGVkLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzZWFyY2ggPSBpbmplY3RRdWVyeVBhcmFtcygnc2VhcmNoJyk7IC8vIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnc2VhcmNoJyBxdWVyeSBwYXJhbVxuICogY29uc3Qgc2VhcmNoID0gaW5qZWN0UXVlcnlQYXJhbXMocCA9PiBwWydzZWFyY2gnXSBhcyBzdHJpbmcpOyAvLyBzYW1lIGFzIGFib3ZlIGJ1dCBjYW4gYmUgdXNlZCB3aXRoIGEgY3VzdG9tIHRyYW5zZm9ybSBmdW5jdGlvblxuICogY29uc3QgaWRQYXJhbSA9IGluamVjdFF1ZXJ5UGFyYW1zKCdpZCcsIHt0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZX0pOyAvLyByZXR1cm5zIHRoZSB2YWx1ZSBmbyB0aGUgJ2lkJyBxdWVyeSBwYXJhbXMgYW5kIHRyYW5zZm9ybXMgaXQgaW50byBhIG51bWJlclxuICogY29uc3QgaWRQYXJhbSA9IGluamVjdFF1ZXJ5UGFyYW1zKHAgPT4gbnVtYmVyQXR0cmlidXRlKHBbJ2lkJ10pKTsgLy8gc2FtZSBhcyBhYm92ZSBidXQgY2FuIGJlIHVzZWQgd2l0aCBhIGN1c3RvbSB0cmFuc2Zvcm0gZnVuY3Rpb25cbiAqIGNvbnN0IHF1ZXJ5UGFyYW1zID0gaW5qZWN0UXVlcnlQYXJhbXMoKTsgLy8gcmV0dXJucyB0aGUgZW50aXJlIHF1ZXJ5IHBhcmFtcyBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFF1ZXJ5UGFyYW1zPE91dHB1dD4oXG4gIGtleU9yUGFyYW1zVHJhbnNmb3JtPzogc3RyaW5nIHwgUXVlcnlQYXJhbXNUcmFuc2Zvcm1GbjxPdXRwdXQ+LFxuICBvcHRpb25zOiBRdWVyeVBhcmFtc09wdGlvbnM8T3V0cHV0PiA9IHt9LFxuKTogU2lnbmFsPE91dHB1dCB8IFBhcmFtcyB8IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXIgfCBudWxsPiB7XG4gIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChpbmplY3RRdWVyeVBhcmFtcyk7XG5cbiAgY29uc3Qgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBjb25zdCBpbml0aWFsUXVlcnlQYXJhbXMgPSByb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcblxuICBjb25zdCB7dHJhbnNmb3JtLCBpbml0aWFsVmFsdWV9ID0gb3B0aW9ucztcblxuICAvLyBpbmplY3RRdWVyeVBhcmFtcygpOiBTaWduYWw8UGFyYW1zPlxuICBpZiAoIWtleU9yUGFyYW1zVHJhbnNmb3JtKSB7XG4gICAgcmV0dXJuIHRvU2lnbmFsKHJvdXRlLnF1ZXJ5UGFyYW1zLCB7aW5pdGlhbFZhbHVlOiBpbml0aWFsUXVlcnlQYXJhbXN9KTtcbiAgfVxuXG4gIC8vIGluamVjdFF1ZXJ5UGFyYW1zPE91dHB1dD4oZm46IFF1ZXJ5UGFyYW1zVHJhbnNmb3JtRm48T3V0cHV0Pik6IFNpZ25hbDxPdXRwdXQ+XG4gIGlmICh0eXBlb2Yga2V5T3JQYXJhbXNUcmFuc2Zvcm0gPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gdG9TaWduYWwocm91dGUucXVlcnlQYXJhbXMucGlwZShtYXAoa2V5T3JQYXJhbXNUcmFuc2Zvcm0pKSwge1xuICAgICAgaW5pdGlhbFZhbHVlOiBrZXlPclBhcmFtc1RyYW5zZm9ybShpbml0aWFsUXVlcnlQYXJhbXMpLFxuICAgIH0pO1xuICB9XG5cbiAgLy8ga2V5T3JQYXJhbXNUcmFuc2Zvcm0gaXMgc3RyaW5nLlxuICBjb25zdCBnZXRQYXJhbSA9IChwYXJhbXM6IFBhcmFtcykgPT4ge1xuICAgIGNvbnN0IHBhcmFtID0gcGFyYW1zPy5ba2V5T3JQYXJhbXNUcmFuc2Zvcm1dIGFzIHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKCFwYXJhbSkge1xuICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZSA/PyBudWxsO1xuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtKSkge1xuICAgICAgaWYgKHBhcmFtLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgcmV0dXJuIGluaXRpYWxWYWx1ZSA/PyBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRyYW5zZm9ybSA/IHRyYW5zZm9ybShwYXJhbVswXSkgOiBwYXJhbVswXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhbnNmb3JtID8gdHJhbnNmb3JtKHBhcmFtKSA6IHBhcmFtO1xuICB9O1xuXG4gIHJldHVybiB0b1NpZ25hbChyb3V0ZS5xdWVyeVBhcmFtcy5waXBlKG1hcChnZXRQYXJhbSkpLCB7XG4gICAgaW5pdGlhbFZhbHVlOiBnZXRQYXJhbShpbml0aWFsUXVlcnlQYXJhbXMpLFxuICB9KTtcbn1cbiJdfQ==