@fundamental-ngx/cdk 0.41.1-rc.8 → 0.42.0-rc.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.
- package/esm2020/utils/async-strategy/function-strategy.class.mjs +12 -0
- package/esm2020/utils/async-strategy/index.mjs +7 -0
- package/esm2020/utils/async-strategy/observable-strategy.class.mjs +13 -0
- package/esm2020/utils/async-strategy/promise-strategy.class.mjs +12 -0
- package/esm2020/utils/async-strategy/select-strategy.class.mjs +23 -0
- package/esm2020/utils/async-strategy/subscription-strategy.interface.mjs +2 -0
- package/esm2020/utils/async-strategy/value-strategy.class.mjs +10 -0
- package/esm2020/utils/directives/initial-focus/initial-focus.directive.mjs +34 -13
- package/esm2020/utils/directives/overflow-list/overflow-list.directive.mjs +4 -2
- package/esm2020/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +22 -6
- package/esm2020/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +101 -42
- package/esm2020/utils/drag-and-drop/dnd.interfaces.mjs +1 -1
- package/esm2020/utils/dynamic-component/dynamic-component-container.mjs +4 -1
- package/esm2020/utils/index.mjs +2 -1
- package/fesm2015/fundamental-ngx-cdk-utils.mjs +1738 -1575
- package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-cdk-utils.mjs +1713 -1552
- package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fundamental-ngx-cdk-v0.42.0-rc.0.tgz +0 -0
- package/package.json +2 -2
- package/utils/async-strategy/function-strategy.class.d.ts +8 -0
- package/utils/async-strategy/index.d.ts +6 -0
- package/utils/async-strategy/observable-strategy.class.d.ts +9 -0
- package/utils/async-strategy/promise-strategy.class.d.ts +8 -0
- package/utils/async-strategy/select-strategy.class.d.ts +8 -0
- package/utils/async-strategy/subscription-strategy.interface.d.ts +10 -0
- package/utils/async-strategy/value-strategy.class.d.ts +8 -0
- package/utils/directives/initial-focus/initial-focus.directive.d.ts +10 -5
- package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +16 -7
- package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +36 -15
- package/utils/drag-and-drop/dnd.interfaces.d.ts +10 -7
- package/utils/index.d.ts +1 -0
- package/fundamental-ngx-cdk-v0.41.1-rc.8.tgz +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { isFunction } from '../typecheck';
|
|
2
|
+
/**
|
|
3
|
+
* @description Executes function and passes returned value into callback function.
|
|
4
|
+
*/
|
|
5
|
+
export class FunctionStrategy {
|
|
6
|
+
/** @hidden */
|
|
7
|
+
createSubscription(fn, updateLatestValue) {
|
|
8
|
+
const result = isFunction(fn) ? fn() : fn;
|
|
9
|
+
return Promise.resolve(result).then(updateLatestValue);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tc3RyYXRlZ3kuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2FzeW5jLXN0cmF0ZWd5L2Z1bmN0aW9uLXN0cmF0ZWd5LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3pCLGNBQWM7SUFDZCxrQkFBa0IsQ0FBQyxFQUFXLEVBQUUsaUJBQWdDO1FBQzVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFRLEVBQVMsQ0FBQztRQUN4RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVjaGVjayc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25TdHJhdGVneSB9IGZyb20gJy4vc3Vic2NyaXB0aW9uLXN0cmF0ZWd5LmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGZ1bmN0aW9uIGFuZCBwYXNzZXMgcmV0dXJuZWQgdmFsdWUgaW50byBjYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uU3RyYXRlZ3k8VD4gaW1wbGVtZW50cyBTdWJzY3JpcHRpb25TdHJhdGVneTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjcmVhdGVTdWJzY3JpcHRpb24oZm46ICgpID0+IFQsIHVwZGF0ZUxhdGVzdFZhbHVlOiAodjogVCkgPT4gYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGlzRnVuY3Rpb24oZm4pID8gZm4oKSA6ICgoPGFueT5mbikgYXMgVCk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzdWx0KS50aGVuKHVwZGF0ZUxhdGVzdFZhbHVlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './function-strategy.class';
|
|
2
|
+
export * from './observable-strategy.class';
|
|
3
|
+
export * from './promise-strategy.class';
|
|
4
|
+
export * from './select-strategy.class';
|
|
5
|
+
export * from './value-strategy.class';
|
|
6
|
+
export * from './subscription-strategy.interface';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2FzeW5jLXN0cmF0ZWd5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mdW5jdGlvbi1zdHJhdGVneS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmFibGUtc3RyYXRlZ3kuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9taXNlLXN0cmF0ZWd5LmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LXN0cmF0ZWd5LmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vdmFsdWUtc3RyYXRlZ3kuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpcHRpb24tc3RyYXRlZ3kuaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { firstValueFrom } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* @description Converts observable into Promise and passes returned value into callback function.
|
|
4
|
+
*/
|
|
5
|
+
export class ObservableStrategy {
|
|
6
|
+
/** @hidden */
|
|
7
|
+
createSubscription(async, updateLatestValue) {
|
|
8
|
+
return firstValueFrom(async).then(updateLatestValue, (e) => {
|
|
9
|
+
console.error(e);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1zdHJhdGVneS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvYXN5bmMtc3RyYXRlZ3kvb2JzZXJ2YWJsZS1zdHJhdGVneS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixjQUFjO0lBQ2Qsa0JBQWtCLENBQUMsS0FBb0IsRUFBRSxpQkFBc0I7UUFDM0QsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25TdHJhdGVneSB9IGZyb20gJy4vc3Vic2NyaXB0aW9uLXN0cmF0ZWd5LmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnZlcnRzIG9ic2VydmFibGUgaW50byBQcm9taXNlIGFuZCBwYXNzZXMgcmV0dXJuZWQgdmFsdWUgaW50byBjYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIE9ic2VydmFibGVTdHJhdGVneTxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvblN0cmF0ZWd5PFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNyZWF0ZVN1YnNjcmlwdGlvbihhc3luYzogT2JzZXJ2YWJsZTxUPiwgdXBkYXRlTGF0ZXN0VmFsdWU6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oYXN5bmMpLnRoZW4odXBkYXRlTGF0ZXN0VmFsdWUsIChlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description awaits for promise to resolve it's value and passes returned value into callback function.
|
|
3
|
+
*/
|
|
4
|
+
export class PromiseStrategy {
|
|
5
|
+
/** @hidden */
|
|
6
|
+
createSubscription(async, updateLatestValue) {
|
|
7
|
+
return async.then(updateLatestValue, (e) => {
|
|
8
|
+
console.error(e);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS1zdHJhdGVneS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvYXN5bmMtc3RyYXRlZ3kvcHJvbWlzZS1zdHJhdGVneS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ3hCLGNBQWM7SUFDZCxrQkFBa0IsQ0FBQyxLQUFpQixFQUFFLGlCQUFnQztRQUNsRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL3N1YnNjcmlwdGlvbi1zdHJhdGVneS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBhd2FpdHMgZm9yIHByb21pc2UgdG8gcmVzb2x2ZSBpdCdzIHZhbHVlIGFuZCBwYXNzZXMgcmV0dXJuZWQgdmFsdWUgaW50byBjYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb21pc2VTdHJhdGVneTxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvblN0cmF0ZWd5PFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNyZWF0ZVN1YnNjcmlwdGlvbihhc3luYzogUHJvbWlzZTxUPiwgdXBkYXRlTGF0ZXN0VmFsdWU6ICh2OiBUKSA9PiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIGFzeW5jLnRoZW4odXBkYXRlTGF0ZXN0VmFsdWUsIChlKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { isFunction, isPromise, isSubscribable } from '../typecheck';
|
|
2
|
+
import { FunctionStrategy } from './function-strategy.class';
|
|
3
|
+
import { ObservableStrategy } from './observable-strategy.class';
|
|
4
|
+
import { PromiseStrategy } from './promise-strategy.class';
|
|
5
|
+
import { ValueStrategy } from './value-strategy.class';
|
|
6
|
+
/**
|
|
7
|
+
* @description Selects appropriate strategy on how to resolve function value
|
|
8
|
+
* @param obj object to get value from
|
|
9
|
+
* @returns appropriate strategy to retrieve value from the object
|
|
10
|
+
*/
|
|
11
|
+
export function selectStrategy(obj) {
|
|
12
|
+
if (isPromise(obj)) {
|
|
13
|
+
return new PromiseStrategy();
|
|
14
|
+
}
|
|
15
|
+
if (isSubscribable(obj)) {
|
|
16
|
+
return new ObservableStrategy();
|
|
17
|
+
}
|
|
18
|
+
if (isFunction(obj)) {
|
|
19
|
+
return new FunctionStrategy();
|
|
20
|
+
}
|
|
21
|
+
return new ValueStrategy();
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXN0cmF0ZWd5LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9hc3luYy1zdHJhdGVneS9zZWxlY3Qtc3RyYXRlZ3kuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQVUsR0FBa0Q7SUFDdEYsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxJQUFJLGVBQWUsRUFBSyxDQUFDO0tBQ25DO0lBRUQsSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDckIsT0FBTyxJQUFJLGtCQUFrQixFQUFLLENBQUM7S0FDdEM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqQixPQUFPLElBQUksZ0JBQWdCLEVBQUssQ0FBQztLQUNwQztJQUVELE9BQU8sSUFBSSxhQUFhLEVBQUssQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNQcm9taXNlLCBpc1N1YnNjcmliYWJsZSB9IGZyb20gJy4uL3R5cGVjaGVjayc7XG5cbmltcG9ydCB7IEZ1bmN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2Z1bmN0aW9uLXN0cmF0ZWd5LmNsYXNzJztcbmltcG9ydCB7IE9ic2VydmFibGVTdHJhdGVneSB9IGZyb20gJy4vb2JzZXJ2YWJsZS1zdHJhdGVneS5jbGFzcyc7XG5pbXBvcnQgeyBQcm9taXNlU3RyYXRlZ3kgfSBmcm9tICcuL3Byb21pc2Utc3RyYXRlZ3kuY2xhc3MnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL3N1YnNjcmlwdGlvbi1zdHJhdGVneS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVmFsdWVTdHJhdGVneSB9IGZyb20gJy4vdmFsdWUtc3RyYXRlZ3kuY2xhc3MnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTZWxlY3RzIGFwcHJvcHJpYXRlIHN0cmF0ZWd5IG9uIGhvdyB0byByZXNvbHZlIGZ1bmN0aW9uIHZhbHVlXG4gKiBAcGFyYW0gb2JqIG9iamVjdCB0byBnZXQgdmFsdWUgZnJvbVxuICogQHJldHVybnMgYXBwcm9wcmlhdGUgc3RyYXRlZ3kgdG8gcmV0cmlldmUgdmFsdWUgZnJvbSB0aGUgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RTdHJhdGVneTxUID0gYW55PihvYmo6IE9ic2VydmFibGU8VD4gfCBQcm9taXNlPFQ+IHwgKCgpID0+IHZvaWQpIHwgVCk6IFN1YnNjcmlwdGlvblN0cmF0ZWd5PFQ+IHtcbiAgICBpZiAoaXNQcm9taXNlKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlU3RyYXRlZ3k8VD4oKTtcbiAgICB9XG5cbiAgICBpZiAoaXNTdWJzY3JpYmFibGUob2JqKSkge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVTdHJhdGVneTxUPigpO1xuICAgIH1cblxuICAgIGlmIChpc0Z1bmN0aW9uKG9iaikpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGdW5jdGlvblN0cmF0ZWd5PFQ+KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBWYWx1ZVN0cmF0ZWd5PFQ+KCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLXN0cmF0ZWd5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvYXN5bmMtc3RyYXRlZ3kvc3Vic2NyaXB0aW9uLXN0cmF0ZWd5LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvblN0cmF0ZWd5PFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXdhaXRzIG9iamVjdCB0byByZXNvbHZlIGl0J3MgdmFsdWUgYW5kIHBhc3NlcyBpdCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIG9iaiBPYmplY3QgdG8gYmUgYXdhaXRlZC5cbiAgICAgKiBAcGFyYW0gdXBkYXRlTGF0ZXN0VmFsdWUgQ2FsbGJhY2sgZnVuY3Rpb24gd2hlcmUgYXdhaXRlZCB2YWx1ZSB3aWxsIGJlIHBhc3NlZC5cbiAgICAgKiBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIGNyZWF0ZVN1YnNjcmlwdGlvbihcbiAgICAgICAgb2JqOiBPYnNlcnZhYmxlPFQ+IHwgUHJvbWlzZTxUPiB8ICgoKSA9PiB2b2lkKSB8IFQsXG4gICAgICAgIHVwZGF0ZUxhdGVzdFZhbHVlOiAodmFsdWU6IFQpID0+IHZvaWRcbiAgICApOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Passes value object into callback function.
|
|
3
|
+
*/
|
|
4
|
+
export class ValueStrategy {
|
|
5
|
+
/** @hidden */
|
|
6
|
+
createSubscription(value, updateLatestValue) {
|
|
7
|
+
return Promise.resolve(value).then(updateLatestValue);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtc3RyYXRlZ3kuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2FzeW5jLXN0cmF0ZWd5L3ZhbHVlLXN0cmF0ZWd5LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFDdEIsY0FBYztJQUNkLGtCQUFrQixDQUFDLEtBQVEsRUFBRSxpQkFBZ0M7UUFDekQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9zdWJzY3JpcHRpb24tc3RyYXRlZ3kuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUGFzc2VzIHZhbHVlIG9iamVjdCBpbnRvIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgVmFsdWVTdHJhdGVneTxUPiBpbXBsZW1lbnRzIFN1YnNjcmlwdGlvblN0cmF0ZWd5PFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNyZWF0ZVN1YnNjcmlwdGlvbih2YWx1ZTogVCwgdXBkYXRlTGF0ZXN0VmFsdWU6ICh2OiBUKSA9PiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh2YWx1ZSkudGhlbih1cGRhdGVMYXRlc3RWYWx1ZSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input, NgZone } from '@angular/core';
|
|
2
|
-
import {
|
|
1
|
+
import { Directive, ElementRef, inject, Input, NgZone } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { distinctUntilChanged, filter, take, takeUntil } from 'rxjs/operators';
|
|
3
4
|
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
5
|
+
import { DestroyedService } from '../../services';
|
|
4
6
|
import { TabbableElementService } from '../../services/tabbable-element.service';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
8
|
import * as i1 from "../../services/tabbable-element.service";
|
|
@@ -28,27 +30,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
28
30
|
}]
|
|
29
31
|
}] });
|
|
30
32
|
export class InitialFocusDirective {
|
|
33
|
+
/**
|
|
34
|
+
* Whether initial focus enabled for a current element.
|
|
35
|
+
*/
|
|
36
|
+
set enabled(value) {
|
|
37
|
+
if (value === this.enabled) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
this._enabled$.next(value);
|
|
41
|
+
}
|
|
42
|
+
get enabled() {
|
|
43
|
+
return this._enabled$.getValue();
|
|
44
|
+
}
|
|
31
45
|
/** @hidden */
|
|
32
46
|
constructor(_elmRef, _ngZone, _tabbableService) {
|
|
33
47
|
this._elmRef = _elmRef;
|
|
34
48
|
this._ngZone = _ngZone;
|
|
35
49
|
this._tabbableService = _tabbableService;
|
|
36
50
|
/**
|
|
37
|
-
* CSS selector of element that should be focused.
|
|
51
|
+
* CSS selector of an element that should be focused.
|
|
38
52
|
*/
|
|
39
53
|
this.focusableItem = '.fd-initial-focus-item';
|
|
54
|
+
/** @hidden */
|
|
55
|
+
this._destroy$ = inject(DestroyedService);
|
|
56
|
+
/** @hidden */
|
|
57
|
+
this._enabled$ = new BehaviorSubject(true);
|
|
40
58
|
/**
|
|
41
|
-
* Whether
|
|
42
|
-
*/
|
|
43
|
-
this.enabled = true;
|
|
44
|
-
/**
|
|
45
|
-
* Whether to focus last element in found array of elements.
|
|
59
|
+
* Whether to focus last element in a found array of elements.
|
|
46
60
|
*/
|
|
47
61
|
this.focusLastElement = false;
|
|
48
62
|
}
|
|
49
63
|
/** @hidden */
|
|
50
64
|
ngAfterViewInit() {
|
|
51
|
-
this.
|
|
65
|
+
this._enabled$
|
|
66
|
+
.pipe(distinctUntilChanged(), filter((enabled) => enabled), takeUntil(this._destroy$))
|
|
67
|
+
.subscribe(() => {
|
|
68
|
+
this._executeOnEmpty(() => this._focus());
|
|
69
|
+
});
|
|
52
70
|
}
|
|
53
71
|
/**
|
|
54
72
|
* @hidden
|
|
@@ -64,7 +82,7 @@ export class InitialFocusDirective {
|
|
|
64
82
|
}
|
|
65
83
|
/**
|
|
66
84
|
* @hidden
|
|
67
|
-
* Searches for appropriate focusable element
|
|
85
|
+
* Searches for an appropriate focusable element
|
|
68
86
|
*/
|
|
69
87
|
_getFocusableElement() {
|
|
70
88
|
if (!this.focusableItem) {
|
|
@@ -74,7 +92,7 @@ export class InitialFocusDirective {
|
|
|
74
92
|
if (autoFocusableItems.length > 0) {
|
|
75
93
|
return !this.focusLastElement ? autoFocusableItems[0] : autoFocusableItems[autoFocusableItems.length - 1];
|
|
76
94
|
}
|
|
77
|
-
// If no elements found, fallback to first tabbable element.
|
|
95
|
+
// If no elements found, fallback to a first tabbable element.
|
|
78
96
|
return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);
|
|
79
97
|
}
|
|
80
98
|
/** @hidden */
|
|
@@ -82,11 +100,13 @@ export class InitialFocusDirective {
|
|
|
82
100
|
if (!this.enabled) {
|
|
83
101
|
return;
|
|
84
102
|
}
|
|
85
|
-
this._getFocusableElement()
|
|
103
|
+
const elm = this._getFocusableElement();
|
|
104
|
+
elm?.focus();
|
|
86
105
|
}
|
|
87
106
|
}
|
|
88
107
|
InitialFocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: InitialFocusDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.TabbableElementService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
89
108
|
InitialFocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: InitialFocusDirective, isStandalone: true, selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: { focusableItem: ["fd-initial-focus", "focusableItem"], enabled: "enabled", focusLastElement: "focusLastElement" }, providers: [
|
|
109
|
+
DestroyedService,
|
|
90
110
|
TabbableElementService,
|
|
91
111
|
{
|
|
92
112
|
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
@@ -99,6 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
99
119
|
selector: '[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]',
|
|
100
120
|
standalone: true,
|
|
101
121
|
providers: [
|
|
122
|
+
DestroyedService,
|
|
102
123
|
TabbableElementService,
|
|
103
124
|
{
|
|
104
125
|
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
@@ -114,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
114
135
|
}], focusLastElement: [{
|
|
115
136
|
type: Input
|
|
116
137
|
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1mb2N1cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvaW5pdGlhbC1mb2N1cy9pbml0aWFsLWZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxrQkFBa0IsRUFDckIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7O0FBYWpGLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxrQkFBa0I7OzRIQUExRCwrQkFBK0I7Z0hBQS9CLCtCQUErQixtRkFQN0I7UUFDUDtZQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLHNDQUFzQyxDQUFDO1NBQzVGO0tBQ0o7MkZBRVEsK0JBQStCO2tCQVgzQyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsbUJBQW1CLEVBQUUsc0NB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QUFFLENBQUM7UUFDeEMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7O2tIQTlGUSxxQkFBcUI7c0dBQXJCLHFCQUFxQixrT0FUbkI7UUFDUCxnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCO1lBQ0ksT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsbUJBQW1CLEVBQUUsc0NBQXNDLENBQUM7U0FDNUY7S0FDSjsyRkFFUSxxQkFBcUI7a0JBWmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlEQUF5RDtvQkFDbkUsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEI7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLHNDQUFzQyxDQUFDO3lCQUM1RjtxQkFDSjtpQkFDSjsySkFNRyxhQUFhO3NCQURaLEtBQUs7dUJBQUMsa0JBQWtCO2dCQU9yQixPQUFPO3NCQURWLEtBQUs7Z0JBc0JOLGdCQUFnQjtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuaW1wb3J0IHsgRGVzdHJveWVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFRhYmJhYmxlRWxlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJiYWJsZS1lbGVtZW50LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkSW5pdGlhbEZvY3VzXSwgW2ZkLWluaXRpYWwtZm9jdXNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtJbml0aWFsRm9jdXNdJywgJ1tmZEluaXRpYWxGb2N1c10sIFtmZC1pbml0aWFsLWZvY3VzXScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRJbml0aWFsRm9jdXNEaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrSW5pdGlhbEZvY3VzXSwgW2ZkSW5pdGlhbEZvY3VzXSwgW2ZkLWluaXRpYWwtZm9jdXNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlLFxuICAgICAgICBUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtJbml0aWFsRm9jdXNdJywgJ1tmZEluaXRpYWxGb2N1c10sIFtmZC1pbml0aWFsLWZvY3VzXScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEluaXRpYWxGb2N1c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIENTUyBzZWxlY3RvciBvZiBhbiBlbGVtZW50IHRoYXQgc2hvdWxkIGJlIGZvY3VzZWQuXG4gICAgICovXG4gICAgQElucHV0KCdmZC1pbml0aWFsLWZvY3VzJylcbiAgICBmb2N1c2FibGVJdGVtID0gJy5mZC1pbml0aWFsLWZvY3VzLWl0ZW0nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBpbml0aWFsIGZvY3VzIGVuYWJsZWQgZm9yIGEgY3VycmVudCBlbGVtZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLmVuYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbmFibGVkJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGluamVjdChEZXN0cm95ZWRTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZW5hYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBmb2N1cyBsYXN0IGVsZW1lbnQgaW4gYSBmb3VuZCBhcnJheSBvZiBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvY3VzTGFzdEVsZW1lbnQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsbVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJiYWJsZVNlcnZpY2U6IFRhYmJhYmxlRWxlbWVudFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZW5hYmxlZCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChlbmFibGVkKSA9PiBlbmFibGVkKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9leGVjdXRlT25FbXB0eSgoKSA9PiB0aGlzLl9mb2N1cygpKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBFeGVjdXRlcyBhIGZ1bmN0aW9uIHdoZW4gdGhlIHpvbmUgaXMgc3RhYmxlLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2V4ZWN1dGVPbkVtcHR5KGZuOiAoKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9uZ1pvbmUuaGFzUGVuZGluZ01pY3JvdGFza3MpIHtcbiAgICAgICAgICAgIGZuKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9uZ1pvbmUub25NaWNyb3Rhc2tFbXB0eS5waXBlKHRha2UoMSkpLnN1YnNjcmliZShmbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogU2VhcmNoZXMgZm9yIGFuIGFwcHJvcHJpYXRlIGZvY3VzYWJsZSBlbGVtZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0Rm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgICAgICBpZiAoIXRoaXMuZm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmJhYmxlU2VydmljZS5nZXRUYWJiYWJsZUVsZW1lbnQodGhpcy5fZWxtUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNMYXN0RWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhdXRvRm9jdXNhYmxlSXRlbXMgPSB0aGlzLl9lbG1SZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgdGhpcy5mb2N1c2FibGVJdGVtXG4gICAgICAgICkgYXMgTm9kZUxpc3RPZjxIVE1MRWxlbWVudD47XG5cbiAgICAgICAgaWYgKGF1dG9Gb2N1c2FibGVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gIXRoaXMuZm9jdXNMYXN0RWxlbWVudCA/IGF1dG9Gb2N1c2FibGVJdGVtc1swXSA6IGF1dG9Gb2N1c2FibGVJdGVtc1thdXRvRm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBubyBlbGVtZW50cyBmb3VuZCwgZmFsbGJhY2sgdG8gYSBmaXJzdCB0YWJiYWJsZSBlbGVtZW50LlxuICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmFibGVTZXJ2aWNlLmdldFRhYmJhYmxlRWxlbWVudCh0aGlzLl9lbG1SZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c0xhc3RFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVsbSA9IHRoaXMuX2dldEZvY3VzYWJsZUVsZW1lbnQoKTtcbiAgICAgICAgZWxtPy5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -70,7 +70,9 @@ export class OverflowListDirective {
|
|
|
70
70
|
getAmountOfExtraItems() {
|
|
71
71
|
const elements = this.overflowItems.toArray().map((item) => item.el.nativeElement);
|
|
72
72
|
const computed = getComputedStyle(this._el.nativeElement);
|
|
73
|
-
const contentWidth = this._el.nativeElement.clientWidth -
|
|
73
|
+
const contentWidth = this._el.nativeElement.clientWidth -
|
|
74
|
+
parseFloat(computed.paddingLeft || '0') -
|
|
75
|
+
parseFloat(computed.paddingRight || '0');
|
|
74
76
|
return this._checkWidthWithOffset(elements, contentWidth);
|
|
75
77
|
}
|
|
76
78
|
/** @hidden */
|
|
@@ -137,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
137
139
|
type: ContentChildren,
|
|
138
140
|
args: [OverflowListItemDirective]
|
|
139
141
|
}] } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGlzdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvb3ZlcmZsb3ctbGlzdC9vdmVyZmxvdy1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7OztBQWF6QyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsa0JBQWtCOzs0SEFBMUQsK0JBQStCO2dIQUEvQiwrQkFBK0IsbUZBUDdCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxzQ0FBc0MsQ0FBQztTQUM1RjtLQUNKOzJGQUVRLCtCQUErQjtrQkFYM0MsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLHNDQUFzQyxD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cnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVyZmxvdy1saXN0LWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IFZpZXdwb3J0UnVsZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRPdmVyZmxvd0xpc3RdLCBbZmQtb3ZlcmZsb3ctbGlzdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka092ZXJmbG93TGlzdF0nLCAnW2ZkT3ZlcmZsb3dMaXN0XSwgW2ZkLW92ZXJmbG93LWxpc3RdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZE92ZXJmbG93TGlzdERpcmVjdGl2ZSBleHRlbmRzIERlcHJlY2F0ZWRTZWxlY3RvciB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtPdmVyZmxvd0xpc3RdLCBbZmRPdmVyZmxvd0xpc3RdLCBbZmQtb3ZlcmZsb3ctbGlzdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmZsb3dMaXN0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gT2Zmc2V0IHRvIGNhbGN1bGF0ZSBjb3JyZWN0IHBvc2l0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBvdmVyZmxvd09mZnNldCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRmxhZyByZXByZXNlbnRpbmcgcnRsIG1vZGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzUnRsOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIHZhbHVlIG9mIGRpc3BsYXkgcHJvcGVydHkgb2YgZXhpc3RlZCBsaXN0IGl0ZW1zXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpdGVtQ3NzQmxvY2tWYWx1ZSA9ICdmbGV4JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIGNoYW5nZWQgYW1vdW50IG9mIGV4dHJhIGl0ZW1zXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgb3ZlcmZsb3dDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jZXMgdG8gUXVlcnlMaXN0IG9mIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUpXG4gICAgb3ZlcmZsb3dJdGVtczogUXVlcnlMaXN0PE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgX3ZpZXdwb3J0UnVsZXI6IFZpZXdwb3J0UnVsZXIsIHByaXZhdGUgX25nWm9uZTogTmdab25lKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZpZXdwb3J0UnVsZXJcbiAgICAgICAgICAgIC5jaGFuZ2UoNTApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAvLyBWaWV3cG9ydFJ1bGVyIGludm9rZWQgb3V0IG9mIHpvbmUsIHRoYXQgaXMgd2h5IEkgbmVlZCB0byBpbnZva2UgZnVuY3Rpb24gaW4gem9uZVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHRoaXMuX2NhbGN1bGF0ZUFtb3VudE9mT3ZlcmZsb3dlZEl0ZW1zKCkpKTtcblxuICAgICAgICB0aGlzLl9jYWxjdWxhdGVBbW91bnRPZk92ZXJmbG93ZWRJdGVtcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldCBhbW91bnQgb2YgZXh0cmEgaXRlbXMgaW4gY3VycmVudCBsaXN0XG4gICAgICogKi9cbiAgICBnZXRBbW91bnRPZkV4dHJhSXRlbXMoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLm92ZXJmbG93SXRlbXMudG9BcnJheSgpLm1hcCgoaXRlbSkgPT4gaXRlbS5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29tcHV0ZWQgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjb250ZW50V2lkdGggPVxuICAgICAgICAgICAgdGhpcy5fZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aCAtIHBhcnNlRmxvYXQoY29tcHV0ZWQucGFkZGluZ0xlZnQpIC0gcGFyc2VGbG9hdChjb21wdXRlZC5wYWRkaW5nUmlnaHQpO1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hlY2tXaWR0aFdpdGhPZmZzZXQoZWxlbWVudHMsIGNvbnRlbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVBbW91bnRPZk92ZXJmbG93ZWRJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXh0cmEgPSB0aGlzLmdldEFtb3VudE9mRXh0cmFJdGVtcygpO1xuICAgICAgICB0aGlzLm92ZXJmbG93Q2hhbmdlZC5lbWl0KGV4dHJhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGFyckl0ZW1zXG4gICAgICogQHBhcmFtIGNvbnRhaW5lcldpZHRoXG4gICAgICogQHBhcmFtIGNoZWNrV2l0aE9mZnNldFxuICAgICAqICovXG4gICAgcHJpdmF0ZSBfY2hlY2tXaWR0aFdpdGhPZmZzZXQoXG4gICAgICAgIGFyckl0ZW1zOiBIVE1MRWxlbWVudFtdLFxuICAgICAgICBjb250YWluZXJXaWR0aDogbnVtYmVyLFxuICAgICAgICBjaGVja1dpdGhPZmZzZXQ6IGJvb2xlYW4gPSBmYWxzZVxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGxldCBpdGVtc1RvdGFsV2lkdGggPSAwO1xuICAgICAgICBjb25zdCBwYXJlbnRXaWR0aCA9IGNoZWNrV2l0aE9mZnNldCA/IGNvbnRhaW5lcldpZHRoIC0gdGhpcy5vdmVyZmxvd09mZnNldCA6IGNvbnRhaW5lcldpZHRoO1xuXG4gICAgICAgIGFyckl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIGl0ZW0uc3R5bGUuZGlzcGxheSA9IHRoaXMuaXRlbUNzc0Jsb2NrVmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJySXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhcnJJdGVtc1tpXTtcblxuICAgICAgICAgICAgaXRlbXNUb3RhbFdpZHRoICs9IHRoaXMuaXNSdGxcbiAgICAgICAgICAgICAgICA/IGNvbnRhaW5lcldpZHRoIC0gaXRlbS5vZmZzZXRMZWZ0IC0gaXRlbXNUb3RhbFdpZHRoXG4gICAgICAgICAgICAgICAgOiBpdGVtLm9mZnNldFdpZHRoICsgaXRlbS5vZmZzZXRMZWZ0IC0gaXRlbXNUb3RhbFdpZHRoO1xuXG4gICAgICAgICAgICBpZiAocGFyZW50V2lkdGggPCBpdGVtc1RvdGFsV2lkdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jbGVhclRlbXBTdHlsZXMoYXJySXRlbXMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBjaGVja1dpdGhPZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgPyBhcnJJdGVtcy5sZW5ndGggLSBpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5fY2hlY2tXaWR0aFdpdGhPZmZzZXQoYXJySXRlbXMsIGNvbnRhaW5lcldpZHRoLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NsZWFyVGVtcFN0eWxlcyhhcnJJdGVtcyk7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBhcnJJdGVtc1xuICAgICAqIEBoaWRkZW5cbiAgICAgKiAqL1xuICAgIHByaXZhdGUgX2NsZWFyVGVtcFN0eWxlcyhhcnJJdGVtczogSFRNTEVsZW1lbnRbXSk6IHZvaWQge1xuICAgICAgICBhcnJJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaXRlbS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGlzdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvb3ZlcmZsb3ctbGlzdC9vdmVyZmxvdy1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsZUFBZSxFQUNmLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7OztBQWF6QyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsa0JBQWtCOzs0SEFBMUQsK0JBQStCO2dIQUEvQiwrQkFBK0IsbUZBUDdCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxzQ0FBc0MsQ0FBQztTQUM1RjtLQUNKOzJGQUVRLCtCQUErQjtrQkFYM0MsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLHNDQUFzQyxD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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT3ZlcmZsb3dMaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vb3ZlcmZsb3ctbGlzdC1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkT3ZlcmZsb3dMaXN0XSwgW2ZkLW92ZXJmbG93LWxpc3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtPdmVyZmxvd0xpc3RdJywgJ1tmZE92ZXJmbG93TGlzdF0sIFtmZC1vdmVyZmxvdy1saXN0XScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRPdmVyZmxvd0xpc3REaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrT3ZlcmZsb3dMaXN0XSwgW2ZkT3ZlcmZsb3dMaXN0XSwgW2ZkLW92ZXJmbG93LWxpc3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE92ZXJmbG93TGlzdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE9mZnNldCB0byBjYWxjdWxhdGUgY29ycmVjdCBwb3NpdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgb3ZlcmZsb3dPZmZzZXQgPSAwO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZsYWcgcmVwcmVzZW50aW5nIHJ0bCBtb2RlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1J0bDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiB2YWx1ZSBvZiBkaXNwbGF5IHByb3BlcnR5IG9mIGV4aXN0ZWQgbGlzdCBpdGVtc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXRlbUNzc0Jsb2NrVmFsdWUgPSAnZmxleCc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBjaGFuZ2VkIGFtb3VudCBvZiBleHRyYSBpdGVtc1xuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIG92ZXJmbG93Q2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2VzIHRvIFF1ZXJ5TGlzdCBvZiBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlKVxuICAgIG92ZXJmbG93SXRlbXM6IFF1ZXJ5TGlzdDxPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLCBwcml2YXRlIF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLCBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl92aWV3cG9ydFJ1bGVyXG4gICAgICAgICAgICAuY2hhbmdlKDUwKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLy8gVmlld3BvcnRSdWxlciBpbnZva2VkIG91dCBvZiB6b25lLCB0aGF0IGlzIHdoeSBJIG5lZWQgdG8gaW52b2tlIGZ1bmN0aW9uIGluIHpvbmVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLl9jYWxjdWxhdGVBbW91bnRPZk92ZXJmbG93ZWRJdGVtcygpKSk7XG5cbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlQW1vdW50T2ZPdmVyZmxvd2VkSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgYW1vdW50IG9mIGV4dHJhIGl0ZW1zIGluIGN1cnJlbnQgbGlzdFxuICAgICAqICovXG4gICAgZ2V0QW1vdW50T2ZFeHRyYUl0ZW1zKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5vdmVyZmxvd0l0ZW1zLnRvQXJyYXkoKS5tYXAoKGl0ZW0pID0+IGl0ZW0uZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29udGVudFdpZHRoID1cbiAgICAgICAgICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLVxuICAgICAgICAgICAgcGFyc2VGbG9hdChjb21wdXRlZC5wYWRkaW5nTGVmdCB8fCAnMCcpIC1cbiAgICAgICAgICAgIHBhcnNlRmxvYXQoY29tcHV0ZWQucGFkZGluZ1JpZ2h0IHx8ICcwJyk7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja1dpZHRoV2l0aE9mZnNldChlbGVtZW50cywgY29udGVudFdpZHRoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NhbGN1bGF0ZUFtb3VudE9mT3ZlcmZsb3dlZEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBleHRyYSA9IHRoaXMuZ2V0QW1vdW50T2ZFeHRyYUl0ZW1zKCk7XG4gICAgICAgIHRoaXMub3ZlcmZsb3dDaGFuZ2VkLmVtaXQoZXh0cmEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gYXJySXRlbXNcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyV2lkdGhcbiAgICAgKiBAcGFyYW0gY2hlY2tXaXRoT2Zmc2V0XG4gICAgICogKi9cbiAgICBwcml2YXRlIF9jaGVja1dpZHRoV2l0aE9mZnNldChcbiAgICAgICAgYXJySXRlbXM6IEhUTUxFbGVtZW50W10sXG4gICAgICAgIGNvbnRhaW5lcldpZHRoOiBudW1iZXIsXG4gICAgICAgIGNoZWNrV2l0aE9mZnNldDogYm9vbGVhbiA9IGZhbHNlXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGl0ZW1zVG90YWxXaWR0aCA9IDA7XG4gICAgICAgIGNvbnN0IHBhcmVudFdpZHRoID0gY2hlY2tXaXRoT2Zmc2V0ID8gY29udGFpbmVyV2lkdGggLSB0aGlzLm92ZXJmbG93T2Zmc2V0IDogY29udGFpbmVyV2lkdGg7XG5cbiAgICAgICAgYXJySXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbS5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgaXRlbS5zdHlsZS5kaXNwbGF5ID0gdGhpcy5pdGVtQ3NzQmxvY2tWYWx1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGFyckl0ZW1zW2ldO1xuXG4gICAgICAgICAgICBpdGVtc1RvdGFsV2lkdGggKz0gdGhpcy5pc1J0bFxuICAgICAgICAgICAgICAgID8gY29udGFpbmVyV2lkdGggLSBpdGVtLm9mZnNldExlZnQgLSBpdGVtc1RvdGFsV2lkdGhcbiAgICAgICAgICAgICAgICA6IGl0ZW0ub2Zmc2V0V2lkdGggKyBpdGVtLm9mZnNldExlZnQgLSBpdGVtc1RvdGFsV2lkdGg7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRXaWR0aCA8IGl0ZW1zVG90YWxXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFyVGVtcFN0eWxlcyhhcnJJdGVtcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoZWNrV2l0aE9mZnNldFxuICAgICAgICAgICAgICAgICAgICA/IGFyckl0ZW1zLmxlbmd0aCAtIGlcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9jaGVja1dpZHRoV2l0aE9mZnNldChhcnJJdGVtcywgY29udGFpbmVyV2lkdGgsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2xlYXJUZW1wU3R5bGVzKGFyckl0ZW1zKTtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGFyckl0ZW1zXG4gICAgICogQGhpZGRlblxuICAgICAqICovXG4gICAgcHJpdmF0ZSBfY2xlYXJUZW1wU3R5bGVzKGFyckl0ZW1zOiBIVE1MRWxlbWVudFtdKTogdm9pZCB7XG4gICAgICAgIGFyckl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, ElementRef, EventEmitter, forwardRef, HostBinding, Input, Output } from '@angular/core';
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, forwardRef, HostBinding, Input, Output, Renderer2 } from '@angular/core';
|
|
2
2
|
import { DragDrop } from '@angular/cdk/drag-drop';
|
|
3
3
|
import { Subscription } from 'rxjs';
|
|
4
4
|
import { delay } from 'rxjs/operators';
|
|
@@ -12,9 +12,10 @@ export class DndItemDirective {
|
|
|
12
12
|
this.changeCDKDragState();
|
|
13
13
|
}
|
|
14
14
|
/** @hidden */
|
|
15
|
-
constructor(elementRef, _dragDrop) {
|
|
15
|
+
constructor(elementRef, _dragDrop, _renderer) {
|
|
16
16
|
this.elementRef = elementRef;
|
|
17
17
|
this._dragDrop = _dragDrop;
|
|
18
|
+
this._renderer = _renderer;
|
|
18
19
|
/**
|
|
19
20
|
* Whether to apply "fd-dnd-item" class.
|
|
20
21
|
* @default true
|
|
@@ -158,6 +159,18 @@ export class DndItemDirective {
|
|
|
158
159
|
this._dragRef.disabled = !(this._draggable && this.listDraggable);
|
|
159
160
|
}
|
|
160
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Sets the disabled state of the dnd item.
|
|
164
|
+
* @param state
|
|
165
|
+
*/
|
|
166
|
+
setDisabledState(state) {
|
|
167
|
+
if (state) {
|
|
168
|
+
this._renderer.addClass(this.elementRef.nativeElement, 'fd-dnd-item--disabled');
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
this._renderer.removeClass(this.elementRef.nativeElement, 'fd-dnd-item--disabled');
|
|
172
|
+
}
|
|
173
|
+
}
|
|
161
174
|
/** @hidden */
|
|
162
175
|
createPlaceholder() {
|
|
163
176
|
const placeholder = this.elementRef.nativeElement.cloneNode(true);
|
|
@@ -225,15 +238,18 @@ export class DndItemDirective {
|
|
|
225
238
|
}));
|
|
226
239
|
}
|
|
227
240
|
}
|
|
228
|
-
DndItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DndItemDirective, deps: [{ token: i0.ElementRef }, { token: i1.DragDrop }], target: i0.ɵɵFactoryTarget.Directive });
|
|
229
|
-
DndItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: DndItemDirective, selector: "[fdkDndItem], [fd-dnd-item]", inputs: { applyDragItemClass: "applyDragItemClass", containerSelector: "containerSelector", stickInPlace: "stickInPlace", draggable: "draggable", classWhenElementDragged: "classWhenElementDragged" }, outputs: { moved: "moved", released: "released", started: "started" }, host: { properties: { "class.fd-dnd-item": "this.applyDragItemClass" } }, providers: [DragDrop, { provide: DND_ITEM, useExisting: forwardRef(() => DndItemDirective) }], ngImport: i0 });
|
|
241
|
+
DndItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DndItemDirective, deps: [{ token: i0.ElementRef }, { token: i1.DragDrop }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
242
|
+
DndItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.8", type: DndItemDirective, selector: "[fdkDndItem], [fd-dnd-item]", inputs: { item: ["fdkDndItem", "item"], applyDragItemClass: "applyDragItemClass", containerSelector: "containerSelector", stickInPlace: "stickInPlace", draggable: "draggable", classWhenElementDragged: "classWhenElementDragged" }, outputs: { moved: "moved", released: "released", started: "started" }, host: { properties: { "class.fd-dnd-item": "this.applyDragItemClass" } }, providers: [DragDrop, { provide: DND_ITEM, useExisting: forwardRef(() => DndItemDirective) }], ngImport: i0 });
|
|
230
243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: DndItemDirective, decorators: [{
|
|
231
244
|
type: Directive,
|
|
232
245
|
args: [{
|
|
233
246
|
selector: '[fdkDndItem], [fd-dnd-item]',
|
|
234
247
|
providers: [DragDrop, { provide: DND_ITEM, useExisting: forwardRef(() => DndItemDirective) }]
|
|
235
248
|
}]
|
|
236
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DragDrop }]; }, propDecorators: {
|
|
249
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DragDrop }, { type: i0.Renderer2 }]; }, propDecorators: { item: [{
|
|
250
|
+
type: Input,
|
|
251
|
+
args: ['fdkDndItem']
|
|
252
|
+
}], applyDragItemClass: [{
|
|
237
253
|
type: Input
|
|
238
254
|
}, {
|
|
239
255
|
type: HostBinding,
|
|
@@ -253,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
|
|
|
253
269
|
}], classWhenElementDragged: [{
|
|
254
270
|
type: Input
|
|
255
271
|
}] } });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kcmFnLWFuZC1kcm9wL2RuZC1pdGVtL2RuZC1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQVcsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFNckMsTUFBTSxPQUFPLGdCQUFnQjtJQWdDekIsc0NBQXNDO0lBQ3RDLElBQ0ksU0FBUyxDQUFDLFNBQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUE2QkQsY0FBYztJQUNkLFlBQW1CLFVBQXNCLEVBQVUsU0FBbUI7UUFBbkQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFsRXRFOzs7V0FHRztRQUdILHVCQUFrQixHQUFHLElBQUksQ0FBQztRQU0xQixvREFBb0Q7UUFFM0MsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBRXJELGdEQUFnRDtRQUV2QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUU3Qyw2REFBNkQ7UUFFcEQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFNUM7OztXQUdHO1FBRUgsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFTckIsaURBQWlEO1FBRWpELDRCQUF1QixHQUFHLGdCQUFnQixDQUFDO1FBRTNDLG9EQUFvRDtRQUNwRCxrQkFBYSxHQUFHLElBQUksQ0FBQztRQU9yQixjQUFjO1FBQ04sZUFBVSxHQUFHLElBQUksQ0FBQztRQUUxQixjQUFjO1FBQ04sbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBWTZCLENBQUM7SUFFMUUsY0FBYztJQUNkLHFCQUFxQixDQUFDLFFBQWlCO1FBQ25DLHVEQUF1RDtRQUN2RCxNQUFNLElBQUksR0FBWSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTVFLE1BQU0sUUFBUSxHQUFpQixRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRTdELG1HQUFtRztRQUNuRyxPQUFPO1lBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ1osUUFBUTtZQUNSLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNYLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3RCLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNkLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWM7SUFDZCxTQUFTLENBQUMsUUFBeUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUI7UUFDYiwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXJCLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXRCLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsY0FBYztJQUNkLGNBQWM7UUFDVixpQkFBaUI7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUUxRSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYztJQUNkLGlCQUFpQjtRQUNiLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUU7WUFDakUsa0JBQWtCO1lBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVU7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDbkQsa0JBQWtCO1lBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLHNCQUFzQjtRQUNsQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFO1lBQzdELGtCQUFrQjtZQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxzQkFBc0I7UUFDbEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUU3RCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDekYsSUFBSSxZQUFZLEVBQUU7Z0JBQ2QsU0FBUyxHQUFHLFlBQVksQ0FBQzthQUM1QjtTQUNKO1FBRUQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVUsQ0FBQyxRQUFzQixFQUFFLFFBQWlCO1FBQ2hELCtCQUErQjtRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFbkQsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUNoRTthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FDbEU7UUFDRCxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM3QztRQUVELHVDQUF1QztRQUN2QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDekYsSUFBSSxZQUFZLEVBQUU7Z0JBQ2QsU0FBUyxHQUFHLFlBQVksQ0FBQzthQUM1QjtTQUNKO1FBRUQsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGNBQWM7SUFDZCxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDckU7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNOLGlCQUFpQjtRQUNyQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEUsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUM7UUFFdkMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU3Qjs7V0FFRztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELGNBQWM7SUFDTixxQkFBcUI7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN0QyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN0RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDckQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQzVDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUUvQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDOUYsQ0FBQztJQUVELGNBQWM7SUFDTixrQkFBa0IsQ0FBQyxPQUFnQjtRQUN2QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsT0FBTztTQUNWO1FBRUQsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDO1FBQzVELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksQ0FBQztRQUU5RCxPQUFPO1lBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUM5RCxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO1NBQy9ELENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYztJQUNOLFdBQVc7UUFDZixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsNkNBQTZDO0lBQ3JDLFdBQVcsQ0FBQyxPQUFnQixFQUFFLFNBQWU7UUFDakQsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbEQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixPQUFPLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxjQUFjO0lBQ04sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsUUFBUTthQUNSLElBQUk7UUFDRCxnQkFBZ0I7UUFDaEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNYO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDcEQ7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FDVCxDQUFDO0lBQ04sQ0FBQzs7NkdBaFNRLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLCtZQUZkLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQzsyRkFFcEYsZ0JBQWdCO2tCQUo1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDO2lCQUNoRzt3SEFRRyxrQkFBa0I7c0JBRmpCLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsbUJBQW1CO2dCQUtoQyxpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS0csS0FBSztzQkFEYixNQUFNO2dCQUtFLFFBQVE7c0JBRGhCLE1BQU07Z0JBS0UsT0FBTztzQkFEZixNQUFNO2dCQVFQLFlBQVk7c0JBRFgsS0FBSztnQkFLRixTQUFTO3NCQURaLEtBQUs7Z0JBUU4sdUJBQXVCO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEcmFnRHJvcCwgRHJhZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRG5kSXRlbSwgRWxlbWVudENob3JkLCBFbGVtZW50UG9zaXRpb24sIExpbmtQb3NpdGlvbiB9IGZyb20gJy4uL2RuZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBETkRfSVRFTSB9IGZyb20gJy4uL3Rva2Vucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0RuZEl0ZW1dLCBbZmQtZG5kLWl0ZW1dJyxcbiAgICBwcm92aWRlcnM6IFtEcmFnRHJvcCwgeyBwcm92aWRlOiBETkRfSVRFTSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRG5kSXRlbURpcmVjdGl2ZSkgfV1cbn0pXG5leHBvcnQgY2xhc3MgRG5kSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIERuZEl0ZW0sIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBhcHBseSBcImZkLWRuZC1pdGVtXCIgY2xhc3MuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1kbmQtaXRlbScpXG4gICAgYXBwbHlEcmFnSXRlbUNsYXNzID0gdHJ1ZTtcblxuICAgIC8qKiBDb250YWluZXIgc2VsZWN0b3IgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRhaW5lclNlbGVjdG9yPzogc3RyaW5nO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biB3aGVuIHRoZSBlbGVtZW50IGlzIG1vdmVkIGJ5IDFweCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IG1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxFbGVtZW50UG9zaXRpb24+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIHdoZW4gdGhlIGVsZW1lbnQgaXMgcmVsZWFzZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSByZWxlYXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gd2hlbiB0aGUgZWxlbWVudCBpcyBzdGFydGVkIHRvIGJlIGRyYWdnZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzdGFydGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogIERlZmluZXMgaWYgdGhlIGl0ZW0gaXMgcHJldmVudGVkIGZyb20gYmVpbmcgbW92ZWQgYnkgb3RoZXIgZWxlbWVudHMuXG4gICAgICogU28gbm90aGluZyBjYW4gYmUgcGxhY2VkIGp1c3QgYmVmb3JlIGFuZCBqdXN0IGFmdGVyIGl0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGlja0luUGxhY2UgPSBmYWxzZTtcblxuICAgIC8qKiBEZWZpbmVzIGlmIGVsZW1lbnQgaXMgZHJhZ2dhYmxlICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZHJhZ2dhYmxlKGRyYWdnYWJsZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kcmFnZ2FibGUgPSBkcmFnZ2FibGU7XG4gICAgICAgIHRoaXMuY2hhbmdlQ0RLRHJhZ1N0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIENsYXNzIGFkZGVkIHRvIGVsZW1lbnQsIHdoZW4gaXQncyBkcmFnZ2VkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3NXaGVuRWxlbWVudERyYWdnZWQgPSAnZmQtZG5kLW9uLWRyYWcnO1xuXG4gICAgLyoqIERlZmluZXMgaWYgZXZlcnkgZWxlbWVudCBpbiBsaXN0IGlzIGRyYWdnYWJsZSAqL1xuICAgIGxpc3REcmFnZ2FibGUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBEcmFnIHJlZmVyZW5jZSwgb2JqZWN0IGNyZWF0ZWQgZnJvbSBETkQgQ0RLIFNlcnZpY2VcbiAgICAgKi9cbiAgICBwcml2YXRlIF9kcmFnUmVmOiBEcmFnUmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kcmFnZ2FibGUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wbGFjZWhvbGRlckVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGluZUVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVwbGFjZUluZGljYXRvcjogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfZHJhZ0Ryb3A6IERyYWdEcm9wKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXRFbGVtZW50Q29vcmRpbmF0ZXMoaXNCZWZvcmU6IGJvb2xlYW4pOiBFbGVtZW50Q2hvcmQge1xuICAgICAgICAvKiogVGFrZXMgZGlzdGFuY2UgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHdpbmRvdyBwYWdlICovXG4gICAgICAgIGNvbnN0IHJlY3Q6IERPTVJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBjb25zdCBwb3NpdGlvbjogTGlua1Bvc2l0aW9uID0gaXNCZWZvcmUgPyAnYmVmb3JlJyA6ICdhZnRlcic7XG5cbiAgICAgICAgLyoqIFZlcnRpY2FsbHkgZGlzdGFuY2UgaXMgY291bnRlZCBieSBkaXN0YW5jZSBmcm9tIHRvcCBvZiB0aGUgc2lkZSArIGhhbGYgb2YgdGhlIGVsZW1lbnQgaGVpZ2h0ICovXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiByZWN0LmxlZnQsXG4gICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgIHk6IHJlY3QudG9wLFxuICAgICAgICAgICAgc3RpY2tUb1Bvc2l0aW9uOiB0aGlzLnN0aWNrSW5QbGFjZSxcbiAgICAgICAgICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiByZWN0LmhlaWdodFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRDREtEcmFnKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlbkVsZW1lbnRFdmVudHMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX2RyYWdSZWYuZGlzcG9zZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25DZGtNb3ZlKHBvc2l0aW9uOiBFbGVtZW50UG9zaXRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlZC5lbWl0KHBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2RrRHJhZ1JlbGVhc2VkKCk6IHZvaWQge1xuICAgICAgICAvKiogUmVtb3ZlIGNsYXNzIHdoaWNoIGlzIGFkZGVkLCB3aGVuIGVsZW1lbnQgaXMgZHJhZ2dlZCAqL1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY2xhc3NXaGVuRWxlbWVudERyYWdnZWQpO1xuICAgICAgICB0aGlzLnJlbGVhc2VkLmVtaXQoKTtcblxuICAgICAgICAvKiogUmVzZXRzIHRoZSBwb3NpdGlvbiBvZiBlbGVtZW50LiAqL1xuICAgICAgICB0aGlzLl9kcmFnUmVmLnJlc2V0KCk7XG5cbiAgICAgICAgLyoqIFJlbW92ZXMgcGxhY2Vob2xkZXIgZWxlbWVudCAqL1xuICAgICAgICB0aGlzLnJlbW92ZVBsYWNlaG9sZGVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNka0RyYWdTdGFydCgpOiB2b2lkIHtcbiAgICAgICAgLyoqIEFkZHMgY2xhc3MgKi9cbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0aGlzLmNsYXNzV2hlbkVsZW1lbnREcmFnZ2VkKTtcblxuICAgICAgICBpZiAoIXRoaXMuX3BsYWNlaG9sZGVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVQbGFjZWhvbGRlcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhcnRlZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZW1vdmVQbGFjZWhvbGRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3BsYWNlaG9sZGVyRWxlbWVudCAmJiB0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgLy8gSUUxMSB3b3JrYXJvdW5kXG4gICAgICAgICAgICB0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXJFbGVtZW50ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVtb3ZlTGluZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2xpbmVFbGVtZW50ICYmIHRoaXMuX2xpbmVFbGVtZW50LnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIC8vIElFMTEgd29ya2Fyb3VuZFxuICAgICAgICAgICAgdGhpcy5fbGluZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9saW5lRWxlbWVudCk7XG4gICAgICAgICAgICB0aGlzLl9saW5lRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlbW92ZVJlcGxhY2VJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9yZXBsYWNlSW5kaWNhdG9yICYmIHRoaXMuX3JlcGxhY2VJbmRpY2F0b3IucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgLy8gSUUxMSB3b3JrYXJvdW5kXG4gICAgICAgICAgICB0aGlzLl9yZXBsYWNlSW5kaWNhdG9yLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fcmVwbGFjZUluZGljYXRvcik7XG4gICAgICAgICAgICB0aGlzLl9yZXBsYWNlSW5kaWNhdG9yID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY3JlYXRlUmVwbGFjZUluZGljYXRvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVwbGFjZUluZGljYXRvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xuICAgICAgICB0aGlzLl9yZXBsYWNlSW5kaWNhdG9yLmNsYXNzTGlzdC5hZGQoJ2ZkLXJlcGxhY2UtaW5kaWNhdG9yJyk7XG5cbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJTZWxlY3Rvcikge1xuICAgICAgICAgICAgY29uc3QgbmV3Q29udGFpbmVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lclNlbGVjdG9yKTtcbiAgICAgICAgICAgIGlmIChuZXdDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIgPSBuZXdDb250YWluZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fcmVwbGFjZUluZGljYXRvcik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjcmVhdGVMaW5lKHBvc2l0aW9uOiBMaW5rUG9zaXRpb24sIGdyaWRNb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIC8qKiBDcmVhdGluZyBvZiBsaW5lIGVsZW1lbnQgKi9cbiAgICAgICAgdGhpcy5fbGluZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5fbGluZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJvcC1hcmVhX19saW5lJyk7XG5cbiAgICAgICAgaWYgKGdyaWRNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLl9saW5lRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdkcm9wLWFyZWFfX2xpbmUtLXZlcnRpY2FsJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9saW5lRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdkcm9wLWFyZWFfX2xpbmUtLWhvcml6b250YWwnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9zaXRpb24gPT09ICdhZnRlcicpIHtcbiAgICAgICAgICAgIHRoaXMuX2xpbmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2FmdGVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSAnYmVmb3JlJykge1xuICAgICAgICAgICAgdGhpcy5fbGluZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYmVmb3JlJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiogUHV0dGluZyBlbGVtZW50IHRvIHRoZSBjb250YWluZXIgKi9cbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5jb250YWluZXJTZWxlY3Rvcikge1xuICAgICAgICAgICAgY29uc3QgbmV3Q29udGFpbmVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcih0aGlzLmNvbnRhaW5lclNlbGVjdG9yKTtcbiAgICAgICAgICAgIGlmIChuZXdDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIgPSBuZXdDb250YWluZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fbGluZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2hhbmdlQ0RLRHJhZ1N0YXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZHJhZ1JlZikge1xuICAgICAgICAgICAgdGhpcy5fZHJhZ1JlZi5kaXNhYmxlZCA9ICEodGhpcy5fZHJhZ2dhYmxlICYmIHRoaXMubGlzdERyYWdnYWJsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgY3JlYXRlUGxhY2Vob2xkZXIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBsYWNlaG9sZGVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvbmVOb2RlKHRydWUpO1xuICAgICAgICAvKiogQ2xvbmluZyBjb250YWluZXIgZWxlbWVudCAqL1xuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQgPSBwbGFjZWhvbGRlcjtcblxuICAgICAgICBwbGFjZWhvbGRlci5jbGFzc0xpc3QuYWRkKCdmZC1kbmQtcGxhY2Vob2xkZXInKTtcbiAgICAgICAgdGhpcy5fc2V0UGxhY2Vob2xkZXJTdHlsZXMoKTtcblxuICAgICAgICAvKiogSW5jbHVkaW5nIGVsZW1lbnQgdG8gdGhlIGNvbnRhaW5lclxuICAgICAgICAgKiAgSUUxMSBlcXVpdmFsZW50IHRvIGB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5hZnRlcihjbG9uZSk7YFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fcGxhY2VBZnRlcih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgcGxhY2Vob2xkZXIpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0UGxhY2Vob2xkZXJTdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuX2dldE9mZnNldFRvUGFyZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoIW9mZnNldCB8fCAhdGhpcy5fcGxhY2Vob2xkZXJFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUudG9wID0gb2Zmc2V0LnkgKyAncHgnO1xuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUubGVmdCA9IG9mZnNldC54ICsgJ3B4JztcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXJFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXJFbGVtZW50LnN0eWxlLnpJbmRleCA9ICcwJztcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXJFbGVtZW50LnN0eWxlLm9wYWNpdHkgPSAnMC4zJztcblxuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUud2lkdGggPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0T2Zmc2V0VG9QYXJlbnQoZWxlbWVudDogRWxlbWVudCk6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIGlmICghcGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyZW50VG9wID0gcGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgICAgIGNvbnN0IHBhcmVudExlZnQgPSBwYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHg6IE1hdGguYWJzKGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCAtIHBhcmVudExlZnQpLFxuICAgICAgICAgICAgeTogTWF0aC5hYnMoZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgLSBwYXJlbnRUb3ApXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRDREtEcmFnKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcmFnUmVmID0gdGhpcy5fZHJhZ0Ryb3AuY3JlYXRlRHJhZyh0aGlzLmVsZW1lbnRSZWYpO1xuICAgICAgICB0aGlzLl9kcmFnUmVmLmRpc2FibGVkID0gIXRoaXMuX2RyYWdnYWJsZTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5fZHJhZ1JlZi5tb3ZlZC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB0aGlzLm9uQ2RrTW92ZShldmVudC5wb2ludGVyUG9zaXRpb24pKSk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX2RyYWdSZWYucmVsZWFzZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMub25DZGtEcmFnUmVsZWFzZWQoKSkpO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZCh0aGlzLl9kcmFnUmVmLnN0YXJ0ZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMub25DZGtEcmFnU3RhcnQoKSkpO1xuICAgIH1cblxuICAgIC8qKiBJRTExIGVxdWl2YWxlbnQgb2YgTm9kZS5hZnRlcigpIE1ldGhvZCAqL1xuICAgIHByaXZhdGUgX3BsYWNlQWZ0ZXIoZWxlbWVudDogRWxlbWVudCwgY2xvbmVOb2RlOiBOb2RlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRvY0ZyYWcgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG4gICAgICAgIGRvY0ZyYWcuYXBwZW5kQ2hpbGQoY2xvbmVOb2RlKTtcbiAgICAgICAgZWxlbWVudC5wYXJlbnROb2RlPy5pbnNlcnRCZWZvcmUoZG9jRnJhZywgZWxlbWVudC5uZXh0U2libGluZyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5FbGVtZW50RXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMucmVsZWFzZWRcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgLy8gcG9zdHBvbmUgYmx1clxuICAgICAgICAgICAgICAgICAgICBkZWxheSgwKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5kLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kcmFnLWFuZC1kcm9wL2RuZC1pdGVtL2RuZC1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFXLE1BQU0sd0JBQXdCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBT3JDLE1BQU0sT0FBTyxnQkFBZ0I7SUFtQ3pCLHNDQUFzQztJQUN0QyxJQUNJLFNBQVMsQ0FBQyxTQUFrQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBNkJELGNBQWM7SUFDZCxZQUNvQixVQUFzQixFQUNyQixTQUFtQixFQUNuQixTQUFvQjtRQUZyQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXJFekM7OztXQUdHO1FBR0gsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBTTFCLG9EQUFvRDtRQUUzQyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFckQsZ0RBQWdEO1FBRXZDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTdDLDZEQUE2RDtRQUVwRCxZ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QUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNwRDtZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUNULENBQUM7SUFDTixDQUFDOzs2R0FuVFEsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsNmFBRmQsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDOzJGQUVwRixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsU0FBUyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7aUJBQ2hHO2dKQUlHLElBQUk7c0JBREgsS0FBSzt1QkFBQyxZQUFZO2dCQVFuQixrQkFBa0I7c0JBRmpCLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsbUJBQW1CO2dCQUtoQyxpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS0csS0FBSztzQkFEYixNQUFNO2dCQUtFLFFBQVE7c0JBRGhCLE1BQU07Z0JBS0UsT0FBTztzQkFEZixNQUFNO2dCQVFQLFlBQVk7c0JBRFgsS0FBSztnQkFLRixTQUFTO3NCQURaLEtBQUs7Z0JBUU4sdUJBQXVCO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJhZ0Ryb3AsIERyYWdSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IERuZEl0ZW0sIEVsZW1lbnRDaG9yZCwgRWxlbWVudFBvc2l0aW9uLCBMaW5rUG9zaXRpb24gfSBmcm9tICcuLi9kbmQuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRE5EX0lURU0gfSBmcm9tICcuLi90b2tlbnMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtEbmRJdGVtXSwgW2ZkLWRuZC1pdGVtXScsXG4gICAgcHJvdmlkZXJzOiBbRHJhZ0Ryb3AsIHsgcHJvdmlkZTogRE5EX0lURU0sIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERuZEl0ZW1EaXJlY3RpdmUpIH1dXG59KVxuZXhwb3J0IGNsYXNzIERuZEl0ZW1EaXJlY3RpdmU8VCA9IGFueT4gaW1wbGVtZW50cyBEbmRJdGVtLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBJdGVtIHJlZmVyZW5jZS4gVXNlZCBmb3IgY2FzZXMgd2hlbiBgW2l0ZW1zXWAgYXJyYXkgb2YgZG5kIGxpc3QgaXMgZGlmZmVyZW50IHRoYW4gYGRuZEl0ZW1zYCBjb250ZW50IGNoaWxkcmVuLiAqL1xuICAgIEBJbnB1dCgnZmRrRG5kSXRlbScpXG4gICAgaXRlbTogTnVsbGFibGU8VD47XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBhcHBseSBcImZkLWRuZC1pdGVtXCIgY2xhc3MuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1kbmQtaXRlbScpXG4gICAgYXBwbHlEcmFnSXRlbUNsYXNzID0gdHJ1ZTtcblxuICAgIC8qKiBDb250YWluZXIgc2VsZWN0b3IgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRhaW5lclNlbGVjdG9yPzogc3RyaW5nO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biB3aGVuIHRoZSBlbGVtZW50IGlzIG1vdmVkIGJ5IDFweCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IG1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxFbGVtZW50UG9zaXRpb24+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIHdoZW4gdGhlIGVsZW1lbnQgaXMgcmVsZWFzZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSByZWxlYXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gd2hlbiB0aGUgZWxlbWVudCBpcyBzdGFydGVkIHRvIGJlIGRyYWdnZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzdGFydGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogIERlZmluZXMgaWYgdGhlIGl0ZW0gaXMgcHJldmVudGVkIGZyb20gYmVpbmcgbW92ZWQgYnkgb3RoZXIgZWxlbWVudHMuXG4gICAgICogU28gbm90aGluZyBjYW4gYmUgcGxhY2VkIGp1c3QgYmVmb3JlIGFuZCBqdXN0IGFmdGVyIGl0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzdGlja0luUGxhY2UgPSBmYWxzZTtcblxuICAgIC8qKiBEZWZpbmVzIGlmIGVsZW1lbnQgaXMgZHJhZ2dhYmxlICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZHJhZ2dhYmxlKGRyYWdnYWJsZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kcmFnZ2FibGUgPSBkcmFnZ2FibGU7XG4gICAgICAgIHRoaXMuY2hhbmdlQ0RLRHJhZ1N0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIENsYXNzIGFkZGVkIHRvIGVsZW1lbnQsIHdoZW4gaXQncyBkcmFnZ2VkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3NXaGVuRWxlbWVudERyYWdnZWQgPSAnZmQtZG5kLW9uLWRyYWcnO1xuXG4gICAgLyoqIERlZmluZXMgaWYgZXZlcnkgZWxlbWVudCBpbiBsaXN0IGlzIGRyYWdnYWJsZSAqL1xuICAgIGxpc3REcmFnZ2FibGUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBEcmFnIHJlZmVyZW5jZSwgb2JqZWN0IGNyZWF0ZWQgZnJvbSBETkQgQ0RLIFNlcnZpY2VcbiAgICAgKi9cbiAgICBwcml2YXRlIF9kcmFnUmVmOiBEcmFnUmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kcmFnZ2FibGUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wbGFjZWhvbGRlckVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGluZUVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVwbGFjZUluZGljYXRvcjogSFRNTEVsZW1lbnQgfCBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdEcm9wOiBEcmFnRHJvcCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0RWxlbWVudENvb3JkaW5hdGVzKGlzQmVmb3JlOiBib29sZWFuKTogRWxlbWVudENob3JkIHtcbiAgICAgICAgLyoqIFRha2VzIGRpc3RhbmNlIGZyb20gdGhlIGJlZ2lubmluZyBvZiB3aW5kb3cgcGFnZSAqL1xuICAgICAgICBjb25zdCByZWN0OiBET01SZWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb246IExpbmtQb3NpdGlvbiA9IGlzQmVmb3JlID8gJ2JlZm9yZScgOiAnYWZ0ZXInO1xuXG4gICAgICAgIC8qKiBWZXJ0aWNhbGx5IGRpc3RhbmNlIGlzIGNvdW50ZWQgYnkgZGlzdGFuY2UgZnJvbSB0b3Agb2YgdGhlIHNpZGUgKyBoYWxmIG9mIHRoZSBlbGVtZW50IGhlaWdodCAqL1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogcmVjdC5sZWZ0LFxuICAgICAgICAgICAgcG9zaXRpb24sXG4gICAgICAgICAgICB5OiByZWN0LnRvcCxcbiAgICAgICAgICAgIHN0aWNrVG9Qb3NpdGlvbjogdGhpcy5zdGlja0luUGxhY2UsXG4gICAgICAgICAgICB3aWR0aDogcmVjdC53aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogcmVjdC5oZWlnaHRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0Q0RLRHJhZygpO1xuICAgICAgICB0aGlzLl9saXN0ZW5FbGVtZW50RXZlbnRzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9kcmFnUmVmLmRpc3Bvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2RrTW92ZShwb3NpdGlvbjogRWxlbWVudFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW92ZWQuZW1pdChwb3NpdGlvbik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNka0RyYWdSZWxlYXNlZCgpOiB2b2lkIHtcbiAgICAgICAgLyoqIFJlbW92ZSBjbGFzcyB3aGljaCBpcyBhZGRlZCwgd2hlbiBlbGVtZW50IGlzIGRyYWdnZWQgKi9cbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNsYXNzV2hlbkVsZW1lbnREcmFnZ2VkKTtcbiAgICAgICAgdGhpcy5yZWxlYXNlZC5lbWl0KCk7XG5cbiAgICAgICAgLyoqIFJlc2V0cyB0aGUgcG9zaXRpb24gb2YgZWxlbWVudC4gKi9cbiAgICAgICAgdGhpcy5fZHJhZ1JlZi5yZXNldCgpO1xuXG4gICAgICAgIC8qKiBSZW1vdmVzIHBsYWNlaG9sZGVyIGVsZW1lbnQgKi9cbiAgICAgICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25DZGtEcmFnU3RhcnQoKTogdm9pZCB7XG4gICAgICAgIC8qKiBBZGRzIGNsYXNzICovXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQodGhpcy5jbGFzc1doZW5FbGVtZW50RHJhZ2dlZCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlUGxhY2Vob2xkZXIoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXJ0ZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVtb3ZlUGxhY2Vob2xkZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQgJiYgdGhpcy5fcGxhY2Vob2xkZXJFbGVtZW50LnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIC8vIElFMTEgd29ya2Fyb3VuZFxuICAgICAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXJFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fcGxhY2Vob2xkZXJFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlbW92ZUxpbmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9saW5lRWxlbWVudCAmJiB0aGlzLl9saW5lRWxlbWVudC5wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAvLyBJRTExIHdvcmthcm91bmRcbiAgICAgICAgICAgIHRoaXMuX2xpbmVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fbGluZUVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5fbGluZUVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZW1vdmVSZXBsYWNlSW5kaWNhdG9yKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fcmVwbGFjZUluZGljYXRvciAmJiB0aGlzLl9yZXBsYWNlSW5kaWNhdG9yLnBhcmVudE5vZGUpIHtcbiAgICAgICAgICAgIC8vIElFMTEgd29ya2Fyb3VuZFxuICAgICAgICAgICAgdGhpcy5fcmVwbGFjZUluZGljYXRvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX3JlcGxhY2VJbmRpY2F0b3IpO1xuICAgICAgICAgICAgdGhpcy5fcmVwbGFjZUluZGljYXRvciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNyZWF0ZVJlcGxhY2VJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlcGxhY2VJbmRpY2F0b3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdESVYnKTtcbiAgICAgICAgdGhpcy5fcmVwbGFjZUluZGljYXRvci5jbGFzc0xpc3QuYWRkKCdmZC1yZXBsYWNlLWluZGljYXRvcicpO1xuXG4gICAgICAgIGxldCBjb250YWluZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyU2VsZWN0b3IpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5jb250YWluZXJTZWxlY3Rvcik7XG4gICAgICAgICAgICBpZiAobmV3Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyID0gbmV3Q29udGFpbmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX3JlcGxhY2VJbmRpY2F0b3IpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY3JlYXRlTGluZShwb3NpdGlvbjogTGlua1Bvc2l0aW9uLCBncmlkTW9kZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAvKiogQ3JlYXRpbmcgb2YgbGluZSBlbGVtZW50ICovXG4gICAgICAgIHRoaXMuX2xpbmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuX2xpbmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2Ryb3AtYXJlYV9fbGluZScpO1xuXG4gICAgICAgIGlmIChncmlkTW9kZSkge1xuICAgICAgICAgICAgdGhpcy5fbGluZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJvcC1hcmVhX19saW5lLS12ZXJ0aWNhbCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbGluZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJvcC1hcmVhX19saW5lLS1ob3Jpem9udGFsJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvc2l0aW9uID09PSAnYWZ0ZXInKSB7XG4gICAgICAgICAgICB0aGlzLl9saW5lRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdhZnRlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwb3NpdGlvbiA9PT0gJ2JlZm9yZScpIHtcbiAgICAgICAgICAgIHRoaXMuX2xpbmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2JlZm9yZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIFB1dHRpbmcgZWxlbWVudCB0byB0aGUgY29udGFpbmVyICovXG4gICAgICAgIGxldCBjb250YWluZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyU2VsZWN0b3IpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodGhpcy5jb250YWluZXJTZWxlY3Rvcik7XG4gICAgICAgICAgICBpZiAobmV3Q29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyID0gbmV3Q29udGFpbmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX2xpbmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNoYW5nZUNES0RyYWdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2RyYWdSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuX2RyYWdSZWYuZGlzYWJsZWQgPSAhKHRoaXMuX2RyYWdnYWJsZSAmJiB0aGlzLmxpc3REcmFnZ2FibGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGRuZCBpdGVtLlxuICAgICAqIEBwYXJhbSBzdGF0ZVxuICAgICAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZkLWRuZC1pdGVtLS1kaXNhYmxlZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmZC1kbmQtaXRlbS0tZGlzYWJsZWQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBjcmVhdGVQbGFjZWhvbGRlcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGxhY2Vob2xkZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9uZU5vZGUodHJ1ZSk7XG4gICAgICAgIC8qKiBDbG9uaW5nIGNvbnRhaW5lciBlbGVtZW50ICovXG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyRWxlbWVudCA9IHBsYWNlaG9sZGVyO1xuXG4gICAgICAgIHBsYWNlaG9sZGVyLmNsYXNzTGlzdC5hZGQoJ2ZkLWRuZC1wbGFjZWhvbGRlcicpO1xuICAgICAgICB0aGlzLl9zZXRQbGFjZWhvbGRlclN0eWxlcygpO1xuXG4gICAgICAgIC8qKiBJbmNsdWRpbmcgZWxlbWVudCB0byB0aGUgY29udGFpbmVyXG4gICAgICAgICAqICBJRTExIGVxdWl2YWxlbnQgdG8gYHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmFmdGVyKGNsb25lKTtgXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9wbGFjZUFmdGVyKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBwbGFjZWhvbGRlcik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRQbGFjZWhvbGRlclN0eWxlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5fZ2V0T2Zmc2V0VG9QYXJlbnQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIGlmICghb2Zmc2V0IHx8ICF0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyRWxlbWVudC5zdHlsZS50b3AgPSBvZmZzZXQueSArICdweCc7XG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyRWxlbWVudC5zdHlsZS5sZWZ0ID0gb2Zmc2V0LnggKyAncHgnO1xuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUuekluZGV4ID0gJzAnO1xuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlckVsZW1lbnQuc3R5bGUub3BhY2l0eSA9ICcwLjMnO1xuXG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyRWxlbWVudC5zdHlsZS53aWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgJ3B4JztcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXJFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArICdweCc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRPZmZzZXRUb1BhcmVudChlbGVtZW50OiBFbGVtZW50KTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgaWYgKCFwYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBwYXJlbnRUb3AgPSBwYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgICAgY29uc3QgcGFyZW50TGVmdCA9IHBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogTWF0aC5hYnMoZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0IC0gcGFyZW50TGVmdCksXG4gICAgICAgICAgICB5OiBNYXRoLmFicyhlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCAtIHBhcmVudFRvcClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldENES0RyYWcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RyYWdSZWYgPSB0aGlzLl9kcmFnRHJvcC5jcmVhdGVEcmFnKHRoaXMuZWxlbWVudFJlZik7XG4gICAgICAgIHRoaXMuX2RyYWdSZWYuZGlzYWJsZWQgPSAhdGhpcy5fZHJhZ2dhYmxlO1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZCh0aGlzLl9kcmFnUmVmLm1vdmVkLnN1YnNjcmliZSgoZXZlbnQpID0+IHRoaXMub25DZGtNb3ZlKGV2ZW50LnBvaW50ZXJQb3NpdGlvbikpKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5fZHJhZ1JlZi5yZWxlYXNlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNka0RyYWdSZWxlYXNlZCgpKSk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX2RyYWdSZWYuc3RhcnRlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNka0RyYWdTdGFydCgpKSk7XG4gICAgfVxuXG4gICAgLyoqIElFMTEgZXF1aXZhbGVudCBvZiBOb2RlLmFmdGVyKCkgTWV0aG9kICovXG4gICAgcHJpdmF0ZSBfcGxhY2VBZnRlcihlbGVtZW50OiBFbGVtZW50LCBjbG9uZU5vZGU6IE5vZGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZG9jRnJhZyA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgZG9jRnJhZy5hcHBlbmRDaGlsZChjbG9uZU5vZGUpO1xuICAgICAgICBlbGVtZW50LnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShkb2NGcmFnLCBlbGVtZW50Lm5leHRTaWJsaW5nKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlbkVsZW1lbnRFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5yZWxlYXNlZFxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAvLyBwb3N0cG9uZSBibHVyXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5KDApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXJTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0uYmx1cigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|