@angular/core 18.1.0-rc.0 → 18.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/primitives/event-dispatch/contract_binary.mjs +3 -3
- package/esm2022/primitives/event-dispatch/index.mjs +6 -7
- package/esm2022/primitives/event-dispatch/src/a11y_click.mjs +1 -1
- package/esm2022/primitives/event-dispatch/src/action_resolver.mjs +1 -1
- package/esm2022/primitives/event-dispatch/src/bootstrap_app_scoped.mjs +29 -0
- package/esm2022/primitives/event-dispatch/src/bootstrap_global.mjs +21 -0
- package/esm2022/primitives/event-dispatch/src/cache.mjs +10 -21
- package/esm2022/primitives/event-dispatch/src/earlyeventcontract.mjs +32 -21
- package/esm2022/primitives/event-dispatch/src/event.mjs +3 -3
- package/esm2022/primitives/event-dispatch/src/event_contract_defines.mjs +1 -6
- package/esm2022/primitives/event-dispatch/src/event_type.mjs +19 -21
- package/esm2022/primitives/event-dispatch/src/eventcontract.mjs +6 -8
- package/esm2022/primitives/event-dispatch/src/property.mjs +1 -1
- package/esm2022/rxjs-interop/src/to_signal.mjs +4 -4
- package/esm2022/src/defer/instructions.mjs +53 -35
- package/esm2022/src/event_delegation_utils.mjs +10 -10
- package/esm2022/src/hydration/event_replay.mjs +17 -22
- package/esm2022/src/render3/after_render_hooks.mjs +7 -2
- package/esm2022/src/render3/component_ref.mjs +1 -1
- package/esm2022/src/render3/debug/framework_injector_profiler.mjs +3 -2
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/logger.mjs +3 -3
- package/event-dispatch-contract.min.js +1 -1
- package/fesm2022/core.mjs +85 -66
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +452 -529
- package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +4 -4
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/index.d.ts +4 -4
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +23 -37
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +2 -2
- package/schematics/migrations/after-render-phase/bundle.js +12 -12
- package/schematics/migrations/http-providers/bundle.js +15 -15
- package/schematics/migrations/invalid-two-way-bindings/bundle.js +202 -193
- package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +2 -2
- package/schematics/ng-generate/control-flow-migration/bundle.js +227 -202
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +2 -2
- package/schematics/ng-generate/standalone-migration/bundle.js +533 -506
- package/schematics/ng-generate/standalone-migration/bundle.js.map +2 -2
- package/testing/index.d.ts +1 -1
- package/esm2022/primitives/event-dispatch/src/register_events.mjs +0 -31
|
@@ -168,7 +168,8 @@ function handleInstanceCreatedByInjectorEvent(context, data) {
|
|
|
168
168
|
if (typeof value === 'object') {
|
|
169
169
|
standaloneComponent = value?.constructor;
|
|
170
170
|
}
|
|
171
|
-
if
|
|
171
|
+
// We want to also cover if `standaloneComponent === null` in addition to `undefined`
|
|
172
|
+
if (standaloneComponent == undefined || !isStandaloneComponent(standaloneComponent)) {
|
|
172
173
|
return;
|
|
173
174
|
}
|
|
174
175
|
const environmentInjector = context.injector.get(EnvironmentInjector, null, { optional: true });
|
|
@@ -246,4 +247,4 @@ function canBeHeldWeakly(value) {
|
|
|
246
247
|
return (value !== null &&
|
|
247
248
|
(typeof value === 'object' || typeof value === 'function' || typeof value === 'symbol'));
|
|
248
249
|
}
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrX2luamVjdG9yX3Byb2ZpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZWJ1Zy9mcmFtZXdvcmtfaW5qZWN0b3JfcHJvZmlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsbUJBQW1CLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBSS9FLE9BQU8sRUFPTCxtQkFBbUIsR0FDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sV0FBVztJQUFqQjtRQUNFLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUd4QyxDQUFDO1FBQ0osd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDeEUsa0NBQTZCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7SUFVekUsQ0FBQztJQVJDLEtBQUs7UUFDSCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxPQUFPLEVBRzdDLENBQUM7UUFDSixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDN0UsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQUVELElBQUksb0JBQW9CLEdBQUcsSUFBSSxXQUFXLEVBQUUs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Q0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN6QyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxRQUE4QjtJQUNuRCxJQUFJLFVBQVUsR0FBNEIsSUFBSSxDQUFDO0lBRS9DLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsaUdBQWlHO0lBQ2pHLDZGQUE2RjtJQUM3Riw2RkFBNkY7SUFDN0Ysc0NBQXNDO0lBQ3RDLElBQUksUUFBUSxZQUFZLFlBQVksRUFBRSxDQUFDO1FBQ3JDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsdUVBQXVFO0lBQ3ZFLFVBQVU7U0FDTCxDQUFDO1FBQ0osVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELGNBQWM7QUFDZCxvR0FBb0c7QUFDcEcsU0FBUyxlQUFlLENBQUMsS0FBVTtJQUNqQyxtRUFBbUU7SUFDbkUsT0FBTyxDQUNMLEtBQUssS0FBSyxJQUFJO1FBQ2QsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUN4RixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0luamVjdG9yfSBmcm9tICcuLi8uLi9kaS9pbmplY3Rvcic7XG5pbXBvcnQge0Vudmlyb25tZW50SW5qZWN0b3J9IGZyb20gJy4uLy4uL2RpL3IzX2luamVjdG9yJztcbmltcG9ydCB7VHlwZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3R5cGUnO1xuaW1wb3J0IHthc3NlcnREZWZpbmVkLCB0aHJvd0Vycm9yfSBmcm9tICcuLi8uLi91dGlsL2Fzc2VydCc7XG5pbXBvcnQge2Fzc2VydFROb2RlLCBhc3NlcnRUTm9kZUZvckxWaWV3fSBmcm9tICcuLi9hc3NlcnQnO1xuaW1wb3J0IHtnZXRDb21wb25lbnREZWZ9IGZyb20gJy4uL2RlZmluaXRpb24nO1xuaW1wb3J0IHtnZXROb2RlSW5qZWN0b3JMVmlldywgZ2V0Tm9kZUluamVjdG9yVE5vZGUsIE5vZGVJbmplY3Rvcn0gZnJvbSAnLi4vZGknO1xuaW1wb3J0IHtUTm9kZX0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7TFZpZXd9IGZyb20gJy4uL2ludGVyZmFjZXMvdmlldyc7XG5cbmltcG9ydCB7XG4gIEluamVjdGVkU2VydmljZSxcbiAgSW5qZWN0b3JDcmVhdGVkSW5zdGFuY2UsXG4gIEluamVjdG9yUHJvZmlsZXJDb250ZXh0LFxuICBJbmplY3RvclByb2ZpbGVyRXZlbnQsXG4gIEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUsXG4gIFByb3ZpZGVyUmVjb3JkLFxuICBzZXRJbmplY3RvclByb2ZpbGVyLFxufSBmcm9tICcuL2luamVjdG9yX3Byb2ZpbGVyJztcblxuLyoqXG4gKiBUaGVzZSBhcmUgdGhlIGRhdGEgc3RydWN0dXJlcyB0aGF0IG91ciBmcmFtZXdvcmsgaW5qZWN0b3IgcHJvZmlsZXIgd2lsbCBmaWxsIHdpdGggZGF0YSBpbiBvcmRlclxuICogdG8gc3VwcG9ydCBESSBkZWJ1Z2dpbmcgQVBJcy5cbiAqXG4gKiByZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llczogTWFwcyBhbiBpbmplY3RvciB0byBhIE1hcCBvZiB0b2tlbnMgdG8gYW4gQXJyYXkgb2ZcbiAqIGRlcGVuZGVuY2llcy4gSW5qZWN0b3IgLT4gVG9rZW4gLT4gRGVwZW5kZW5jaWVzIFRoaXMgaXMgdXNlZCB0byBzdXBwb3J0IHRoZVxuICogZ2V0RGVwZW5kZW5jaWVzRnJvbUluamVjdGFibGUgQVBJLCB3aGljaCB0YWtlcyBpbiBhbiBpbmplY3RvciBhbmQgYSB0b2tlbiBhbmQgcmV0dXJucyBpdCdzXG4gKiBkZXBlbmRlbmNpZXMuXG4gKlxuICogcmVzb2x2ZXJUb1Byb3ZpZGVyczogTWFwcyBhIERJIHJlc29sdmVyIChhbiBJbmplY3RvciBvciBhIFROb2RlKSB0byB0aGUgcHJvdmlkZXJzIGNvbmZpZ3VyZWRcbiAqIHdpdGhpbiBpdCBUaGlzIGlzIHVzZWQgdG8gc3VwcG9ydCB0aGUgZ2V0SW5qZWN0b3JQcm92aWRlcnMgQVBJLCB3aGljaCB0YWtlcyBpbiBhbiBpbmplY3RvciBhbmRcbiAqIHJldHVybnMgdGhlIHByb3ZpZGVycyB0aGF0IGl0IHdhcyBjb25maWd1cmVkIHdpdGguIE5vdGUgdGhhdCBmb3IgdGhlIGVsZW1lbnQgaW5qZWN0b3IgY2FzZSB3ZVxuICogdXNlIHRoZSBUTm9kZSBpbnN0ZWFkIG9mIHRoZSBMVmlldyBhcyB0aGUgREkgcmVzb2x2ZXIuIFRoaXMgaXMgYmVjYXVzZSB0aGUgcmVnaXN0cmF0aW9uIG9mXG4gKiBwcm92aWRlcnMgaGFwcGVucyBvbmx5IG9uY2UgcGVyIHR5cGUgb2YgVE5vZGUuIElmIGFuIGluamVjdG9yIGlzIGNyZWF0ZWQgd2l0aCBhbiBpZGVudGljYWwgVE5vZGUsXG4gKiB0aGUgcHJvdmlkZXJzIGZvciB0aGF0IGluamVjdG9yIHdpbGwgbm90IGJlIHJlY29uZmlndXJlZC5cbiAqXG4gKiBzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudDogTWFwcyB0aGUgaW5qZWN0b3Igb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCB0byB0aGUgc3RhbmRhbG9uZVxuICogY29tcG9uZW50IHRoYXQgaXQgaXMgYXNzb2NpYXRlZCB3aXRoLiBVc2VkIGluIHRoZSBnZXRJbmplY3RvclByb3ZpZGVycyBBUEksIHNwZWNpZmljaWFsbHkgaW4gdGhlXG4gKiBkaXNjb3Zlcnkgb2YgaW1wb3J0IHBhdGhzIGZvciBlYWNoIHByb3ZpZGVyLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBpbXBvcnRzIGFycmF5IG9mIGFcbiAqIHN0YW5kYWxvbmUgY29tcG9uZW50IGlzIHByb2Nlc3NlZCBhbmQgY29uZmlndXJlZCBpbiBpdHMgc3RhbmRhbG9uZSBpbmplY3RvciwgYnV0IGV4aXN0cyB3aXRoaW5cbiAqIHRoZSBjb21wb25lbnQncyBkZWZpbml0aW9uLiBCZWNhdXNlIGdldEluamVjdG9yUHJvdmlkZXJzIHRha2VzIGluIGFuIGluamVjdG9yLCBpZiB0aGF0IGluamVjdG9yXG4gKiBpcyB0aGUgaW5qZWN0b3Igb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgd2UgbmVlZCB0byBiZSBhYmxlIHRvIGRpc2NvdmVyIHRoZSBwbGFjZSB3aGVyZSB0aGVcbiAqIGltcG9ydHMgYXJyYXkgaXMgbG9jYXRlZCAodGhlIGNvbXBvbmVudCkgaW4gb3JkZXIgdG8gZmxhdHRlbiB0aGUgaW1wb3J0cyBhcnJheSB3aXRoaW4gaXQgdG9cbiAqIGRpc2NvdmVyIGFsbCBvZiBpdCdzIHByb3ZpZGVycy5cbiAqXG4gKlxuICogQWxsIG9mIHRoZXNlIGRhdGEgc3RydWN0dXJlcyBhcmUgaW5zdGFudGlhdGVkIHdpdGggV2Vha01hcHMuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgcHJlc2VuY2VcbiAqIG9mIGFueSBvYmplY3QgaW4gdGhlIGtleXMgb2YgdGhlc2UgbWFwcyBkb2VzIG5vdCBwcmV2ZW50IHRoZSBnYXJiYWdlIGNvbGxlY3RvciBmcm9tIGNvbGxlY3RpbmdcbiAqIHRob3NlIG9iamVjdHMuIEJlY2F1c2Ugb2YgdGhpcyBwcm9wZXJ0eSBvZiBXZWFrTWFwcywgdGhlc2UgZGF0YSBzdHJ1Y3R1cmVzIHdpbGwgbmV2ZXIgYmUgdGhlXG4gKiBzb3VyY2Ugb2YgYSBtZW1vcnkgbGVhay5cbiAqXG4gKiBBbiBleGFtcGxlIG9mIHRoaXMgYWR2YW50YWdlOiBXaGVuIGNvbXBvbmVudHMgYXJlIGRlc3Ryb3llZCwgd2UgZG9uJ3QgbmVlZCB0byBkb1xuICogYW55IGFkZGl0aW9uYWwgd29yayB0byByZW1vdmUgdGhhdCBjb21wb25lbnQgZnJvbSBvdXIgbWFwcGluZ3MuXG4gKlxuICovXG5jbGFzcyBESURlYnVnRGF0YSB7XG4gIHJlc29sdmVyVG9Ub2tlblRvRGVwZW5kZW5jaWVzID0gbmV3IFdlYWtNYXA8XG4gICAgSW5qZWN0b3IgfCBMVmlldyxcbiAgICBXZWFrTWFwPFR5cGU8dW5rbm93bj4sIEluamVjdGVkU2VydmljZVtdPlxuICA+KCk7XG4gIHJlc29sdmVyVG9Qcm92aWRlcnMgPSBuZXcgV2Vha01hcDxJbmplY3RvciB8IFROb2RlLCBQcm92aWRlclJlY29yZFtdPigpO1xuICBzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudCA9IG5ldyBXZWFrTWFwPEluamVjdG9yLCBUeXBlPHVua25vd24+PigpO1xuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMucmVzb2x2ZXJUb1Rva2VuVG9EZXBlbmRlbmNpZXMgPSBuZXcgV2Vha01hcDxcbiAgICAgIEluamVjdG9yIHwgTFZpZXcsXG4gICAgICBXZWFrTWFwPFR5cGU8dW5rbm93bj4sIEluamVjdGVkU2VydmljZVtdPlxuICAgID4oKTtcbiAgICB0aGlzLnJlc29sdmVyVG9Qcm92aWRlcnMgPSBuZXcgV2Vha01hcDxJbmplY3RvciB8IFROb2RlLCBQcm92aWRlclJlY29yZFtdPigpO1xuICAgIHRoaXMuc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnQgPSBuZXcgV2Vha01hcDxJbmplY3RvciwgVHlwZTx1bmtub3duPj4oKTtcbiAgfVxufVxuXG5sZXQgZnJhbWV3b3JrRElEZWJ1Z0RhdGEgPSBuZXcgRElEZWJ1Z0RhdGEoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZyYW1ld29ya0RJRGVidWdEYXRhKCk6IERJRGVidWdEYXRhIHtcbiAgcmV0dXJuIGZyYW1ld29ya0RJRGVidWdEYXRhO1xufVxuXG4vKipcbiAqIEluaXRhbGl6ZSBkZWZhdWx0IGhhbmRsaW5nIG9mIGluamVjdG9yIGV2ZW50cy4gVGhpcyBoYW5kbGluZyBwYXJzZXMgZXZlbnRzXG4gKiBhcyB0aGV5IGFyZSBlbWl0dGVkIGFuZCBjb25zdHJ1Y3RzIHRoZSBkYXRhIHN0cnVjdHVyZXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnRcbiAqIHNvbWUgb2YgZGVidWcgQVBJcy5cbiAqXG4gKiBTZWUgaGFuZGxlSW5qZWN0RXZlbnQsIGhhbmRsZUNyZWF0ZUV2ZW50IGFuZCBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudFxuICogZm9yIGRlc2NyaXB0aW9ucyBvZiBlYWNoIGhhbmRsZXJcbiAqXG4gKiBTdXBwb3J0ZWQgQVBJczpcbiAqICAgICAgICAgICAgICAgLSBnZXREZXBlbmRlbmNpZXNGcm9tSW5qZWN0YWJsZVxuICogICAgICAgICAgICAgICAtIGdldEluamVjdG9yUHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEZyYW1ld29ya0luamVjdG9yUHJvZmlsZXIoKTogdm9pZCB7XG4gIGZyYW1ld29ya0RJRGVidWdEYXRhLnJlc2V0KCk7XG4gIHNldEluamVjdG9yUHJvZmlsZXIoKGluamVjdG9yUHJvZmlsZXJFdmVudCkgPT5cbiAgICBoYW5kbGVJbmplY3RvclByb2ZpbGVyRXZlbnQoaW5qZWN0b3JQcm9maWxlckV2ZW50KSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlSW5qZWN0b3JQcm9maWxlckV2ZW50KGluamVjdG9yUHJvZmlsZXJFdmVudDogSW5qZWN0b3JQcm9maWxlckV2ZW50KTogdm9pZCB7XG4gIGNvbnN0IHtjb250ZXh0LCB0eXBlfSA9IGluamVjdG9yUHJvZmlsZXJFdmVudDtcblxuICBpZiAodHlwZSA9PT0gSW5qZWN0b3JQcm9maWxlckV2ZW50VHlwZS5JbmplY3QpIHtcbiAgICBoYW5kbGVJbmplY3RFdmVudChjb250ZXh0LCBpbmplY3RvclByb2ZpbGVyRXZlbnQuc2VydmljZSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gSW5qZWN0b3JQcm9maWxlckV2ZW50VHlwZS5JbnN0YW5jZUNyZWF0ZWRCeUluamVjdG9yKSB7XG4gICAgaGFuZGxlSW5zdGFuY2VDcmVhdGVkQnlJbmplY3RvckV2ZW50KGNvbnRleHQsIGluamVjdG9yUHJvZmlsZXJFdmVudC5pbnN0YW5jZSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gSW5qZWN0b3JQcm9maWxlckV2ZW50VHlwZS5Qcm92aWRlckNvbmZpZ3VyZWQpIHtcbiAgICBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudChjb250ZXh0LCBpbmplY3RvclByb2ZpbGVyRXZlbnQucHJvdmlkZXJSZWNvcmQpO1xuICB9XG59XG5cbi8qKlxuICpcbiAqIFN0b3JlcyB0aGUgaW5qZWN0ZWQgc2VydmljZSBpbiBmcmFtZXdvcmtESURlYnVnRGF0YS5yZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llc1xuICogYmFzZWQgb24gaXQncyBpbmplY3RvciBhbmQgdG9rZW4uXG4gKlxuICogQHBhcmFtIGNvbnRleHQgSW5qZWN0b3JQcm9maWxlckNvbnRleHQgdGhlIGluamVjdGlvbiBjb250ZXh0IHRoYXQgdGhpcyBldmVudCBvY2N1cnJlZCBpbi5cbiAqIEBwYXJhbSBkYXRhIEluamVjdGVkU2VydmljZSB0aGUgc2VydmljZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbmplY3QgZXZlbnQuXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVJbmplY3RFdmVudChjb250ZXh0OiBJbmplY3RvclByb2ZpbGVyQ29udGV4dCwgZGF0YTogSW5qZWN0ZWRTZXJ2aWNlKSB7XG4gIGNvbnN0IGRpUmVzb2x2ZXIgPSBnZXRESVJlc29sdmVyKGNvbnRleHQuaW5qZWN0b3IpO1xuICBpZiAoZGlSZXNvbHZlciA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0FuIEluamVjdCBldmVudCBtdXN0IGJlIHJ1biB3aXRoaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQuJyk7XG4gIH1cblxuICBjb25zdCBkaVJlc29sdmVyVG9JbnN0YW50aWF0ZWRUb2tlbiA9IGZyYW1ld29ya0RJRGVidWdEYXRhLnJlc29sdmVyVG9Ub2tlblRvRGVwZW5kZW5jaWVzO1xuXG4gIGlmICghZGlSZXNvbHZlclRvSW5zdGFudGlhdGVkVG9rZW4uaGFzKGRpUmVzb2x2ZXIpKSB7XG4gICAgZGlSZXNvbHZlclRvSW5zdGFudGlhdGVkVG9rZW4uc2V0KGRpUmVzb2x2ZXIsIG5ldyBXZWFrTWFwPFR5cGU8dW5rbm93bj4sIEluamVjdGVkU2VydmljZVtdPigpKTtcbiAgfVxuXG4gIC8vIGlmIHRva2VuIGlzIGEgcHJpbWl0aXZlIHR5cGUsIGlnbm9yZSB0aGlzIGV2ZW50LiBXZSBkbyB0aGlzIGJlY2F1c2Ugd2UgY2Fubm90IGtlZXAgdHJhY2sgb2ZcbiAgLy8gbm9uLXByaW1pdGl2ZSB0b2tlbnMgaW4gV2Vha01hcHMgc2luY2UgdGhleSBhcmUgbm90IGdhcmJhZ2UgY29sbGVjdGFibGUuXG4gIGlmICghY2FuQmVIZWxkV2Vha2x5KGNvbnRleHQudG9rZW4pKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcyA9IGRpUmVzb2x2ZXJUb0luc3RhbnRpYXRlZFRva2VuLmdldChkaVJlc29sdmVyKSE7XG4gIGlmICghaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcy5oYXMoY29udGV4dC50b2tlbiEpKSB7XG4gICAgaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcy5zZXQoY29udGV4dC50b2tlbiEsIFtdKTtcbiAgfVxuXG4gIGNvbnN0IHt0b2tlbiwgdmFsdWUsIGZsYWdzfSA9IGRhdGE7XG5cbiAgYXNzZXJ0RGVmaW5lZChjb250ZXh0LnRva2VuLCAnSW5qZWN0b3IgcHJvZmlsZXIgY29udGV4dCB0b2tlbiBpcyB1bmRlZmluZWQuJyk7XG5cbiAgY29uc3QgZGVwZW5kZW5jaWVzID0gaW5zdGFudGlhdGVkVG9rZW5Ub0RlcGVuZGVuY2llcy5nZXQoY29udGV4dC50b2tlbik7XG4gIGFzc2VydERlZmluZWQoZGVwZW5kZW5jaWVzLCAnQ291bGQgbm90IHJlc29sdmUgZGVwZW5kZW5jaWVzIGZvciB0b2tlbi4nKTtcblxuICBpZiAoY29udGV4dC5pbmplY3RvciBpbnN0YW5jZW9mIE5vZGVJbmplY3Rvcikge1xuICAgIGRlcGVuZGVuY2llcy5wdXNoKHt0b2tlbiwgdmFsdWUsIGZsYWdzLCBpbmplY3RlZEluOiBnZXROb2RlSW5qZWN0b3JDb250ZXh0KGNvbnRleHQuaW5qZWN0b3IpfSk7XG4gIH0gZWxzZSB7XG4gICAgZGVwZW5kZW5jaWVzLnB1c2goe3Rva2VuLCB2YWx1ZSwgZmxhZ3N9KTtcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBSZXR1cm5zIHRoZSBMVmlldyBhbmQgVE5vZGUgYXNzb2NpYXRlZCB3aXRoIGEgTm9kZUluamVjdG9yLiBSZXR1cm5zIHVuZGVmaW5lZCBpZiB0aGUgaW5qZWN0b3JcbiAqIGlzIG5vdCBhIE5vZGVJbmplY3Rvci5cbiAqXG4gKiBAcGFyYW0gaW5qZWN0b3JcbiAqIEByZXR1cm5zIHtsVmlldzogTFZpZXcsIHROb2RlOiBUTm9kZX18dW5kZWZpbmVkXG4gKi9cbmZ1bmN0aW9uIGdldE5vZGVJbmplY3RvckNvbnRleHQoaW5qZWN0b3I6IEluamVjdG9yKToge2xWaWV3OiBMVmlldzsgdE5vZGU6IFROb2RlfSB8IHVuZGVmaW5lZCB7XG4gIGlmICghKGluamVjdG9yIGluc3RhbmNlb2YgTm9kZUluamVjdG9yKSkge1xuICAgIHRocm93RXJyb3IoJ2dldE5vZGVJbmplY3RvckNvbnRleHQgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIE5vZGVJbmplY3RvcicpO1xuICB9XG5cbiAgY29uc3QgbFZpZXcgPSBnZXROb2RlSW5qZWN0b3JMVmlldyhpbmplY3Rvcik7XG4gIGNvbnN0IHROb2RlID0gZ2V0Tm9kZUluamVjdG9yVE5vZGUoaW5qZWN0b3IpO1xuICBpZiAodE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhc3NlcnRUTm9kZUZvckxWaWV3KHROb2RlLCBsVmlldyk7XG5cbiAgcmV0dXJuIHtsVmlldywgdE5vZGV9O1xufVxuXG4vKipcbiAqXG4gKiBJZiB0aGUgY3JlYXRlZCBpbnN0YW5jZSBpcyBhbiBpbnN0YW5jZSBvZiBhIHN0YW5kYWxvbmUgY29tcG9uZW50LCBtYXBzIHRoZSBpbmplY3RvciB0byB0aGF0XG4gKiBzdGFuZGFsb25lIGNvbXBvbmVudCBpbiBmcmFtZXdvcmtESURlYnVnRGF0YS5zdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudFxuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBJbmplY3RvckNyZWF0ZWRJbnN0YW5jZSBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW5zdGFuY2UgdGhhdCB3YXMganVzdCBjcmVhdGVkXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVJbnN0YW5jZUNyZWF0ZWRCeUluamVjdG9yRXZlbnQoXG4gIGNvbnRleHQ6IEluamVjdG9yUHJvZmlsZXJDb250ZXh0LFxuICBkYXRhOiBJbmplY3RvckNyZWF0ZWRJbnN0YW5jZSxcbik6IHZvaWQge1xuICBjb25zdCB7dmFsdWV9ID0gZGF0YTtcblxuICBpZiAoZ2V0RElSZXNvbHZlcihjb250ZXh0LmluamVjdG9yKSA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0FuIEluamVjdG9yQ3JlYXRlZEluc3RhbmNlIGV2ZW50IG11c3QgYmUgcnVuIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4nKTtcbiAgfVxuXG4gIC8vIGlmIG91ciB2YWx1ZSBpcyBhbiBpbnN0YW5jZSBvZiBhIHN0YW5kYWxvbmUgY29tcG9uZW50LCBtYXAgdGhlIGluamVjdG9yIG9mIHRoYXQgc3RhbmRhbG9uZVxuICAvLyBjb21wb25lbnQgdG8gdGhlIGNvbXBvbmVudCBjbGFzcy4gT3RoZXJ3aXNlLCB0aGlzIGV2ZW50IGlzIGEgbm9vcC5cbiAgbGV0IHN0YW5kYWxvbmVDb21wb25lbnQ6IFR5cGU8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgc3RhbmRhbG9uZUNvbXBvbmVudCA9IHZhbHVlPy5jb25zdHJ1Y3RvciBhcyBUeXBlPHVua25vd24+O1xuICB9XG4gIGlmIChzdGFuZGFsb25lQ29tcG9uZW50ID09PSB1bmRlZmluZWQgfHwgIWlzU3RhbmRhbG9uZUNvbXBvbmVudChzdGFuZGFsb25lQ29tcG9uZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IgfCBudWxsID0gY29udGV4dC5pbmplY3Rvci5nZXQoXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBudWxsLFxuICAgIHtvcHRpb25hbDogdHJ1ZX0sXG4gICk7XG4gIC8vIFN0YW5kYWxvbmUgY29tcG9uZW50cyBzaG91bGQgaGF2ZSBhbiBlbnZpcm9ubWVudCBpbmplY3Rvci4gSWYgb25lIGNhbm5vdCBiZVxuICAvLyBmb3VuZCB3ZSBtYXkgYmUgaW4gYSB0ZXN0IGNhc2UgZm9yIGxvdyBsZXZlbCBmdW5jdGlvbmFsaXR5IHRoYXQgZGlkIG5vdCBleHBsaWNpdGx5XG4gIC8vIHNldHVwIHRoaXMgaW5qZWN0b3IuIEluIHRob3NlIGNhc2VzLCB3ZSBzaW1wbHkgaWdub3JlIHRoaXMgZXZlbnQuXG4gIGlmIChlbnZpcm9ubWVudEluamVjdG9yID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge3N0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50fSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIC8vIElmIG91ciBpbmplY3RvciBoYXMgYWxyZWFkeSBiZWVuIG1hcHBlZCwgYXMgaXMgdGhlIGNhc2VcbiAgLy8gd2hlbiBhIHN0YW5kYWxvbmUgY29tcG9uZW50IGltcG9ydHMgYW5vdGhlciBzdGFuZGFsb25lIGNvbXBvbmVudCxcbiAgLy8gd2UgY29uc2lkZXIgdGhlIG9yaWdpbmFsIGNvbXBvbmVudCAodGhlIGNvbXBvbmVudCBkb2luZyB0aGUgaW1wb3J0aW5nKVxuICAvLyBhcyB0aGUgY29tcG9uZW50IGNvbm5lY3RlZCB0byBvdXIgaW5qZWN0b3IuXG4gIGlmIChzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudC5oYXMoZW52aXJvbm1lbnRJbmplY3RvcikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gSWYgb3VyIGluamVjdG9yIGhhc24ndCBiZWVuIG1hcHBlZCwgdGhlbiB3ZSBtYXAgaXQgdG8gdGhlIHN0YW5kYWxvbmUgY29tcG9uZW50XG4gIHN0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50LnNldChlbnZpcm9ubWVudEluamVjdG9yLCBzdGFuZGFsb25lQ29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNTdGFuZGFsb25lQ29tcG9uZW50KHZhbHVlOiBUeXBlPHVua25vd24+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRlZiA9IGdldENvbXBvbmVudERlZih2YWx1ZSk7XG4gIHJldHVybiAhIWRlZj8uc3RhbmRhbG9uZTtcbn1cblxuLyoqXG4gKlxuICogU3RvcmVzIHRoZSBlbWl0dGVkIFByb3ZpZGVyUmVjb3JkcyBmcm9tIHRoZSBJbmplY3RvclByb2ZpbGVyRXZlbnRUeXBlLlByb3ZpZGVyQ29uZmlndXJlZFxuICogZXZlbnQgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEucmVzb2x2ZXJUb1Byb3ZpZGVyc1xuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBQcm92aWRlclJlY29yZCBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW5zdGFuY2UgdGhhdCB3YXMganVzdCBjcmVhdGVkXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudChcbiAgY29udGV4dDogSW5qZWN0b3JQcm9maWxlckNvbnRleHQsXG4gIGRhdGE6IFByb3ZpZGVyUmVjb3JkLFxuKTogdm9pZCB7XG4gIGNvbnN0IHtyZXNvbHZlclRvUHJvdmlkZXJzfSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IFROb2RlO1xuICBpZiAoY29udGV4dD8uaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yVE5vZGUoY29udGV4dC5pbmplY3RvcikgYXMgVE5vZGU7XG4gIH0gZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGNvbnRleHQuaW5qZWN0b3I7XG4gIH1cblxuICBpZiAoZGlSZXNvbHZlciA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0EgUHJvdmlkZXJDb25maWd1cmVkIGV2ZW50IG11c3QgYmUgcnVuIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4nKTtcbiAgfVxuXG4gIGlmICghcmVzb2x2ZXJUb1Byb3ZpZGVycy5oYXMoZGlSZXNvbHZlcikpIHtcbiAgICByZXNvbHZlclRvUHJvdmlkZXJzLnNldChkaVJlc29sdmVyLCBbXSk7XG4gIH1cblxuICByZXNvbHZlclRvUHJvdmlkZXJzLmdldChkaVJlc29sdmVyKSEucHVzaChkYXRhKTtcbn1cblxuZnVuY3Rpb24gZ2V0RElSZXNvbHZlcihpbmplY3RvcjogSW5qZWN0b3IgfCB1bmRlZmluZWQpOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCB7XG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGluamVjdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZGlSZXNvbHZlcjtcbiAgfVxuXG4gIC8vIFdlIHVzZSB0aGUgTFZpZXcgYXMgdGhlIGRpUmVzb2x2ZXIgZm9yIE5vZGVJbmplY3RvcnMgYmVjYXVzZSB0aGV5XG4gIC8vIGRvIG5vdCBwZXJzaXN0IGFueXdoZXJlIGluIHRoZSBmcmFtZXdvcmsuIFRoZXkgYXJlIHNpbXBseSB3cmFwcGVycyBhcm91bmQgYW4gTFZpZXcgYW5kIGEgVE5vZGVcbiAgLy8gdGhhdCBkbyBwZXJzaXN0LiBCZWNhdXNlIG9mIHRoaXMsIHdlIHJlbHkgb24gdGhlIExWaWV3IG9mIHRoZSBOb2RlSW5qZWN0b3IgaW4gb3JkZXIgdG8gdXNlXG4gIC8vIGFzIGEgY29uY3JldGUga2V5IHRvIHJlcHJlc2VudCB0aGlzIGluamVjdG9yLiBJZiB3ZSBnZXQgdGhlIHNhbWUgTFZpZXcgYmFjayBsYXRlciwgd2Uga25vd1xuICAvLyB3ZSdyZSBsb29raW5nIGF0IHRoZSBzYW1lIGluamVjdG9yLlxuICBpZiAoaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yTFZpZXcoaW5qZWN0b3IpO1xuICB9XG4gIC8vIE90aGVyIGluamVjdG9ycyBjYW4gYmUgdXNlZCBhIGtleXMgZm9yIGEgbWFwIGJlY2F1c2UgdGhlaXIgaW5zdGFuY2VzXG4gIC8vIHBlcnNpc3RcbiAgZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGluamVjdG9yO1xuICB9XG5cbiAgcmV0dXJuIGRpUmVzb2x2ZXI7XG59XG5cbi8vIGluc3BpcmVkIGJ5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi9tdWx0aXBhZ2UvZXhlY3V0YWJsZS1jb2RlLWFuZC1leGVjdXRpb24tY29udGV4dHMuaHRtbCNzZWMtY2FuYmVoZWxkd2Vha2x5XG5mdW5jdGlvbiBjYW5CZUhlbGRXZWFrbHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyB3ZSBjaGVjayBmb3IgdmFsdWUgIT09IG51bGwgaGVyZSBiZWNhdXNlIHR5cGVvZiBudWxsID09PSAnb2JqZWN0XG4gIHJldHVybiAoXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJylcbiAgKTtcbn1cbiJdfQ==
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrX2luamVjdG9yX3Byb2ZpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvcmVuZGVyMy9kZWJ1Zy9mcmFtZXdvcmtfaW5qZWN0b3JfcHJvZmlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBR0gsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsbUJBQW1CLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBSS9FLE9BQU8sRUFPTCxtQkFBbUIsR0FDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sV0FBVztJQUFqQjtRQUNFLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUd4QyxDQUFDO1FBQ0osd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDeEUsa0NBQTZCLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7SUFVekUsQ0FBQztJQVJDLEtBQUs7UUFDSCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxPQUFPLEVBRzdDLENBQUM7UUFDSixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQXNDLENBQUM7UUFDN0UsSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksT0FBTyxFQUEyQixDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQUVELElBQUksb0JBQW9CLEdBQUcsSUFBSSxXQUFXLEVBQUUs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LENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDekMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsUUFBOEI7SUFDbkQsSUFBSSxVQUFVLEdBQTRCLElBQUksQ0FBQztJQUUvQyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMzQixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsb0VBQW9FO0lBQ3BFLGlHQUFpRztJQUNqRyw2RkFBNkY7SUFDN0YsNkZBQTZGO0lBQzdGLHNDQUFzQztJQUN0QyxJQUFJLFFBQVEsWUFBWSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxVQUFVLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELHVFQUF1RTtJQUN2RSxVQUFVO1NBQ0wsQ0FBQztRQUNKLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxjQUFjO0FBQ2Qsb0dBQW9HO0FBQ3BHLFNBQVMsZUFBZSxDQUFDLEtBQVU7SUFDakMsbUVBQW1FO0lBQ25FLE9BQU8sQ0FDTCxLQUFLLEtBQUssSUFBSTtRQUNkLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FDeEYsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnLi4vLi4vZGkvaW5qZWN0b3InO1xuaW1wb3J0IHtFbnZpcm9ubWVudEluamVjdG9yfSBmcm9tICcuLi8uLi9kaS9yM19pbmplY3Rvcic7XG5pbXBvcnQge1R5cGV9IGZyb20gJy4uLy4uL2ludGVyZmFjZS90eXBlJztcbmltcG9ydCB7YXNzZXJ0RGVmaW5lZCwgdGhyb3dFcnJvcn0gZnJvbSAnLi4vLi4vdXRpbC9hc3NlcnQnO1xuaW1wb3J0IHthc3NlcnRUTm9kZSwgYXNzZXJ0VE5vZGVGb3JMVmlld30gZnJvbSAnLi4vYXNzZXJ0JztcbmltcG9ydCB7Z2V0Q29tcG9uZW50RGVmfSBmcm9tICcuLi9kZWZpbml0aW9uJztcbmltcG9ydCB7Z2V0Tm9kZUluamVjdG9yTFZpZXcsIGdldE5vZGVJbmplY3RvclROb2RlLCBOb2RlSW5qZWN0b3J9IGZyb20gJy4uL2RpJztcbmltcG9ydCB7VE5vZGV9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQge0xWaWV3fSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXcnO1xuXG5pbXBvcnQge1xuICBJbmplY3RlZFNlcnZpY2UsXG4gIEluamVjdG9yQ3JlYXRlZEluc3RhbmNlLFxuICBJbmplY3RvclByb2ZpbGVyQ29udGV4dCxcbiAgSW5qZWN0b3JQcm9maWxlckV2ZW50LFxuICBJbmplY3RvclByb2ZpbGVyRXZlbnRUeXBlLFxuICBQcm92aWRlclJlY29yZCxcbiAgc2V0SW5qZWN0b3JQcm9maWxlcixcbn0gZnJvbSAnLi9pbmplY3Rvcl9wcm9maWxlcic7XG5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBkYXRhIHN0cnVjdHVyZXMgdGhhdCBvdXIgZnJhbWV3b3JrIGluamVjdG9yIHByb2ZpbGVyIHdpbGwgZmlsbCB3aXRoIGRhdGEgaW4gb3JkZXJcbiAqIHRvIHN1cHBvcnQgREkgZGVidWdnaW5nIEFQSXMuXG4gKlxuICogcmVzb2x2ZXJUb1Rva2VuVG9EZXBlbmRlbmNpZXM6IE1hcHMgYW4gaW5qZWN0b3IgdG8gYSBNYXAgb2YgdG9rZW5zIHRvIGFuIEFycmF5IG9mXG4gKiBkZXBlbmRlbmNpZXMuIEluamVjdG9yIC0+IFRva2VuIC0+IERlcGVuZGVuY2llcyBUaGlzIGlzIHVzZWQgdG8gc3VwcG9ydCB0aGVcbiAqIGdldERlcGVuZGVuY2llc0Zyb21JbmplY3RhYmxlIEFQSSwgd2hpY2ggdGFrZXMgaW4gYW4gaW5qZWN0b3IgYW5kIGEgdG9rZW4gYW5kIHJldHVybnMgaXQnc1xuICogZGVwZW5kZW5jaWVzLlxuICpcbiAqIHJlc29sdmVyVG9Qcm92aWRlcnM6IE1hcHMgYSBESSByZXNvbHZlciAoYW4gSW5qZWN0b3Igb3IgYSBUTm9kZSkgdG8gdGhlIHByb3ZpZGVycyBjb25maWd1cmVkXG4gKiB3aXRoaW4gaXQgVGhpcyBpcyB1c2VkIHRvIHN1cHBvcnQgdGhlIGdldEluamVjdG9yUHJvdmlkZXJzIEFQSSwgd2hpY2ggdGFrZXMgaW4gYW4gaW5qZWN0b3IgYW5kXG4gKiByZXR1cm5zIHRoZSBwcm92aWRlcnMgdGhhdCBpdCB3YXMgY29uZmlndXJlZCB3aXRoLiBOb3RlIHRoYXQgZm9yIHRoZSBlbGVtZW50IGluamVjdG9yIGNhc2Ugd2VcbiAqIHVzZSB0aGUgVE5vZGUgaW5zdGVhZCBvZiB0aGUgTFZpZXcgYXMgdGhlIERJIHJlc29sdmVyLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJlZ2lzdHJhdGlvbiBvZlxuICogcHJvdmlkZXJzIGhhcHBlbnMgb25seSBvbmNlIHBlciB0eXBlIG9mIFROb2RlLiBJZiBhbiBpbmplY3RvciBpcyBjcmVhdGVkIHdpdGggYW4gaWRlbnRpY2FsIFROb2RlLFxuICogdGhlIHByb3ZpZGVycyBmb3IgdGhhdCBpbmplY3RvciB3aWxsIG5vdCBiZSByZWNvbmZpZ3VyZWQuXG4gKlxuICogc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnQ6IE1hcHMgdGhlIGluamVjdG9yIG9mIGEgc3RhbmRhbG9uZSBjb21wb25lbnQgdG8gdGhlIHN0YW5kYWxvbmVcbiAqIGNvbXBvbmVudCB0aGF0IGl0IGlzIGFzc29jaWF0ZWQgd2l0aC4gVXNlZCBpbiB0aGUgZ2V0SW5qZWN0b3JQcm92aWRlcnMgQVBJLCBzcGVjaWZpY2lhbGx5IGluIHRoZVxuICogZGlzY292ZXJ5IG9mIGltcG9ydCBwYXRocyBmb3IgZWFjaCBwcm92aWRlci4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgaW1wb3J0cyBhcnJheSBvZiBhXG4gKiBzdGFuZGFsb25lIGNvbXBvbmVudCBpcyBwcm9jZXNzZWQgYW5kIGNvbmZpZ3VyZWQgaW4gaXRzIHN0YW5kYWxvbmUgaW5qZWN0b3IsIGJ1dCBleGlzdHMgd2l0aGluXG4gKiB0aGUgY29tcG9uZW50J3MgZGVmaW5pdGlvbi4gQmVjYXVzZSBnZXRJbmplY3RvclByb3ZpZGVycyB0YWtlcyBpbiBhbiBpbmplY3RvciwgaWYgdGhhdCBpbmplY3RvclxuICogaXMgdGhlIGluamVjdG9yIG9mIGEgc3RhbmRhbG9uZSBjb21wb25lbnQsIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBkaXNjb3ZlciB0aGUgcGxhY2Ugd2hlcmUgdGhlXG4gKiBpbXBvcnRzIGFycmF5IGlzIGxvY2F0ZWQgKHRoZSBjb21wb25lbnQpIGluIG9yZGVyIHRvIGZsYXR0ZW4gdGhlIGltcG9ydHMgYXJyYXkgd2l0aGluIGl0IHRvXG4gKiBkaXNjb3ZlciBhbGwgb2YgaXQncyBwcm92aWRlcnMuXG4gKlxuICpcbiAqIEFsbCBvZiB0aGVzZSBkYXRhIHN0cnVjdHVyZXMgYXJlIGluc3RhbnRpYXRlZCB3aXRoIFdlYWtNYXBzLiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlIHByZXNlbmNlXG4gKiBvZiBhbnkgb2JqZWN0IGluIHRoZSBrZXlzIG9mIHRoZXNlIG1hcHMgZG9lcyBub3QgcHJldmVudCB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgZnJvbSBjb2xsZWN0aW5nXG4gKiB0aG9zZSBvYmplY3RzLiBCZWNhdXNlIG9mIHRoaXMgcHJvcGVydHkgb2YgV2Vha01hcHMsIHRoZXNlIGRhdGEgc3RydWN0dXJlcyB3aWxsIG5ldmVyIGJlIHRoZVxuICogc291cmNlIG9mIGEgbWVtb3J5IGxlYWsuXG4gKlxuICogQW4gZXhhbXBsZSBvZiB0aGlzIGFkdmFudGFnZTogV2hlbiBjb21wb25lbnRzIGFyZSBkZXN0cm95ZWQsIHdlIGRvbid0IG5lZWQgdG8gZG9cbiAqIGFueSBhZGRpdGlvbmFsIHdvcmsgdG8gcmVtb3ZlIHRoYXQgY29tcG9uZW50IGZyb20gb3VyIG1hcHBpbmdzLlxuICpcbiAqL1xuY2xhc3MgRElEZWJ1Z0RhdGEge1xuICByZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llcyA9IG5ldyBXZWFrTWFwPFxuICAgIEluamVjdG9yIHwgTFZpZXcsXG4gICAgV2Vha01hcDxUeXBlPHVua25vd24+LCBJbmplY3RlZFNlcnZpY2VbXT5cbiAgPigpO1xuICByZXNvbHZlclRvUHJvdmlkZXJzID0gbmV3IFdlYWtNYXA8SW5qZWN0b3IgfCBUTm9kZSwgUHJvdmlkZXJSZWNvcmRbXT4oKTtcbiAgc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnQgPSBuZXcgV2Vha01hcDxJbmplY3RvciwgVHlwZTx1bmtub3duPj4oKTtcblxuICByZXNldCgpIHtcbiAgICB0aGlzLnJlc29sdmVyVG9Ub2tlblRvRGVwZW5kZW5jaWVzID0gbmV3IFdlYWtNYXA8XG4gICAgICBJbmplY3RvciB8IExWaWV3LFxuICAgICAgV2Vha01hcDxUeXBlPHVua25vd24+LCBJbmplY3RlZFNlcnZpY2VbXT5cbiAgICA+KCk7XG4gICAgdGhpcy5yZXNvbHZlclRvUHJvdmlkZXJzID0gbmV3IFdlYWtNYXA8SW5qZWN0b3IgfCBUTm9kZSwgUHJvdmlkZXJSZWNvcmRbXT4oKTtcbiAgICB0aGlzLnN0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50ID0gbmV3IFdlYWtNYXA8SW5qZWN0b3IsIFR5cGU8dW5rbm93bj4+KCk7XG4gIH1cbn1cblxubGV0IGZyYW1ld29ya0RJRGVidWdEYXRhID0gbmV3IERJRGVidWdEYXRhKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGcmFtZXdvcmtESURlYnVnRGF0YSgpOiBESURlYnVnRGF0YSB7XG4gIHJldHVybiBmcmFtZXdvcmtESURlYnVnRGF0YTtcbn1cblxuLyoqXG4gKiBJbml0YWxpemUgZGVmYXVsdCBoYW5kbGluZyBvZiBpbmplY3RvciBldmVudHMuIFRoaXMgaGFuZGxpbmcgcGFyc2VzIGV2ZW50c1xuICogYXMgdGhleSBhcmUgZW1pdHRlZCBhbmQgY29uc3RydWN0cyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIG5lY2Vzc2FyeSB0byBzdXBwb3J0XG4gKiBzb21lIG9mIGRlYnVnIEFQSXMuXG4gKlxuICogU2VlIGhhbmRsZUluamVjdEV2ZW50LCBoYW5kbGVDcmVhdGVFdmVudCBhbmQgaGFuZGxlUHJvdmlkZXJDb25maWd1cmVkRXZlbnRcbiAqIGZvciBkZXNjcmlwdGlvbnMgb2YgZWFjaCBoYW5kbGVyXG4gKlxuICogU3VwcG9ydGVkIEFQSXM6XG4gKiAgICAgICAgICAgICAgIC0gZ2V0RGVwZW5kZW5jaWVzRnJvbUluamVjdGFibGVcbiAqICAgICAgICAgICAgICAgLSBnZXRJbmplY3RvclByb3ZpZGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBGcmFtZXdvcmtJbmplY3RvclByb2ZpbGVyKCk6IHZvaWQge1xuICBmcmFtZXdvcmtESURlYnVnRGF0YS5yZXNldCgpO1xuICBzZXRJbmplY3RvclByb2ZpbGVyKChpbmplY3RvclByb2ZpbGVyRXZlbnQpID0+XG4gICAgaGFuZGxlSW5qZWN0b3JQcm9maWxlckV2ZW50KGluamVjdG9yUHJvZmlsZXJFdmVudCksXG4gICk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZUluamVjdG9yUHJvZmlsZXJFdmVudChpbmplY3RvclByb2ZpbGVyRXZlbnQ6IEluamVjdG9yUHJvZmlsZXJFdmVudCk6IHZvaWQge1xuICBjb25zdCB7Y29udGV4dCwgdHlwZX0gPSBpbmplY3RvclByb2ZpbGVyRXZlbnQ7XG5cbiAgaWYgKHR5cGUgPT09IEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUuSW5qZWN0KSB7XG4gICAgaGFuZGxlSW5qZWN0RXZlbnQoY29udGV4dCwgaW5qZWN0b3JQcm9maWxlckV2ZW50LnNlcnZpY2UpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUuSW5zdGFuY2VDcmVhdGVkQnlJbmplY3Rvcikge1xuICAgIGhhbmRsZUluc3RhbmNlQ3JlYXRlZEJ5SW5qZWN0b3JFdmVudChjb250ZXh0LCBpbmplY3RvclByb2ZpbGVyRXZlbnQuaW5zdGFuY2UpO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09IEluamVjdG9yUHJvZmlsZXJFdmVudFR5cGUuUHJvdmlkZXJDb25maWd1cmVkKSB7XG4gICAgaGFuZGxlUHJvdmlkZXJDb25maWd1cmVkRXZlbnQoY29udGV4dCwgaW5qZWN0b3JQcm9maWxlckV2ZW50LnByb3ZpZGVyUmVjb3JkKTtcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBTdG9yZXMgdGhlIGluamVjdGVkIHNlcnZpY2UgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEucmVzb2x2ZXJUb1Rva2VuVG9EZXBlbmRlbmNpZXNcbiAqIGJhc2VkIG9uIGl0J3MgaW5qZWN0b3IgYW5kIHRva2VuLlxuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBJbmplY3RlZFNlcnZpY2UgdGhlIHNlcnZpY2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5qZWN0IGV2ZW50LlxuICpcbiAqL1xuZnVuY3Rpb24gaGFuZGxlSW5qZWN0RXZlbnQoY29udGV4dDogSW5qZWN0b3JQcm9maWxlckNvbnRleHQsIGRhdGE6IEluamVjdGVkU2VydmljZSkge1xuICBjb25zdCBkaVJlc29sdmVyID0gZ2V0RElSZXNvbHZlcihjb250ZXh0LmluamVjdG9yKTtcbiAgaWYgKGRpUmVzb2x2ZXIgPT09IG51bGwpIHtcbiAgICB0aHJvd0Vycm9yKCdBbiBJbmplY3QgZXZlbnQgbXVzdCBiZSBydW4gd2l0aGluIGFuIGluamVjdGlvbiBjb250ZXh0LicpO1xuICB9XG5cbiAgY29uc3QgZGlSZXNvbHZlclRvSW5zdGFudGlhdGVkVG9rZW4gPSBmcmFtZXdvcmtESURlYnVnRGF0YS5yZXNvbHZlclRvVG9rZW5Ub0RlcGVuZGVuY2llcztcblxuICBpZiAoIWRpUmVzb2x2ZXJUb0luc3RhbnRpYXRlZFRva2VuLmhhcyhkaVJlc29sdmVyKSkge1xuICAgIGRpUmVzb2x2ZXJUb0luc3RhbnRpYXRlZFRva2VuLnNldChkaVJlc29sdmVyLCBuZXcgV2Vha01hcDxUeXBlPHVua25vd24+LCBJbmplY3RlZFNlcnZpY2VbXT4oKSk7XG4gIH1cblxuICAvLyBpZiB0b2tlbiBpcyBhIHByaW1pdGl2ZSB0eXBlLCBpZ25vcmUgdGhpcyBldmVudC4gV2UgZG8gdGhpcyBiZWNhdXNlIHdlIGNhbm5vdCBrZWVwIHRyYWNrIG9mXG4gIC8vIG5vbi1wcmltaXRpdmUgdG9rZW5zIGluIFdlYWtNYXBzIHNpbmNlIHRoZXkgYXJlIG5vdCBnYXJiYWdlIGNvbGxlY3RhYmxlLlxuICBpZiAoIWNhbkJlSGVsZFdlYWtseShjb250ZXh0LnRva2VuKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMgPSBkaVJlc29sdmVyVG9JbnN0YW50aWF0ZWRUb2tlbi5nZXQoZGlSZXNvbHZlcikhO1xuICBpZiAoIWluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMuaGFzKGNvbnRleHQudG9rZW4hKSkge1xuICAgIGluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMuc2V0KGNvbnRleHQudG9rZW4hLCBbXSk7XG4gIH1cblxuICBjb25zdCB7dG9rZW4sIHZhbHVlLCBmbGFnc30gPSBkYXRhO1xuXG4gIGFzc2VydERlZmluZWQoY29udGV4dC50b2tlbiwgJ0luamVjdG9yIHByb2ZpbGVyIGNvbnRleHQgdG9rZW4gaXMgdW5kZWZpbmVkLicpO1xuXG4gIGNvbnN0IGRlcGVuZGVuY2llcyA9IGluc3RhbnRpYXRlZFRva2VuVG9EZXBlbmRlbmNpZXMuZ2V0KGNvbnRleHQudG9rZW4pO1xuICBhc3NlcnREZWZpbmVkKGRlcGVuZGVuY2llcywgJ0NvdWxkIG5vdCByZXNvbHZlIGRlcGVuZGVuY2llcyBmb3IgdG9rZW4uJyk7XG5cbiAgaWYgKGNvbnRleHQuaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkZXBlbmRlbmNpZXMucHVzaCh7dG9rZW4sIHZhbHVlLCBmbGFncywgaW5qZWN0ZWRJbjogZ2V0Tm9kZUluamVjdG9yQ29udGV4dChjb250ZXh0LmluamVjdG9yKX0pO1xuICB9IGVsc2Uge1xuICAgIGRlcGVuZGVuY2llcy5wdXNoKHt0b2tlbiwgdmFsdWUsIGZsYWdzfSk7XG4gIH1cbn1cblxuLyoqXG4gKlxuICogUmV0dXJucyB0aGUgTFZpZXcgYW5kIFROb2RlIGFzc29jaWF0ZWQgd2l0aCBhIE5vZGVJbmplY3Rvci4gUmV0dXJucyB1bmRlZmluZWQgaWYgdGhlIGluamVjdG9yXG4gKiBpcyBub3QgYSBOb2RlSW5qZWN0b3IuXG4gKlxuICogQHBhcmFtIGluamVjdG9yXG4gKiBAcmV0dXJucyB7bFZpZXc6IExWaWV3LCB0Tm9kZTogVE5vZGV9fHVuZGVmaW5lZFxuICovXG5mdW5jdGlvbiBnZXROb2RlSW5qZWN0b3JDb250ZXh0KGluamVjdG9yOiBJbmplY3Rvcik6IHtsVmlldzogTFZpZXc7IHROb2RlOiBUTm9kZX0gfCB1bmRlZmluZWQge1xuICBpZiAoIShpbmplY3RvciBpbnN0YW5jZW9mIE5vZGVJbmplY3RvcikpIHtcbiAgICB0aHJvd0Vycm9yKCdnZXROb2RlSW5qZWN0b3JDb250ZXh0IG11c3QgYmUgY2FsbGVkIHdpdGggYSBOb2RlSW5qZWN0b3InKTtcbiAgfVxuXG4gIGNvbnN0IGxWaWV3ID0gZ2V0Tm9kZUluamVjdG9yTFZpZXcoaW5qZWN0b3IpO1xuICBjb25zdCB0Tm9kZSA9IGdldE5vZGVJbmplY3RvclROb2RlKGluamVjdG9yKTtcbiAgaWYgKHROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXNzZXJ0VE5vZGVGb3JMVmlldyh0Tm9kZSwgbFZpZXcpO1xuXG4gIHJldHVybiB7bFZpZXcsIHROb2RlfTtcbn1cblxuLyoqXG4gKlxuICogSWYgdGhlIGNyZWF0ZWQgaW5zdGFuY2UgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgbWFwcyB0aGUgaW5qZWN0b3IgdG8gdGhhdFxuICogc3RhbmRhbG9uZSBjb21wb25lbnQgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEuc3RhbmRhbG9uZUluamVjdG9yVG9Db21wb25lbnRcbiAqXG4gKiBAcGFyYW0gY29udGV4dCBJbmplY3RvclByb2ZpbGVyQ29udGV4dCB0aGUgaW5qZWN0aW9uIGNvbnRleHQgdGhhdCB0aGlzIGV2ZW50IG9jY3VycmVkIGluLlxuICogQHBhcmFtIGRhdGEgSW5qZWN0b3JDcmVhdGVkSW5zdGFuY2UgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGluc3RhbmNlIHRoYXQgd2FzIGp1c3QgY3JlYXRlZFxuICpcbiAqL1xuZnVuY3Rpb24gaGFuZGxlSW5zdGFuY2VDcmVhdGVkQnlJbmplY3RvckV2ZW50KFxuICBjb250ZXh0OiBJbmplY3RvclByb2ZpbGVyQ29udGV4dCxcbiAgZGF0YTogSW5qZWN0b3JDcmVhdGVkSW5zdGFuY2UsXG4pOiB2b2lkIHtcbiAgY29uc3Qge3ZhbHVlfSA9IGRhdGE7XG5cbiAgaWYgKGdldERJUmVzb2x2ZXIoY29udGV4dC5pbmplY3RvcikgPT09IG51bGwpIHtcbiAgICB0aHJvd0Vycm9yKCdBbiBJbmplY3RvckNyZWF0ZWRJbnN0YW5jZSBldmVudCBtdXN0IGJlIHJ1biB3aXRoaW4gYW4gaW5qZWN0aW9uIGNvbnRleHQuJyk7XG4gIH1cblxuICAvLyBpZiBvdXIgdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgbWFwIHRoZSBpbmplY3RvciBvZiB0aGF0IHN0YW5kYWxvbmVcbiAgLy8gY29tcG9uZW50IHRvIHRoZSBjb21wb25lbnQgY2xhc3MuIE90aGVyd2lzZSwgdGhpcyBldmVudCBpcyBhIG5vb3AuXG4gIGxldCBzdGFuZGFsb25lQ29tcG9uZW50OiBUeXBlPHVua25vd24+IHwgdW5kZWZpbmVkIHwgbnVsbCA9IHVuZGVmaW5lZDtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICBzdGFuZGFsb25lQ29tcG9uZW50ID0gdmFsdWU/LmNvbnN0cnVjdG9yIGFzIFR5cGU8dW5rbm93bj4gfCB1bmRlZmluZWQgfCBudWxsO1xuICB9XG5cbiAgLy8gV2Ugd2FudCB0byBhbHNvIGNvdmVyIGlmIGBzdGFuZGFsb25lQ29tcG9uZW50ID09PSBudWxsYCBpbiBhZGRpdGlvbiB0byBgdW5kZWZpbmVkYFxuICBpZiAoc3RhbmRhbG9uZUNvbXBvbmVudCA9PSB1bmRlZmluZWQgfHwgIWlzU3RhbmRhbG9uZUNvbXBvbmVudChzdGFuZGFsb25lQ29tcG9uZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGVudmlyb25tZW50SW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IgfCBudWxsID0gY29udGV4dC5pbmplY3Rvci5nZXQoXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBudWxsLFxuICAgIHtvcHRpb25hbDogdHJ1ZX0sXG4gICk7XG4gIC8vIFN0YW5kYWxvbmUgY29tcG9uZW50cyBzaG91bGQgaGF2ZSBhbiBlbnZpcm9ubWVudCBpbmplY3Rvci4gSWYgb25lIGNhbm5vdCBiZVxuICAvLyBmb3VuZCB3ZSBtYXkgYmUgaW4gYSB0ZXN0IGNhc2UgZm9yIGxvdyBsZXZlbCBmdW5jdGlvbmFsaXR5IHRoYXQgZGlkIG5vdCBleHBsaWNpdGx5XG4gIC8vIHNldHVwIHRoaXMgaW5qZWN0b3IuIEluIHRob3NlIGNhc2VzLCB3ZSBzaW1wbHkgaWdub3JlIHRoaXMgZXZlbnQuXG4gIGlmIChlbnZpcm9ubWVudEluamVjdG9yID09PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qge3N0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50fSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIC8vIElmIG91ciBpbmplY3RvciBoYXMgYWxyZWFkeSBiZWVuIG1hcHBlZCwgYXMgaXMgdGhlIGNhc2VcbiAgLy8gd2hlbiBhIHN0YW5kYWxvbmUgY29tcG9uZW50IGltcG9ydHMgYW5vdGhlciBzdGFuZGFsb25lIGNvbXBvbmVudCxcbiAgLy8gd2UgY29uc2lkZXIgdGhlIG9yaWdpbmFsIGNvbXBvbmVudCAodGhlIGNvbXBvbmVudCBkb2luZyB0aGUgaW1wb3J0aW5nKVxuICAvLyBhcyB0aGUgY29tcG9uZW50IGNvbm5lY3RlZCB0byBvdXIgaW5qZWN0b3IuXG4gIGlmIChzdGFuZGFsb25lSW5qZWN0b3JUb0NvbXBvbmVudC5oYXMoZW52aXJvbm1lbnRJbmplY3RvcikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gSWYgb3VyIGluamVjdG9yIGhhc24ndCBiZWVuIG1hcHBlZCwgdGhlbiB3ZSBtYXAgaXQgdG8gdGhlIHN0YW5kYWxvbmUgY29tcG9uZW50XG4gIHN0YW5kYWxvbmVJbmplY3RvclRvQ29tcG9uZW50LnNldChlbnZpcm9ubWVudEluamVjdG9yLCBzdGFuZGFsb25lQ29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gaXNTdGFuZGFsb25lQ29tcG9uZW50KHZhbHVlOiBUeXBlPHVua25vd24+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGRlZiA9IGdldENvbXBvbmVudERlZih2YWx1ZSk7XG4gIHJldHVybiAhIWRlZj8uc3RhbmRhbG9uZTtcbn1cblxuLyoqXG4gKlxuICogU3RvcmVzIHRoZSBlbWl0dGVkIFByb3ZpZGVyUmVjb3JkcyBmcm9tIHRoZSBJbmplY3RvclByb2ZpbGVyRXZlbnRUeXBlLlByb3ZpZGVyQ29uZmlndXJlZFxuICogZXZlbnQgaW4gZnJhbWV3b3JrRElEZWJ1Z0RhdGEucmVzb2x2ZXJUb1Byb3ZpZGVyc1xuICpcbiAqIEBwYXJhbSBjb250ZXh0IEluamVjdG9yUHJvZmlsZXJDb250ZXh0IHRoZSBpbmplY3Rpb24gY29udGV4dCB0aGF0IHRoaXMgZXZlbnQgb2NjdXJyZWQgaW4uXG4gKiBAcGFyYW0gZGF0YSBQcm92aWRlclJlY29yZCBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgaW5zdGFuY2UgdGhhdCB3YXMganVzdCBjcmVhdGVkXG4gKlxuICovXG5mdW5jdGlvbiBoYW5kbGVQcm92aWRlckNvbmZpZ3VyZWRFdmVudChcbiAgY29udGV4dDogSW5qZWN0b3JQcm9maWxlckNvbnRleHQsXG4gIGRhdGE6IFByb3ZpZGVyUmVjb3JkLFxuKTogdm9pZCB7XG4gIGNvbnN0IHtyZXNvbHZlclRvUHJvdmlkZXJzfSA9IGZyYW1ld29ya0RJRGVidWdEYXRhO1xuXG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IFROb2RlO1xuICBpZiAoY29udGV4dD8uaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yVE5vZGUoY29udGV4dC5pbmplY3RvcikgYXMgVE5vZGU7XG4gIH0gZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGNvbnRleHQuaW5qZWN0b3I7XG4gIH1cblxuICBpZiAoZGlSZXNvbHZlciA9PT0gbnVsbCkge1xuICAgIHRocm93RXJyb3IoJ0EgUHJvdmlkZXJDb25maWd1cmVkIGV2ZW50IG11c3QgYmUgcnVuIHdpdGhpbiBhbiBpbmplY3Rpb24gY29udGV4dC4nKTtcbiAgfVxuXG4gIGlmICghcmVzb2x2ZXJUb1Byb3ZpZGVycy5oYXMoZGlSZXNvbHZlcikpIHtcbiAgICByZXNvbHZlclRvUHJvdmlkZXJzLnNldChkaVJlc29sdmVyLCBbXSk7XG4gIH1cblxuICByZXNvbHZlclRvUHJvdmlkZXJzLmdldChkaVJlc29sdmVyKSEucHVzaChkYXRhKTtcbn1cblxuZnVuY3Rpb24gZ2V0RElSZXNvbHZlcihpbmplY3RvcjogSW5qZWN0b3IgfCB1bmRlZmluZWQpOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCB7XG4gIGxldCBkaVJlc29sdmVyOiBJbmplY3RvciB8IExWaWV3IHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKGluamVjdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZGlSZXNvbHZlcjtcbiAgfVxuXG4gIC8vIFdlIHVzZSB0aGUgTFZpZXcgYXMgdGhlIGRpUmVzb2x2ZXIgZm9yIE5vZGVJbmplY3RvcnMgYmVjYXVzZSB0aGV5XG4gIC8vIGRvIG5vdCBwZXJzaXN0IGFueXdoZXJlIGluIHRoZSBmcmFtZXdvcmsuIFRoZXkgYXJlIHNpbXBseSB3cmFwcGVycyBhcm91bmQgYW4gTFZpZXcgYW5kIGEgVE5vZGVcbiAgLy8gdGhhdCBkbyBwZXJzaXN0LiBCZWNhdXNlIG9mIHRoaXMsIHdlIHJlbHkgb24gdGhlIExWaWV3IG9mIHRoZSBOb2RlSW5qZWN0b3IgaW4gb3JkZXIgdG8gdXNlXG4gIC8vIGFzIGEgY29uY3JldGUga2V5IHRvIHJlcHJlc2VudCB0aGlzIGluamVjdG9yLiBJZiB3ZSBnZXQgdGhlIHNhbWUgTFZpZXcgYmFjayBsYXRlciwgd2Uga25vd1xuICAvLyB3ZSdyZSBsb29raW5nIGF0IHRoZSBzYW1lIGluamVjdG9yLlxuICBpZiAoaW5qZWN0b3IgaW5zdGFuY2VvZiBOb2RlSW5qZWN0b3IpIHtcbiAgICBkaVJlc29sdmVyID0gZ2V0Tm9kZUluamVjdG9yTFZpZXcoaW5qZWN0b3IpO1xuICB9XG4gIC8vIE90aGVyIGluamVjdG9ycyBjYW4gYmUgdXNlZCBhIGtleXMgZm9yIGEgbWFwIGJlY2F1c2UgdGhlaXIgaW5zdGFuY2VzXG4gIC8vIHBlcnNpc3RcbiAgZWxzZSB7XG4gICAgZGlSZXNvbHZlciA9IGluamVjdG9yO1xuICB9XG5cbiAgcmV0dXJuIGRpUmVzb2x2ZXI7XG59XG5cbi8vIGluc3BpcmVkIGJ5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi9tdWx0aXBhZ2UvZXhlY3V0YWJsZS1jb2RlLWFuZC1leGVjdXRpb24tY29udGV4dHMuaHRtbCNzZWMtY2FuYmVoZWxkd2Vha2x5XG5mdW5jdGlvbiBjYW5CZUhlbGRXZWFrbHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyB3ZSBjaGVjayBmb3IgdmFsdWUgIT09IG51bGwgaGVyZSBiZWNhdXNlIHR5cGVvZiBudWxsID09PSAnb2JqZWN0XG4gIHJldHVybiAoXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJylcbiAgKTtcbn1cbiJdfQ==
|
package/esm2022/src/version.mjs
CHANGED
|
@@ -22,5 +22,5 @@ export class Version {
|
|
|
22
22
|
/**
|
|
23
23
|
* @publicApi
|
|
24
24
|
*/
|
|
25
|
-
export const VERSION = new Version('18.1.
|
|
25
|
+
export const VERSION = new Version('18.1.1');
|
|
26
26
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxPQUFPO0lBS2xCLFlBQW1CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgdGhlIHZlcnNpb24gb2YgQW5ndWxhclxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGNsYXNzIFZlcnNpb24ge1xuICBwdWJsaWMgcmVhZG9ubHkgbWFqb3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG1pbm9yOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBwYXRjaDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmdWxsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXJ0cyA9IGZ1bGwuc3BsaXQoJy4nKTtcbiAgICB0aGlzLm1ham9yID0gcGFydHNbMF07XG4gICAgdGhpcy5taW5vciA9IHBhcnRzWzFdO1xuICAgIHRoaXMucGF0Y2ggPSBwYXJ0cy5zbGljZSgyKS5qb2luKCcuJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0=
|
|
@@ -25,10 +25,10 @@ export class Log {
|
|
|
25
25
|
result() {
|
|
26
26
|
return this.logItems.join('; ');
|
|
27
27
|
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: Log, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: Log }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: Log, decorators: [{
|
|
32
32
|
type: Injectable
|
|
33
33
|
}], ctorParameters: () => [] });
|
|
34
34
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS90ZXN0aW5nL3NyYy9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFHekMsTUFBTSxPQUFPLEdBQUc7SUFHZDtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBUTtRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxFQUFFLENBQUMsS0FBUTtRQUNULE9BQU8sR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt5SEF2QlUsR0FBRzs2SEFBSCxHQUFHOztzR0FBSCxHQUFHO2tCQURmLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvZzxUID0gc3RyaW5nPiB7XG4gIGxvZ0l0ZW1zOiBUW107XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5sb2dJdGVtcyA9IFtdO1xuICB9XG5cbiAgYWRkKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy5sb2dJdGVtcy5wdXNoKHZhbHVlKTtcbiAgfVxuXG4gIGZuKHZhbHVlOiBUKSB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRoaXMubG9nSXRlbXMucHVzaCh2YWx1ZSk7XG4gICAgfTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMubG9nSXRlbXMgPSBbXTtcbiAgfVxuXG4gIHJlc3VsdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvZ0l0ZW1zLmpvaW4oJzsgJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{function
|
|
1
|
+
(()=>{function c(t,n,r,o,e,i,a,f){return{eventType:t,event:n,targetElement:r,eic:o,timeStamp:e,eia:i,eirp:a,eiack:f}}function p(t){let n=[],r=e=>{n.push(e)};return{c:t,q:n,et:[],etc:[],d:r,h:e=>{r(c(e.type,e,e.target,t,Date.now()))}}}function s(t,n,r){for(let o=0;o<n.length;o++){let e=n[o];(r?t.etc:t.et).push(e),t.c.addEventListener(e,t.h,r)}}function u(t,n,r,o,e=window){let i=p(t);e._ejsas||(e._ejsas={}),e._ejsas[n]=i,s(i,r),s(i,o,!0)}window.__jsaction_bootstrap=u;})();
|
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v18.1.
|
|
2
|
+
* @license Angular v18.1.1
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';
|
|
8
8
|
import { BehaviorSubject, Subject, Subscription } from 'rxjs';
|
|
9
9
|
import { map, first } from 'rxjs/operators';
|
|
10
|
-
import { Attribute as Attribute$1,
|
|
10
|
+
import { Attribute as Attribute$1, isEarlyEventType, getActionCache, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isCaptureEventType } from '@angular/core/primitives/event-dispatch';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Base URL for the error details page.
|
|
@@ -16381,19 +16381,24 @@ function afterRenderImpl(callbackOrSpec, injector, once, phase) {
|
|
|
16381
16381
|
unregisterFn();
|
|
16382
16382
|
};
|
|
16383
16383
|
const unregisterFn = injector.get(DestroyRef).onDestroy(destroy);
|
|
16384
|
+
let callbacksLeftToRun = 0;
|
|
16384
16385
|
const registerCallback = (phase, phaseCallback) => {
|
|
16385
16386
|
if (!phaseCallback) {
|
|
16386
16387
|
return;
|
|
16387
16388
|
}
|
|
16388
16389
|
const callback = once
|
|
16389
16390
|
? (...args) => {
|
|
16390
|
-
|
|
16391
|
+
callbacksLeftToRun--;
|
|
16392
|
+
if (callbacksLeftToRun < 1) {
|
|
16393
|
+
destroy();
|
|
16394
|
+
}
|
|
16391
16395
|
phaseCallback(...args);
|
|
16392
16396
|
}
|
|
16393
16397
|
: phaseCallback;
|
|
16394
16398
|
const instance = runInInjectionContext(injector, () => new AfterRenderCallback(phase, pipelinedArgs, callback));
|
|
16395
16399
|
callbackHandler.register(instance);
|
|
16396
16400
|
instances.push(instance);
|
|
16401
|
+
callbacksLeftToRun++;
|
|
16397
16402
|
};
|
|
16398
16403
|
registerCallback(AfterRenderPhase.EarlyRead, spec.earlyRead);
|
|
16399
16404
|
registerCallback(AfterRenderPhase.Write, spec.write);
|
|
@@ -17200,7 +17205,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
17200
17205
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
17201
17206
|
if (rootSelectorOrNode) {
|
|
17202
17207
|
// The placeholder will be replaced with the actual version at build time.
|
|
17203
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.
|
|
17208
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.1']);
|
|
17204
17209
|
}
|
|
17205
17210
|
else {
|
|
17206
17211
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -20775,17 +20780,55 @@ function renderDeferBlockState(newState, tNode, lContainer, skipTimerScheduling
|
|
|
20775
20780
|
}
|
|
20776
20781
|
}
|
|
20777
20782
|
/**
|
|
20778
|
-
*
|
|
20779
|
-
*
|
|
20780
|
-
*
|
|
20781
|
-
|
|
20782
|
-
|
|
20783
|
-
|
|
20784
|
-
|
|
20783
|
+
* Checks whether there is a cached injector associated with a given defer block
|
|
20784
|
+
* declaration and returns if it exists. If there is no cached injector present -
|
|
20785
|
+
* creates a new injector and stores in the cache.
|
|
20786
|
+
*/
|
|
20787
|
+
function getOrCreateEnvironmentInjector(parentInjector, tDetails, providers) {
|
|
20788
|
+
return parentInjector
|
|
20789
|
+
.get(CachedInjectorService)
|
|
20790
|
+
.getOrCreateInjector(tDetails, parentInjector, providers, ngDevMode ? 'DeferBlock Injector' : '');
|
|
20791
|
+
}
|
|
20792
|
+
/**
|
|
20793
|
+
* Creates a new injector, which contains providers collected from dependencies (NgModules) of
|
|
20794
|
+
* defer-loaded components. This function detects different types of parent injectors and creates
|
|
20795
|
+
* a new injector based on that.
|
|
20785
20796
|
*/
|
|
20786
|
-
function
|
|
20787
|
-
|
|
20788
|
-
|
|
20797
|
+
function createDeferBlockInjector(parentInjector, tDetails, providers) {
|
|
20798
|
+
// Check if the parent injector is an instance of a `ChainedInjector`.
|
|
20799
|
+
//
|
|
20800
|
+
// In this case, we retain the shape of the injector and use a newly created
|
|
20801
|
+
// `EnvironmentInjector` as a parent in the `ChainedInjector`. That is needed to
|
|
20802
|
+
// make sure that the primary injector gets consulted first (since it's typically
|
|
20803
|
+
// a NodeInjector) and `EnvironmentInjector` tree is consulted after that.
|
|
20804
|
+
if (parentInjector instanceof ChainedInjector) {
|
|
20805
|
+
const origInjector = parentInjector.injector;
|
|
20806
|
+
// Guaranteed to be an environment injector
|
|
20807
|
+
const parentEnvInjector = parentInjector.parentInjector;
|
|
20808
|
+
const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
|
|
20809
|
+
return new ChainedInjector(origInjector, envInjector);
|
|
20810
|
+
}
|
|
20811
|
+
const parentEnvInjector = parentInjector.get(EnvironmentInjector);
|
|
20812
|
+
// If the `parentInjector` is *not* an `EnvironmentInjector` - we need to create
|
|
20813
|
+
// a new `ChainedInjector` with the following setup:
|
|
20814
|
+
//
|
|
20815
|
+
// - the provided `parentInjector` becomes a primary injector
|
|
20816
|
+
// - an existing (real) `EnvironmentInjector` becomes a parent injector for
|
|
20817
|
+
// a newly-created one, which contains extra providers
|
|
20818
|
+
//
|
|
20819
|
+
// So the final order in which injectors would be consulted in this case would look like this:
|
|
20820
|
+
//
|
|
20821
|
+
// 1. Provided `parentInjector`
|
|
20822
|
+
// 2. Newly-created `EnvironmentInjector` with extra providers
|
|
20823
|
+
// 3. `EnvironmentInjector` from the `parentInjector`
|
|
20824
|
+
if (parentEnvInjector !== parentInjector) {
|
|
20825
|
+
const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
|
|
20826
|
+
return new ChainedInjector(parentInjector, envInjector);
|
|
20827
|
+
}
|
|
20828
|
+
// The `parentInjector` is an instance of an `EnvironmentInjector`.
|
|
20829
|
+
// No need for special handling, we can use `parentInjector` as a
|
|
20830
|
+
// parent injector directly.
|
|
20831
|
+
return getOrCreateEnvironmentInjector(parentInjector, tDetails, providers);
|
|
20789
20832
|
}
|
|
20790
20833
|
/**
|
|
20791
20834
|
* Applies changes to the DOM to reflect a given state.
|
|
@@ -20807,32 +20850,12 @@ function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView)
|
|
|
20807
20850
|
// newly loaded standalone components used within the block, which may
|
|
20808
20851
|
// import NgModules with providers. In order to make those providers
|
|
20809
20852
|
// available for components declared in that NgModule, we create an instance
|
|
20810
|
-
// of environment injector to host those providers and pass this injector
|
|
20853
|
+
// of an environment injector to host those providers and pass this injector
|
|
20811
20854
|
// to the logic that creates a view.
|
|
20812
20855
|
const tDetails = getTDeferBlockDetails(hostTView, tNode);
|
|
20813
20856
|
const providers = tDetails.providers;
|
|
20814
20857
|
if (providers && providers.length > 0) {
|
|
20815
|
-
|
|
20816
|
-
// Note: we have a special case for Router's `OutletInjector`,
|
|
20817
|
-
// since it's not an instance of the `EnvironmentInjector`, so
|
|
20818
|
-
// we can't inject it. Once the `OutletInjector` is replaced
|
|
20819
|
-
// with the `EnvironmentInjector` in Router's code, this special
|
|
20820
|
-
// handling can be removed.
|
|
20821
|
-
const isParentOutletInjector = isRouterOutletInjector(parentInjector);
|
|
20822
|
-
const parentEnvInjector = isParentOutletInjector
|
|
20823
|
-
? parentInjector
|
|
20824
|
-
: parentInjector.get(EnvironmentInjector);
|
|
20825
|
-
injector = parentEnvInjector
|
|
20826
|
-
.get(CachedInjectorService)
|
|
20827
|
-
.getOrCreateInjector(tDetails, parentEnvInjector, providers, ngDevMode ? 'DeferBlock Injector' : '');
|
|
20828
|
-
// Note: this is a continuation of the special case for Router's `OutletInjector`.
|
|
20829
|
-
// Since the `OutletInjector` handles `ActivatedRoute` and `ChildrenOutletContexts`
|
|
20830
|
-
// dynamically (i.e. their values are not really stored statically in an injector),
|
|
20831
|
-
// we need to "wrap" a defer injector into another `OutletInjector`, so we retain
|
|
20832
|
-
// the dynamic resolution of the mentioned tokens.
|
|
20833
|
-
if (isParentOutletInjector) {
|
|
20834
|
-
injector = createRouterOutletInjector(parentInjector, injector);
|
|
20835
|
-
}
|
|
20858
|
+
injector = createDeferBlockInjector(hostLView[INJECTOR], tDetails, providers);
|
|
20836
20859
|
}
|
|
20837
20860
|
}
|
|
20838
20861
|
const dehydratedView = findMatchingDehydratedView(lContainer, activeBlockTNode.tView.ssrId);
|
|
@@ -30980,7 +31003,7 @@ class Version {
|
|
|
30980
31003
|
/**
|
|
30981
31004
|
* @publicApi
|
|
30982
31005
|
*/
|
|
30983
|
-
const VERSION = new Version('18.1.
|
|
31006
|
+
const VERSION = new Version('18.1.1');
|
|
30984
31007
|
|
|
30985
31008
|
/*
|
|
30986
31009
|
* This file exists to support compilation of @angular/core in Ivy mode.
|
|
@@ -31177,7 +31200,8 @@ function handleInstanceCreatedByInjectorEvent(context, data) {
|
|
|
31177
31200
|
if (typeof value === 'object') {
|
|
31178
31201
|
standaloneComponent = value?.constructor;
|
|
31179
31202
|
}
|
|
31180
|
-
if
|
|
31203
|
+
// We want to also cover if `standaloneComponent === null` in addition to `undefined`
|
|
31204
|
+
if (standaloneComponent == undefined || !isStandaloneComponent(standaloneComponent)) {
|
|
31181
31205
|
return;
|
|
31182
31206
|
}
|
|
31183
31207
|
const environmentInjector = context.injector.get(EnvironmentInjector, null, { optional: true });
|
|
@@ -36795,16 +36819,16 @@ class GlobalEventDelegation {
|
|
|
36795
36819
|
ngOnDestroy() {
|
|
36796
36820
|
this.eventContractDetails.instance?.cleanUp();
|
|
36797
36821
|
}
|
|
36798
|
-
supports(
|
|
36799
|
-
return
|
|
36822
|
+
supports(eventType) {
|
|
36823
|
+
return isEarlyEventType(eventType);
|
|
36800
36824
|
}
|
|
36801
|
-
addEventListener(element,
|
|
36802
|
-
this.eventContractDetails.instance.addEvent(
|
|
36803
|
-
|
|
36804
|
-
return () => this.removeEventListener(element,
|
|
36825
|
+
addEventListener(element, eventType, handler) {
|
|
36826
|
+
this.eventContractDetails.instance.addEvent(eventType);
|
|
36827
|
+
getActionCache(element)[eventType] = '';
|
|
36828
|
+
return () => this.removeEventListener(element, eventType, handler);
|
|
36805
36829
|
}
|
|
36806
|
-
removeEventListener(element,
|
|
36807
|
-
|
|
36830
|
+
removeEventListener(element, eventType, callback) {
|
|
36831
|
+
getActionCache(element)[eventType] = undefined;
|
|
36808
36832
|
}
|
|
36809
36833
|
static { this.ɵfac = function GlobalEventDelegation_Factory(t) { return new (t || GlobalEventDelegation)(); }; }
|
|
36810
36834
|
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac }); }
|
|
@@ -36822,7 +36846,6 @@ const initGlobalEventDelegation = (eventContractDetails, injector) => {
|
|
|
36822
36846
|
registerDispatcher(eventContract, dispatcher);
|
|
36823
36847
|
};
|
|
36824
36848
|
|
|
36825
|
-
const CONTRACT_PROPERTY = 'ngContracts';
|
|
36826
36849
|
/**
|
|
36827
36850
|
* A set of DOM elements with `jsaction` attributes.
|
|
36828
36851
|
*/
|
|
@@ -36852,7 +36875,7 @@ function withEventReplay() {
|
|
|
36852
36875
|
// is enabled, but there are no events configured in this application, in which case
|
|
36853
36876
|
// we don't activate this feature, since there are no events to replay.
|
|
36854
36877
|
const appId = inject(APP_ID);
|
|
36855
|
-
isEnabled = !!
|
|
36878
|
+
isEnabled = !!window._ejsas?.[appId];
|
|
36856
36879
|
}
|
|
36857
36880
|
if (isEnabled) {
|
|
36858
36881
|
performanceMarkFeature('NgEventReplay');
|
|
@@ -36902,15 +36925,10 @@ function withEventReplay() {
|
|
|
36902
36925
|
},
|
|
36903
36926
|
];
|
|
36904
36927
|
}
|
|
36905
|
-
// TODO: Upstream this back into event-dispatch.
|
|
36906
|
-
function getJsactionData(container) {
|
|
36907
|
-
return container._ejsa;
|
|
36908
|
-
}
|
|
36909
36928
|
const initEventReplay = (eventDelegation, injector) => {
|
|
36910
36929
|
const appId = injector.get(APP_ID);
|
|
36911
36930
|
// This is set in packages/platform-server/src/utils.ts
|
|
36912
|
-
const
|
|
36913
|
-
const earlyJsactionData = getJsactionData(container);
|
|
36931
|
+
const earlyJsactionData = window._ejsas[appId];
|
|
36914
36932
|
const eventContract = (eventDelegation.instance = new EventContract(new EventContractContainer(earlyJsactionData.c),
|
|
36915
36933
|
/* useActionResolver= */ false));
|
|
36916
36934
|
for (const et of earlyJsactionData.et) {
|
|
@@ -36919,7 +36937,8 @@ const initEventReplay = (eventDelegation, injector) => {
|
|
|
36919
36937
|
for (const et of earlyJsactionData.etc) {
|
|
36920
36938
|
eventContract.addEvent(et);
|
|
36921
36939
|
}
|
|
36922
|
-
eventContract.replayEarlyEvents(
|
|
36940
|
+
eventContract.replayEarlyEvents(earlyJsactionData);
|
|
36941
|
+
window._ejsas[appId] = undefined;
|
|
36923
36942
|
const dispatcher = new EventDispatcher(invokeRegisteredListeners);
|
|
36924
36943
|
registerDispatcher(eventContract, dispatcher);
|
|
36925
36944
|
};
|
|
@@ -36928,11 +36947,11 @@ const initEventReplay = (eventDelegation, injector) => {
|
|
|
36928
36947
|
* LView. Maps collected events to a corresponding DOM element (an element is used as a key).
|
|
36929
36948
|
*/
|
|
36930
36949
|
function collectDomEventsInfo(tView, lView, eventTypesToReplay) {
|
|
36931
|
-
const
|
|
36950
|
+
const domEventsInfo = new Map();
|
|
36932
36951
|
const lCleanup = lView[CLEANUP];
|
|
36933
36952
|
const tCleanup = tView.cleanup;
|
|
36934
36953
|
if (!tCleanup || !lCleanup) {
|
|
36935
|
-
return
|
|
36954
|
+
return domEventsInfo;
|
|
36936
36955
|
}
|
|
36937
36956
|
for (let i = 0; i < tCleanup.length;) {
|
|
36938
36957
|
const firstParam = tCleanup[i++];
|
|
@@ -36940,15 +36959,15 @@ function collectDomEventsInfo(tView, lView, eventTypesToReplay) {
|
|
|
36940
36959
|
if (typeof firstParam !== 'string') {
|
|
36941
36960
|
continue;
|
|
36942
36961
|
}
|
|
36943
|
-
const
|
|
36944
|
-
if (!
|
|
36962
|
+
const eventType = firstParam;
|
|
36963
|
+
if (!isEarlyEventType(eventType)) {
|
|
36945
36964
|
continue;
|
|
36946
36965
|
}
|
|
36947
|
-
if (
|
|
36948
|
-
eventTypesToReplay.capture.add(
|
|
36966
|
+
if (isCaptureEventType(eventType)) {
|
|
36967
|
+
eventTypesToReplay.capture.add(eventType);
|
|
36949
36968
|
}
|
|
36950
36969
|
else {
|
|
36951
|
-
eventTypesToReplay.regular.add(
|
|
36970
|
+
eventTypesToReplay.regular.add(eventType);
|
|
36952
36971
|
}
|
|
36953
36972
|
const listenerElement = unwrapRNode(lView[secondParam]);
|
|
36954
36973
|
i++; // move the cursor to the next position (location of the listener idx)
|
|
@@ -36960,14 +36979,14 @@ function collectDomEventsInfo(tView, lView, eventTypesToReplay) {
|
|
|
36960
36979
|
if (!isDomEvent) {
|
|
36961
36980
|
continue;
|
|
36962
36981
|
}
|
|
36963
|
-
if (!
|
|
36964
|
-
|
|
36982
|
+
if (!domEventsInfo.has(listenerElement)) {
|
|
36983
|
+
domEventsInfo.set(listenerElement, [eventType]);
|
|
36965
36984
|
}
|
|
36966
36985
|
else {
|
|
36967
|
-
|
|
36986
|
+
domEventsInfo.get(listenerElement).push(eventType);
|
|
36968
36987
|
}
|
|
36969
36988
|
}
|
|
36970
|
-
return
|
|
36989
|
+
return domEventsInfo;
|
|
36971
36990
|
}
|
|
36972
36991
|
|
|
36973
36992
|
/**
|