@o3r/rules-engine 11.6.0-prerelease.0 → 11.6.0-prerelease.10
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/builders/rules-engine-extractor/helpers/rules-engine.extractor.d.ts +1 -10
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.d.ts.map +1 -1
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.interfaces.d.ts +1 -2
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.interfaces.d.ts.map +1 -1
- package/builders/rules-engine-extractor/helpers/rules-engine.extractor.js +27 -36
- package/builders/rules-engine-extractor/index.d.ts.map +1 -1
- package/builders/rules-engine-extractor/index.js +15 -20
- package/builders/rules-engine-extractor/schema.d.ts.map +1 -1
- package/components/rules-engine/index.d.ts +1 -1
- package/components/rules-engine/index.d.ts.map +1 -1
- package/components/rules-engine/rule-actions/rule-actions-pres.component.d.ts.map +1 -1
- package/components/rules-engine/rule-condition/rule-condition-pres.component.d.ts.map +1 -1
- package/components/rules-engine/rule-key-value/rule-key-value-pres.component.d.ts.map +1 -1
- package/components/rules-engine/rule-tree/rule-tree-pres.component.d.ts.map +1 -1
- package/components/rules-engine/ruleset-history/ruleset-history-pres.component.d.ts.map +1 -1
- package/components/rules-engine/ruleset-history/ruleset-history-pres.module.d.ts.map +1 -1
- package/components/rules-engine/shared/fallback-to.pipe.d.ts.map +1 -1
- package/components/rules-engine/shared/index.d.ts +1 -1
- package/components/rules-engine/shared/index.d.ts.map +1 -1
- package/components/rules-engine/shared/json-or-string.pipe.d.ts.map +1 -1
- package/components/rules-engine/shared/ruleset-history.helper.d.ts.map +1 -1
- package/devkit/rules-engine-devkit.interface.d.ts.map +1 -1
- package/devkit/rules-engine-devtools.console.service.d.ts.map +1 -1
- package/devkit/rules-engine-devtools.message.service.d.ts +1 -1
- package/devkit/rules-engine-devtools.message.service.d.ts.map +1 -1
- package/devkit/rules-engine-devtools.module.d.ts.map +1 -1
- package/devkit/rules-engine-devtools.service.d.ts.map +1 -1
- package/devkit/rules-engine-devtools.token.d.ts.map +1 -1
- package/engine/debug/engine.debug.d.ts +0 -2
- package/engine/debug/engine.debug.d.ts.map +1 -1
- package/engine/debug/helpers.d.ts.map +1 -1
- package/engine/engine.d.ts +0 -3
- package/engine/engine.d.ts.map +1 -1
- package/engine/engine.interface.d.ts.map +1 -1
- package/engine/fact/fact.interfaces.d.ts.map +1 -1
- package/engine/helpers/filter-ruleset-event.operator.d.ts.map +1 -1
- package/engine/operator/operator.helpers.d.ts +1 -3
- package/engine/operator/operator.helpers.d.ts.map +1 -1
- package/engine/operator/operator.interface.d.ts.map +1 -1
- package/engine/operator/operators/array-based.operators.d.ts.map +1 -1
- package/engine/operator/operators/basic.operators.d.ts.map +1 -1
- package/engine/operator/operators/date-based.operators.d.ts.map +1 -1
- package/engine/operator/operators/index.d.ts +2 -2
- package/engine/operator/operators/index.d.ts.map +1 -1
- package/engine/operator/operators/number-based.operators.d.ts.map +1 -1
- package/engine/ruleset-executor.d.ts +7 -2
- package/engine/ruleset-executor.d.ts.map +1 -1
- package/engine/structure.d.ts.map +1 -1
- package/esm2022/components/rules-engine/index.mjs +2 -2
- package/esm2022/components/rules-engine/rule-actions/rule-actions-pres.component.mjs +2 -2
- package/esm2022/components/rules-engine/rule-condition/rule-condition-pres.component.mjs +3 -4
- package/esm2022/components/rules-engine/rule-key-value/rule-key-value-pres.component.mjs +6 -6
- package/esm2022/components/rules-engine/rule-tree/rule-tree-pres.component.mjs +2 -2
- package/esm2022/components/rules-engine/ruleset-history/ruleset-history-pres.component.mjs +7 -7
- package/esm2022/components/rules-engine/ruleset-history/ruleset-history-pres.module.mjs +9 -9
- package/esm2022/components/rules-engine/shared/fallback-to.pipe.mjs +3 -3
- package/esm2022/components/rules-engine/shared/index.mjs +2 -2
- package/esm2022/components/rules-engine/shared/json-or-string.pipe.mjs +2 -2
- package/esm2022/components/rules-engine/shared/ruleset-history.helper.mjs +5 -5
- package/esm2022/devkit/index.mjs +1 -1
- package/esm2022/devkit/rules-engine-devkit.interface.mjs +4 -4
- package/esm2022/devkit/rules-engine-devtools.console.service.mjs +5 -7
- package/esm2022/devkit/rules-engine-devtools.message.service.mjs +12 -12
- package/esm2022/devkit/rules-engine-devtools.module.mjs +7 -7
- package/esm2022/devkit/rules-engine-devtools.service.mjs +16 -16
- package/esm2022/devkit/rules-engine-devtools.token.mjs +2 -2
- package/esm2022/engine/debug/engine.debug.mjs +16 -18
- package/esm2022/engine/debug/helpers.mjs +11 -11
- package/esm2022/engine/engine.interface.mjs +1 -1
- package/esm2022/engine/engine.mjs +12 -15
- package/esm2022/engine/fact/fact.interfaces.mjs +1 -1
- package/esm2022/engine/helpers/filter-ruleset-event.operator.mjs +6 -6
- package/esm2022/engine/operator/operator.helpers.mjs +15 -17
- package/esm2022/engine/operator/operator.interface.mjs +1 -1
- package/esm2022/engine/operator/operators/array-based.operators.mjs +11 -11
- package/esm2022/engine/operator/operators/basic.operators.mjs +8 -8
- package/esm2022/engine/operator/operators/date-based.operators.mjs +3 -3
- package/esm2022/engine/operator/operators/index.mjs +6 -6
- package/esm2022/engine/operator/operators/number-based.operators.mjs +2 -2
- package/esm2022/engine/rule/index.mjs +1 -1
- package/esm2022/engine/rule/rule.helpers.mjs +1 -1
- package/esm2022/engine/ruleset-executor.mjs +27 -23
- package/esm2022/engine/structure.mjs +1 -1
- package/esm2022/fact/fact.abstract-service.mjs +1 -1
- package/esm2022/fact/reserved.facts.mjs +1 -1
- package/esm2022/fixtures/jasmine/rules-engine.runner.service.fixture.jasmine.mjs +1 -1
- package/esm2022/fixtures/jest/rules-engine.runner.service.fixture.jest.mjs +1 -1
- package/esm2022/inner-facts/current-time/current-time-fact.service.mjs +5 -5
- package/esm2022/inner-facts/current-time/current-time.facts.mjs +1 -1
- package/esm2022/inner-facts/current-time/index.mjs +2 -2
- package/esm2022/interfaces/action.interfaces.mjs +1 -1
- package/esm2022/interfaces/index.mjs +1 -1
- package/esm2022/public_api.mjs +1 -2
- package/esm2022/services/index.mjs +2 -2
- package/esm2022/services/rules-engine.token.mjs +2 -2
- package/esm2022/services/runner/rules-engine.runner.module.mjs +7 -7
- package/esm2022/services/runner/rules-engine.runner.service.mjs +31 -14
- package/esm2022/stores/rulesets/rulesets.actions.mjs +3 -3
- package/esm2022/stores/rulesets/rulesets.effect.mjs +7 -7
- package/esm2022/stores/rulesets/rulesets.module.mjs +7 -7
- package/esm2022/stores/rulesets/rulesets.reducer.mjs +4 -4
- package/esm2022/stores/rulesets/rulesets.selectors.mjs +10 -10
- package/esm2022/stores/rulesets/rulesets.state.mjs +1 -1
- package/esm2022/stores/rulesets/rulesets.sync.mjs +3 -3
- package/fact/fact.abstract-service.d.ts.map +1 -1
- package/fact/reserved.facts.d.ts.map +1 -1
- package/fesm2022/o3r-rules-engine-fixtures-jasmine.mjs.map +1 -1
- package/fesm2022/o3r-rules-engine-fixtures-jest.mjs.map +1 -1
- package/fesm2022/o3r-rules-engine.mjs +269 -258
- package/fesm2022/o3r-rules-engine.mjs.map +1 -1
- package/fixtures/jasmine/rules-engine.runner.service.fixture.jasmine.d.ts.map +1 -1
- package/fixtures/jest/rules-engine.runner.service.fixture.jest.d.ts.map +1 -1
- package/fixtures/jest/rules-engine.runner.service.fixture.jest.js.map +1 -1
- package/inner-facts/current-time/current-time-fact.service.d.ts +1 -1
- package/inner-facts/current-time/current-time-fact.service.d.ts.map +1 -1
- package/inner-facts/current-time/current-time.facts.d.ts.map +1 -1
- package/inner-facts/current-time/index.d.ts +1 -1
- package/inner-facts/current-time/index.d.ts.map +1 -1
- package/interfaces/action.interfaces.d.ts.map +1 -1
- package/migration.json +5 -0
- package/package.json +5 -5
- package/public_api.d.ts +0 -1
- package/public_api.d.ts.map +1 -1
- package/schemas/rulesets.schema.json +20 -0
- package/schematics/cms-adapter/index.d.ts.map +1 -1
- package/schematics/cms-adapter/index.js +1 -3
- package/schematics/facts-service/index.d.ts.map +1 -1
- package/schematics/facts-service/index.js +2 -2
- package/schematics/facts-service/schema.d.ts.map +1 -1
- package/schematics/ng-add/helpers/devtools-registration.d.ts +0 -2
- package/schematics/ng-add/helpers/devtools-registration.d.ts.map +1 -1
- package/schematics/ng-add/helpers/devtools-registration.js +2 -4
- package/schematics/ng-add/index.d.ts.map +1 -1
- package/schematics/ng-add/index.js +8 -11
- package/schematics/ng-add/schema.d.ts.map +1 -1
- package/schematics/ng-update/index.d.ts +5 -1
- package/schematics/ng-update/index.d.ts.map +1 -1
- package/schematics/ng-update/index.js +17 -5
- package/schematics/ng-update/v10.0/action-module-split.d.ts.map +1 -1
- package/schematics/ng-update/v10.0/action-module-split.js +0 -2
- package/schematics/ng-update/v11.6/use-register-action-handlers.d.ts +7 -0
- package/schematics/ng-update/v11.6/use-register-action-handlers.d.ts.map +1 -0
- package/schematics/ng-update/v11.6/use-register-action-handlers.js +20 -0
- package/schematics/operator/index.d.ts.map +1 -1
- package/schematics/operator/index.js +2 -2
- package/schematics/operator/schema.d.ts.map +1 -1
- package/schematics/rules-engine-to-component/index.d.ts.map +1 -1
- package/schematics/rules-engine-to-component/schema.d.ts.map +1 -1
- package/services/index.d.ts +1 -1
- package/services/index.d.ts.map +1 -1
- package/services/rules-engine.token.d.ts.map +1 -1
- package/services/runner/rules-engine.runner.module.d.ts.map +1 -1
- package/services/runner/rules-engine.runner.service.d.ts +19 -6
- package/services/runner/rules-engine.runner.service.d.ts.map +1 -1
- package/stores/rulesets/rulesets.actions.d.ts.map +1 -1
- package/stores/rulesets/rulesets.effect.d.ts.map +1 -1
- package/stores/rulesets/rulesets.module.d.ts.map +1 -1
- package/stores/rulesets/rulesets.reducer.d.ts.map +1 -1
- package/stores/rulesets/rulesets.selectors.d.ts.map +1 -1
- package/stores/rulesets/rulesets.state.d.ts.map +1 -1
- package/stores/rulesets/rulesets.sync.d.ts.map +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
4
|
import * as i2 from "../rule-tree/rule-tree-pres.component";
|
|
@@ -28,23 +28,23 @@ export class RulesetHistoryPresComponent {
|
|
|
28
28
|
* @param subpanel element to collapse. 'ruleset' will toggle the whole panel but won't reset the subpanels states.
|
|
29
29
|
*/
|
|
30
30
|
toggleExpansion(ruleId, subpanel) {
|
|
31
|
-
if (
|
|
32
|
-
this.expansionStatus[ruleId] =
|
|
31
|
+
if (this.expansionStatus[ruleId]) {
|
|
32
|
+
this.expansionStatus[ruleId][subpanel] = !this.expansionStatus[ruleId][subpanel];
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
|
-
this.expansionStatus[ruleId]
|
|
35
|
+
this.expansionStatus[ruleId] = { [subpanel]: true };
|
|
36
36
|
}
|
|
37
37
|
this.cd.detectChanges();
|
|
38
38
|
}
|
|
39
39
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RulesetHistoryPresComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: RulesetHistoryPresComponent, selector: "o3r-ruleset-history-pres", inputs: { rulesetExecutions: "rulesetExecutions", executionDurationFormat: "executionDurationFormat" }, ngImport: i0, template: "<section>\n <h4 class=\"mb-4\">Ruleset Execution History</h4>\n <ng-template #noRulesEngine>\n <div class=\"alert alert-danger m-2\" role=\"alert\">\n The Rules Engine is not configured on this page.\n </div>\n </ng-template>\n <ul *ngIf=\"rulesetExecutions; else noRulesEngine\" class=\"rulesets\">\n <li *ngFor=\"let execution of rulesetExecutions\" class=\"ruleset\">\n <div class=\"ruleset-panel-title ruleset-expansion-action\"\n [class.error]=\"execution.type === 'RulesetExecutionError'\"\n (click)=\"toggleExpansion(execution.executionId, 'ruleset')\">\n <div><span [title]=\"'This ruleset has been evaluated ' + execution.executionCounter + ' time(s)'\">{{execution.executionCounter}}</span> - {{execution.rulesetName | titlecase }}\n <div class=\"ruleset-panel-subtitle\" *ngIf=\"execution.rulesetInformation?.linkedComponents?.or || execution.rulesetInformation?.linkedComponent\">\n <ng-container *ngFor=\"let lc of (execution.rulesetInformation?.linkedComponents?.or || [execution.rulesetInformation.linkedComponent]); last as isLast\">\n <div>{{lc.name}} {{lc.library}} <span *ngIf=\"!isLast\"> OR </span></div>\n </ng-container>\n </div>\n <div class=\"ruleset-panel-subtitle\" *ngIf=\"execution.rulesetInformation?.validityRange as validityRange\">\n Date range: {{validityRange.from}} - {{validityRange.to}}\n </div>\n </div>\n <div class=\"ruleset-panel-title-aside\">\n <span class=\"error capsule\" *ngIf=\"execution.status === 'Error'\">Error</span>\n <span class=\"success capsule\" *ngIf=\"execution.status === 'Active'\">Applied</span>\n <span class=\"inactive capsule\" *ngIf=\"execution.status === 'Deactivated'\">Deactivated</span>\n <span class=\"warn capsule\" *ngIf=\"execution.status === 'NoEffect'\">No effect</span>\n <span class=\"time capsule\">\n <span>{{execution.timestamp | date: 'HH:mm:ss SSS'}}</span>\n <span>({{execution.duration | number: executionDurationFormat}}ms)</span>\n </span>\n <button\n class=\"icon\"\n [class.icon-caret-down]=\"!expansionStatus[execution.executionId]?.ruleset\"\n [class.icon-caret-up]=\"expansionStatus[execution.executionId]?.ruleset\">\n </button>\n </div>\n </div>\n <div class=\"ruleset-panel-description\" *ngIf=\"expansionStatus[execution.executionId]?.ruleset\">\n <ng-container [ngTemplateOutlet]=\"rules\"\n [ngTemplateOutletContext]=\"{\n rules: execution.rulesetInformation.rules,\n expansionID: execution.executionId\n }\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"inputs\"\n [ngTemplateOutletContext]=\"{\n inputs: execution.inputFacts\n }\"></ng-container>\n <ng-container *ngIf=\"execution.type === 'RulesetExecutionError'; else success\">\n <div class=\"ruleset-panel-category-title\">Rules:</div>\n <ul class=\"ruleset-panel-category-body rule-description\">\n <li *ngFor=\"let ruleEvaluation of execution.rulesEvaluations; let index=index;\">\n <ng-container>\n <div class=\"ruleset-panel-title\" [class.error]=\"ruleEvaluation.error\">\n <span>{{ruleEvaluation.rule.name | titlecase}} </span>\n <span class=\"capsule error\" *ngIf=\"ruleEvaluation.error\">Error</span>\n </div>\n <div>\n <ng-container *ngIf=\"ruleEvaluation.error\">\n <span class=\"ruleset-panel-category-title\">Error:</span>\n <pre class=\"ruleset-panel-category-body error\">{{ruleEvaluation.error | o3rJsonOrString}}</pre>\n </ng-container>\n <ng-container [ngTemplateOutlet]=\"inputs\"\n [ngTemplateOutletContext]=\"{\n inputs: execution.inputFacts,\n runtimeInputs: execution.rulesetInformation?.rules[index]?.inputRuntimeFacts\n }\"></ng-container>\n <o3r-rule-actions-pres *ngIf=\"!ruleEvaluation.error\"\n [temporaryFacts]=\"ruleEvaluation.temporaryFacts\"\n [runtimeOutputs]=\"execution.rulesetInformation?.rules[index]?.outputRuntimeFacts\"\n ></o3r-rule-actions-pres>\n </div>\n </ng-container>\n </li>\n </ul>\n </ng-container>\n <ng-template #success>\n <o3r-rule-actions-pres [actions]=\"execution.outputActions\"></o3r-rule-actions-pres>\n <div class=\"ruleset-panel-category-title\">Executed Rules</div>\n <ul class=\"rule-description ruleset-panel-category-body\">\n <li *ngFor=\"let ruleEvaluation of execution.rulesEvaluations; let index=index;\">\n <div class=\"ruleset-panel-title\">\n <span>{{ruleEvaluation.rule.name | titlecase}}</span>\n <span class=\"capsule inactive\" *ngIf=\"ruleEvaluation.cached\">Cached</span>\n <span class=\"capsule\">({{ruleEvaluation.duration | number: executionDurationFormat}}ms)</span>\n </div>\n <div>\n <ng-container [ngTemplateOutlet]=\"triggers\"\n [ngTemplateOutletContext]=\"{triggers: (ruleEvaluation.triggers[ruleEvaluation.rule.id])}\"></ng-container>\n <o3r-rule-actions-pres\n [actions]=\"ruleEvaluation.outputActions\"\n [temporaryFacts]=\"ruleEvaluation.temporaryFacts\"\n [runtimeOutputs]=\"execution.rulesetInformation?.rules[index]?.outputRuntimeFacts\">\n </o3r-rule-actions-pres>\n </div>\n </li>\n </ul>\n </ng-template>\n </div>\n </li>\n </ul>\n</section>\n\n<ng-template let-triggers=\"triggers\" #triggers>\n <div class=\"ruleset-panel-category-title\">Basefacts Triggers</div>\n <ul class=\"ruleset-panel-category-body triggers\">\n <ng-container *ngFor=\"let trigger of (triggers | keyvalue)\">\n <li *ngIf=\"trigger.value?.factName\">\n <o3r-rule-key-value-pres\n [key]=\"trigger.value.factName\"\n [oldValue]=\"trigger.value.oldValue | o3rFallbackTo\"\n [value]=\"trigger.value.newValue | o3rFallbackTo\"\n [type]=\"'state'\"></o3r-rule-key-value-pres>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n\n<ng-template let-rules=\"rules\" let-expansionID=\"expansionID\" #rules>\n <div class=\"ruleset-panel-category-title ruleset-expansion-action\"\n (click)=\"toggleExpansion(expansionID, 'rulesOverview')\">\n <span>Rules Overview</span>\n <button class=\"icon\"\n [class.icon-caret-down]=\"!expansionStatus[expansionID]?.rulesOverview\"\n [class.icon-caret-up]=\"expansionStatus[expansionID]?.rulesOverview\">\n </button>\n </div>\n <ng-container *ngIf=\"expansionStatus[expansionID]?.rulesOverview\">\n <div *ngIf=\"rules?.length === 0\" class=\"ruleset-panel-category-body empty\">No rule</div>\n <ul class=\"ruleset-panel-category-body\" *ngIf=\"rules?.length > 0\">\n <li *ngFor=\"let rule of rules\">\n <o3r-rule-tree-pres [name]=\"rule.name\"\n [condition]=\"rule?.rootElement?.condition\"\n [blockType]=\"rule?.rootElement?.blockType\"\n [successElements]=\"rule?.rootElement?.successElements\"\n [failureElements]=\"rule?.rootElement?.failureElements\">\n </o3r-rule-tree-pres>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template let-inputs=\"inputs\" let-runtimeInputs=\"runtimeInputs\" #inputs>\n <div class=\"ruleset-panel-category-title\">Inputs snapshot</div>\n <div *ngIf=\"inputs?.length === 0\" class=\"ruleset-panel-category-body empty\">No inputs</div>\n <ul class=\"ruleset-panel-category-body\" *ngIf=\"inputs?.length > 0\">\n <li *ngFor=\"let input of inputs\">\n <o3r-rule-key-value-pres\n [key]=\"input.factName\"\n [value]=\"input.value | o3rFallbackTo\"\n [type]=\"'state'\"></o3r-rule-key-value-pres>\n </li>\n <li *ngFor=\"let input of runtimeInputs\">{{input}} (scope limited to ruleset)</li>\n </ul>\n</ng-template>\n", styles: ["o3r-ruleset-history-pres .ruleset-panel-title,o3r-ruleset-history-pres .ruleset-panel-category-title{display:flex;justify-content:space-between;align-items:center}o3r-ruleset-history-pres .ruleset-panel-title{font-size:1rem;padding:.5rem 0 .1rem}o3r-ruleset-history-pres .ruleset-expansion-action,o3r-ruleset-history-pres .icon-caret-down,o3r-ruleset-history-pres .icon-caret-up{cursor:pointer}o3r-ruleset-history-pres .ruleset-panel-subtitle{font-size:.75rem}o3r-ruleset-history-pres .ruleset-panel-title-aside{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;min-width:fit-content}o3r-ruleset-history-pres .ruleset-panel-category-title{font-size:.95rem;background:#eee;padding:.5rem;margin-bottom:.5rem;margin-top:1rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-title{font-size:.893rem;cursor:default}o3r-ruleset-history-pres .rule-description .ruleset-panel-title{font-size:.94rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-body{padding-bottom:.5rem;padding-left:1.5rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-body:empty{margin:0;padding:0 0 0 1.5rem}o3r-ruleset-history-pres .rulesets{margin:0;padding:0;list-style:none}o3r-ruleset-history-pres .rulesets ul{margin:0;padding-left:2rem}o3r-ruleset-history-pres .rulesets li.ruleset:nth-child(odd){background:#fbfbfb}o3r-ruleset-history-pres .ruleset-panel-category-body li{list-style:disc}o3r-ruleset-history-pres li:empty{display:none}o3r-ruleset-history-pres .ruleset{border-bottom:1px solid #dddddd}o3r-ruleset-history-pres .ruleset .ruleset-panel-description{padding:0 1rem 0 2rem;margin-bottom:2em}o3r-ruleset-history-pres .ruleset:first-child{border-top:1px solid #dddddd}o3r-ruleset-history-pres .ruleset-panel-title.ruleset-expansion-action{padding:.5rem 1rem}o3r-ruleset-history-pres .empty{font-style:italic;padding-left:1.5rem}o3r-ruleset-history-pres .ruleset-panel-category-body:empty.triggers:after{content:\"No trigger for this rule\";display:block;font-style:italic;padding-bottom:.5rem}o3r-ruleset-history-pres .ruleset-panel-title-aside{padding-left:1rem}o3r-ruleset-history-pres .rule-description .capsule{font-size:.8em;padding:.1rem .5rem;margin:0 .5rem}o3r-ruleset-history-pres .icon{background:none;border:none;font-size:1em}o3r-ruleset-history-pres .capsule{padding:.3rem;margin:.5rem;font-size:.875em;min-width:6rem;text-align:center}o3r-ruleset-history-pres .capsule.time{display:flex;flex-direction:column}o3r-ruleset-history-pres .success{background-color:#16aa32;color:#fff}o3r-ruleset-history-pres .inactive{background-color:#aaa;color:#fff}o3r-ruleset-history-pres .error{color:#c02020}o3r-ruleset-history-pres .error .capsule.error{background-color:#c02020;color:#fff}o3r-ruleset-history-pres .warn{background-color:#b92;color:#fff}o3r-ruleset-history-pres .input-key{color:#26c}o3r-ruleset-history-pres .input-value{color:#c29}o3r-ruleset-history-pres .input-key,o3r-ruleset-history-pres .input-value{font-family:monospace}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.RuleTreePresComponent, selector: "o3r-rule-tree-pres", inputs: ["name", "blockType", "condition", "successElements", "failureElements"] }, { kind: "component", type: i3.RuleActionsPresComponent, selector: "o3r-rule-actions-pres", inputs: ["actions", "temporaryFacts", "runtimeOutputs"] }, { kind: "component", type: i4.RuleKeyValuePresComponent, selector: "o3r-rule-key-value-pres", inputs: ["key", "value", "oldValue", "type"] }, { kind: "pipe", type: i5.O3rFallbackToPipe, name: "o3rFallbackTo" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i6.O3rJsonOrStringPipe, name: "o3rJsonOrString" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
40
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: RulesetHistoryPresComponent, selector: "o3r-ruleset-history-pres", inputs: { rulesetExecutions: "rulesetExecutions", executionDurationFormat: "executionDurationFormat" }, ngImport: i0, template: "<section>\n <h4 class=\"mb-4\">Ruleset Execution History</h4>\n <ng-template #noRulesEngine>\n <div class=\"alert alert-danger m-2\" role=\"alert\">\n The Rules Engine is not configured on this page.\n </div>\n </ng-template>\n <ul *ngIf=\"rulesetExecutions; else noRulesEngine\" class=\"rulesets\">\n <li *ngFor=\"let execution of rulesetExecutions\" class=\"ruleset\">\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -- need to refactor the div to accordion from DF #1518 -->\n <div class=\"ruleset-panel-title ruleset-expansion-action\"\n [class.error]=\"execution.type === 'RulesetExecutionError'\"\n (click)=\"toggleExpansion(execution.executionId, 'ruleset')\">\n <div><span [title]=\"'This ruleset has been evaluated ' + execution.executionCounter + ' time(s)'\">{{execution.executionCounter}}</span> - {{execution.rulesetName | titlecase }}\n <div class=\"ruleset-panel-subtitle\" *ngIf=\"execution.rulesetInformation?.linkedComponents?.or || execution.rulesetInformation?.linkedComponent\">\n <ng-container *ngFor=\"let lc of (execution.rulesetInformation?.linkedComponents?.or || [execution.rulesetInformation.linkedComponent]); last as isLast\">\n <div>{{lc.name}} {{lc.library}} <span *ngIf=\"!isLast\"> OR </span></div>\n </ng-container>\n </div>\n <div class=\"ruleset-panel-subtitle\" *ngIf=\"execution.rulesetInformation?.validityRange as validityRange\">\n Date range: {{validityRange.from}} - {{validityRange.to}}\n </div>\n </div>\n <div class=\"ruleset-panel-title-aside\">\n <span class=\"error capsule\" *ngIf=\"execution.status === 'Error'\">Error</span>\n <span class=\"success capsule\" *ngIf=\"execution.status === 'Active'\">Applied</span>\n <span class=\"inactive capsule\" *ngIf=\"execution.status === 'Deactivated'\">Deactivated</span>\n <span class=\"warn capsule\" *ngIf=\"execution.status === 'NoEffect'\">No effect</span>\n <span class=\"time capsule\">\n <span>{{execution.timestamp | date: 'HH:mm:ss SSS'}}</span>\n <span>({{execution.duration | number: executionDurationFormat}}ms)</span>\n </span>\n <button\n class=\"icon\"\n [class.icon-caret-down]=\"!expansionStatus[execution.executionId]?.ruleset\"\n [class.icon-caret-up]=\"expansionStatus[execution.executionId]?.ruleset\">\n </button>\n </div>\n </div>\n <div class=\"ruleset-panel-description\" *ngIf=\"expansionStatus[execution.executionId]?.ruleset\">\n <ng-container [ngTemplateOutlet]=\"rules\"\n [ngTemplateOutletContext]=\"{\n rules: execution.rulesetInformation.rules,\n expansionID: execution.executionId\n }\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"inputs\"\n [ngTemplateOutletContext]=\"{\n inputs: execution.inputFacts\n }\"></ng-container>\n <ng-container *ngIf=\"execution.type === 'RulesetExecutionError'; else success\">\n <div class=\"ruleset-panel-category-title\">Rules:</div>\n <ul class=\"ruleset-panel-category-body rule-description\">\n <li *ngFor=\"let ruleEvaluation of execution.rulesEvaluations; let index=index;\">\n <ng-container>\n <div class=\"ruleset-panel-title\" [class.error]=\"ruleEvaluation.error\">\n <span>{{ruleEvaluation.rule.name | titlecase}} </span>\n <span class=\"capsule error\" *ngIf=\"ruleEvaluation.error\">Error</span>\n </div>\n <div>\n <ng-container *ngIf=\"ruleEvaluation.error\">\n <span class=\"ruleset-panel-category-title\">Error:</span>\n <pre class=\"ruleset-panel-category-body error\">{{ruleEvaluation.error | o3rJsonOrString}}</pre>\n </ng-container>\n <ng-container [ngTemplateOutlet]=\"inputs\"\n [ngTemplateOutletContext]=\"{\n inputs: execution.inputFacts,\n runtimeInputs: execution.rulesetInformation?.rules[index]?.inputRuntimeFacts\n }\"></ng-container>\n <o3r-rule-actions-pres *ngIf=\"!ruleEvaluation.error\"\n [temporaryFacts]=\"ruleEvaluation.temporaryFacts\"\n [runtimeOutputs]=\"execution.rulesetInformation?.rules[index]?.outputRuntimeFacts\"\n ></o3r-rule-actions-pres>\n </div>\n </ng-container>\n </li>\n </ul>\n </ng-container>\n <ng-template #success>\n <o3r-rule-actions-pres [actions]=\"execution.outputActions\"></o3r-rule-actions-pres>\n <div class=\"ruleset-panel-category-title\">Executed Rules</div>\n <ul class=\"rule-description ruleset-panel-category-body\">\n <li *ngFor=\"let ruleEvaluation of execution.rulesEvaluations; let index=index;\">\n <div class=\"ruleset-panel-title\">\n <span>{{ruleEvaluation.rule.name | titlecase}}</span>\n <span class=\"capsule inactive\" *ngIf=\"ruleEvaluation.cached\">Cached</span>\n <span class=\"capsule\">({{ruleEvaluation.duration | number: executionDurationFormat}}ms)</span>\n </div>\n <div>\n <ng-container [ngTemplateOutlet]=\"triggers\"\n [ngTemplateOutletContext]=\"{triggers: (ruleEvaluation.triggers[ruleEvaluation.rule.id])}\"></ng-container>\n <o3r-rule-actions-pres\n [actions]=\"ruleEvaluation.outputActions\"\n [temporaryFacts]=\"ruleEvaluation.temporaryFacts\"\n [runtimeOutputs]=\"execution.rulesetInformation?.rules[index]?.outputRuntimeFacts\">\n </o3r-rule-actions-pres>\n </div>\n </li>\n </ul>\n </ng-template>\n </div>\n </li>\n </ul>\n</section>\n\n<ng-template let-triggers=\"triggers\" #triggers>\n <div class=\"ruleset-panel-category-title\">Basefacts Triggers</div>\n <ul class=\"ruleset-panel-category-body triggers\">\n <ng-container *ngFor=\"let trigger of (triggers | keyvalue)\">\n <li *ngIf=\"trigger.value?.factName\">\n <o3r-rule-key-value-pres\n [key]=\"trigger.value.factName\"\n [oldValue]=\"trigger.value.oldValue | o3rFallbackTo\"\n [value]=\"trigger.value.newValue | o3rFallbackTo\"\n [type]=\"'state'\"></o3r-rule-key-value-pres>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n\n<ng-template let-rules=\"rules\" let-expansionID=\"expansionID\" #rules>\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -- need to refactor the div to accordion from DF #1518 -->\n <div class=\"ruleset-panel-category-title ruleset-expansion-action\"\n (click)=\"toggleExpansion(expansionID, 'rulesOverview')\">\n <span>Rules Overview</span>\n <button class=\"icon\"\n [class.icon-caret-down]=\"!expansionStatus[expansionID]?.rulesOverview\"\n [class.icon-caret-up]=\"expansionStatus[expansionID]?.rulesOverview\">\n </button>\n </div>\n <ng-container *ngIf=\"expansionStatus[expansionID]?.rulesOverview\">\n <div *ngIf=\"rules?.length === 0\" class=\"ruleset-panel-category-body empty\">No rule</div>\n <ul class=\"ruleset-panel-category-body\" *ngIf=\"rules?.length > 0\">\n <li *ngFor=\"let rule of rules\">\n <o3r-rule-tree-pres [name]=\"rule.name\"\n [condition]=\"rule?.rootElement?.condition\"\n [blockType]=\"rule?.rootElement?.blockType\"\n [successElements]=\"rule?.rootElement?.successElements\"\n [failureElements]=\"rule?.rootElement?.failureElements\">\n </o3r-rule-tree-pres>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template let-inputs=\"inputs\" let-runtimeInputs=\"runtimeInputs\" #inputs>\n <div class=\"ruleset-panel-category-title\">Inputs snapshot</div>\n <div *ngIf=\"inputs?.length === 0\" class=\"ruleset-panel-category-body empty\">No inputs</div>\n <ul class=\"ruleset-panel-category-body\" *ngIf=\"inputs?.length > 0\">\n <li *ngFor=\"let input of inputs\">\n <o3r-rule-key-value-pres\n [key]=\"input.factName\"\n [value]=\"input.value | o3rFallbackTo\"\n [type]=\"'state'\"></o3r-rule-key-value-pres>\n </li>\n <li *ngFor=\"let input of runtimeInputs\">{{input}} (scope limited to ruleset)</li>\n </ul>\n</ng-template>\n", styles: ["o3r-ruleset-history-pres .ruleset-panel-title,o3r-ruleset-history-pres .ruleset-panel-category-title{display:flex;justify-content:space-between;align-items:center}o3r-ruleset-history-pres .ruleset-panel-title{font-size:1rem;padding:.5rem 0 .1rem}o3r-ruleset-history-pres .ruleset-expansion-action,o3r-ruleset-history-pres .icon-caret-down,o3r-ruleset-history-pres .icon-caret-up{cursor:pointer}o3r-ruleset-history-pres .ruleset-panel-subtitle{font-size:.75rem}o3r-ruleset-history-pres .ruleset-panel-title-aside{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;min-width:fit-content}o3r-ruleset-history-pres .ruleset-panel-category-title{font-size:.95rem;background:#eee;padding:.5rem;margin-bottom:.5rem;margin-top:1rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-title{font-size:.893rem;cursor:default}o3r-ruleset-history-pres .rule-description .ruleset-panel-title{font-size:.94rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-body{padding-bottom:.5rem;padding-left:1.5rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-body:empty{margin:0;padding:0 0 0 1.5rem}o3r-ruleset-history-pres .rulesets{margin:0;padding:0;list-style:none}o3r-ruleset-history-pres .rulesets ul{margin:0;padding-left:2rem}o3r-ruleset-history-pres .rulesets li.ruleset:nth-child(odd){background:#fbfbfb}o3r-ruleset-history-pres .ruleset-panel-category-body li{list-style:disc}o3r-ruleset-history-pres li:empty{display:none}o3r-ruleset-history-pres .ruleset{border-bottom:1px solid #dddddd}o3r-ruleset-history-pres .ruleset .ruleset-panel-description{padding:0 1rem 0 2rem;margin-bottom:2em}o3r-ruleset-history-pres .ruleset:first-child{border-top:1px solid #dddddd}o3r-ruleset-history-pres .ruleset-panel-title.ruleset-expansion-action{padding:.5rem 1rem}o3r-ruleset-history-pres .empty{font-style:italic;padding-left:1.5rem}o3r-ruleset-history-pres .ruleset-panel-category-body:empty.triggers:after{content:\"No trigger for this rule\";display:block;font-style:italic;padding-bottom:.5rem}o3r-ruleset-history-pres .ruleset-panel-title-aside{padding-left:1rem}o3r-ruleset-history-pres .rule-description .capsule{font-size:.8em;padding:.1rem .5rem;margin:0 .5rem}o3r-ruleset-history-pres .icon{background:none;border:none;font-size:1em}o3r-ruleset-history-pres .capsule{padding:.3rem;margin:.5rem;font-size:.875em;min-width:6rem;text-align:center}o3r-ruleset-history-pres .capsule.time{display:flex;flex-direction:column}o3r-ruleset-history-pres .success{background-color:#16aa32;color:#fff}o3r-ruleset-history-pres .inactive{background-color:#aaa;color:#fff}o3r-ruleset-history-pres .error{color:#c02020}o3r-ruleset-history-pres .error .capsule.error{background-color:#c02020;color:#fff}o3r-ruleset-history-pres .warn{background-color:#b92;color:#fff}o3r-ruleset-history-pres .input-key{color:#26c}o3r-ruleset-history-pres .input-value{color:#c29}o3r-ruleset-history-pres .input-key,o3r-ruleset-history-pres .input-value{font-family:monospace}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.RuleTreePresComponent, selector: "o3r-rule-tree-pres", inputs: ["name", "blockType", "condition", "successElements", "failureElements"] }, { kind: "component", type: i3.RuleActionsPresComponent, selector: "o3r-rule-actions-pres", inputs: ["actions", "temporaryFacts", "runtimeOutputs"] }, { kind: "component", type: i4.RuleKeyValuePresComponent, selector: "o3r-rule-key-value-pres", inputs: ["key", "value", "oldValue", "type"] }, { kind: "pipe", type: i5.O3rFallbackToPipe, name: "o3rFallbackTo" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i6.O3rJsonOrStringPipe, name: "o3rJsonOrString" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
41
41
|
}
|
|
42
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RulesetHistoryPresComponent, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
|
-
args: [{ selector: 'o3r-ruleset-history-pres', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<section>\n <h4 class=\"mb-4\">Ruleset Execution History</h4>\n <ng-template #noRulesEngine>\n <div class=\"alert alert-danger m-2\" role=\"alert\">\n The Rules Engine is not configured on this page.\n </div>\n </ng-template>\n <ul *ngIf=\"rulesetExecutions; else noRulesEngine\" class=\"rulesets\">\n <li *ngFor=\"let execution of rulesetExecutions\" class=\"ruleset\">\n <div class=\"ruleset-panel-title ruleset-expansion-action\"\n [class.error]=\"execution.type === 'RulesetExecutionError'\"\n (click)=\"toggleExpansion(execution.executionId, 'ruleset')\">\n <div><span [title]=\"'This ruleset has been evaluated ' + execution.executionCounter + ' time(s)'\">{{execution.executionCounter}}</span> - {{execution.rulesetName | titlecase }}\n <div class=\"ruleset-panel-subtitle\" *ngIf=\"execution.rulesetInformation?.linkedComponents?.or || execution.rulesetInformation?.linkedComponent\">\n <ng-container *ngFor=\"let lc of (execution.rulesetInformation?.linkedComponents?.or || [execution.rulesetInformation.linkedComponent]); last as isLast\">\n <div>{{lc.name}} {{lc.library}} <span *ngIf=\"!isLast\"> OR </span></div>\n </ng-container>\n </div>\n <div class=\"ruleset-panel-subtitle\" *ngIf=\"execution.rulesetInformation?.validityRange as validityRange\">\n Date range: {{validityRange.from}} - {{validityRange.to}}\n </div>\n </div>\n <div class=\"ruleset-panel-title-aside\">\n <span class=\"error capsule\" *ngIf=\"execution.status === 'Error'\">Error</span>\n <span class=\"success capsule\" *ngIf=\"execution.status === 'Active'\">Applied</span>\n <span class=\"inactive capsule\" *ngIf=\"execution.status === 'Deactivated'\">Deactivated</span>\n <span class=\"warn capsule\" *ngIf=\"execution.status === 'NoEffect'\">No effect</span>\n <span class=\"time capsule\">\n <span>{{execution.timestamp | date: 'HH:mm:ss SSS'}}</span>\n <span>({{execution.duration | number: executionDurationFormat}}ms)</span>\n </span>\n <button\n class=\"icon\"\n [class.icon-caret-down]=\"!expansionStatus[execution.executionId]?.ruleset\"\n [class.icon-caret-up]=\"expansionStatus[execution.executionId]?.ruleset\">\n </button>\n </div>\n </div>\n <div class=\"ruleset-panel-description\" *ngIf=\"expansionStatus[execution.executionId]?.ruleset\">\n <ng-container [ngTemplateOutlet]=\"rules\"\n [ngTemplateOutletContext]=\"{\n rules: execution.rulesetInformation.rules,\n expansionID: execution.executionId\n }\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"inputs\"\n [ngTemplateOutletContext]=\"{\n inputs: execution.inputFacts\n }\"></ng-container>\n <ng-container *ngIf=\"execution.type === 'RulesetExecutionError'; else success\">\n <div class=\"ruleset-panel-category-title\">Rules:</div>\n <ul class=\"ruleset-panel-category-body rule-description\">\n <li *ngFor=\"let ruleEvaluation of execution.rulesEvaluations; let index=index;\">\n <ng-container>\n <div class=\"ruleset-panel-title\" [class.error]=\"ruleEvaluation.error\">\n <span>{{ruleEvaluation.rule.name | titlecase}} </span>\n <span class=\"capsule error\" *ngIf=\"ruleEvaluation.error\">Error</span>\n </div>\n <div>\n <ng-container *ngIf=\"ruleEvaluation.error\">\n <span class=\"ruleset-panel-category-title\">Error:</span>\n <pre class=\"ruleset-panel-category-body error\">{{ruleEvaluation.error | o3rJsonOrString}}</pre>\n </ng-container>\n <ng-container [ngTemplateOutlet]=\"inputs\"\n [ngTemplateOutletContext]=\"{\n inputs: execution.inputFacts,\n runtimeInputs: execution.rulesetInformation?.rules[index]?.inputRuntimeFacts\n }\"></ng-container>\n <o3r-rule-actions-pres *ngIf=\"!ruleEvaluation.error\"\n [temporaryFacts]=\"ruleEvaluation.temporaryFacts\"\n [runtimeOutputs]=\"execution.rulesetInformation?.rules[index]?.outputRuntimeFacts\"\n ></o3r-rule-actions-pres>\n </div>\n </ng-container>\n </li>\n </ul>\n </ng-container>\n <ng-template #success>\n <o3r-rule-actions-pres [actions]=\"execution.outputActions\"></o3r-rule-actions-pres>\n <div class=\"ruleset-panel-category-title\">Executed Rules</div>\n <ul class=\"rule-description ruleset-panel-category-body\">\n <li *ngFor=\"let ruleEvaluation of execution.rulesEvaluations; let index=index;\">\n <div class=\"ruleset-panel-title\">\n <span>{{ruleEvaluation.rule.name | titlecase}}</span>\n <span class=\"capsule inactive\" *ngIf=\"ruleEvaluation.cached\">Cached</span>\n <span class=\"capsule\">({{ruleEvaluation.duration | number: executionDurationFormat}}ms)</span>\n </div>\n <div>\n <ng-container [ngTemplateOutlet]=\"triggers\"\n [ngTemplateOutletContext]=\"{triggers: (ruleEvaluation.triggers[ruleEvaluation.rule.id])}\"></ng-container>\n <o3r-rule-actions-pres\n [actions]=\"ruleEvaluation.outputActions\"\n [temporaryFacts]=\"ruleEvaluation.temporaryFacts\"\n [runtimeOutputs]=\"execution.rulesetInformation?.rules[index]?.outputRuntimeFacts\">\n </o3r-rule-actions-pres>\n </div>\n </li>\n </ul>\n </ng-template>\n </div>\n </li>\n </ul>\n</section>\n\n<ng-template let-triggers=\"triggers\" #triggers>\n <div class=\"ruleset-panel-category-title\">Basefacts Triggers</div>\n <ul class=\"ruleset-panel-category-body triggers\">\n <ng-container *ngFor=\"let trigger of (triggers | keyvalue)\">\n <li *ngIf=\"trigger.value?.factName\">\n <o3r-rule-key-value-pres\n [key]=\"trigger.value.factName\"\n [oldValue]=\"trigger.value.oldValue | o3rFallbackTo\"\n [value]=\"trigger.value.newValue | o3rFallbackTo\"\n [type]=\"'state'\"></o3r-rule-key-value-pres>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n\n<ng-template let-rules=\"rules\" let-expansionID=\"expansionID\" #rules>\n <div class=\"ruleset-panel-category-title ruleset-expansion-action\"\n (click)=\"toggleExpansion(expansionID, 'rulesOverview')\">\n <span>Rules Overview</span>\n <button class=\"icon\"\n [class.icon-caret-down]=\"!expansionStatus[expansionID]?.rulesOverview\"\n [class.icon-caret-up]=\"expansionStatus[expansionID]?.rulesOverview\">\n </button>\n </div>\n <ng-container *ngIf=\"expansionStatus[expansionID]?.rulesOverview\">\n <div *ngIf=\"rules?.length === 0\" class=\"ruleset-panel-category-body empty\">No rule</div>\n <ul class=\"ruleset-panel-category-body\" *ngIf=\"rules?.length > 0\">\n <li *ngFor=\"let rule of rules\">\n <o3r-rule-tree-pres [name]=\"rule.name\"\n [condition]=\"rule?.rootElement?.condition\"\n [blockType]=\"rule?.rootElement?.blockType\"\n [successElements]=\"rule?.rootElement?.successElements\"\n [failureElements]=\"rule?.rootElement?.failureElements\">\n </o3r-rule-tree-pres>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template let-inputs=\"inputs\" let-runtimeInputs=\"runtimeInputs\" #inputs>\n <div class=\"ruleset-panel-category-title\">Inputs snapshot</div>\n <div *ngIf=\"inputs?.length === 0\" class=\"ruleset-panel-category-body empty\">No inputs</div>\n <ul class=\"ruleset-panel-category-body\" *ngIf=\"inputs?.length > 0\">\n <li *ngFor=\"let input of inputs\">\n <o3r-rule-key-value-pres\n [key]=\"input.factName\"\n [value]=\"input.value | o3rFallbackTo\"\n [type]=\"'state'\"></o3r-rule-key-value-pres>\n </li>\n <li *ngFor=\"let input of runtimeInputs\">{{input}} (scope limited to ruleset)</li>\n </ul>\n</ng-template>\n", styles: ["o3r-ruleset-history-pres .ruleset-panel-title,o3r-ruleset-history-pres .ruleset-panel-category-title{display:flex;justify-content:space-between;align-items:center}o3r-ruleset-history-pres .ruleset-panel-title{font-size:1rem;padding:.5rem 0 .1rem}o3r-ruleset-history-pres .ruleset-expansion-action,o3r-ruleset-history-pres .icon-caret-down,o3r-ruleset-history-pres .icon-caret-up{cursor:pointer}o3r-ruleset-history-pres .ruleset-panel-subtitle{font-size:.75rem}o3r-ruleset-history-pres .ruleset-panel-title-aside{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;min-width:fit-content}o3r-ruleset-history-pres .ruleset-panel-category-title{font-size:.95rem;background:#eee;padding:.5rem;margin-bottom:.5rem;margin-top:1rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-title{font-size:.893rem;cursor:default}o3r-ruleset-history-pres .rule-description .ruleset-panel-title{font-size:.94rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-body{padding-bottom:.5rem;padding-left:1.5rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-body:empty{margin:0;padding:0 0 0 1.5rem}o3r-ruleset-history-pres .rulesets{margin:0;padding:0;list-style:none}o3r-ruleset-history-pres .rulesets ul{margin:0;padding-left:2rem}o3r-ruleset-history-pres .rulesets li.ruleset:nth-child(odd){background:#fbfbfb}o3r-ruleset-history-pres .ruleset-panel-category-body li{list-style:disc}o3r-ruleset-history-pres li:empty{display:none}o3r-ruleset-history-pres .ruleset{border-bottom:1px solid #dddddd}o3r-ruleset-history-pres .ruleset .ruleset-panel-description{padding:0 1rem 0 2rem;margin-bottom:2em}o3r-ruleset-history-pres .ruleset:first-child{border-top:1px solid #dddddd}o3r-ruleset-history-pres .ruleset-panel-title.ruleset-expansion-action{padding:.5rem 1rem}o3r-ruleset-history-pres .empty{font-style:italic;padding-left:1.5rem}o3r-ruleset-history-pres .ruleset-panel-category-body:empty.triggers:after{content:\"No trigger for this rule\";display:block;font-style:italic;padding-bottom:.5rem}o3r-ruleset-history-pres .ruleset-panel-title-aside{padding-left:1rem}o3r-ruleset-history-pres .rule-description .capsule{font-size:.8em;padding:.1rem .5rem;margin:0 .5rem}o3r-ruleset-history-pres .icon{background:none;border:none;font-size:1em}o3r-ruleset-history-pres .capsule{padding:.3rem;margin:.5rem;font-size:.875em;min-width:6rem;text-align:center}o3r-ruleset-history-pres .capsule.time{display:flex;flex-direction:column}o3r-ruleset-history-pres .success{background-color:#16aa32;color:#fff}o3r-ruleset-history-pres .inactive{background-color:#aaa;color:#fff}o3r-ruleset-history-pres .error{color:#c02020}o3r-ruleset-history-pres .error .capsule.error{background-color:#c02020;color:#fff}o3r-ruleset-history-pres .warn{background-color:#b92;color:#fff}o3r-ruleset-history-pres .input-key{color:#26c}o3r-ruleset-history-pres .input-value{color:#c29}o3r-ruleset-history-pres .input-key,o3r-ruleset-history-pres .input-value{font-family:monospace}\n"] }]
|
|
44
|
+
args: [{ selector: 'o3r-ruleset-history-pres', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<section>\n <h4 class=\"mb-4\">Ruleset Execution History</h4>\n <ng-template #noRulesEngine>\n <div class=\"alert alert-danger m-2\" role=\"alert\">\n The Rules Engine is not configured on this page.\n </div>\n </ng-template>\n <ul *ngIf=\"rulesetExecutions; else noRulesEngine\" class=\"rulesets\">\n <li *ngFor=\"let execution of rulesetExecutions\" class=\"ruleset\">\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -- need to refactor the div to accordion from DF #1518 -->\n <div class=\"ruleset-panel-title ruleset-expansion-action\"\n [class.error]=\"execution.type === 'RulesetExecutionError'\"\n (click)=\"toggleExpansion(execution.executionId, 'ruleset')\">\n <div><span [title]=\"'This ruleset has been evaluated ' + execution.executionCounter + ' time(s)'\">{{execution.executionCounter}}</span> - {{execution.rulesetName | titlecase }}\n <div class=\"ruleset-panel-subtitle\" *ngIf=\"execution.rulesetInformation?.linkedComponents?.or || execution.rulesetInformation?.linkedComponent\">\n <ng-container *ngFor=\"let lc of (execution.rulesetInformation?.linkedComponents?.or || [execution.rulesetInformation.linkedComponent]); last as isLast\">\n <div>{{lc.name}} {{lc.library}} <span *ngIf=\"!isLast\"> OR </span></div>\n </ng-container>\n </div>\n <div class=\"ruleset-panel-subtitle\" *ngIf=\"execution.rulesetInformation?.validityRange as validityRange\">\n Date range: {{validityRange.from}} - {{validityRange.to}}\n </div>\n </div>\n <div class=\"ruleset-panel-title-aside\">\n <span class=\"error capsule\" *ngIf=\"execution.status === 'Error'\">Error</span>\n <span class=\"success capsule\" *ngIf=\"execution.status === 'Active'\">Applied</span>\n <span class=\"inactive capsule\" *ngIf=\"execution.status === 'Deactivated'\">Deactivated</span>\n <span class=\"warn capsule\" *ngIf=\"execution.status === 'NoEffect'\">No effect</span>\n <span class=\"time capsule\">\n <span>{{execution.timestamp | date: 'HH:mm:ss SSS'}}</span>\n <span>({{execution.duration | number: executionDurationFormat}}ms)</span>\n </span>\n <button\n class=\"icon\"\n [class.icon-caret-down]=\"!expansionStatus[execution.executionId]?.ruleset\"\n [class.icon-caret-up]=\"expansionStatus[execution.executionId]?.ruleset\">\n </button>\n </div>\n </div>\n <div class=\"ruleset-panel-description\" *ngIf=\"expansionStatus[execution.executionId]?.ruleset\">\n <ng-container [ngTemplateOutlet]=\"rules\"\n [ngTemplateOutletContext]=\"{\n rules: execution.rulesetInformation.rules,\n expansionID: execution.executionId\n }\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"inputs\"\n [ngTemplateOutletContext]=\"{\n inputs: execution.inputFacts\n }\"></ng-container>\n <ng-container *ngIf=\"execution.type === 'RulesetExecutionError'; else success\">\n <div class=\"ruleset-panel-category-title\">Rules:</div>\n <ul class=\"ruleset-panel-category-body rule-description\">\n <li *ngFor=\"let ruleEvaluation of execution.rulesEvaluations; let index=index;\">\n <ng-container>\n <div class=\"ruleset-panel-title\" [class.error]=\"ruleEvaluation.error\">\n <span>{{ruleEvaluation.rule.name | titlecase}} </span>\n <span class=\"capsule error\" *ngIf=\"ruleEvaluation.error\">Error</span>\n </div>\n <div>\n <ng-container *ngIf=\"ruleEvaluation.error\">\n <span class=\"ruleset-panel-category-title\">Error:</span>\n <pre class=\"ruleset-panel-category-body error\">{{ruleEvaluation.error | o3rJsonOrString}}</pre>\n </ng-container>\n <ng-container [ngTemplateOutlet]=\"inputs\"\n [ngTemplateOutletContext]=\"{\n inputs: execution.inputFacts,\n runtimeInputs: execution.rulesetInformation?.rules[index]?.inputRuntimeFacts\n }\"></ng-container>\n <o3r-rule-actions-pres *ngIf=\"!ruleEvaluation.error\"\n [temporaryFacts]=\"ruleEvaluation.temporaryFacts\"\n [runtimeOutputs]=\"execution.rulesetInformation?.rules[index]?.outputRuntimeFacts\"\n ></o3r-rule-actions-pres>\n </div>\n </ng-container>\n </li>\n </ul>\n </ng-container>\n <ng-template #success>\n <o3r-rule-actions-pres [actions]=\"execution.outputActions\"></o3r-rule-actions-pres>\n <div class=\"ruleset-panel-category-title\">Executed Rules</div>\n <ul class=\"rule-description ruleset-panel-category-body\">\n <li *ngFor=\"let ruleEvaluation of execution.rulesEvaluations; let index=index;\">\n <div class=\"ruleset-panel-title\">\n <span>{{ruleEvaluation.rule.name | titlecase}}</span>\n <span class=\"capsule inactive\" *ngIf=\"ruleEvaluation.cached\">Cached</span>\n <span class=\"capsule\">({{ruleEvaluation.duration | number: executionDurationFormat}}ms)</span>\n </div>\n <div>\n <ng-container [ngTemplateOutlet]=\"triggers\"\n [ngTemplateOutletContext]=\"{triggers: (ruleEvaluation.triggers[ruleEvaluation.rule.id])}\"></ng-container>\n <o3r-rule-actions-pres\n [actions]=\"ruleEvaluation.outputActions\"\n [temporaryFacts]=\"ruleEvaluation.temporaryFacts\"\n [runtimeOutputs]=\"execution.rulesetInformation?.rules[index]?.outputRuntimeFacts\">\n </o3r-rule-actions-pres>\n </div>\n </li>\n </ul>\n </ng-template>\n </div>\n </li>\n </ul>\n</section>\n\n<ng-template let-triggers=\"triggers\" #triggers>\n <div class=\"ruleset-panel-category-title\">Basefacts Triggers</div>\n <ul class=\"ruleset-panel-category-body triggers\">\n <ng-container *ngFor=\"let trigger of (triggers | keyvalue)\">\n <li *ngIf=\"trigger.value?.factName\">\n <o3r-rule-key-value-pres\n [key]=\"trigger.value.factName\"\n [oldValue]=\"trigger.value.oldValue | o3rFallbackTo\"\n [value]=\"trigger.value.newValue | o3rFallbackTo\"\n [type]=\"'state'\"></o3r-rule-key-value-pres>\n </li>\n </ng-container>\n </ul>\n</ng-template>\n\n<ng-template let-rules=\"rules\" let-expansionID=\"expansionID\" #rules>\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -- need to refactor the div to accordion from DF #1518 -->\n <div class=\"ruleset-panel-category-title ruleset-expansion-action\"\n (click)=\"toggleExpansion(expansionID, 'rulesOverview')\">\n <span>Rules Overview</span>\n <button class=\"icon\"\n [class.icon-caret-down]=\"!expansionStatus[expansionID]?.rulesOverview\"\n [class.icon-caret-up]=\"expansionStatus[expansionID]?.rulesOverview\">\n </button>\n </div>\n <ng-container *ngIf=\"expansionStatus[expansionID]?.rulesOverview\">\n <div *ngIf=\"rules?.length === 0\" class=\"ruleset-panel-category-body empty\">No rule</div>\n <ul class=\"ruleset-panel-category-body\" *ngIf=\"rules?.length > 0\">\n <li *ngFor=\"let rule of rules\">\n <o3r-rule-tree-pres [name]=\"rule.name\"\n [condition]=\"rule?.rootElement?.condition\"\n [blockType]=\"rule?.rootElement?.blockType\"\n [successElements]=\"rule?.rootElement?.successElements\"\n [failureElements]=\"rule?.rootElement?.failureElements\">\n </o3r-rule-tree-pres>\n </li>\n </ul>\n </ng-container>\n</ng-template>\n\n<ng-template let-inputs=\"inputs\" let-runtimeInputs=\"runtimeInputs\" #inputs>\n <div class=\"ruleset-panel-category-title\">Inputs snapshot</div>\n <div *ngIf=\"inputs?.length === 0\" class=\"ruleset-panel-category-body empty\">No inputs</div>\n <ul class=\"ruleset-panel-category-body\" *ngIf=\"inputs?.length > 0\">\n <li *ngFor=\"let input of inputs\">\n <o3r-rule-key-value-pres\n [key]=\"input.factName\"\n [value]=\"input.value | o3rFallbackTo\"\n [type]=\"'state'\"></o3r-rule-key-value-pres>\n </li>\n <li *ngFor=\"let input of runtimeInputs\">{{input}} (scope limited to ruleset)</li>\n </ul>\n</ng-template>\n", styles: ["o3r-ruleset-history-pres .ruleset-panel-title,o3r-ruleset-history-pres .ruleset-panel-category-title{display:flex;justify-content:space-between;align-items:center}o3r-ruleset-history-pres .ruleset-panel-title{font-size:1rem;padding:.5rem 0 .1rem}o3r-ruleset-history-pres .ruleset-expansion-action,o3r-ruleset-history-pres .icon-caret-down,o3r-ruleset-history-pres .icon-caret-up{cursor:pointer}o3r-ruleset-history-pres .ruleset-panel-subtitle{font-size:.75rem}o3r-ruleset-history-pres .ruleset-panel-title-aside{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;min-width:fit-content}o3r-ruleset-history-pres .ruleset-panel-category-title{font-size:.95rem;background:#eee;padding:.5rem;margin-bottom:.5rem;margin-top:1rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-title{font-size:.893rem;cursor:default}o3r-ruleset-history-pres .rule-description .ruleset-panel-title{font-size:.94rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-body{padding-bottom:.5rem;padding-left:1.5rem}o3r-ruleset-history-pres .rule-description .ruleset-panel-category-body:empty{margin:0;padding:0 0 0 1.5rem}o3r-ruleset-history-pres .rulesets{margin:0;padding:0;list-style:none}o3r-ruleset-history-pres .rulesets ul{margin:0;padding-left:2rem}o3r-ruleset-history-pres .rulesets li.ruleset:nth-child(odd){background:#fbfbfb}o3r-ruleset-history-pres .ruleset-panel-category-body li{list-style:disc}o3r-ruleset-history-pres li:empty{display:none}o3r-ruleset-history-pres .ruleset{border-bottom:1px solid #dddddd}o3r-ruleset-history-pres .ruleset .ruleset-panel-description{padding:0 1rem 0 2rem;margin-bottom:2em}o3r-ruleset-history-pres .ruleset:first-child{border-top:1px solid #dddddd}o3r-ruleset-history-pres .ruleset-panel-title.ruleset-expansion-action{padding:.5rem 1rem}o3r-ruleset-history-pres .empty{font-style:italic;padding-left:1.5rem}o3r-ruleset-history-pres .ruleset-panel-category-body:empty.triggers:after{content:\"No trigger for this rule\";display:block;font-style:italic;padding-bottom:.5rem}o3r-ruleset-history-pres .ruleset-panel-title-aside{padding-left:1rem}o3r-ruleset-history-pres .rule-description .capsule{font-size:.8em;padding:.1rem .5rem;margin:0 .5rem}o3r-ruleset-history-pres .icon{background:none;border:none;font-size:1em}o3r-ruleset-history-pres .capsule{padding:.3rem;margin:.5rem;font-size:.875em;min-width:6rem;text-align:center}o3r-ruleset-history-pres .capsule.time{display:flex;flex-direction:column}o3r-ruleset-history-pres .success{background-color:#16aa32;color:#fff}o3r-ruleset-history-pres .inactive{background-color:#aaa;color:#fff}o3r-ruleset-history-pres .error{color:#c02020}o3r-ruleset-history-pres .error .capsule.error{background-color:#c02020;color:#fff}o3r-ruleset-history-pres .warn{background-color:#b92;color:#fff}o3r-ruleset-history-pres .input-key{color:#26c}o3r-ruleset-history-pres .input-value{color:#c29}o3r-ruleset-history-pres .input-key,o3r-ruleset-history-pres .input-value{font-family:monospace}\n"] }]
|
|
45
45
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { rulesetExecutions: [{
|
|
46
46
|
type: Input
|
|
47
47
|
}], executionDurationFormat: [{
|
|
48
48
|
type: Input
|
|
49
49
|
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldC1oaXN0b3J5LXByZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcnVsZXMtZW5naW5lL3J1bGVzZXQtaGlzdG9yeS9ydWxlc2V0LWhpc3RvcnktcHJlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9ydWxlcy1lbmdpbmUvcnVsZXNldC1oaXN0b3J5L3J1bGVzZXQtaGlzdG9yeS1wcmVzLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBcUJoSCxNQUFNLE9BQU8sMkJBQTJCO0lBbUJ0QyxZQUE2QixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWxCbEQ7Ozs7Ozs7O1dBUUc7UUFDSSxvQkFBZSxHQUFvRCxFQUFFLENBQUM7UUFJdEUsc0JBQWlCLEdBQTRCLEVBQUUsQ0FBQztRQUdoRCw0QkFBdUIsR0FBRyxPQUFPLENBQUM7SUFFWSxDQUFDO0lBRXREOzs7O09BSUc7SUFDSSxlQUFlLENBQUMsTUFBYyxFQUFFLFFBQWdCO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFDLENBQUM7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDO2tJQWpDVSwyQkFBMkI7c0hBQTNCLDJCQUEyQix3S0NyQnhDLG03UUEySkE7OzRGRHRJYSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO3NGQWdCOUIsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlDLHVCQUF1QjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgUnVsZXNldCwgUnVsZXNldEV4ZWN1dGlvbkVycm9yRXZlbnQsIFJ1bGVzZXRFeGVjdXRpb25FdmVudCB9IGZyb20gJy4uLy4uLy4uL2VuZ2luZSc7XG5cbmV4cG9ydCB0eXBlIFJ1bGVzZXRFeGVjdXRpb25TdGF0dXMgPSAnRXJyb3InIHwgJ0FjdGl2ZScgfCAnRGVhY3RpdmF0ZWQnIHwgJ05vRWZmZWN0Jztcbi8qKlxuICogTW9kZWwgb2YgYSBSdWxlc2V0RXhlY3V0aW9uIHdpdGggbW9yZSBpbmZvcm1hdGlvbiBmb3IgZGVidWcgcHVycG9zZVxuICovXG5leHBvcnQgdHlwZSBSdWxlc2V0RXhlY3V0aW9uRGVidWcgPSAoUnVsZXNldEV4ZWN1dGlvbkV2ZW50IHwgUnVsZXNldEV4ZWN1dGlvbkVycm9yRXZlbnQpICYge1xuICBpc0FjdGl2ZTogYm9vbGVhbjtcbiAgc3RhdHVzOiBSdWxlc2V0RXhlY3V0aW9uU3RhdHVzO1xuICBydWxlc2V0SW5mb3JtYXRpb246IFJ1bGVzZXQgfCB1bmRlZmluZWQ7XG59O1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28zci1ydWxlc2V0LWhpc3RvcnktcHJlcycsXG4gIHN0eWxlVXJsczogWycuL3J1bGVzZXQtaGlzdG9yeS1wcmVzLnN0eWxlLnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3J1bGVzZXQtaGlzdG9yeS1wcmVzLnRlbXBsYXRlLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlc2V0SGlzdG9yeVByZXNDb21wb25lbnQge1xuICAvKipcbiAgICogUmVmbGVjdHMgdGhlIHN0YXRlIG9mIGVhY2ggcnVsZXNldCBleHBhbmRlZCBlbGVtZW50cy5cbiAgICogRWFjaCBydWxlc2V0IGVudHJ5IGNvbnRhaW5zIGEgbGlzdCBvZiBzdWJwYW5lbCB0aGF0IGNhbiBiZSBjb2xsYXBzZWQgb3IgZXhwYW5kZWQuXG4gICAqIFJ1bGVzZXQgd2hvbGUgcGFuZWwgc3RhdHVzIGlzIHN0b3JlIHRoZSAncnVsZXNldCcgZW50cnkuXG4gICAqIEBleGFtcGxlXG4gICAqIEV4cGFuZGVkIHJ1bGVzZXQgd2l0aCBydWxlIG92ZXJ2aWV3IGNvbGxhcHNlZDpcbiAgICogeydydWxlc2V0SWQnOiB7J3J1bGVzZXQnIDogdHJ1ZSwgJ3J1bGVPdmVydmlldyc6IGZhbHNlfX1cbiAgICogQG5vdGUgQ29sbGFwc2luZyBhIHJ1bGVzZXQgd2lsbCBub3QgcmVzZXQgdGhlIHN1YnBhbmVsIGV4cGFuc2lvbiBzdGF0dXNcbiAgICovXG4gIHB1YmxpYyBleHBhbnNpb25TdGF0dXM6IHtba2V5OiBzdHJpbmddOiB7W3N1YnBhbmVsOiBzdHJpbmddOiBib29sZWFufSB9ID0ge307XG5cblxuICBASW5wdXQoKVxuICBwdWJsaWMgcnVsZXNldEV4ZWN1dGlvbnM6IFJ1bGVzZXRFeGVjdXRpb25EZWJ1Z1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGV4ZWN1dGlvbkR1cmF0aW9uRm9ybWF0ID0gJzEuMy0zJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAvKipcbiAgICogVG9nZ2xlIGEgcnVsZXNldCBzdWJwYW5lbFxuICAgKiBAcGFyYW0gcnVsZUlkXG4gICAqIEBwYXJhbSBzdWJwYW5lbCBlbGVtZW50IHRvIGNvbGxhcHNlLiAncnVsZXNldCcgd2lsbCB0b2dnbGUgdGhlIHdob2xlIHBhbmVsIGJ1dCB3b24ndCByZXNldCB0aGUgc3VicGFuZWxzIHN0YXRlcy5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVFeHBhbnNpb24ocnVsZUlkOiBzdHJpbmcsIHN1YnBhbmVsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZXhwYW5zaW9uU3RhdHVzW3J1bGVJZF0pIHtcbiAgICAgIHRoaXMuZXhwYW5zaW9uU3RhdHVzW3J1bGVJZF0gPSB7W3N1YnBhbmVsXTogdHJ1ZX07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZXhwYW5zaW9uU3RhdHVzW3J1bGVJZF1bc3VicGFuZWxdID0gIXRoaXMuZXhwYW5zaW9uU3RhdHVzW3J1bGVJZF1bc3VicGFuZWxdO1xuICAgIH1cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPHNlY3Rpb24+XG4gIDxoNCBjbGFzcz1cIm1iLTRcIj5SdWxlc2V0IEV4ZWN1dGlvbiBIaXN0b3J5PC9oND5cbiAgPG5nLXRlbXBsYXRlICNub1J1bGVzRW5naW5lPlxuICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXIgbS0yXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgICBUaGUgUnVsZXMgRW5naW5lIGlzIG5vdCBjb25maWd1cmVkIG9uIHRoaXMgcGFnZS5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPHVsICpuZ0lmPVwicnVsZXNldEV4ZWN1dGlvbnM7IGVsc2Ugbm9SdWxlc0VuZ2luZVwiIGNsYXNzPVwicnVsZXNldHNcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGV4ZWN1dGlvbiBvZiBydWxlc2V0RXhlY3V0aW9uc1wiIGNsYXNzPVwicnVsZXNldFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtdGl0bGUgcnVsZXNldC1leHBhbnNpb24tYWN0aW9uXCJcbiAgICAgICAgW2NsYXNzLmVycm9yXT1cImV4ZWN1dGlvbi50eXBlID09PSAnUnVsZXNldEV4ZWN1dGlvbkVycm9yJ1wiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbnNpb24oZXhlY3V0aW9uLmV4ZWN1dGlvbklkLCAncnVsZXNldCcpXCI+XG4gICAgICAgIDxkaXY+PHNwYW4gW3RpdGxlXT1cIidUaGlzIHJ1bGVzZXQgaGFzIGJlZW4gZXZhbHVhdGVkICcgKyBleGVjdXRpb24uZXhlY3V0aW9uQ291bnRlciArICcgdGltZShzKSdcIj57e2V4ZWN1dGlvbi5leGVjdXRpb25Db3VudGVyfX08L3NwYW4+IC0ge3tleGVjdXRpb24ucnVsZXNldE5hbWUgfCB0aXRsZWNhc2UgfX1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZXNldC1wYW5lbC1zdWJ0aXRsZVwiICpuZ0lmPVwiZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ubGlua2VkQ29tcG9uZW50cz8ub3IgfHwgZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ubGlua2VkQ29tcG9uZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsYyBvZiAoZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ubGlua2VkQ29tcG9uZW50cz8ub3IgfHwgW2V4ZWN1dGlvbi5ydWxlc2V0SW5mb3JtYXRpb24ubGlua2VkQ29tcG9uZW50XSk7IGxhc3QgYXMgaXNMYXN0XCI+XG4gICAgICAgICAgICAgIDxkaXY+e3tsYy5uYW1lfX0ge3tsYy5saWJyYXJ5fX0gPHNwYW4gKm5nSWY9XCIhaXNMYXN0XCI+IE9SIDwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLXN1YnRpdGxlXCIgKm5nSWY9XCJleGVjdXRpb24ucnVsZXNldEluZm9ybWF0aW9uPy52YWxpZGl0eVJhbmdlIGFzIHZhbGlkaXR5UmFuZ2VcIj5cbiAgICAgICAgICAgIERhdGUgcmFuZ2U6IHt7dmFsaWRpdHlSYW5nZS5mcm9tfX0gLSB7e3ZhbGlkaXR5UmFuZ2UudG99fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtdGl0bGUtYXNpZGVcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yIGNhcHN1bGVcIiAqbmdJZj1cImV4ZWN1dGlvbi5zdGF0dXMgPT09ICdFcnJvcidcIj5FcnJvcjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Y2Nlc3MgY2Fwc3VsZVwiICpuZ0lmPVwiZXhlY3V0aW9uLnN0YXR1cyA9PT0gJ0FjdGl2ZSdcIj5BcHBsaWVkPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5hY3RpdmUgY2Fwc3VsZVwiICpuZ0lmPVwiZXhlY3V0aW9uLnN0YXR1cyA9PT0gJ0RlYWN0aXZhdGVkJ1wiPkRlYWN0aXZhdGVkPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2FybiBjYXBzdWxlXCIgKm5nSWY9XCJleGVjdXRpb24uc3RhdHVzID09PSAnTm9FZmZlY3QnXCI+Tm8gZWZmZWN0PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltZSBjYXBzdWxlXCI+XG4gICAgICAgICAgICA8c3Bhbj57e2V4ZWN1dGlvbi50aW1lc3RhbXAgfCBkYXRlOiAnSEg6bW06c3MgU1NTJ319PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+KHt7ZXhlY3V0aW9uLmR1cmF0aW9uIHwgbnVtYmVyOiBleGVjdXRpb25EdXJhdGlvbkZvcm1hdH19bXMpPC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImljb25cIlxuICAgICAgICAgICAgW2NsYXNzLmljb24tY2FyZXQtZG93bl09XCIhZXhwYW5zaW9uU3RhdHVzW2V4ZWN1dGlvbi5leGVjdXRpb25JZF0/LnJ1bGVzZXRcIlxuICAgICAgICAgICAgW2NsYXNzLmljb24tY2FyZXQtdXBdPVwiZXhwYW5zaW9uU3RhdHVzW2V4ZWN1dGlvbi5leGVjdXRpb25JZF0/LnJ1bGVzZXRcIj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJleHBhbnNpb25TdGF0dXNbZXhlY3V0aW9uLmV4ZWN1dGlvbklkXT8ucnVsZXNldFwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJ1bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IGV4ZWN1dGlvbi5ydWxlc2V0SW5mb3JtYXRpb24ucnVsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbnNpb25JRDogZXhlY3V0aW9uLmV4ZWN1dGlvbklkXG4gICAgICAgICAgICAgICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogZXhlY3V0aW9uLmlucHV0RmFjdHNcbiAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleGVjdXRpb24udHlwZSA9PT0gJ1J1bGVzZXRFeGVjdXRpb25FcnJvcic7IGVsc2Ugc3VjY2Vzc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LXRpdGxlXCI+UnVsZXM6PC9kaXY+XG4gICAgICAgICAgPHVsIGNsYXNzPVwicnVsZXNldC1wYW5lbC1jYXRlZ29yeS1ib2R5IHJ1bGUtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcnVsZUV2YWx1YXRpb24gb2YgZXhlY3V0aW9uLnJ1bGVzRXZhbHVhdGlvbnM7IGxldCBpbmRleD1pbmRleDtcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZXNldC1wYW5lbC10aXRsZVwiIFtjbGFzcy5lcnJvcl09XCJydWxlRXZhbHVhdGlvbi5lcnJvclwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3tydWxlRXZhbHVhdGlvbi5ydWxlLm5hbWUgfCB0aXRsZWNhc2V9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHN1bGUgZXJyb3JcIiAqbmdJZj1cInJ1bGVFdmFsdWF0aW9uLmVycm9yXCI+RXJyb3I8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJydWxlRXZhbHVhdGlvbi5lcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktdGl0bGVcIj5FcnJvcjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LWJvZHkgZXJyb3JcIj57e3J1bGVFdmFsdWF0aW9uLmVycm9yIHwgbzNySnNvbk9yU3RyaW5nfX08L3ByZT5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnB1dHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogZXhlY3V0aW9uLmlucHV0RmFjdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVudGltZUlucHV0czogZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ucnVsZXNbaW5kZXhdPy5pbnB1dFJ1bnRpbWVGYWN0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bzNyLXJ1bGUtYWN0aW9ucy1wcmVzICpuZ0lmPVwiIXJ1bGVFdmFsdWF0aW9uLmVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgW3RlbXBvcmFyeUZhY3RzXT1cInJ1bGVFdmFsdWF0aW9uLnRlbXBvcmFyeUZhY3RzXCJcbiAgICAgICAgICAgICAgICAgICAgW3J1bnRpbWVPdXRwdXRzXT1cImV4ZWN1dGlvbi5ydWxlc2V0SW5mb3JtYXRpb24/LnJ1bGVzW2luZGV4XT8ub3V0cHV0UnVudGltZUZhY3RzXCJcbiAgICAgICAgICAgICAgICAgID48L28zci1ydWxlLWFjdGlvbnMtcHJlcz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3N1Y2Nlc3M+XG4gICAgICAgICAgPG8zci1ydWxlLWFjdGlvbnMtcHJlcyBbYWN0aW9uc109XCJleGVjdXRpb24ub3V0cHV0QWN0aW9uc1wiPjwvbzNyLXJ1bGUtYWN0aW9ucy1wcmVzPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LXRpdGxlXCI+RXhlY3V0ZWQgUnVsZXM8L2Rpdj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJydWxlLWRlc2NyaXB0aW9uIHJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktYm9keVwiPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBydWxlRXZhbHVhdGlvbiBvZiBleGVjdXRpb24ucnVsZXNFdmFsdWF0aW9uczsgbGV0IGluZGV4PWluZGV4O1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZXNldC1wYW5lbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cnVsZUV2YWx1YXRpb24ucnVsZS5uYW1lIHwgdGl0bGVjYXNlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXBzdWxlIGluYWN0aXZlXCIgKm5nSWY9XCJydWxlRXZhbHVhdGlvbi5jYWNoZWRcIj5DYWNoZWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXBzdWxlXCI+KHt7cnVsZUV2YWx1YXRpb24uZHVyYXRpb24gfCBudW1iZXI6IGV4ZWN1dGlvbkR1cmF0aW9uRm9ybWF0fX1tcyk8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJpZ2dlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInt0cmlnZ2VyczogKHJ1bGVFdmFsdWF0aW9uLnRyaWdnZXJzW3J1bGVFdmFsdWF0aW9uLnJ1bGUuaWRdKX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bzNyLXJ1bGUtYWN0aW9ucy1wcmVzXG4gICAgICAgICAgICAgICAgICBbYWN0aW9uc109XCJydWxlRXZhbHVhdGlvbi5vdXRwdXRBY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgIFt0ZW1wb3JhcnlGYWN0c109XCJydWxlRXZhbHVhdGlvbi50ZW1wb3JhcnlGYWN0c1wiXG4gICAgICAgICAgICAgICAgICBbcnVudGltZU91dHB1dHNdPVwiZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ucnVsZXNbaW5kZXhdPy5vdXRwdXRSdW50aW1lRmFjdHNcIj5cbiAgICAgICAgICAgICAgICA8L28zci1ydWxlLWFjdGlvbnMtcHJlcz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGUgbGV0LXRyaWdnZXJzPVwidHJpZ2dlcnNcIiAjdHJpZ2dlcnM+XG4gIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LXRpdGxlXCI+QmFzZWZhY3RzIFRyaWdnZXJzPC9kaXY+XG4gIDx1bCBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktYm9keSB0cmlnZ2Vyc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRyaWdnZXIgb2YgKHRyaWdnZXJzIHwga2V5dmFsdWUpXCI+XG4gICAgICA8bGkgKm5nSWY9XCJ0cmlnZ2VyLnZhbHVlPy5mYWN0TmFtZVwiPlxuICAgICAgICA8bzNyLXJ1bGUta2V5LXZhbHVlLXByZXNcbiAgICAgICAgICBba2V5XT1cInRyaWdnZXIudmFsdWUuZmFjdE5hbWVcIlxuICAgICAgICAgIFtvbGRWYWx1ZV09XCJ0cmlnZ2VyLnZhbHVlLm9sZFZhbHVlIHwgbzNyRmFsbGJhY2tUb1wiXG4gICAgICAgICAgW3ZhbHVlXT1cInRyaWdnZXIudmFsdWUubmV3VmFsdWUgfCBvM3JGYWxsYmFja1RvXCJcbiAgICAgICAgICBbdHlwZV09XCInc3RhdGUnXCI+PC9vM3ItcnVsZS1rZXktdmFsdWUtcHJlcz5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgbGV0LXJ1bGVzPVwicnVsZXNcIiBsZXQtZXhwYW5zaW9uSUQ9XCJleHBhbnNpb25JRFwiICNydWxlcz5cbiAgPGRpdiBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktdGl0bGUgcnVsZXNldC1leHBhbnNpb24tYWN0aW9uXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5zaW9uKGV4cGFuc2lvbklELCAncnVsZXNPdmVydmlldycpXCI+XG4gICAgPHNwYW4+UnVsZXMgT3ZlcnZpZXc8L3NwYW4+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImljb25cIlxuICAgICAgICAgICAgW2NsYXNzLmljb24tY2FyZXQtZG93bl09XCIhZXhwYW5zaW9uU3RhdHVzW2V4cGFuc2lvbklEXT8ucnVsZXNPdmVydmlld1wiXG4gICAgICAgICAgICBbY2xhc3MuaWNvbi1jYXJldC11cF09XCJleHBhbnNpb25TdGF0dXNbZXhwYW5zaW9uSURdPy5ydWxlc092ZXJ2aWV3XCI+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZXhwYW5zaW9uU3RhdHVzW2V4cGFuc2lvbklEXT8ucnVsZXNPdmVydmlld1wiPlxuICAgIDxkaXYgKm5nSWY9XCJydWxlcz8ubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LWJvZHkgZW1wdHlcIj5ObyBydWxlPC9kaXY+XG4gICAgPHVsIGNsYXNzPVwicnVsZXNldC1wYW5lbC1jYXRlZ29yeS1ib2R5XCIgKm5nSWY9XCJydWxlcz8ubGVuZ3RoID4gMFwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBydWxlIG9mIHJ1bGVzXCI+XG4gICAgICAgIDxvM3ItcnVsZS10cmVlLXByZXMgW25hbWVdPVwicnVsZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZGl0aW9uXT1cInJ1bGU/LnJvb3RFbGVtZW50Py5jb25kaXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtibG9ja1R5cGVdPVwicnVsZT8ucm9vdEVsZW1lbnQ/LmJsb2NrVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N1Y2Nlc3NFbGVtZW50c109XCJydWxlPy5yb290RWxlbWVudD8uc3VjY2Vzc0VsZW1lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmFpbHVyZUVsZW1lbnRzXT1cInJ1bGU/LnJvb3RFbGVtZW50Py5mYWlsdXJlRWxlbWVudHNcIj5cbiAgICAgICAgPC9vM3ItcnVsZS10cmVlLXByZXM+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIGxldC1pbnB1dHM9XCJpbnB1dHNcIiBsZXQtcnVudGltZUlucHV0cz1cInJ1bnRpbWVJbnB1dHNcIiAjaW5wdXRzPlxuICA8ZGl2IGNsYXNzPVwicnVsZXNldC1wYW5lbC1jYXRlZ29yeS10aXRsZVwiPklucHV0cyBzbmFwc2hvdDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiaW5wdXRzPy5sZW5ndGggPT09IDBcIiBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktYm9keSBlbXB0eVwiPk5vIGlucHV0czwvZGl2PlxuICA8dWwgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LWJvZHlcIiAqbmdJZj1cImlucHV0cz8ubGVuZ3RoID4gMFwiPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgaW5wdXRzXCI+XG4gICAgICA8bzNyLXJ1bGUta2V5LXZhbHVlLXByZXNcbiAgICAgICAgW2tleV09XCJpbnB1dC5mYWN0TmFtZVwiXG4gICAgICAgIFt2YWx1ZV09XCJpbnB1dC52YWx1ZSB8IG8zckZhbGxiYWNrVG9cIlxuICAgICAgICBbdHlwZV09XCInc3RhdGUnXCI+PC9vM3ItcnVsZS1rZXktdmFsdWUtcHJlcz5cbiAgICA8L2xpPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgaW5wdXQgb2YgcnVudGltZUlucHV0c1wiPnt7aW5wdXR9fSAoc2NvcGUgbGltaXRlZCB0byBydWxlc2V0KTwvbGk+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldC1oaXN0b3J5LXByZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcnVsZXMtZW5naW5lL3J1bGVzZXQtaGlzdG9yeS9ydWxlc2V0LWhpc3RvcnktcHJlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9ydWxlcy1lbmdpbmUvcnVsZXNldC1oaXN0b3J5L3J1bGVzZXQtaGlzdG9yeS1wcmVzLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBd0J2QixNQUFNLE9BQU8sMkJBQTJCO0lBa0J0QyxZQUE2QixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQWpCbEQ7Ozs7Ozs7O1dBUUc7UUFDSSxvQkFBZSxHQUF1RCxFQUFFLENBQUM7UUFHekUsc0JBQWlCLEdBQTRCLEVBQUUsQ0FBQztRQUdoRCw0QkFBdUIsR0FBRyxPQUFPLENBQUM7SUFFWSxDQUFDO0lBRXREOzs7O09BSUc7SUFDSSxlQUFlLENBQUMsTUFBYyxFQUFFLFFBQWdCO1FBQ3JELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25GLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQztrSUFoQ1UsMkJBQTJCO3NIQUEzQiwyQkFBMkIsd0tDOUJ4QyxxMFJBNkpBOzs0RkQvSGEsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTtzRkFlOUIsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlDLHVCQUF1QjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBSdWxlc2V0LFxuICBSdWxlc2V0RXhlY3V0aW9uRXJyb3JFdmVudCxcbiAgUnVsZXNldEV4ZWN1dGlvbkV2ZW50LFxufSBmcm9tICcuLi8uLi8uLi9lbmdpbmUnO1xuXG5leHBvcnQgdHlwZSBSdWxlc2V0RXhlY3V0aW9uU3RhdHVzID0gJ0Vycm9yJyB8ICdBY3RpdmUnIHwgJ0RlYWN0aXZhdGVkJyB8ICdOb0VmZmVjdCc7XG4vKipcbiAqIE1vZGVsIG9mIGEgUnVsZXNldEV4ZWN1dGlvbiB3aXRoIG1vcmUgaW5mb3JtYXRpb24gZm9yIGRlYnVnIHB1cnBvc2VcbiAqL1xuZXhwb3J0IHR5cGUgUnVsZXNldEV4ZWN1dGlvbkRlYnVnID0gKFJ1bGVzZXRFeGVjdXRpb25FdmVudCB8IFJ1bGVzZXRFeGVjdXRpb25FcnJvckV2ZW50KSAmIHtcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG4gIHN0YXR1czogUnVsZXNldEV4ZWN1dGlvblN0YXR1cztcbiAgcnVsZXNldEluZm9ybWF0aW9uOiBSdWxlc2V0IHwgdW5kZWZpbmVkO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbzNyLXJ1bGVzZXQtaGlzdG9yeS1wcmVzJyxcbiAgc3R5bGVVcmxzOiBbJy4vcnVsZXNldC1oaXN0b3J5LXByZXMuc3R5bGUuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vcnVsZXNldC1oaXN0b3J5LXByZXMudGVtcGxhdGUuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVzZXRIaXN0b3J5UHJlc0NvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBSZWZsZWN0cyB0aGUgc3RhdGUgb2YgZWFjaCBydWxlc2V0IGV4cGFuZGVkIGVsZW1lbnRzLlxuICAgKiBFYWNoIHJ1bGVzZXQgZW50cnkgY29udGFpbnMgYSBsaXN0IG9mIHN1YnBhbmVsIHRoYXQgY2FuIGJlIGNvbGxhcHNlZCBvciBleHBhbmRlZC5cbiAgICogUnVsZXNldCB3aG9sZSBwYW5lbCBzdGF0dXMgaXMgc3RvcmUgdGhlICdydWxlc2V0JyBlbnRyeS5cbiAgICogQGV4YW1wbGVcbiAgICogRXhwYW5kZWQgcnVsZXNldCB3aXRoIHJ1bGUgb3ZlcnZpZXcgY29sbGFwc2VkOlxuICAgKiB7J3J1bGVzZXRJZCc6IHsncnVsZXNldCcgOiB0cnVlLCAncnVsZU92ZXJ2aWV3JzogZmFsc2V9fVxuICAgKiBAbm90ZSBDb2xsYXBzaW5nIGEgcnVsZXNldCB3aWxsIG5vdCByZXNldCB0aGUgc3VicGFuZWwgZXhwYW5zaW9uIHN0YXR1c1xuICAgKi9cbiAgcHVibGljIGV4cGFuc2lvblN0YXR1czogeyBba2V5OiBzdHJpbmddOiB7IFtzdWJwYW5lbDogc3RyaW5nXTogYm9vbGVhbiB9IH0gPSB7fTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcnVsZXNldEV4ZWN1dGlvbnM6IFJ1bGVzZXRFeGVjdXRpb25EZWJ1Z1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGV4ZWN1dGlvbkR1cmF0aW9uRm9ybWF0ID0gJzEuMy0zJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAvKipcbiAgICogVG9nZ2xlIGEgcnVsZXNldCBzdWJwYW5lbFxuICAgKiBAcGFyYW0gcnVsZUlkXG4gICAqIEBwYXJhbSBzdWJwYW5lbCBlbGVtZW50IHRvIGNvbGxhcHNlLiAncnVsZXNldCcgd2lsbCB0b2dnbGUgdGhlIHdob2xlIHBhbmVsIGJ1dCB3b24ndCByZXNldCB0aGUgc3VicGFuZWxzIHN0YXRlcy5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVFeHBhbnNpb24ocnVsZUlkOiBzdHJpbmcsIHN1YnBhbmVsOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5leHBhbnNpb25TdGF0dXNbcnVsZUlkXSkge1xuICAgICAgdGhpcy5leHBhbnNpb25TdGF0dXNbcnVsZUlkXVtzdWJwYW5lbF0gPSAhdGhpcy5leHBhbnNpb25TdGF0dXNbcnVsZUlkXVtzdWJwYW5lbF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZXhwYW5zaW9uU3RhdHVzW3J1bGVJZF0gPSB7IFtzdWJwYW5lbF06IHRydWUgfTtcbiAgICB9XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxzZWN0aW9uPlxuICA8aDQgY2xhc3M9XCJtYi00XCI+UnVsZXNldCBFeGVjdXRpb24gSGlzdG9yeTwvaDQ+XG4gIDxuZy10ZW1wbGF0ZSAjbm9SdWxlc0VuZ2luZT5cbiAgICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtZGFuZ2VyIG0tMlwiIHJvbGU9XCJhbGVydFwiPlxuICAgICAgVGhlIFJ1bGVzIEVuZ2luZSBpcyBub3QgY29uZmlndXJlZCBvbiB0aGlzIHBhZ2UuXG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDx1bCAqbmdJZj1cInJ1bGVzZXRFeGVjdXRpb25zOyBlbHNlIG5vUnVsZXNFbmdpbmVcIiBjbGFzcz1cInJ1bGVzZXRzXCI+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBleGVjdXRpb24gb2YgcnVsZXNldEV4ZWN1dGlvbnNcIiBjbGFzcz1cInJ1bGVzZXRcIj5cbiAgICAgIDwhLS0gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC90ZW1wbGF0ZS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzLCBAYW5ndWxhci1lc2xpbnQvdGVtcGxhdGUvaW50ZXJhY3RpdmUtc3VwcG9ydHMtZm9jdXMgLS0gbmVlZCB0byByZWZhY3RvciB0aGUgZGl2IHRvIGFjY29yZGlvbiBmcm9tIERGICMxNTE4IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtdGl0bGUgcnVsZXNldC1leHBhbnNpb24tYWN0aW9uXCJcbiAgICAgICAgW2NsYXNzLmVycm9yXT1cImV4ZWN1dGlvbi50eXBlID09PSAnUnVsZXNldEV4ZWN1dGlvbkVycm9yJ1wiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbnNpb24oZXhlY3V0aW9uLmV4ZWN1dGlvbklkLCAncnVsZXNldCcpXCI+XG4gICAgICAgIDxkaXY+PHNwYW4gW3RpdGxlXT1cIidUaGlzIHJ1bGVzZXQgaGFzIGJlZW4gZXZhbHVhdGVkICcgKyBleGVjdXRpb24uZXhlY3V0aW9uQ291bnRlciArICcgdGltZShzKSdcIj57e2V4ZWN1dGlvbi5leGVjdXRpb25Db3VudGVyfX08L3NwYW4+IC0ge3tleGVjdXRpb24ucnVsZXNldE5hbWUgfCB0aXRsZWNhc2UgfX1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZXNldC1wYW5lbC1zdWJ0aXRsZVwiICpuZ0lmPVwiZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ubGlua2VkQ29tcG9uZW50cz8ub3IgfHwgZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ubGlua2VkQ29tcG9uZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBsYyBvZiAoZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ubGlua2VkQ29tcG9uZW50cz8ub3IgfHwgW2V4ZWN1dGlvbi5ydWxlc2V0SW5mb3JtYXRpb24ubGlua2VkQ29tcG9uZW50XSk7IGxhc3QgYXMgaXNMYXN0XCI+XG4gICAgICAgICAgICAgIDxkaXY+e3tsYy5uYW1lfX0ge3tsYy5saWJyYXJ5fX0gPHNwYW4gKm5nSWY9XCIhaXNMYXN0XCI+IE9SIDwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLXN1YnRpdGxlXCIgKm5nSWY9XCJleGVjdXRpb24ucnVsZXNldEluZm9ybWF0aW9uPy52YWxpZGl0eVJhbmdlIGFzIHZhbGlkaXR5UmFuZ2VcIj5cbiAgICAgICAgICAgIERhdGUgcmFuZ2U6IHt7dmFsaWRpdHlSYW5nZS5mcm9tfX0gLSB7e3ZhbGlkaXR5UmFuZ2UudG99fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtdGl0bGUtYXNpZGVcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yIGNhcHN1bGVcIiAqbmdJZj1cImV4ZWN1dGlvbi5zdGF0dXMgPT09ICdFcnJvcidcIj5FcnJvcjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Y2Nlc3MgY2Fwc3VsZVwiICpuZ0lmPVwiZXhlY3V0aW9uLnN0YXR1cyA9PT0gJ0FjdGl2ZSdcIj5BcHBsaWVkPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5hY3RpdmUgY2Fwc3VsZVwiICpuZ0lmPVwiZXhlY3V0aW9uLnN0YXR1cyA9PT0gJ0RlYWN0aXZhdGVkJ1wiPkRlYWN0aXZhdGVkPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2FybiBjYXBzdWxlXCIgKm5nSWY9XCJleGVjdXRpb24uc3RhdHVzID09PSAnTm9FZmZlY3QnXCI+Tm8gZWZmZWN0PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltZSBjYXBzdWxlXCI+XG4gICAgICAgICAgICA8c3Bhbj57e2V4ZWN1dGlvbi50aW1lc3RhbXAgfCBkYXRlOiAnSEg6bW06c3MgU1NTJ319PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+KHt7ZXhlY3V0aW9uLmR1cmF0aW9uIHwgbnVtYmVyOiBleGVjdXRpb25EdXJhdGlvbkZvcm1hdH19bXMpPC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImljb25cIlxuICAgICAgICAgICAgW2NsYXNzLmljb24tY2FyZXQtZG93bl09XCIhZXhwYW5zaW9uU3RhdHVzW2V4ZWN1dGlvbi5leGVjdXRpb25JZF0/LnJ1bGVzZXRcIlxuICAgICAgICAgICAgW2NsYXNzLmljb24tY2FyZXQtdXBdPVwiZXhwYW5zaW9uU3RhdHVzW2V4ZWN1dGlvbi5leGVjdXRpb25JZF0/LnJ1bGVzZXRcIj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJleHBhbnNpb25TdGF0dXNbZXhlY3V0aW9uLmV4ZWN1dGlvbklkXT8ucnVsZXNldFwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJ1bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgcnVsZXM6IGV4ZWN1dGlvbi5ydWxlc2V0SW5mb3JtYXRpb24ucnVsZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbnNpb25JRDogZXhlY3V0aW9uLmV4ZWN1dGlvbklkXG4gICAgICAgICAgICAgICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogZXhlY3V0aW9uLmlucHV0RmFjdHNcbiAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJleGVjdXRpb24udHlwZSA9PT0gJ1J1bGVzZXRFeGVjdXRpb25FcnJvcic7IGVsc2Ugc3VjY2Vzc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LXRpdGxlXCI+UnVsZXM6PC9kaXY+XG4gICAgICAgICAgPHVsIGNsYXNzPVwicnVsZXNldC1wYW5lbC1jYXRlZ29yeS1ib2R5IHJ1bGUtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcnVsZUV2YWx1YXRpb24gb2YgZXhlY3V0aW9uLnJ1bGVzRXZhbHVhdGlvbnM7IGxldCBpbmRleD1pbmRleDtcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZXNldC1wYW5lbC10aXRsZVwiIFtjbGFzcy5lcnJvcl09XCJydWxlRXZhbHVhdGlvbi5lcnJvclwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3tydWxlRXZhbHVhdGlvbi5ydWxlLm5hbWUgfCB0aXRsZWNhc2V9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHN1bGUgZXJyb3JcIiAqbmdJZj1cInJ1bGVFdmFsdWF0aW9uLmVycm9yXCI+RXJyb3I8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJydWxlRXZhbHVhdGlvbi5lcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktdGl0bGVcIj5FcnJvcjo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LWJvZHkgZXJyb3JcIj57e3J1bGVFdmFsdWF0aW9uLmVycm9yIHwgbzNySnNvbk9yU3RyaW5nfX08L3ByZT5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnB1dHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0czogZXhlY3V0aW9uLmlucHV0RmFjdHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVudGltZUlucHV0czogZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ucnVsZXNbaW5kZXhdPy5pbnB1dFJ1bnRpbWVGYWN0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8bzNyLXJ1bGUtYWN0aW9ucy1wcmVzICpuZ0lmPVwiIXJ1bGVFdmFsdWF0aW9uLmVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgW3RlbXBvcmFyeUZhY3RzXT1cInJ1bGVFdmFsdWF0aW9uLnRlbXBvcmFyeUZhY3RzXCJcbiAgICAgICAgICAgICAgICAgICAgW3J1bnRpbWVPdXRwdXRzXT1cImV4ZWN1dGlvbi5ydWxlc2V0SW5mb3JtYXRpb24/LnJ1bGVzW2luZGV4XT8ub3V0cHV0UnVudGltZUZhY3RzXCJcbiAgICAgICAgICAgICAgICAgID48L28zci1ydWxlLWFjdGlvbnMtcHJlcz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3N1Y2Nlc3M+XG4gICAgICAgICAgPG8zci1ydWxlLWFjdGlvbnMtcHJlcyBbYWN0aW9uc109XCJleGVjdXRpb24ub3V0cHV0QWN0aW9uc1wiPjwvbzNyLXJ1bGUtYWN0aW9ucy1wcmVzPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LXRpdGxlXCI+RXhlY3V0ZWQgUnVsZXM8L2Rpdj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJydWxlLWRlc2NyaXB0aW9uIHJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktYm9keVwiPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBydWxlRXZhbHVhdGlvbiBvZiBleGVjdXRpb24ucnVsZXNFdmFsdWF0aW9uczsgbGV0IGluZGV4PWluZGV4O1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZXNldC1wYW5lbC10aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7cnVsZUV2YWx1YXRpb24ucnVsZS5uYW1lIHwgdGl0bGVjYXNlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXBzdWxlIGluYWN0aXZlXCIgKm5nSWY9XCJydWxlRXZhbHVhdGlvbi5jYWNoZWRcIj5DYWNoZWQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXBzdWxlXCI+KHt7cnVsZUV2YWx1YXRpb24uZHVyYXRpb24gfCBudW1iZXI6IGV4ZWN1dGlvbkR1cmF0aW9uRm9ybWF0fX1tcyk8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJpZ2dlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInt0cmlnZ2VyczogKHJ1bGVFdmFsdWF0aW9uLnRyaWdnZXJzW3J1bGVFdmFsdWF0aW9uLnJ1bGUuaWRdKX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bzNyLXJ1bGUtYWN0aW9ucy1wcmVzXG4gICAgICAgICAgICAgICAgICBbYWN0aW9uc109XCJydWxlRXZhbHVhdGlvbi5vdXRwdXRBY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgIFt0ZW1wb3JhcnlGYWN0c109XCJydWxlRXZhbHVhdGlvbi50ZW1wb3JhcnlGYWN0c1wiXG4gICAgICAgICAgICAgICAgICBbcnVudGltZU91dHB1dHNdPVwiZXhlY3V0aW9uLnJ1bGVzZXRJbmZvcm1hdGlvbj8ucnVsZXNbaW5kZXhdPy5vdXRwdXRSdW50aW1lRmFjdHNcIj5cbiAgICAgICAgICAgICAgICA8L28zci1ydWxlLWFjdGlvbnMtcHJlcz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGUgbGV0LXRyaWdnZXJzPVwidHJpZ2dlcnNcIiAjdHJpZ2dlcnM+XG4gIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LXRpdGxlXCI+QmFzZWZhY3RzIFRyaWdnZXJzPC9kaXY+XG4gIDx1bCBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktYm9keSB0cmlnZ2Vyc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRyaWdnZXIgb2YgKHRyaWdnZXJzIHwga2V5dmFsdWUpXCI+XG4gICAgICA8bGkgKm5nSWY9XCJ0cmlnZ2VyLnZhbHVlPy5mYWN0TmFtZVwiPlxuICAgICAgICA8bzNyLXJ1bGUta2V5LXZhbHVlLXByZXNcbiAgICAgICAgICBba2V5XT1cInRyaWdnZXIudmFsdWUuZmFjdE5hbWVcIlxuICAgICAgICAgIFtvbGRWYWx1ZV09XCJ0cmlnZ2VyLnZhbHVlLm9sZFZhbHVlIHwgbzNyRmFsbGJhY2tUb1wiXG4gICAgICAgICAgW3ZhbHVlXT1cInRyaWdnZXIudmFsdWUubmV3VmFsdWUgfCBvM3JGYWxsYmFja1RvXCJcbiAgICAgICAgICBbdHlwZV09XCInc3RhdGUnXCI+PC9vM3ItcnVsZS1rZXktdmFsdWUtcHJlcz5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgbGV0LXJ1bGVzPVwicnVsZXNcIiBsZXQtZXhwYW5zaW9uSUQ9XCJleHBhbnNpb25JRFwiICNydWxlcz5cbiAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMsIEBhbmd1bGFyLWVzbGludC90ZW1wbGF0ZS9pbnRlcmFjdGl2ZS1zdXBwb3J0cy1mb2N1cyAtLSBuZWVkIHRvIHJlZmFjdG9yIHRoZSBkaXYgdG8gYWNjb3JkaW9uIGZyb20gREYgIzE1MTggLS0+XG4gIDxkaXYgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LXRpdGxlIHJ1bGVzZXQtZXhwYW5zaW9uLWFjdGlvblwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuc2lvbihleHBhbnNpb25JRCwgJ3J1bGVzT3ZlcnZpZXcnKVwiPlxuICAgIDxzcGFuPlJ1bGVzIE92ZXJ2aWV3PC9zcGFuPlxuICAgIDxidXR0b24gY2xhc3M9XCJpY29uXCJcbiAgICAgICAgICAgIFtjbGFzcy5pY29uLWNhcmV0LWRvd25dPVwiIWV4cGFuc2lvblN0YXR1c1tleHBhbnNpb25JRF0/LnJ1bGVzT3ZlcnZpZXdcIlxuICAgICAgICAgICAgW2NsYXNzLmljb24tY2FyZXQtdXBdPVwiZXhwYW5zaW9uU3RhdHVzW2V4cGFuc2lvbklEXT8ucnVsZXNPdmVydmlld1wiPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImV4cGFuc2lvblN0YXR1c1tleHBhbnNpb25JRF0/LnJ1bGVzT3ZlcnZpZXdcIj5cbiAgICA8ZGl2ICpuZ0lmPVwicnVsZXM/Lmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwicnVsZXNldC1wYW5lbC1jYXRlZ29yeS1ib2R5IGVtcHR5XCI+Tm8gcnVsZTwvZGl2PlxuICAgIDx1bCBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktYm9keVwiICpuZ0lmPVwicnVsZXM/Lmxlbmd0aCA+IDBcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcnVsZSBvZiBydWxlc1wiPlxuICAgICAgICA8bzNyLXJ1bGUtdHJlZS1wcmVzIFtuYW1lXT1cInJ1bGUubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmRpdGlvbl09XCJydWxlPy5yb290RWxlbWVudD8uY29uZGl0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYmxvY2tUeXBlXT1cInJ1bGU/LnJvb3RFbGVtZW50Py5ibG9ja1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdWNjZXNzRWxlbWVudHNdPVwicnVsZT8ucm9vdEVsZW1lbnQ/LnN1Y2Nlc3NFbGVtZW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZhaWx1cmVFbGVtZW50c109XCJydWxlPy5yb290RWxlbWVudD8uZmFpbHVyZUVsZW1lbnRzXCI+XG4gICAgICAgIDwvbzNyLXJ1bGUtdHJlZS1wcmVzPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtaW5wdXRzPVwiaW5wdXRzXCIgbGV0LXJ1bnRpbWVJbnB1dHM9XCJydW50aW1lSW5wdXRzXCIgI2lucHV0cz5cbiAgPGRpdiBjbGFzcz1cInJ1bGVzZXQtcGFuZWwtY2F0ZWdvcnktdGl0bGVcIj5JbnB1dHMgc25hcHNob3Q8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImlucHV0cz8ubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJydWxlc2V0LXBhbmVsLWNhdGVnb3J5LWJvZHkgZW1wdHlcIj5ObyBpbnB1dHM8L2Rpdj5cbiAgPHVsIGNsYXNzPVwicnVsZXNldC1wYW5lbC1jYXRlZ29yeS1ib2R5XCIgKm5nSWY9XCJpbnB1dHM/Lmxlbmd0aCA+IDBcIj5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGlucHV0IG9mIGlucHV0c1wiPlxuICAgICAgPG8zci1ydWxlLWtleS12YWx1ZS1wcmVzXG4gICAgICAgIFtrZXldPVwiaW5wdXQuZmFjdE5hbWVcIlxuICAgICAgICBbdmFsdWVdPVwiaW5wdXQudmFsdWUgfCBvM3JGYWxsYmFja1RvXCJcbiAgICAgICAgW3R5cGVdPVwiJ3N0YXRlJ1wiPjwvbzNyLXJ1bGUta2V5LXZhbHVlLXByZXM+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nRm9yPVwibGV0IGlucHV0IG9mIHJ1bnRpbWVJbnB1dHNcIj57e2lucHV0fX0gKHNjb3BlIGxpbWl0ZWQgdG8gcnVsZXNldCk8L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { CommonModule, JsonPipe } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { RuleActionsPresComponent } from '../rule-actions/rule-actions-pres.component';
|
|
4
|
-
import { RuleConditionPresComponent } from '../rule-condition/rule-condition-pres.component';
|
|
5
|
-
import { RuleKeyValuePresComponent } from '../rule-key-value/rule-key-value-pres.component';
|
|
6
|
-
import { RuleTreePresComponent } from '../rule-tree/rule-tree-pres.component';
|
|
7
|
-
import { O3rFallbackToPipe, O3rJsonOrStringPipe } from '../shared/index';
|
|
8
|
-
import { RulesetHistoryPresComponent } from './ruleset-history-pres.component';
|
|
1
|
+
import { CommonModule, JsonPipe, } from '@angular/common';
|
|
2
|
+
import { NgModule, } from '@angular/core';
|
|
3
|
+
import { RuleActionsPresComponent, } from '../rule-actions/rule-actions-pres.component';
|
|
4
|
+
import { RuleConditionPresComponent, } from '../rule-condition/rule-condition-pres.component';
|
|
5
|
+
import { RuleKeyValuePresComponent, } from '../rule-key-value/rule-key-value-pres.component';
|
|
6
|
+
import { RuleTreePresComponent, } from '../rule-tree/rule-tree-pres.component';
|
|
7
|
+
import { O3rFallbackToPipe, O3rJsonOrStringPipe, } from '../shared/index';
|
|
8
|
+
import { RulesetHistoryPresComponent, } from './ruleset-history-pres.component';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class RulesetHistoryPresModule {
|
|
11
11
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: RulesetHistoryPresModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
20
20
|
exports: [RulesetHistoryPresComponent]
|
|
21
21
|
}]
|
|
22
22
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldC1oaXN0b3J5LXByZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcnVsZXMtZW5naW5lL3J1bGVzZXQtaGlzdG9yeS9ydWxlc2V0LWhpc3RvcnktcHJlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEdBQ1QsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCx3QkFBd0IsR0FDekIsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsMEJBQTBCLEdBQzNCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUNMLHlCQUF5QixHQUMxQixNQUFNLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sRUFDTCxxQkFBcUIsR0FDdEIsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixHQUNwQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFDTCwyQkFBMkIsR0FDNUIsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLHdCQUF3QjtrSUFBeEIsd0JBQXdCO21JQUF4Qix3QkFBd0IsaUJBSHBCLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixhQUR4SSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsbUJBQW1CLGFBRTFGLDJCQUEyQjttSUFFMUIsd0JBQXdCLFlBSk4sWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZOzs0RkFJMUQsd0JBQXdCO2tCQUxwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQztvQkFDckcsWUFBWSxFQUFFLENBQUMsMkJBQTJCLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLENBQUM7b0JBQ25KLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2lCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbW1vbk1vZHVsZSxcbiAgSnNvblBpcGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBOZ01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBSdWxlQWN0aW9uc1ByZXNDb21wb25lbnQsXG59IGZyb20gJy4uL3J1bGUtYWN0aW9ucy9ydWxlLWFjdGlvbnMtcHJlcy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgUnVsZUNvbmRpdGlvblByZXNDb21wb25lbnQsXG59IGZyb20gJy4uL3J1bGUtY29uZGl0aW9uL3J1bGUtY29uZGl0aW9uLXByZXMuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFJ1bGVLZXlWYWx1ZVByZXNDb21wb25lbnQsXG59IGZyb20gJy4uL3J1bGUta2V5LXZhbHVlL3J1bGUta2V5LXZhbHVlLXByZXMuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFJ1bGVUcmVlUHJlc0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vcnVsZS10cmVlL3J1bGUtdHJlZS1wcmVzLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBPM3JGYWxsYmFja1RvUGlwZSxcbiAgTzNySnNvbk9yU3RyaW5nUGlwZSxcbn0gZnJvbSAnLi4vc2hhcmVkL2luZGV4JztcbmltcG9ydCB7XG4gIFJ1bGVzZXRIaXN0b3J5UHJlc0NvbXBvbmVudCxcbn0gZnJvbSAnLi9ydWxlc2V0LWhpc3RvcnktcHJlcy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbTzNyRmFsbGJhY2tUb1BpcGUsIENvbW1vbk1vZHVsZSwgQ29tbW9uTW9kdWxlLCBDb21tb25Nb2R1bGUsIEpzb25QaXBlLCBPM3JKc29uT3JTdHJpbmdQaXBlXSxcbiAgZGVjbGFyYXRpb25zOiBbUnVsZXNldEhpc3RvcnlQcmVzQ29tcG9uZW50LCBSdWxlQ29uZGl0aW9uUHJlc0NvbXBvbmVudCwgUnVsZVRyZWVQcmVzQ29tcG9uZW50LCBSdWxlQWN0aW9uc1ByZXNDb21wb25lbnQsIFJ1bGVLZXlWYWx1ZVByZXNDb21wb25lbnRdLFxuICBleHBvcnRzOiBbUnVsZXNldEhpc3RvcnlQcmVzQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBSdWxlc2V0SGlzdG9yeVByZXNNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
1
|
+
import { Pipe, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class O3rFallbackToPipe {
|
|
4
4
|
transform(value, fallback = 'undefined') {
|
|
5
|
-
return value
|
|
5
|
+
return value === undefined ? fallback : value;
|
|
6
6
|
}
|
|
7
7
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: O3rFallbackToPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
8
|
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: O3rFallbackToPipe, isStandalone: true, name: "o3rFallbackTo" }); }
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
22
22
|
type: Pipe,
|
|
23
23
|
args: [{ name: 'fallbackTo' }]
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2stdG8ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3J1bGVzLWVuZ2luZS9zaGFyZWQvZmFsbGJhY2stdG8ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFDOztBQUd2QixNQUFNLE9BQU8saUJBQWlCO0lBQ3JCLFNBQVMsQ0FBSSxLQUFRLEVBQUUsUUFBUSxHQUFHLFdBQVc7UUFDbEQsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNoRCxDQUFDO2tJQUhVLGlCQUFpQjtnSUFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOztBQU9qRDs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFlLFNBQVEsaUJBQWlCO2tJQUF4QyxjQUFjO2dJQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBRDFCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUGlwZSxcbiAgUGlwZVRyYW5zZm9ybSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHsgbmFtZTogJ28zckZhbGxiYWNrVG8nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTzNyRmFsbGJhY2tUb1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHVibGljIHRyYW5zZm9ybTxUPih2YWx1ZTogVCwgZmFsbGJhY2sgPSAndW5kZWZpbmVkJyk6IFQgfCBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gZmFsbGJhY2sgOiB2YWx1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgTzNyRmFsbGJhY2tUb1BpcGUsIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTIuXG4gKi9cbkBQaXBlKHsgbmFtZTogJ2ZhbGxiYWNrVG8nIH0pXG5leHBvcnQgY2xhc3MgRmFsbGJhY2tUb1BpcGUgZXh0ZW5kcyBPM3JGYWxsYmFja1RvUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge31cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './ruleset-history.helper';
|
|
2
1
|
export * from './fallback-to.pipe';
|
|
3
2
|
export * from './json-or-string.pipe';
|
|
4
|
-
|
|
3
|
+
export * from './ruleset-history.helper';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9ydWxlcy1lbmdpbmUvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mYWxsYmFjay10by5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vanNvbi1vci1zdHJpbmcucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVzZXQtaGlzdG9yeS5oZWxwZXInO1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
1
|
+
import { Pipe, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class O3rJsonOrStringPipe {
|
|
4
4
|
/**
|
|
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
20
20
|
standalone: true
|
|
21
21
|
}]
|
|
22
22
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1vci1zdHJpbmcucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3J1bGVzLWVuZ2luZS9zaGFyZWQvanNvbi1vci1zdHJpbmcucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFDOztBQU12QixNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEtBQVU7UUFDekIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO2tJQVRVLG1CQUFtQjtnSUFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxpQkFBaUI7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFBpcGUsXG4gIFBpcGVUcmFuc2Zvcm0sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdvM3JKc29uT3JTdHJpbmcnLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE8zckpzb25PclN0cmluZ1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgLyoqXG4gICAqIEBpbmhlcml0RG9jXG4gICAqL1xuICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSwgbnVsbCwgMik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -22,8 +22,8 @@ export const getStatus = (rulesetExecution, isActive) => {
|
|
|
22
22
|
* @param rulesetMap
|
|
23
23
|
*/
|
|
24
24
|
export const rulesetReportToHistory = (events, rulesetMap) => {
|
|
25
|
-
const availableRulesets = (events.filter(e => e.type === 'AvailableRulesets').reverse()[0])?.availableRulesets || [];
|
|
26
|
-
const lastActiveRulesets = (events.filter(e => e.type === 'ActiveRulesets').reverse()[0])?.rulesets || [];
|
|
25
|
+
const availableRulesets = (events.filter((e) => e.type === 'AvailableRulesets').reverse()[0])?.availableRulesets || [];
|
|
26
|
+
const lastActiveRulesets = (events.filter((e) => e.type === 'ActiveRulesets').reverse()[0])?.rulesets || [];
|
|
27
27
|
return availableRulesets
|
|
28
28
|
.filter((ruleset) => !!ruleset)
|
|
29
29
|
.reduce((acc, ruleset) => {
|
|
@@ -43,9 +43,9 @@ export const rulesetReportToHistory = (events, rulesetMap) => {
|
|
|
43
43
|
status: getStatus(rulesetExecution, !!isActive),
|
|
44
44
|
isActive: !!isActive,
|
|
45
45
|
rulesetInformation,
|
|
46
|
-
rulesEvaluations: (rulesetExecution.rulesEvaluations || []).sort((evalA, evalB) => (rulesetInformation?.rules.findIndex(r => r.id === evalA.rule.id) || -1)
|
|
47
|
-
(rulesetInformation?.rules.findIndex(r => r.id === evalB.rule.id) || -1))
|
|
46
|
+
rulesEvaluations: (rulesetExecution.rulesEvaluations || []).sort((evalA, evalB) => (rulesetInformation?.rules.findIndex((r) => r.id === evalA.rule.id) || -1)
|
|
47
|
+
- (rulesetInformation?.rules.findIndex((r) => r.id === evalB.rule.id) || -1))
|
|
48
48
|
};
|
|
49
49
|
});
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldC1oaXN0b3J5LmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3J1bGVzLWVuZ2luZS9zaGFyZWQvcnVsZXNldC1oaXN0b3J5LmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLGdCQUFvRSxFQUFFLFFBQWlCLEVBQTBCLEVBQUU7SUFDM0ksSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLEtBQUssdUJBQXVCLEVBQUUsQ0FBQztRQUN0RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO1NBQU0sSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7U0FBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxNQUFvQixFQUFFLFVBQW1DLEVBQTJCLEVBQUU7SUFDM0gsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztJQUN2SCxNQUFNLGtCQUFrQixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUU1RyxPQUFPLGlCQUFpQjtTQUNyQixNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7U0FDOUIsTUFBTSxDQUF5RCxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNqRixNQUFNLGlCQUFpQixHQUFHLE1BQU07YUFDN0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUEyRCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssdUJBQXVCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakwsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDSCxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7U0FDekQsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTtRQUN4QixNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRSxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckYsT0FBTztZQUNMLEdBQUcsZ0JBQWdCO1lBQ25CLE1BQU0sRUFBRSxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUMvQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7WUFDcEIsa0JBQWtCO1lBQ2xCLGdCQUFnQixFQUFFLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ2hGLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2tCQUN4RSxDQUFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUM3RTtTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRGVidWdFdmVudCxcbiAgUnVsZXNldCxcbiAgUnVsZXNldEV4ZWN1dGlvbkVycm9yRXZlbnQsXG4gIFJ1bGVzZXRFeGVjdXRpb25FdmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vZW5naW5lJztcbmltcG9ydCB0eXBlIHtcbiAgUnVsZXNldEV4ZWN1dGlvbkRlYnVnLFxuICBSdWxlc2V0RXhlY3V0aW9uU3RhdHVzLFxufSBmcm9tICcuLi9ydWxlc2V0LWhpc3RvcnkvcnVsZXNldC1oaXN0b3J5LXByZXMuY29tcG9uZW50JztcblxuLyoqXG4gKiBDb21wdXRlIHRoZSBzdGF0dXMgb2YgdGhlIGV4ZWN1dGlvbiBkZXBlbmRpbmcgb24gaXRzIGV4ZWN1dGlvbiBldmVudCB0eXBlLCB0aGUgb3V0cHV0IGFuZCB3aGV0aGVyIHRoZSBleGVjdXRpb25cbiAqIGlzIHN0aWxsIGFjdGl2ZVxuICogQHBhcmFtIHJ1bGVzZXRFeGVjdXRpb25cbiAqIEBwYXJhbSBpc0FjdGl2ZVxuICovXG5leHBvcnQgY29uc3QgZ2V0U3RhdHVzID0gKHJ1bGVzZXRFeGVjdXRpb246IFJ1bGVzZXRFeGVjdXRpb25FcnJvckV2ZW50IHwgUnVsZXNldEV4ZWN1dGlvbkV2ZW50LCBpc0FjdGl2ZTogYm9vbGVhbik6IFJ1bGVzZXRFeGVjdXRpb25TdGF0dXMgPT4ge1xuICBpZiAocnVsZXNldEV4ZWN1dGlvbi50eXBlID09PSAnUnVsZXNldEV4ZWN1dGlvbkVycm9yJykge1xuICAgIHJldHVybiAnRXJyb3InO1xuICB9IGVsc2UgaWYgKHJ1bGVzZXRFeGVjdXRpb24ub3V0cHV0QWN0aW9ucz8ubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICdOb0VmZmVjdCc7XG4gIH0gZWxzZSBpZiAoaXNBY3RpdmUpIHtcbiAgICByZXR1cm4gJ0FjdGl2ZSc7XG4gIH1cbiAgcmV0dXJuICdEZWFjdGl2YXRlZCc7XG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIHRoZSBkZWJ1ZyByZXBvcnRzIGludG8gdGhlIG1vZGVsIGZvciB0aGUgcnVsZXNldCBoaXN0b3J5IGRlYnVnIHBhbmVsXG4gKiBAcGFyYW0gZXZlbnRzXG4gKiBAcGFyYW0gcnVsZXNldE1hcFxuICovXG5leHBvcnQgY29uc3QgcnVsZXNldFJlcG9ydFRvSGlzdG9yeSA9IChldmVudHM6IERlYnVnRXZlbnRbXSwgcnVsZXNldE1hcDogUmVjb3JkPHN0cmluZywgUnVsZXNldD4pOiBSdWxlc2V0RXhlY3V0aW9uRGVidWdbXSA9PiB7XG4gIGNvbnN0IGF2YWlsYWJsZVJ1bGVzZXRzID0gKGV2ZW50cy5maWx0ZXIoKGUpID0+IGUudHlwZSA9PT0gJ0F2YWlsYWJsZVJ1bGVzZXRzJykucmV2ZXJzZSgpWzBdKT8uYXZhaWxhYmxlUnVsZXNldHMgfHwgW107XG4gIGNvbnN0IGxhc3RBY3RpdmVSdWxlc2V0cyA9IChldmVudHMuZmlsdGVyKChlKSA9PiBlLnR5cGUgPT09ICdBY3RpdmVSdWxlc2V0cycpLnJldmVyc2UoKVswXSk/LnJ1bGVzZXRzIHx8IFtdO1xuXG4gIHJldHVybiBhdmFpbGFibGVSdWxlc2V0c1xuICAgIC5maWx0ZXIoKHJ1bGVzZXQpID0+ICEhcnVsZXNldClcbiAgICAucmVkdWNlPChSdWxlc2V0RXhlY3V0aW9uRXZlbnQgfCBSdWxlc2V0RXhlY3V0aW9uRXJyb3JFdmVudClbXT4oKGFjYywgcnVsZXNldCkgPT4ge1xuICAgIGNvbnN0IHJ1bGVzZXRFeGVjdXRpb25zID0gZXZlbnRzXG4gICAgICAuZmlsdGVyKChlKTogZSBpcyBSdWxlc2V0RXhlY3V0aW9uRXZlbnQgfCBSdWxlc2V0RXhlY3V0aW9uRXJyb3JFdmVudCA9PiAoKGUudHlwZSA9PT0gJ1J1bGVzZXRFeGVjdXRpb25FcnJvcicgfHwgZS50eXBlID09PSAnUnVsZXNldEV4ZWN1dGlvbicpICYmIGUucnVsZXNldElkID09PSBydWxlc2V0LmlkKSk7XG4gICAgaWYgKHJ1bGVzZXRFeGVjdXRpb25zKSB7XG4gICAgICBhY2MucHVzaCguLi5ydWxlc2V0RXhlY3V0aW9ucyk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKVxuICAgIC5zb3J0KChleGVjQSwgZXhlY0IpID0+IGV4ZWNCLnRpbWVzdGFtcCAtIGV4ZWNBLnRpbWVzdGFtcClcbiAgICAubWFwKChydWxlc2V0RXhlY3V0aW9uKSA9PiB7XG4gICAgICBjb25zdCBydWxlc2V0SW5mb3JtYXRpb24gPSBydWxlc2V0TWFwW3J1bGVzZXRFeGVjdXRpb24ucnVsZXNldElkXTtcbiAgICAgIGNvbnN0IGlzQWN0aXZlID0gbGFzdEFjdGl2ZVJ1bGVzZXRzLmZpbmQoKHIpID0+IHIuaWQgPT09IHJ1bGVzZXRFeGVjdXRpb24ucnVsZXNldElkKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnJ1bGVzZXRFeGVjdXRpb24sXG4gICAgICAgIHN0YXR1czogZ2V0U3RhdHVzKHJ1bGVzZXRFeGVjdXRpb24sICEhaXNBY3RpdmUpLFxuICAgICAgICBpc0FjdGl2ZTogISFpc0FjdGl2ZSxcbiAgICAgICAgcnVsZXNldEluZm9ybWF0aW9uLFxuICAgICAgICBydWxlc0V2YWx1YXRpb25zOiAocnVsZXNldEV4ZWN1dGlvbi5ydWxlc0V2YWx1YXRpb25zIHx8IFtdKS5zb3J0KChldmFsQSwgZXZhbEIpID0+XG4gICAgICAgICAgKHJ1bGVzZXRJbmZvcm1hdGlvbj8ucnVsZXMuZmluZEluZGV4KChyKSA9PiByLmlkID09PSBldmFsQS5ydWxlLmlkKSB8fCAtMSlcbiAgICAgICAgICAtIChydWxlc2V0SW5mb3JtYXRpb24/LnJ1bGVzLmZpbmRJbmRleCgocikgPT4gci5pZCA9PT0gZXZhbEIucnVsZS5pZCkgfHwgLTEpXG4gICAgICAgIClcbiAgICAgIH07XG4gICAgfSk7XG59O1xuIl19
|
package/esm2022/devkit/index.mjs
CHANGED
|
@@ -4,4 +4,4 @@ export * from './rules-engine-devtools.message.service';
|
|
|
4
4
|
export * from './rules-engine-devtools.module';
|
|
5
5
|
export * from './rules-engine-devtools.service';
|
|
6
6
|
export * from './rules-engine-devtools.token';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ydWxlcy1lbmdpbmUtZGV2a2l0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVzLWVuZ2luZS1kZXZ0b29scy5jb25zb2xlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9ydWxlcy1lbmdpbmUtZGV2dG9vbHMubWVzc2FnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcnVsZXMtZW5naW5lLWRldnRvb2xzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bGVzLWVuZ2luZS1kZXZ0b29scy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcnVsZXMtZW5naW5lLWRldnRvb2xzLnRva2VuJztcbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const isRulesEngineMessage = (message) => {
|
|
2
|
-
return message && (message.dataType === 'rulesEngineEvents'
|
|
3
|
-
message.dataType === 'requestMessages'
|
|
4
|
-
message.dataType === 'connect');
|
|
2
|
+
return message && (message.dataType === 'rulesEngineEvents'
|
|
3
|
+
|| message.dataType === 'requestMessages'
|
|
4
|
+
|| message.dataType === 'connect');
|
|
5
5
|
};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLWRldmtpdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L3J1bGVzLWVuZ2luZS1kZXZraXQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQVksRUFBa0QsRUFBRTtJQUNuRyxPQUFPLE9BQU8sSUFBSSxDQUNoQixPQUFPLENBQUMsUUFBUSxLQUFLLG1CQUFtQjtXQUNyQyxPQUFPLENBQUMsUUFBUSxLQUFLLGlCQUFpQjtXQUN0QyxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FDbEMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQ29ubmVjdENvbnRlbnRNZXNzYWdlLFxuICBEZXZ0b29sc0NvbW1vbk9wdGlvbnMsXG4gIE1lc3NhZ2VEYXRhVHlwZXMsXG4gIE90dGVyTWVzc2FnZUNvbnRlbnQsXG4gIFJlcXVlc3RNZXNzYWdlc0NvbnRlbnRNZXNzYWdlLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBEZWJ1Z0V2ZW50LFxuICBSdWxlc2V0LFxufSBmcm9tICcuLi9lbmdpbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVzRW5naW5lRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyBleHRlbmRzIERldnRvb2xzQ29tbW9uT3B0aW9ucyB7XG4gIC8qKiBTaXplIG9mIGV2ZW50cyBsaXN0IGVtaXR0ZWQgYnkgcnVsZXMgZW5naW5lOyBXaGVuIHVuZGVmaW5lZCBhbGwgaGlzdG9yeSB3aWxsIGJlIGtlcHQgKi9cbiAgcnVsZXNFbmdpbmVTdGFja0xpbWl0PzogbnVtYmVyO1xufVxuXG4vKiogUnVsZXMgRW5naW5lIGRlYnVnIGV2ZW50IE1lc3NhZ2UgQ29udGVudCAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlc0VuZ2luZURlYnVnRXZlbnRzQ29udGVudE1lc3NhZ2UgZXh0ZW5kcyBPdHRlck1lc3NhZ2VDb250ZW50PCdydWxlc0VuZ2luZUV2ZW50cyc+IHtcbiAgLyoqIE1hcCBvZiByZWdpc3RlcmVkIHJ1bGVzZXRzICovXG4gIHJ1bGVzZXRNYXA6IFJlY29yZDxzdHJpbmcsIFJ1bGVzZXQ+O1xuICAvKiogTGlzdCBvZiBldmVudCBmcm9tIHRoZSBSdWxlcyBFbmdpbmUgRGVidWdnZXIgKi9cbiAgZXZlbnRzOiBEZWJ1Z0V2ZW50W107XG59XG5cbnR5cGUgUnVsZXNFbmdpbmVNZXNzYWdlQ29udGVudHMgPVxuICB8IFJ1bGVzRW5naW5lRGVidWdFdmVudHNDb250ZW50TWVzc2FnZTtcblxuLyoqIExpc3Qgb2YgcG9zc2libGUgRGF0YVR5cGVzIGZvciBSdWxlc0VuZ2luZSBtZXNzYWdlcyAqL1xuZXhwb3J0IHR5cGUgUnVsZXNFbmdpbmVNZXNzYWdlRGF0YVR5cGVzID0gTWVzc2FnZURhdGFUeXBlczxSdWxlc0VuZ2luZU1lc3NhZ2VDb250ZW50cz47XG5cbi8qKiBMaXN0IG9mIGFsbCBtZXNzYWdlcyBmb3IgY29uZmlndXJhdGlvbiBwdXJwb3NlICovXG5leHBvcnQgdHlwZSBBdmFpbGFibGVSdWxlc0VuZ2luZU1lc3NhZ2VDb250ZW50cyA9XG4gIHwgUnVsZXNFbmdpbmVNZXNzYWdlQ29udGVudHNcbiAgfCBDb25uZWN0Q29udGVudE1lc3NhZ2VcbiAgfCBSZXF1ZXN0TWVzc2FnZXNDb250ZW50TWVzc2FnZTxSdWxlc0VuZ2luZU1lc3NhZ2VEYXRhVHlwZXM+O1xuXG5leHBvcnQgY29uc3QgaXNSdWxlc0VuZ2luZU1lc3NhZ2UgPSAobWVzc2FnZTogYW55KTogbWVzc2FnZSBpcyBBdmFpbGFibGVSdWxlc0VuZ2luZU1lc3NhZ2VDb250ZW50cyA9PiB7XG4gIHJldHVybiBtZXNzYWdlICYmIChcbiAgICBtZXNzYWdlLmRhdGFUeXBlID09PSAncnVsZXNFbmdpbmVFdmVudHMnXG4gICAgfHwgbWVzc2FnZS5kYXRhVHlwZSA9PT0gJ3JlcXVlc3RNZXNzYWdlcydcbiAgICB8fCBtZXNzYWdlLmRhdGFUeXBlID09PSAnY29ubmVjdCdcbiAgKTtcbn07XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { OtterRulesEngineDevtools } from './rules-engine-devtools.service';
|
|
4
|
-
import { OTTER_RULES_ENGINE_DEVTOOLS_DEFAULT_OPTIONS, OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS } from './rules-engine-devtools.token';
|
|
1
|
+
/* eslint-disable no-console -- purpose of the service is to log in the console */
|
|
2
|
+
import { Inject, Injectable, Optional, } from '@angular/core';
|
|
3
|
+
import { OtterRulesEngineDevtools, } from './rules-engine-devtools.service';
|
|
4
|
+
import { OTTER_RULES_ENGINE_DEVTOOLS_DEFAULT_OPTIONS, OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS, } from './rules-engine-devtools.token';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "./rules-engine-devtools.service";
|
|
7
7
|
export class RulesEngineDevtoolsConsoleService {
|
|
@@ -20,9 +20,7 @@ export class RulesEngineDevtoolsConsoleService {
|
|
|
20
20
|
/** @inheritDoc */
|
|
21
21
|
activate() {
|
|
22
22
|
const windowWithDevtools = window;
|
|
23
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
24
23
|
windowWithDevtools._OTTER_DEVTOOLS_ ||= {};
|
|
25
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
26
24
|
windowWithDevtools._OTTER_DEVTOOLS_[RulesEngineDevtoolsConsoleService.windowModuleName] = this;
|
|
27
25
|
console.info(`Otter rules engine Devtools is now accessible via the _OTTER_DEVTOOLS_.${RulesEngineDevtoolsConsoleService.windowModuleName} variable`);
|
|
28
26
|
}
|
|
@@ -110,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
110
108
|
type: Inject,
|
|
111
109
|
args: [OTTER_RULES_ENGINE_DEVTOOLS_OPTIONS]
|
|
112
110
|
}] }] });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLWRldnRvb2xzLmNvbnNvbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvcnVsZXMtZW5naW5lLWRldnRvb2xzLmNvbnNvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7QUFLakksTUFBTSxPQUFPLGlDQUFpQztJQUU1Qyw0REFBNEQ7YUFDckMscUJBQWdCLEdBQUcsYUFBYSxBQUFoQixDQUFpQjtJQUl4RCxZQUNtQixtQkFBNkMsRUFDTCxPQUEyQztRQURuRix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTBCO1FBRzlELElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLDJDQUEyQztZQUM5QyxHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsUUFBUTtRQUNiLE1BQU0sa0JBQWtCLEdBQXVCLE1BQU0sQ0FBQztRQUN0RCxnREFBZ0Q7UUFDaEQsa0JBQWtCLENBQUMsZ0JBQWdCLEtBQUssRUFBRSxDQUFDO1FBQzNDLGdEQUFnRDtRQUNoRCxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpQ0FBaUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUcvRixPQUFPLENBQUMsSUFBSSxDQUFDLDBFQUEwRSxpQ0FBaUMsQ0FBQyxnQkFBZ0IsV0FBVyxDQUFDLENBQUM7SUFDeEosQ0FBQztJQUVELDhEQUE4RDtJQUN2RCxLQUFLLENBQUMsZ0NBQWdDO1FBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxrR0FBa0c7SUFDM0YsS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQscUdBQXFHO0lBQzlGLEtBQUssQ0FBQyxvQkFBb0I7UUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELCtHQUErRztJQUN4RyxLQUFLLENBQUMsbUJBQW1CO1FBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsU0FBaUI7UUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFpQjtRQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsU0FBaUI7UUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyw2QkFBNkIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsU0FBaUI7UUFDcEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMscUJBQXFCLENBQUMsU0FBaUI7UUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsU0FBaUI7UUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCwwREFBMEQ7SUFDbkQsS0FBSyxDQUFDLG1CQUFtQjtRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQWlCO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO2tJQWpIVSxpQ0FBaUMsMERBU3RCLG1DQUFtQztzSUFUOUMsaUNBQWlDLGNBRmhDLE1BQU07OzRGQUVQLGlDQUFpQztrQkFIN0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVVJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2UsIFdpbmRvd1dpdGhEZXZ0b29scyB9IGZyb20gJ0BvM3IvY29yZSc7XG5pbXBvcnQgeyBSdWxlc0VuZ2luZURldnRvb2xzU2VydmljZU9wdGlvbnMgfSBmcm9tICcuL3J1bGVzLWVuZ2luZS1kZXZraXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE90dGVyUnVsZXNFbmdpbmVEZXZ0b29scyB9IGZyb20gJy4vcnVsZXMtZW5naW5lLWRldnRvb2xzLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1RURVJfUlVMRVNfRU5HSU5FX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUywgT1RURVJfUlVMRVNfRU5HSU5FX0RFVlRPT0xTX09QVElPTlMgfSBmcm9tICcuL3J1bGVzLWVuZ2luZS1kZXZ0b29scy50b2tlbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJ1bGVzRW5naW5lRGV2dG9vbHNDb25zb2xlU2VydmljZSBpbXBsZW1lbnRzIERldnRvb2xzU2VydmljZUludGVyZmFjZSB7XG5cbiAgLyoqIE5hbWUgb2YgdGhlIFdpbmRvdyBwcm9wZXJ0eSB0byBhY2Nlc3MgdG8gdGhlIGRldnRvb2xzICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgd2luZG93TW9kdWxlTmFtZSA9ICdydWxlc0VuZ2luZSc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBSdWxlc0VuZ2luZURldnRvb2xzU2VydmljZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBydWxlc0VuZ2luZURldnRvb2xzOiBPdHRlclJ1bGVzRW5naW5lRGV2dG9vbHMsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPVFRFUl9SVUxFU19FTkdJTkVfREVWVE9PTFNfT1BUSU9OUykgb3B0aW9ucz86IFJ1bGVzRW5naW5lRGV2dG9vbHNTZXJ2aWNlT3B0aW9uc1xuICApIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi5PVFRFUl9SVUxFU19FTkdJTkVfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGFjdGl2YXRlKCkge1xuICAgIGNvbnN0IHdpbmRvd1dpdGhEZXZ0b29sczogV2luZG93V2l0aERldnRvb2xzID0gd2luZG93O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgIHdpbmRvd1dpdGhEZXZ0b29scy5fT1RURVJfREVWVE9PTFNfIHx8PSB7fTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZXJzY29yZS1kYW5nbGVcbiAgICB3aW5kb3dXaXRoRGV2dG9vbHMuX09UVEVSX0RFVlRPT0xTX1tSdWxlc0VuZ2luZURldnRvb2xzQ29uc29sZVNlcnZpY2Uud2luZG93TW9kdWxlTmFtZV0gPSB0aGlzO1xuXG5cbiAgICBjb25zb2xlLmluZm8oYE90dGVyIHJ1bGVzIGVuZ2luZSBEZXZ0b29scyBpcyBub3cgYWNjZXNzaWJsZSB2aWEgdGhlIF9PVFRFUl9ERVZUT09MU18uJHtSdWxlc0VuZ2luZURldnRvb2xzQ29uc29sZVNlcnZpY2Uud2luZG93TW9kdWxlTmFtZX0gdmFyaWFibGVgKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gdGhlIGxpc3Qgb2YgZGVidWcgZXZlbnRzIGVtaXR0ZWQgYnkgcnVsZXMgZW5naW5lICovXG4gIHB1YmxpYyBhc3luYyBnZXRDdXJyZW50UnVsZXNFbmdpbmVFdmVudHNTdGFjaygpIHtcbiAgICBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnJ1bGVzRW5naW5lRGV2dG9vbHMuZ2V0Q3VycmVudFJ1bGVzRW5naW5lRXZlbnRzU3RhY2soKSk7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgbGlzdCBvZiBhY3RpdmUgcnVsZXNldHMgKG5hbWUgYW5kIGlkKSBhdCB0aGUgbW9tZW50IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QWN0aXZlUnVsZXNldHMoKSB7XG4gICAgY29uc29sZS5sb2coYXdhaXQgdGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLmdldEFjdGl2ZVJ1bGVzZXRzKCkpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHJ1bGVzZXRzIChuYW1lIGFuZCBpZCkgYXQgdGhlIG1vbWVudCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgKi9cbiAgcHVibGljIGFzeW5jIGdldEF2YWlsYWJsZVJ1bGVzZXRzKCkge1xuICAgIGNvbnNvbGUubG9nKGF3YWl0IHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5nZXRBdmFpbGFibGVSdWxlc2V0cygpKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBsaXN0IG9mIG91dHB1dCBhY3Rpb25zIGVtaXR0ZWQgYnkgdGhlIHJ1bGVzIGVuZ2luZSBhdCB0aGUgbW9tZW50IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QWxsT3V0cHV0QWN0aW9ucygpIHtcbiAgICBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnJ1bGVzRW5naW5lRGV2dG9vbHMuZ2V0QWxsT3V0cHV0QWN0aW9ucygpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxpc3Qgb2YgZXhlY3V0aW9ucyBmb3IgdGhlIGdpdmVuIHJ1bGVzZXRcbiAgICogQHBhcmFtIHJ1bGVzZXRJZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFJ1bGVzZXRFeGVjdXRpb25zKHJ1bGVzZXRJZDogc3RyaW5nKSB7XG4gICAgY29uc29sZS5sb2coYXdhaXQgdGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLmdldFJ1bGVzZXRFeGVjdXRpb25zKHJ1bGVzZXRJZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBydWxlc2V0IGlzIGFjdGl2IGluIHRoZSBtb21lbnQgd2hlbiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkXG4gICAqIEBwYXJhbSBydWxlc2V0SWRcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgcnVsZXNldCBpcyBhY3RpdmU7IEZhbHNlIGlmIHRoZSBydWxlc2V0IGlzIGluYWN0aXZlIG9yIGl0IGRvZXMgbm90IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNSdWxlc2V0QWN0aXZlKHJ1bGVzZXRJZDogc3RyaW5nKSB7XG4gICAgY29uc29sZS5sb2coYXdhaXQgdGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLmlzUnVsZXNldEFjdGl2ZShydWxlc2V0SWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxpc3Qgb2YgcnVsZXMgZXhlY3V0ZWQgZm9yIHRoZSBzcGVjaWZpZWQgcnVsZXNldFxuICAgKiBAcGFyYW0gcnVsZXNldElkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0UnVsZXNFdmFsdWF0aW9uc0ZvclJ1bGVzZXQocnVsZXNldElkOiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnJ1bGVzRW5naW5lRGV2dG9vbHMuZ2V0UnVsZXNFdmFsdWF0aW9uc0ZvclJ1bGVzZXQocnVsZXNldElkKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIGlucHV0IGZhY3RzIChuYW1lLCBjdXJyZW50IHZhbHVlKSBmb3IgdGhlIHNwZWNpZmllZCBydWxlc2V0LCBhdCB0aGUgbW9tZW50IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZFxuICAgKiBAcGFyYW0gcnVsZXNldElkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SW5wdXRGYWN0c0ZvclJ1bGVzZXQocnVsZXNldElkOiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnJ1bGVzRW5naW5lRGV2dG9vbHMuZ2V0SW5wdXRGYWN0c0ZvclJ1bGVzZXQocnVsZXNldElkKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIHRyaWdnZXJzIGZvciB0aGUgc3BlY2lmaWVkIHJ1bGVzZXRcbiAgICogQHBhcmFtIHJ1bGVzZXRJZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFRyaWdnZXJzRm9yUnVsZXNldChydWxlc2V0SWQ6IHN0cmluZykge1xuICAgIGNvbnNvbGUubG9nKGF3YWl0IHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5nZXRUcmlnZ2Vyc0ZvclJ1bGVzZXQocnVsZXNldElkKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIG91dHB1dGVkIGFjdGlvbnMgZW1pdHRlZCBieSB0aGUgZ2l2ZW4gcnVsZXNldCwgYXQgdGhlIG1vbWVudCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWRcbiAgICogQHBhcmFtIHJ1bGVzZXRJZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldE91dHB1dEFjdGlvbnNGb3JSdWxlc2V0KHJ1bGVzZXRJZDogc3RyaW5nKSB7XG4gICAgY29uc29sZS5sb2coYXdhaXQgdGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLmdldE91dHB1dEFjdGlvbnNGb3JSdWxlc2V0KHJ1bGVzZXRJZCkpO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgbGlzdCBvZiBmYWN0IG5hbWVzIGFuZCBjb3JyZXNwb25kaW5nIHZhbHVlcyAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QWxsRmFjdHNTbmFwc2hvdCgpIHtcbiAgICBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnJ1bGVzRW5naW5lRGV2dG9vbHMuZ2V0QWxsRmFjdHNTbmFwc2hvdCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSB0aGUgcnVsZXNldCBpbmZvcm1hdGlvbiAocnVsZXMsIGxpbmtlZENvbXBvbmVudHMsIHZhbGlkaXR5IHJhbmdlIGV0Yy4pIGZvciBhIHJ1bGVzZXQgaWRcbiAgICogQHBhcmFtIHJ1bGVzZXRJZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFJ1bGVzZXRJbmZvcm1hdGlvbihydWxlc2V0SWQ6IHN0cmluZykge1xuICAgIGNvbnNvbGUubG9nKGF3YWl0IHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5nZXRSdWxlc2V0SW5mb3JtYXRpb24ocnVsZXNldElkKSk7XG4gIH1cbn1cbiJdfQ==
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtZW5naW5lLWRldnRvb2xzLmNvbnNvbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZXZraXQvcnVsZXMtZW5naW5lLWRldnRvb2xzLmNvbnNvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrRkFBa0Y7QUFDbEYsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBQ1YsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBUXZCLE9BQU8sRUFDTCx3QkFBd0IsR0FDekIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsMkNBQTJDLEVBQzNDLG1DQUFtQyxHQUNwQyxNQUFNLCtCQUErQixDQUFDOzs7QUFLdkMsTUFBTSxPQUFPLGlDQUFpQztJQUM1Qyw0REFBNEQ7YUFDckMscUJBQWdCLEdBQUcsYUFBYSxBQUFoQixDQUFpQjtJQUl4RCxZQUNtQixtQkFBNkMsRUFDTCxPQUEyQztRQURuRix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTBCO1FBRzlELElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixHQUFHLDJDQUEyQztZQUM5QyxHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsUUFBUTtRQUNiLE1BQU0sa0JBQWtCLEdBQXVCLE1BQU0sQ0FBQztRQUN0RCxrQkFBa0IsQ0FBQyxnQkFBZ0IsS0FBSyxFQUFFLENBQUM7UUFDM0Msa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsaUNBQWlDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFL0YsT0FBTyxDQUFDLElBQUksQ0FBQywwRUFBMEUsaUNBQWlDLENBQUMsZ0JBQWdCLFdBQVcsQ0FBQyxDQUFDO0lBQ3hKLENBQUM7SUFFRCw4REFBOEQ7SUFDdkQsS0FBSyxDQUFDLGdDQUFnQztRQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdDQUFnQyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsa0dBQWtHO0lBQzNGLEtBQUssQ0FBQyxpQkFBaUI7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELHFHQUFxRztJQUM5RixLQUFLLENBQUMsb0JBQW9CO1FBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCwrR0FBK0c7SUFDeEcsS0FBSyxDQUFDLG1CQUFtQjtRQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLG9CQUFvQixDQUFDLFNBQWlCO1FBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBaUI7UUFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLDZCQUE2QixDQUFDLFNBQWlCO1FBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsNkJBQTZCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQWlCO1FBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQWlCO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLDBCQUEwQixDQUFDLFNBQWlCO1FBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsMERBQTBEO0lBQ25ELEtBQUssQ0FBQyxtQkFBbUI7UUFDOUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxTQUFpQjtRQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztrSUE3R1UsaUNBQWlDLDBEQVF0QixtQ0FBbUM7c0lBUjlDLGlDQUFpQyxjQUZoQyxNQUFNOzs0RkFFUCxpQ0FBaUM7a0JBSDdDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgLS0gcHVycG9zZSBvZiB0aGUgc2VydmljZSBpcyB0byBsb2cgaW4gdGhlIGNvbnNvbGUgKi9cbmltcG9ydCB7XG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBEZXZ0b29sc1NlcnZpY2VJbnRlcmZhY2UsXG4gIFdpbmRvd1dpdGhEZXZ0b29scyxcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB7XG4gIFJ1bGVzRW5naW5lRGV2dG9vbHNTZXJ2aWNlT3B0aW9ucyxcbn0gZnJvbSAnLi9ydWxlcy1lbmdpbmUtZGV2a2l0LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBPdHRlclJ1bGVzRW5naW5lRGV2dG9vbHMsXG59IGZyb20gJy4vcnVsZXMtZW5naW5lLWRldnRvb2xzLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgT1RURVJfUlVMRVNfRU5HSU5FX0RFVlRPT0xTX0RFRkFVTFRfT1BUSU9OUyxcbiAgT1RURVJfUlVMRVNfRU5HSU5FX0RFVlRPT0xTX09QVElPTlMsXG59IGZyb20gJy4vcnVsZXMtZW5naW5lLWRldnRvb2xzLnRva2VuJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUnVsZXNFbmdpbmVEZXZ0b29sc0NvbnNvbGVTZXJ2aWNlIGltcGxlbWVudHMgRGV2dG9vbHNTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgLyoqIE5hbWUgb2YgdGhlIFdpbmRvdyBwcm9wZXJ0eSB0byBhY2Nlc3MgdG8gdGhlIGRldnRvb2xzICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgd2luZG93TW9kdWxlTmFtZSA9ICdydWxlc0VuZ2luZSc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBSdWxlc0VuZ2luZURldnRvb2xzU2VydmljZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBydWxlc0VuZ2luZURldnRvb2xzOiBPdHRlclJ1bGVzRW5naW5lRGV2dG9vbHMsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChPVFRFUl9SVUxFU19FTkdJTkVfREVWVE9PTFNfT1BUSU9OUykgb3B0aW9ucz86IFJ1bGVzRW5naW5lRGV2dG9vbHNTZXJ2aWNlT3B0aW9uc1xuICApIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAuLi5PVFRFUl9SVUxFU19FTkdJTkVfREVWVE9PTFNfREVGQVVMVF9PUFRJT05TLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlzQWN0aXZhdGVkT25Cb290c3RyYXApIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGFjdGl2YXRlKCkge1xuICAgIGNvbnN0IHdpbmRvd1dpdGhEZXZ0b29sczogV2luZG93V2l0aERldnRvb2xzID0gd2luZG93O1xuICAgIHdpbmRvd1dpdGhEZXZ0b29scy5fT1RURVJfREVWVE9PTFNfIHx8PSB7fTtcbiAgICB3aW5kb3dXaXRoRGV2dG9vbHMuX09UVEVSX0RFVlRPT0xTX1tSdWxlc0VuZ2luZURldnRvb2xzQ29uc29sZVNlcnZpY2Uud2luZG93TW9kdWxlTmFtZV0gPSB0aGlzO1xuXG4gICAgY29uc29sZS5pbmZvKGBPdHRlciBydWxlcyBlbmdpbmUgRGV2dG9vbHMgaXMgbm93IGFjY2Vzc2libGUgdmlhIHRoZSBfT1RURVJfREVWVE9PTFNfLiR7UnVsZXNFbmdpbmVEZXZ0b29sc0NvbnNvbGVTZXJ2aWNlLndpbmRvd01vZHVsZU5hbWV9IHZhcmlhYmxlYCk7XG4gIH1cblxuICAvKiogUmV0dXJuIHRoZSBsaXN0IG9mIGRlYnVnIGV2ZW50cyBlbWl0dGVkIGJ5IHJ1bGVzIGVuZ2luZSAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Q3VycmVudFJ1bGVzRW5naW5lRXZlbnRzU3RhY2soKSB7XG4gICAgY29uc29sZS5sb2coYXdhaXQgdGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLmdldEN1cnJlbnRSdWxlc0VuZ2luZUV2ZW50c1N0YWNrKCkpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGxpc3Qgb2YgYWN0aXZlIHJ1bGVzZXRzIChuYW1lIGFuZCBpZCkgYXQgdGhlIG1vbWVudCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgKi9cbiAgcHVibGljIGFzeW5jIGdldEFjdGl2ZVJ1bGVzZXRzKCkge1xuICAgIGNvbnNvbGUubG9nKGF3YWl0IHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5nZXRBY3RpdmVSdWxlc2V0cygpKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBydWxlc2V0cyAobmFtZSBhbmQgaWQpIGF0IHRoZSBtb21lbnQgd2hlbiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkICovXG4gIHB1YmxpYyBhc3luYyBnZXRBdmFpbGFibGVSdWxlc2V0cygpIHtcbiAgICBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnJ1bGVzRW5naW5lRGV2dG9vbHMuZ2V0QXZhaWxhYmxlUnVsZXNldHMoKSk7XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgbGlzdCBvZiBvdXRwdXQgYWN0aW9ucyBlbWl0dGVkIGJ5IHRoZSBydWxlcyBlbmdpbmUgYXQgdGhlIG1vbWVudCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgKi9cbiAgcHVibGljIGFzeW5jIGdldEFsbE91dHB1dEFjdGlvbnMoKSB7XG4gICAgY29uc29sZS5sb2coYXdhaXQgdGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLmdldEFsbE91dHB1dEFjdGlvbnMoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIGV4ZWN1dGlvbnMgZm9yIHRoZSBnaXZlbiBydWxlc2V0XG4gICAqIEBwYXJhbSBydWxlc2V0SWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRSdWxlc2V0RXhlY3V0aW9ucyhydWxlc2V0SWQ6IHN0cmluZykge1xuICAgIGNvbnNvbGUubG9nKGF3YWl0IHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5nZXRSdWxlc2V0RXhlY3V0aW9ucyhydWxlc2V0SWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgcnVsZXNldCBpcyBhY3RpdiBpbiB0aGUgbW9tZW50IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZFxuICAgKiBAcGFyYW0gcnVsZXNldElkXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHJ1bGVzZXQgaXMgYWN0aXZlOyBGYWxzZSBpZiB0aGUgcnVsZXNldCBpcyBpbmFjdGl2ZSBvciBpdCBkb2VzIG5vdCBleGlzdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzUnVsZXNldEFjdGl2ZShydWxlc2V0SWQ6IHN0cmluZykge1xuICAgIGNvbnNvbGUubG9nKGF3YWl0IHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5pc1J1bGVzZXRBY3RpdmUocnVsZXNldElkKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIHJ1bGVzIGV4ZWN1dGVkIGZvciB0aGUgc3BlY2lmaWVkIHJ1bGVzZXRcbiAgICogQHBhcmFtIHJ1bGVzZXRJZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFJ1bGVzRXZhbHVhdGlvbnNGb3JSdWxlc2V0KHJ1bGVzZXRJZDogc3RyaW5nKSB7XG4gICAgY29uc29sZS5sb2coYXdhaXQgdGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLmdldFJ1bGVzRXZhbHVhdGlvbnNGb3JSdWxlc2V0KHJ1bGVzZXRJZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdCBvZiBpbnB1dCBmYWN0cyAobmFtZSwgY3VycmVudCB2YWx1ZSkgZm9yIHRoZSBzcGVjaWZpZWQgcnVsZXNldCwgYXQgdGhlIG1vbWVudCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWRcbiAgICogQHBhcmFtIHJ1bGVzZXRJZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldElucHV0RmFjdHNGb3JSdWxlc2V0KHJ1bGVzZXRJZDogc3RyaW5nKSB7XG4gICAgY29uc29sZS5sb2coYXdhaXQgdGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLmdldElucHV0RmFjdHNGb3JSdWxlc2V0KHJ1bGVzZXRJZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdCBvZiB0cmlnZ2VycyBmb3IgdGhlIHNwZWNpZmllZCBydWxlc2V0XG4gICAqIEBwYXJhbSBydWxlc2V0SWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRUcmlnZ2Vyc0ZvclJ1bGVzZXQocnVsZXNldElkOiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnJ1bGVzRW5naW5lRGV2dG9vbHMuZ2V0VHJpZ2dlcnNGb3JSdWxlc2V0KHJ1bGVzZXRJZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdCBvZiBvdXRwdXRlZCBhY3Rpb25zIGVtaXR0ZWQgYnkgdGhlIGdpdmVuIHJ1bGVzZXQsIGF0IHRoZSBtb21lbnQgd2hlbiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkXG4gICAqIEBwYXJhbSBydWxlc2V0SWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRPdXRwdXRBY3Rpb25zRm9yUnVsZXNldChydWxlc2V0SWQ6IHN0cmluZykge1xuICAgIGNvbnNvbGUubG9nKGF3YWl0IHRoaXMucnVsZXNFbmdpbmVEZXZ0b29scy5nZXRPdXRwdXRBY3Rpb25zRm9yUnVsZXNldChydWxlc2V0SWQpKTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGxpc3Qgb2YgZmFjdCBuYW1lcyBhbmQgY29ycmVzcG9uZGluZyB2YWx1ZXMgKi9cbiAgcHVibGljIGFzeW5jIGdldEFsbEZhY3RzU25hcHNob3QoKSB7XG4gICAgY29uc29sZS5sb2coYXdhaXQgdGhpcy5ydWxlc0VuZ2luZURldnRvb2xzLmdldEFsbEZhY3RzU25hcHNob3QoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIHJ1bGVzZXQgaW5mb3JtYXRpb24gKHJ1bGVzLCBsaW5rZWRDb21wb25lbnRzLCB2YWxpZGl0eSByYW5nZSBldGMuKSBmb3IgYSBydWxlc2V0IGlkXG4gICAqIEBwYXJhbSBydWxlc2V0SWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRSdWxlc2V0SW5mb3JtYXRpb24ocnVsZXNldElkOiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmxvZyhhd2FpdCB0aGlzLnJ1bGVzRW5naW5lRGV2dG9vbHMuZ2V0UnVsZXNldEluZm9ybWF0aW9uKHJ1bGVzZXRJZCkpO1xuICB9XG59XG4iXX0=
|