@softpak/components 0.1.0-beta.4 → 0.1.0-beta.6
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NgClass } from '@angular/common';
|
|
1
|
+
import { NgClass, NgIf } from '@angular/common';
|
|
2
2
|
import { Component, Input } from '@angular/core';
|
|
3
3
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { IonContent, IonHeader, IonToolbar, IonTitle } from '@ionic/angular/standalone';
|
|
@@ -70,7 +70,7 @@ export class SpxAppUpdateComponent {
|
|
|
70
70
|
const channelType = currentVersion.channel.split('-')[0];
|
|
71
71
|
if (binaryGroup != channelGroup) {
|
|
72
72
|
await this.deploy.configure({
|
|
73
|
-
appId:
|
|
73
|
+
appId: this.spxAppId,
|
|
74
74
|
channel: `${channelType}-${binaryGroup}.x`
|
|
75
75
|
}).then(() => {
|
|
76
76
|
this.sync().then(() => { });
|
|
@@ -213,7 +213,7 @@ export class SpxAppUpdateComponent {
|
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxAppUpdateComponent, deps: [{ token: i1.Deploy }, { token: i2.Router }, { token: i0.ChangeDetectorRef }, { token: i0.ApplicationRef }, { token: i3.TranslateService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
216
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SpxAppUpdateComponent, isStandalone: true, selector: "spx-app-update", inputs: { spxHomeUrl: "spxHomeUrl", spxIsSignedIn: "spxIsSignedIn", textCheckingForUpdates: "textCheckingForUpdates", textDownloadingUpdate: "textDownloadingUpdate", textErrorWhileUpdatingApp: "textErrorWhileUpdatingApp", textFinishedUpdating: "textFinishedUpdating", textNoUpdatesAvailable: "textNoUpdatesAvailable", textUnexpectedError: "textUnexpectedError", txtAppStoreVersion: "txtAppStoreVersion", txtChannel: "txtChannel", txtNextVersion: "txtNextVersion", txtUpdate: "txtUpdate", txtVersion: "txtVersion" }, ngImport: i0, template: `<ion-header>
|
|
216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SpxAppUpdateComponent, isStandalone: true, selector: "spx-app-update", inputs: { spxHomeUrl: "spxHomeUrl", spxIsSignedIn: "spxIsSignedIn", textCheckingForUpdates: "textCheckingForUpdates", textDownloadingUpdate: "textDownloadingUpdate", textErrorWhileUpdatingApp: "textErrorWhileUpdatingApp", textFinishedUpdating: "textFinishedUpdating", textNoUpdatesAvailable: "textNoUpdatesAvailable", textUnexpectedError: "textUnexpectedError", txtAppStoreVersion: "txtAppStoreVersion", txtChannel: "txtChannel", txtNextVersion: "txtNextVersion", txtUpdate: "txtUpdate", txtVersion: "txtVersion", spxAppId: "spxAppId" }, ngImport: i0, template: `<ion-header>
|
|
217
217
|
<ion-toolbar>
|
|
218
218
|
<ion-title>
|
|
219
219
|
{{ txtUpdate | translate | capitalize }}
|
|
@@ -238,7 +238,7 @@ export class SpxAppUpdateComponent {
|
|
|
238
238
|
</div>
|
|
239
239
|
</form>
|
|
240
240
|
</div>
|
|
241
|
-
</ion-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }, { kind: "component", type: SpxProgressBarComponent, selector: "spx-progress-bar", inputs: ["spxPercentage", "spxTitle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
241
|
+
</ion-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }, { kind: "component", type: SpxProgressBarComponent, selector: "spx-progress-bar", inputs: ["spxPercentage", "spxTitle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
242
242
|
}
|
|
243
243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxAppUpdateComponent, decorators: [{
|
|
244
244
|
type: Component,
|
|
@@ -252,6 +252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
252
252
|
IonTitle,
|
|
253
253
|
IonToolbar,
|
|
254
254
|
NgClass,
|
|
255
|
+
NgIf,
|
|
255
256
|
ReactiveFormsModule,
|
|
256
257
|
SpxCapitalizePipe,
|
|
257
258
|
SpxInputComponent,
|
|
@@ -311,5 +312,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
311
312
|
type: Input
|
|
312
313
|
}], txtVersion: [{
|
|
313
314
|
type: Input
|
|
315
|
+
}], spxAppId: [{
|
|
316
|
+
type: Input
|
|
314
317
|
}] } });
|
|
315
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWFwcC11cGRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1hcHAtdXBkYXRlL3NweC1hcHAtdXBkYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFxQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBdUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkcsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUVsRCxNQUFNLHFCQUFxQixHQUFHLHVCQUF1QixDQUFDO0FBQ3RELE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLENBQUM7QUFDOUMsTUFBTSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN0RCxNQUFNLG1CQUFtQixHQUFHLHFCQUFxQixDQUFDO0FBNkNsRCxNQUFNLE9BQU8scUJBQXFC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QUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uQ29udGVudCwgSW9uSGVhZGVyLCBJb25Ub29sYmFyLCBJb25UaXRsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTcHhDYXBpdGFsaXplUGlwZSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWNhcGl0YWxpemUnO1xuaW1wb3J0IHsgU3B4SW5wdXRDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1pbnB1dHMnO1xuaW1wb3J0IHsgU3B4UHJvZ3Jlc3NCYXJDb21wb25lbnQgfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgU3B4U3RvcmFnZSwgU3B4U3RvcmFnZUtleUVudW0gfSBmcm9tICdAc29mdHBhay9jb21wb25lbnRzL3NweC1zdG9yYWdlJztcbmltcG9ydCB7IERldmljZSB9IGZyb20gJ0BjYXBhY2l0b3IvZGV2aWNlJztcbmltcG9ydCB7IERlcGxveSB9IGZyb20gJ2NvcmRvdmEtcGx1Z2luLWlvbmljL2Rpc3Qvbmd4JztcbmltcG9ydCB7IGdldEN1cnJlbnRTY29wZSB9IGZyb20gJ0BzZW50cnkvYW5ndWxhcic7XG5cbmNvbnN0IGN0cmxOZXh0VmVyc2lvbk51bWJlciA9ICdjdHJsTmV4dFZlcnNpb25OdW1iZXInO1xuY29uc3QgY3RybFZlcnNpb25OdW1iZXIgPSAnY3RybFZlcnNpb25OdW1iZXInO1xuY29uc3QgY3RybENvbmZpZ3VyZWRDaGFubmVsID0gJ2N0cmxDb25maWd1cmVkQ2hhbm5lbCc7XG5jb25zdCBjdHJsQXBwU3RvcmVWZXJzaW9uID0gJ2N0cmxBcHBTdG9yZVZlcnNpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcHgtYXBwLXVwZGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJb25Db250ZW50LFxuICAgIElvbkhlYWRlcixcbiAgICBJb25UaXRsZSxcbiAgICBJb25Ub29sYmFyLFxuICAgIE5nQ2xhc3MsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTcHhDYXBpdGFsaXplUGlwZSxcbiAgICBTcHhJbnB1dENvbXBvbmVudCxcbiAgICBTcHhQcm9ncmVzc0JhckNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhcj5cbiAgICA8aW9uLXRpdGxlPlxuICAgICAge3sgdHh0VXBkYXRlIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZSB9fVxuICAgIDwvaW9uLXRpdGxlPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tY29udGVudC0tdXBkXCIgW2Z1bGxzY3JlZW5dPVwidHJ1ZVwiPlxuICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICA8c3B4LXByb2dyZXNzLWJhciBbc3B4UGVyY2VudGFnZV09XCJkZWxheWVkUGVyY2VudGFnZVwiIFtzcHhUaXRsZV09XCJ1cGRhdGVTdGF0dXMgfCBjYXBpdGFsaXplXCI+XG4gICAgPC9zcHgtcHJvZ3Jlc3MtYmFyPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwibXQtM1wiPlxuICAgICAgPGRpdiAqbmdJZj1cImN0cmxBcHBTdG9yZVZlcnNpb24udmFsdWUgJiYgY3RybEFwcFN0b3JlVmVyc2lvbi52YWx1ZS52YWx1ZVwiIGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiB4bDpncmlkLWNvbHMtMyBnYXAtM1wiPlxuICAgICAgICA8c3B4LWlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsQXBwU3RvcmVWZXJzaW9uXCIgW3NweExhYmVsXT1cInR4dEFwcFN0b3JlVmVyc2lvbiB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxDb25maWd1cmVkQ2hhbm5lbFwiIFtzcHhMYWJlbF09XCJ0eHRDaGFubmVsIHwgdHJhbnNsYXRlIHwgY2FwaXRhbGl6ZVwiXG4gICAgICAgICAgW3NweFJlYWRvbmx5XT1cInRydWVcIj48L3NweC1pbnB1dD5cbiAgICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybFZlcnNpb25OdW1iZXJcIiBbc3B4TGFiZWxdPVwidHh0VmVyc2lvbiB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgICAgIDxzcHgtaW5wdXQgKm5nSWY9XCJjdHJsTmV4dFZlcnNpb25OdW1iZXIudmFsdWUgJiYgY3RybE5leHRWZXJzaW9uTnVtYmVyLnZhbHVlLnZhbHVlXCIgW2Zvcm1Db250cm9sXT1cImN0cmxOZXh0VmVyc2lvbk51bWJlclwiIFtzcHhMYWJlbF09XCJ0eHROZXh0VmVyc2lvbiB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuPC9pb24tY29udGVudD5gLFxufSlcbmV4cG9ydCBjbGFzcyBTcHhBcHBVcGRhdGVDb21wb25lbnQge1xuICBASW5wdXQoKSBzcHhIb21lVXJsITogc3RyaW5nO1xuICBASW5wdXQoKSBzcHhJc1NpZ25lZEluITogYm9vbGVhbjtcbiAgQElucHV0KCkgdGV4dENoZWNraW5nRm9yVXBkYXRlcyE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dERvd25sb2FkaW5nVXBkYXRlITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0RXJyb3JXaGlsZVVwZGF0aW5nQXBwITogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0RmluaXNoZWRVcGRhdGluZyE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dE5vVXBkYXRlc0F2YWlsYWJsZSE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dFVuZXhwZWN0ZWRFcnJvciE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0QXBwU3RvcmVWZXJzaW9uITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRDaGFubmVsITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHROZXh0VmVyc2lvbiE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0VXBkYXRlITogc3RyaW5nO1xuICBASW5wdXQoKSB0eHRWZXJzaW9uITogc3RyaW5nO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBkZWxheWVkUGVyY2VudGFnZTogbnVtYmVyID0gMDtcbiAgcGVyY2VudGFnZTogbnVtYmVyID0gMDtcbiAgc3luY1RydWNrSW50ZXJ2YWw6IGFueSB8IG51bGwgPSBudWxsO1xuICB1cGRhdGVTdGF0dXM6IHN0cmluZyA9IHRoaXMudGV4dENoZWNraW5nRm9yVXBkYXRlcztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlcGxveTogRGVwbG95LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICApIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIFtjdHJsTmV4dFZlcnNpb25OdW1iZXJdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxWZXJzaW9uTnVtYmVyXTogW251bGwsIFtdXSxcbiAgICAgIFtjdHJsQ29uZmlndXJlZENoYW5uZWxdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxBcHBTdG9yZVZlcnNpb25dOiBbbnVsbCwgW11dLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGN0cmxWZXJzaW9uTnVtYmVyKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoY3RybFZlcnNpb25OdW1iZXIpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsTmV4dFZlcnNpb25OdW1iZXIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsTmV4dFZlcnNpb25OdW1iZXIpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsQ29uZmlndXJlZENoYW5uZWwoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsQ29uZmlndXJlZENoYW5uZWwpIGFzIEZvcm1Db250cm9sOyB9XG4gIGdldCBjdHJsQXBwU3RvcmVWZXJzaW9uKCk6IEZvcm1Db250cm9sIHsgcmV0dXJuIHRoaXMuZm9ybS5nZXQoY3RybEFwcFN0b3JlVmVyc2lvbikgYXMgRm9ybUNvbnRyb2w7IH1cblxuICBpb25WaWV3V2lsbEVudGVyKCkge1xuICAgIHRoaXMuZGVsYXllZFBlcmNlbnRhZ2UgPSAwO1xuICAgIHRoaXMucGVyY2VudGFnZSA9IDA7XG4gICAgdGhpcy5wZXJmb3JtQXV0b21hdGljVXBkYXRlKCkudGhlbigoKSA9PiB7IH0pO1xuICAgIHRoaXMuc3RhcnRMb2FkZXJTeW5jKCk7XG4gICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgcGVyY2VudGFnZTogMCxcbiAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dENoZWNraW5nRm9yVXBkYXRlcyksXG4gICAgfSk7XG4gIH1cblxuICBpb25WaWV3V2lsbExlYXZlKCkge1xuICAgIHRoaXMuc3RvcExvYWRlclN5bmMoKTtcbiAgfVxuXG4gIGFzeW5jIHBlcmZvcm1BdXRvbWF0aWNVcGRhdGUoKSB7XG4gICAgY29uc3QgZGV2aWNlSW5mbyA9IGF3YWl0IERldmljZS5nZXRJbmZvKCk7XG5cbiAgICBpZiAoZGV2aWNlSW5mbz8ucGxhdGZvcm0gPT09ICd3ZWInKSB7XG4gICAgICAvLyBMb2NhbD8gU2tpcCB0aGUgdXBkYXRlIHBhZ2UuXG4gICAgICB0aGlzLmNsb3NlVXBkYXRlU2NyZWVuKCk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICB0aGlzLnVwZGF0ZUluZm8oKTtcblxuICAgICAgLy8gU3RhcnQgdXBncmFkZVxuICAgICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBhd2FpdCB0aGlzLmRlcGxveS5nZXRDdXJyZW50VmVyc2lvbigpO1xuICAgICAgaWYgKGN1cnJlbnRWZXJzaW9uPy5iaW5hcnlWZXJzaW9uTmFtZSkge1xuICAgICAgICBjb25zdCBiaW5hcnlHcm91cCA9IGN1cnJlbnRWZXJzaW9uLmJpbmFyeVZlcnNpb25OYW1lLnN1YnN0cmluZygwLCAzKTsgLy8gZS5nLiBcIjEuNFwiXG4gICAgICAgIGNvbnN0IGNoYW5uZWxHcm91cCA9IGN1cnJlbnRWZXJzaW9uLmNoYW5uZWwuc3BsaXQoJy0nKVsxXS5zdWJzdHJpbmcoMCwgMyk7IC8vIGUuZy4gXCIxLjRcIlxuICAgICAgICBjb25zdCBjaGFubmVsVHlwZSA9IGN1cnJlbnRWZXJzaW9uLmNoYW5uZWwuc3BsaXQoJy0nKVswXTtcblxuICAgICAgICBpZiAoYmluYXJ5R3JvdXAgIT0gY2hhbm5lbEdyb3VwKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5kZXBsb3kuY29uZmlndXJlKHtcbiAgICAgICAgICAgIGFwcElkOiAnMThkNmU1ZmInLFxuICAgICAgICAgICAgY2hhbm5lbDogYCR7Y2hhbm5lbFR5cGV9LSR7YmluYXJ5R3JvdXB9LnhgXG4gICAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN5bmMoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zeW5jKCkudGhlbigoKSA9PiB7IH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnN5bmMoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgICB9XG4gICAgICAvLyBFbmQgdXBncmFkZVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dFVuZXhwZWN0ZWRFcnJvcilcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3luYygpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy51cGRhdGVJbmZvKCk7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZUF2YWlsYWJsZUluZm8gPSBhd2FpdCB0aGlzLmRlcGxveS5jaGVja0ZvclVwZGF0ZSgpO1xuICAgICAgaWYgKCF1cGRhdGVBdmFpbGFibGVJbmZvLmF2YWlsYWJsZSkge1xuICAgICAgICAvLyBObyB1cGRhdGUgYXZhaWxhYmxlXG4gICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICBjbG9zZVNjcmVlbjogdHJ1ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAwLFxuICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dE5vVXBkYXRlc0F2YWlsYWJsZSksXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRG93bmxvYWQgdXBkYXRlXG4gICAgICAgIGF3YWl0IHRoaXMuZGVwbG95LnN5bmMoeyB1cGRhdGVNZXRob2Q6ICdhdXRvJyB9LCAocGVyY2VudGFnZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IHBlcmNlbnRhZ2UgPz8gMCxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dERvd25sb2FkaW5nVXBkYXRlLCB7IHBlcmNlbnRhZ2UsIHZlcnNpb246IHVwZGF0ZUF2YWlsYWJsZUluZm8uYnVpbGQgfSksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICAgIGNsb3NlU2NyZWVuOiB0cnVlLFxuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnRleHRFcnJvcldoaWxlVXBkYXRpbmdBcHApLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNoYW5nZVN0YXR1cyh7XG4gICAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgICAgcGVyY2VudGFnZTogMTAwLFxuICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dEZpbmlzaGVkVXBkYXRpbmcsIHsgdmVyc2lvbjogdXBkYXRlQXZhaWxhYmxlSW5mby5idWlsZCB9KVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBDYXRjaCB1bmV4cGVjdGVkIHBsdWctaW4gZXJyb3JzXG4gICAgICB0aGlzLmNoYW5nZVN0YXR1cyh7XG4gICAgICAgIGNsb3NlU2NyZWVuOiB0cnVlLFxuICAgICAgICBlcnJvcixcbiAgICAgICAgcGVyY2VudGFnZTogMTAwLFxuICAgICAgICB0ZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnRleHRVbmV4cGVjdGVkRXJyb3IpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUluZm8oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3VycmVudFZlcnNpb24gPSBhd2FpdCB0aGlzLmRlcGxveS5nZXRDdXJyZW50VmVyc2lvbigpO1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCB0aGlzLmRlcGxveS5nZXRDb25maWd1cmF0aW9uKCk7XG4gICAgY29uc3QgdXBkYXRlQXZhaWxhYmxlSW5mbyA9IGF3YWl0IHRoaXMuZGVwbG95LmNoZWNrRm9yVXBkYXRlKCk7XG5cbiAgICBpZiAoY3VycmVudFZlcnNpb24pIHtcbiAgICAgIHRoaXMuY3RybFZlcnNpb25OdW1iZXIuc2V0VmFsdWUoe1xuICAgICAgICB2YWx1ZTogY29uZmlndXJhdGlvbj8uY3VycmVudEJ1aWxkSWQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3RybE5leHRWZXJzaW9uTnVtYmVyLnNldFZhbHVlKHtcbiAgICAgICAgdmFsdWU6IHVwZGF0ZUF2YWlsYWJsZUluZm8/LmJ1aWxkXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3RybENvbmZpZ3VyZWRDaGFubmVsLnNldFZhbHVlKHtcbiAgICAgICAgdmFsdWU6IGNvbmZpZ3VyYXRpb24gPyBjb25maWd1cmF0aW9uLmNoYW5uZWwgOiBudWxsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3RybEFwcFN0b3JlVmVyc2lvbi5zZXRWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiBjb25maWd1cmF0aW9uID8gY29uZmlndXJhdGlvbi5iaW5hcnlWZXJzaW9uTmFtZSA6IG51bGxcbiAgICAgIH0pO1xuXG4gICAgICB7XG4gICAgICAgIGNvbnN0IHNjb3BlID0gZ2V0Q3VycmVudFNjb3BlKCk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9iaW5hcnlfY29kZScsIGN1cnJlbnRWZXJzaW9uPy5iaW5hcnlWZXJzaW9uQ29kZSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9iaW5hcnlfbmFtZScsIGN1cnJlbnRWZXJzaW9uPy5iaW5hcnlWZXJzaW9uTmFtZSk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9idWlsZF9pZCcsIGN1cnJlbnRWZXJzaW9uPy5idWlsZElkKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCdjaGFubmVsX3R5cGUnLCBjdXJyZW50VmVyc2lvbj8uY2hhbm5lbCk7XG4gICAgICAgIHNjb3BlLnNldFRhZygndmVyc2lvbl9zbmFwc2hvdF9pZCcsIGN1cnJlbnRWZXJzaW9uPy52ZXJzaW9uSWQpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25SZWYudGljaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlU3RhdHVzKHN0YXR1czoge1xuICAgIGVycm9yPzogc3RyaW5nO1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBjbG9zZVNjcmVlbj86IGJvb2xlYW47XG4gICAgcGVyY2VudGFnZTogbnVtYmVyO1xuICB9KSB7XG4gICAgdGhpcy51cGRhdGVTdGF0dXMgPSBzdGF0dXMudGV4dDtcbiAgICB0aGlzLnBlcmNlbnRhZ2UgPSBzdGF0dXMucGVyY2VudGFnZTtcbiAgICBpZiAoc3RhdHVzLmNsb3NlU2NyZWVuKSB7XG4gICAgICB0aGlzLmNsb3NlVXBkYXRlU2NyZWVuKCk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMuZXJyb3IpIHtcbiAgICAgIC8vIHRoaXMuYXBwU3RvcmUuZGlzcGF0Y2goXG4gICAgICAvLyAgIHNoYXJlZFRvYXN0ZXJBY3Rpb25zLkNSRUFURV9FUlJPUih7XG4gICAgICAvLyAgICAgbWVzc2FnZVRleHQ6IHN0YXR1cy5lcnJvcixcbiAgICAgIC8vICAgfSlcbiAgICAgIC8vICk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5hcHBsaWNhdGlvblJlZi50aWNrKCk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlVXBkYXRlU2NyZWVuKCkge1xuICAgIC8vIEFsbG93aW5nIHNvbWUgdGltZSB0byBtYWtlIGEgc2NyZWVuc2hvdCBvZiB2ZXJzaW9uIGluZm9cbiAgICBTcHhTdG9yYWdlLmNsZWFyU2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLnVwZGF0ZUluUHJvZ3Jlc3MpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBTcHhTdG9yYWdlLmdldFNldHRpbmc8YW55PihTcHhTdG9yYWdlS2V5RW51bS5hZnRlclNpZ25JbikgJiZcbiAgICAgICAgdGhpcy5zcHhJc1NpZ25lZEluXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1NweFN0b3JhZ2UuZ2V0U2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLmFmdGVyU2lnbkluKV0pO1xuICAgICAgICBTcHhTdG9yYWdlLmNsZWFyU2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLmFmdGVyU2lnbkluKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuc3B4SG9tZVVybF0pO1xuICAgICAgfVxuICAgIH0sIDApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGFydExvYWRlclN5bmMoKSB7XG4gICAgU3B4U3RvcmFnZS5zZXRTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0udXBkYXRlSW5Qcm9ncmVzcywgJzEnKTtcbiAgICBpZiAodGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdGhpcy5kZWxheWVkUGVyY2VudGFnZSA9IHRoaXMucGVyY2VudGFnZTtcbiAgICAgIH0sIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdG9wTG9hZGVyU3luYygpIHtcbiAgICBpZiAodGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnN5bmNUcnVja0ludGVydmFsKTtcbiAgICAgIHRoaXMuc3luY1RydWNrSW50ZXJ2YWwgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3B4LWFwcC11cGRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc29mdHBhay9jb21wb25lbnRzL3NweC1hcHAtdXBkYXRlL3NweC1hcHAtdXBkYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBcUMsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQXVDLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZHLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFFbEQsTUFBTSxxQkFBcUIsR0FBRyx1QkFBdUIsQ0FBQztBQUN0RCxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDO0FBQzlDLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFDdEQsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQThDbEQsTUFBTSxP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b0I7c0JBQTVCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25Db250ZW50LCBJb25IZWFkZXIsIElvblRvb2xiYXIsIElvblRpdGxlIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNweENhcGl0YWxpemVQaXBlIH0gZnJvbSAnQHNvZnRwYWsvY29tcG9uZW50cy9zcHgtY2FwaXRhbGl6ZSc7XG5pbXBvcnQgeyBTcHhJbnB1dENvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LWlucHV0cyc7XG5pbXBvcnQgeyBTcHhQcm9ncmVzc0JhckNvbXBvbmVudCB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXByb2dyZXNzLWJhcic7XG5pbXBvcnQgeyBTcHhTdG9yYWdlLCBTcHhTdG9yYWdlS2V5RW51bSB9IGZyb20gJ0Bzb2Z0cGFrL2NvbXBvbmVudHMvc3B4LXN0b3JhZ2UnO1xuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSAnQGNhcGFjaXRvci9kZXZpY2UnO1xuaW1wb3J0IHsgRGVwbG95IH0gZnJvbSAnY29yZG92YS1wbHVnaW4taW9uaWMvZGlzdC9uZ3gnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFNjb3BlIH0gZnJvbSAnQHNlbnRyeS9hbmd1bGFyJztcblxuY29uc3QgY3RybE5leHRWZXJzaW9uTnVtYmVyID0gJ2N0cmxOZXh0VmVyc2lvbk51bWJlcic7XG5jb25zdCBjdHJsVmVyc2lvbk51bWJlciA9ICdjdHJsVmVyc2lvbk51bWJlcic7XG5jb25zdCBjdHJsQ29uZmlndXJlZENoYW5uZWwgPSAnY3RybENvbmZpZ3VyZWRDaGFubmVsJztcbmNvbnN0IGN0cmxBcHBTdG9yZVZlcnNpb24gPSAnY3RybEFwcFN0b3JlVmVyc2lvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NweC1hcHAtdXBkYXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIElvbkNvbnRlbnQsXG4gICAgSW9uSGVhZGVyLFxuICAgIElvblRpdGxlLFxuICAgIElvblRvb2xiYXIsXG4gICAgTmdDbGFzcyxcbiAgICBOZ0lmLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3B4Q2FwaXRhbGl6ZVBpcGUsXG4gICAgU3B4SW5wdXRDb21wb25lbnQsXG4gICAgU3B4UHJvZ3Jlc3NCYXJDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxuICB0ZW1wbGF0ZTogYDxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXI+XG4gICAgPGlvbi10aXRsZT5cbiAgICAgIHt7IHR4dFVwZGF0ZSB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemUgfX1cbiAgICA8L2lvbi10aXRsZT5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLWNvbnRlbnQtLXVwZFwiIFtmdWxsc2NyZWVuXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgPHNweC1wcm9ncmVzcy1iYXIgW3NweFBlcmNlbnRhZ2VdPVwiZGVsYXllZFBlcmNlbnRhZ2VcIiBbc3B4VGl0bGVdPVwidXBkYXRlU3RhdHVzIHwgY2FwaXRhbGl6ZVwiPlxuICAgIDwvc3B4LXByb2dyZXNzLWJhcj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cIm10LTNcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjdHJsQXBwU3RvcmVWZXJzaW9uLnZhbHVlICYmIGN0cmxBcHBTdG9yZVZlcnNpb24udmFsdWUudmFsdWVcIiBjbGFzcz1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTIgeGw6Z3JpZC1jb2xzLTMgZ2FwLTNcIj5cbiAgICAgICAgPHNweC1pbnB1dCBbZm9ybUNvbnRyb2xdPVwiY3RybEFwcFN0b3JlVmVyc2lvblwiIFtzcHhMYWJlbF09XCJ0eHRBcHBTdG9yZVZlcnNpb24gfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgICA8c3B4LWlucHV0IFtmb3JtQ29udHJvbF09XCJjdHJsQ29uZmlndXJlZENoYW5uZWxcIiBbc3B4TGFiZWxdPVwidHh0Q2hhbm5lbCB8IHRyYW5zbGF0ZSB8IGNhcGl0YWxpemVcIlxuICAgICAgICAgIFtzcHhSZWFkb25seV09XCJ0cnVlXCI+PC9zcHgtaW5wdXQ+XG4gICAgICAgIDxzcHgtaW5wdXQgW2Zvcm1Db250cm9sXT1cImN0cmxWZXJzaW9uTnVtYmVyXCIgW3NweExhYmVsXT1cInR4dFZlcnNpb24gfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgICA8c3B4LWlucHV0ICpuZ0lmPVwiY3RybE5leHRWZXJzaW9uTnVtYmVyLnZhbHVlICYmIGN0cmxOZXh0VmVyc2lvbk51bWJlci52YWx1ZS52YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJjdHJsTmV4dFZlcnNpb25OdW1iZXJcIiBbc3B4TGFiZWxdPVwidHh0TmV4dFZlcnNpb24gfCB0cmFuc2xhdGUgfCBjYXBpdGFsaXplXCJcbiAgICAgICAgICBbc3B4UmVhZG9ubHldPVwidHJ1ZVwiPjwvc3B4LWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvaW9uLWNvbnRlbnQ+YCxcbn0pXG5leHBvcnQgY2xhc3MgU3B4QXBwVXBkYXRlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc3B4SG9tZVVybCE6IHN0cmluZztcbiAgQElucHV0KCkgc3B4SXNTaWduZWRJbiE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRleHRDaGVja2luZ0ZvclVwZGF0ZXMhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHREb3dubG9hZGluZ1VwZGF0ZSE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dEVycm9yV2hpbGVVcGRhdGluZ0FwcCE6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dEZpbmlzaGVkVXBkYXRpbmchOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHROb1VwZGF0ZXNBdmFpbGFibGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHRVbmV4cGVjdGVkRXJyb3IhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dEFwcFN0b3JlVmVyc2lvbiE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0Q2hhbm5lbCE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0TmV4dFZlcnNpb24hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHR4dFVwZGF0ZSE6IHN0cmluZztcbiAgQElucHV0KCkgdHh0VmVyc2lvbiE6IHN0cmluZztcbiAgQElucHV0KCkgc3B4QXBwSWQhOiBzdHJpbmc7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIGRlbGF5ZWRQZXJjZW50YWdlOiBudW1iZXIgPSAwO1xuICBwZXJjZW50YWdlOiBudW1iZXIgPSAwO1xuICBzeW5jVHJ1Y2tJbnRlcnZhbDogYW55IHwgbnVsbCA9IG51bGw7XG4gIHVwZGF0ZVN0YXR1czogc3RyaW5nID0gdGhpcy50ZXh0Q2hlY2tpbmdGb3JVcGRhdGVzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95OiBEZXBsb3ksXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICkge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgW2N0cmxOZXh0VmVyc2lvbk51bWJlcl06IFtudWxsLCBbXV0sXG4gICAgICBbY3RybFZlcnNpb25OdW1iZXJdOiBbbnVsbCwgW11dLFxuICAgICAgW2N0cmxDb25maWd1cmVkQ2hhbm5lbF06IFtudWxsLCBbXV0sXG4gICAgICBbY3RybEFwcFN0b3JlVmVyc2lvbl06IFtudWxsLCBbXV0sXG4gICAgfSk7XG4gIH1cblxuICBnZXQgY3RybFZlcnNpb25OdW1iZXIoKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsVmVyc2lvbk51bWJlcikgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxOZXh0VmVyc2lvbk51bWJlcigpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KGN0cmxOZXh0VmVyc2lvbk51bWJlcikgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxDb25maWd1cmVkQ2hhbm5lbCgpOiBGb3JtQ29udHJvbCB7IHJldHVybiB0aGlzLmZvcm0uZ2V0KGN0cmxDb25maWd1cmVkQ2hhbm5lbCkgYXMgRm9ybUNvbnRyb2w7IH1cbiAgZ2V0IGN0cmxBcHBTdG9yZVZlcnNpb24oKTogRm9ybUNvbnRyb2wgeyByZXR1cm4gdGhpcy5mb3JtLmdldChjdHJsQXBwU3RvcmVWZXJzaW9uKSBhcyBGb3JtQ29udHJvbDsgfVxuXG4gIGlvblZpZXdXaWxsRW50ZXIoKSB7XG4gICAgdGhpcy5kZWxheWVkUGVyY2VudGFnZSA9IDA7XG4gICAgdGhpcy5wZXJjZW50YWdlID0gMDtcbiAgICB0aGlzLnBlcmZvcm1BdXRvbWF0aWNVcGRhdGUoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgdGhpcy5zdGFydExvYWRlclN5bmMoKTtcbiAgICB0aGlzLmNoYW5nZVN0YXR1cyh7XG4gICAgICBwZXJjZW50YWdlOiAwLFxuICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0Q2hlY2tpbmdGb3JVcGRhdGVzKSxcbiAgICB9KTtcbiAgfVxuXG4gIGlvblZpZXdXaWxsTGVhdmUoKSB7XG4gICAgdGhpcy5zdG9wTG9hZGVyU3luYygpO1xuICB9XG5cbiAgYXN5bmMgcGVyZm9ybUF1dG9tYXRpY1VwZGF0ZSgpIHtcbiAgICBjb25zdCBkZXZpY2VJbmZvID0gYXdhaXQgRGV2aWNlLmdldEluZm8oKTtcblxuICAgIGlmIChkZXZpY2VJbmZvPy5wbGF0Zm9ybSA9PT0gJ3dlYicpIHtcbiAgICAgIC8vIExvY2FsPyBTa2lwIHRoZSB1cGRhdGUgcGFnZS5cbiAgICAgIHRoaXMuY2xvc2VVcGRhdGVTY3JlZW4oKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMudXBkYXRlSW5mbygpO1xuXG4gICAgICAvLyBTdGFydCB1cGdyYWRlXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGF3YWl0IHRoaXMuZGVwbG95LmdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgICBpZiAoY3VycmVudFZlcnNpb24/LmJpbmFyeVZlcnNpb25OYW1lKSB7XG4gICAgICAgIGNvbnN0IGJpbmFyeUdyb3VwID0gY3VycmVudFZlcnNpb24uYmluYXJ5VmVyc2lvbk5hbWUuc3Vic3RyaW5nKDAsIDMpOyAvLyBlLmcuIFwiMS40XCJcbiAgICAgICAgY29uc3QgY2hhbm5lbEdyb3VwID0gY3VycmVudFZlcnNpb24uY2hhbm5lbC5zcGxpdCgnLScpWzFdLnN1YnN0cmluZygwLCAzKTsgLy8gZS5nLiBcIjEuNFwiXG4gICAgICAgIGNvbnN0IGNoYW5uZWxUeXBlID0gY3VycmVudFZlcnNpb24uY2hhbm5lbC5zcGxpdCgnLScpWzBdO1xuXG4gICAgICAgIGlmIChiaW5hcnlHcm91cCAhPSBjaGFubmVsR3JvdXApIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmRlcGxveS5jb25maWd1cmUoe1xuICAgICAgICAgICAgYXBwSWQ6IHRoaXMuc3B4QXBwSWQsXG4gICAgICAgICAgICBjaGFubmVsOiBgJHtjaGFubmVsVHlwZX0tJHtiaW5hcnlHcm91cH0ueGBcbiAgICAgICAgICB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3luYygpLnRoZW4oKCkgPT4geyB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnN5bmMoKS50aGVuKCgpID0+IHsgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3luYygpLnRoZW4oKCkgPT4geyB9KTtcbiAgICAgIH1cbiAgICAgIC8vIEVuZCB1cGdyYWRlXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICBjbG9zZVNjcmVlbjogdHJ1ZSxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIHBlcmNlbnRhZ2U6IDEwMCxcbiAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0VW5leHBlY3RlZEVycm9yKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzeW5jKCkge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnVwZGF0ZUluZm8oKTtcblxuICAgICAgY29uc3QgdXBkYXRlQXZhaWxhYmxlSW5mbyA9IGF3YWl0IHRoaXMuZGVwbG95LmNoZWNrRm9yVXBkYXRlKCk7XG4gICAgICBpZiAoIXVwZGF0ZUF2YWlsYWJsZUluZm8uYXZhaWxhYmxlKSB7XG4gICAgICAgIC8vIE5vIHVwZGF0ZSBhdmFpbGFibGVcbiAgICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICAgIGNsb3NlU2NyZWVuOiB0cnVlLFxuICAgICAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0Tm9VcGRhdGVzQXZhaWxhYmxlKSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEb3dubG9hZCB1cGRhdGVcbiAgICAgICAgYXdhaXQgdGhpcy5kZXBsb3kuc3luYyh7IHVwZGF0ZU1ldGhvZDogJ2F1dG8nIH0sIChwZXJjZW50YWdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICAgICAgcGVyY2VudGFnZTogcGVyY2VudGFnZSA/PyAwLFxuICAgICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0RG93bmxvYWRpbmdVcGRhdGUsIHsgcGVyY2VudGFnZSwgdmVyc2lvbjogdXBkYXRlQXZhaWxhYmxlSW5mby5idWlsZCB9KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VTdGF0dXMoe1xuICAgICAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IDEwMCxcbiAgICAgICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dEVycm9yV2hpbGVVcGRhdGluZ0FwcCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgICBjbG9zZVNjcmVlbjogdHJ1ZSxcbiAgICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgICAgdGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy50ZXh0RmluaXNoZWRVcGRhdGluZywgeyB2ZXJzaW9uOiB1cGRhdGVBdmFpbGFibGVJbmZvLmJ1aWxkIH0pXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIC8vIENhdGNoIHVuZXhwZWN0ZWQgcGx1Zy1pbiBlcnJvcnNcbiAgICAgIHRoaXMuY2hhbmdlU3RhdHVzKHtcbiAgICAgICAgY2xvc2VTY3JlZW46IHRydWUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBwZXJjZW50YWdlOiAxMDAsXG4gICAgICAgIHRleHQ6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMudGV4dFVuZXhwZWN0ZWRFcnJvcilcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlSW5mbygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IGF3YWl0IHRoaXMuZGVwbG95LmdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgY29uc3QgY29uZmlndXJhdGlvbiA9IGF3YWl0IHRoaXMuZGVwbG95LmdldENvbmZpZ3VyYXRpb24oKTtcbiAgICBjb25zdCB1cGRhdGVBdmFpbGFibGVJbmZvID0gYXdhaXQgdGhpcy5kZXBsb3kuY2hlY2tGb3JVcGRhdGUoKTtcblxuICAgIGlmIChjdXJyZW50VmVyc2lvbikge1xuICAgICAgdGhpcy5jdHJsVmVyc2lvbk51bWJlci5zZXRWYWx1ZSh7XG4gICAgICAgIHZhbHVlOiBjb25maWd1cmF0aW9uPy5jdXJyZW50QnVpbGRJZCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdHJsTmV4dFZlcnNpb25OdW1iZXIuc2V0VmFsdWUoe1xuICAgICAgICB2YWx1ZTogdXBkYXRlQXZhaWxhYmxlSW5mbz8uYnVpbGRcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdHJsQ29uZmlndXJlZENoYW5uZWwuc2V0VmFsdWUoe1xuICAgICAgICB2YWx1ZTogY29uZmlndXJhdGlvbiA/IGNvbmZpZ3VyYXRpb24uY2hhbm5lbCA6IG51bGxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5jdHJsQXBwU3RvcmVWZXJzaW9uLnNldFZhbHVlKHtcbiAgICAgICAgdmFsdWU6IGNvbmZpZ3VyYXRpb24gPyBjb25maWd1cmF0aW9uLmJpbmFyeVZlcnNpb25OYW1lIDogbnVsbFxuICAgICAgfSk7XG5cbiAgICAgIHtcbiAgICAgICAgY29uc3Qgc2NvcGUgPSBnZXRDdXJyZW50U2NvcGUoKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX2JpbmFyeV9jb2RlJywgY3VycmVudFZlcnNpb24/LmJpbmFyeVZlcnNpb25Db2RlKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX2JpbmFyeV9uYW1lJywgY3VycmVudFZlcnNpb24/LmJpbmFyeVZlcnNpb25OYW1lKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX2J1aWxkX2lkJywgY3VycmVudFZlcnNpb24/LmJ1aWxkSWQpO1xuICAgICAgICBzY29wZS5zZXRUYWcoJ2NoYW5uZWxfdHlwZScsIGN1cnJlbnRWZXJzaW9uPy5jaGFubmVsKTtcbiAgICAgICAgc2NvcGUuc2V0VGFnKCd2ZXJzaW9uX3NuYXBzaG90X2lkJywgY3VycmVudFZlcnNpb24/LnZlcnNpb25JZCk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblJlZi50aWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGFuZ2VTdGF0dXMoc3RhdHVzOiB7XG4gICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGNsb3NlU2NyZWVuPzogYm9vbGVhbjtcbiAgICBwZXJjZW50YWdlOiBudW1iZXI7XG4gIH0pIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXR1cyA9IHN0YXR1cy50ZXh0O1xuICAgIHRoaXMucGVyY2VudGFnZSA9IHN0YXR1cy5wZXJjZW50YWdlO1xuICAgIGlmIChzdGF0dXMuY2xvc2VTY3JlZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VVcGRhdGVTY3JlZW4oKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cy5lcnJvcikge1xuICAgICAgLy8gdGhpcy5hcHBTdG9yZS5kaXNwYXRjaChcbiAgICAgIC8vICAgc2hhcmVkVG9hc3RlckFjdGlvbnMuQ1JFQVRFX0VSUk9SKHtcbiAgICAgIC8vICAgICBtZXNzYWdlVGV4dDogc3RhdHVzLmVycm9yLFxuICAgICAgLy8gICB9KVxuICAgICAgLy8gKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLnRpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VVcGRhdGVTY3JlZW4oKSB7XG4gICAgLy8gQWxsb3dpbmcgc29tZSB0aW1lIHRvIG1ha2UgYSBzY3JlZW5zaG90IG9mIHZlcnNpb24gaW5mb1xuICAgIFNweFN0b3JhZ2UuY2xlYXJTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0udXBkYXRlSW5Qcm9ncmVzcyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIFNweFN0b3JhZ2UuZ2V0U2V0dGluZzxhbnk+KFNweFN0b3JhZ2VLZXlFbnVtLmFmdGVyU2lnbkluKSAmJlxuICAgICAgICB0aGlzLnNweElzU2lnbmVkSW5cbiAgICAgICkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbU3B4U3RvcmFnZS5nZXRTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0uYWZ0ZXJTaWduSW4pXSk7XG4gICAgICAgIFNweFN0b3JhZ2UuY2xlYXJTZXR0aW5nPGFueT4oU3B4U3RvcmFnZUtleUVudW0uYWZ0ZXJTaWduSW4pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5zcHhIb21lVXJsXSk7XG4gICAgICB9XG4gICAgfSwgMCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0TG9hZGVyU3luYygpIHtcbiAgICBTcHhTdG9yYWdlLnNldFNldHRpbmc8YW55PihTcHhTdG9yYWdlS2V5RW51bS51cGRhdGVJblByb2dyZXNzLCAnMScpO1xuICAgIGlmICh0aGlzLnN5bmNUcnVja0ludGVydmFsID09PSBudWxsKSB7XG4gICAgICB0aGlzLnN5bmNUcnVja0ludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICB0aGlzLmRlbGF5ZWRQZXJjZW50YWdlID0gdGhpcy5wZXJjZW50YWdlO1xuICAgICAgfSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0b3BMb2FkZXJTeW5jKCkge1xuICAgIGlmICh0aGlzLnN5bmNUcnVja0ludGVydmFsICE9PSBudWxsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuc3luY1RydWNrSW50ZXJ2YWwpO1xuICAgICAgdGhpcy5zeW5jVHJ1Y2tJbnRlcnZhbCA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NgClass } from '@angular/common';
|
|
1
|
+
import { NgIf, NgClass } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { Component, Input } from '@angular/core';
|
|
4
4
|
import * as i4 from '@angular/forms';
|
|
@@ -71,7 +71,7 @@ class SpxAppUpdateComponent {
|
|
|
71
71
|
const channelType = currentVersion.channel.split('-')[0];
|
|
72
72
|
if (binaryGroup != channelGroup) {
|
|
73
73
|
await this.deploy.configure({
|
|
74
|
-
appId:
|
|
74
|
+
appId: this.spxAppId,
|
|
75
75
|
channel: `${channelType}-${binaryGroup}.x`
|
|
76
76
|
}).then(() => {
|
|
77
77
|
this.sync().then(() => { });
|
|
@@ -214,7 +214,7 @@ class SpxAppUpdateComponent {
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxAppUpdateComponent, deps: [{ token: i1.Deploy }, { token: i2.Router }, { token: i0.ChangeDetectorRef }, { token: i0.ApplicationRef }, { token: i3.TranslateService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
217
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SpxAppUpdateComponent, isStandalone: true, selector: "spx-app-update", inputs: { spxHomeUrl: "spxHomeUrl", spxIsSignedIn: "spxIsSignedIn", textCheckingForUpdates: "textCheckingForUpdates", textDownloadingUpdate: "textDownloadingUpdate", textErrorWhileUpdatingApp: "textErrorWhileUpdatingApp", textFinishedUpdating: "textFinishedUpdating", textNoUpdatesAvailable: "textNoUpdatesAvailable", textUnexpectedError: "textUnexpectedError", txtAppStoreVersion: "txtAppStoreVersion", txtChannel: "txtChannel", txtNextVersion: "txtNextVersion", txtUpdate: "txtUpdate", txtVersion: "txtVersion" }, ngImport: i0, template: `<ion-header>
|
|
217
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", type: SpxAppUpdateComponent, isStandalone: true, selector: "spx-app-update", inputs: { spxHomeUrl: "spxHomeUrl", spxIsSignedIn: "spxIsSignedIn", textCheckingForUpdates: "textCheckingForUpdates", textDownloadingUpdate: "textDownloadingUpdate", textErrorWhileUpdatingApp: "textErrorWhileUpdatingApp", textFinishedUpdating: "textFinishedUpdating", textNoUpdatesAvailable: "textNoUpdatesAvailable", textUnexpectedError: "textUnexpectedError", txtAppStoreVersion: "txtAppStoreVersion", txtChannel: "txtChannel", txtNextVersion: "txtNextVersion", txtUpdate: "txtUpdate", txtVersion: "txtVersion", spxAppId: "spxAppId" }, ngImport: i0, template: `<ion-header>
|
|
218
218
|
<ion-toolbar>
|
|
219
219
|
<ion-title>
|
|
220
220
|
{{ txtUpdate | translate | capitalize }}
|
|
@@ -239,7 +239,7 @@ class SpxAppUpdateComponent {
|
|
|
239
239
|
</div>
|
|
240
240
|
</form>
|
|
241
241
|
</div>
|
|
242
|
-
</ion-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }, { kind: "component", type: SpxProgressBarComponent, selector: "spx-progress-bar", inputs: ["spxPercentage", "spxTitle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
242
|
+
</ion-content>`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpxCapitalizePipe, name: "capitalize" }, { kind: "component", type: SpxInputComponent, selector: "spx-input", inputs: ["spxLabel", "spxMax", "spxMin", "spxName", "spxReadonly", "spxAutofocus", "spxInputMode", "spxPattern", "spxRequired", "spxSelectMonth", "spxSelectDay", "spxShowEdit", "spxShowHelp", "spxShowLabel", "spxCompact", "spxShowClear", "spxShowSearch", "spxShowValidationMessages", "spxStep", "spxSuggestions", "spxType", "spxValidators", "value", "spxCapitalize", "spxFocused"], outputs: ["spxBlur", "spxClear", "spxChange", "spxFocus", "spxEdit", "spxHelp", "spxSearch"] }, { kind: "component", type: SpxProgressBarComponent, selector: "spx-progress-bar", inputs: ["spxPercentage", "spxTitle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
243
243
|
}
|
|
244
244
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: SpxAppUpdateComponent, decorators: [{
|
|
245
245
|
type: Component,
|
|
@@ -253,6 +253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
253
253
|
IonTitle,
|
|
254
254
|
IonToolbar,
|
|
255
255
|
NgClass,
|
|
256
|
+
NgIf,
|
|
256
257
|
ReactiveFormsModule,
|
|
257
258
|
SpxCapitalizePipe,
|
|
258
259
|
SpxInputComponent,
|
|
@@ -312,6 +313,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
312
313
|
type: Input
|
|
313
314
|
}], txtVersion: [{
|
|
314
315
|
type: Input
|
|
316
|
+
}], spxAppId: [{
|
|
317
|
+
type: Input
|
|
315
318
|
}] } });
|
|
316
319
|
|
|
317
320
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"softpak-components-spx-app-update.mjs","sources":["../../../../projects/softpak/components/spx-app-update/spx-app-update.component.ts","../../../../projects/softpak/components/spx-app-update/softpak-components-spx-app-update.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { ApplicationRef, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { IonContent, IonHeader, IonToolbar, IonTitle } from '@ionic/angular/standalone';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { SpxInputComponent } from '@softpak/components/spx-inputs';\nimport { SpxProgressBarComponent } from '@softpak/components/spx-progress-bar';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { Device } from '@capacitor/device';\nimport { Deploy } from 'cordova-plugin-ionic/dist/ngx';\nimport { getCurrentScope } from '@sentry/angular';\n\nconst ctrlNextVersionNumber = 'ctrlNextVersionNumber';\nconst ctrlVersionNumber = 'ctrlVersionNumber';\nconst ctrlConfiguredChannel = 'ctrlConfiguredChannel';\nconst ctrlAppStoreVersion = 'ctrlAppStoreVersion';\n\n@Component({\n selector: 'spx-app-update',\n standalone: true,\n imports: [\n FormsModule,\n IonContent,\n IonHeader,\n IonTitle,\n IonToolbar,\n NgClass,\n ReactiveFormsModule,\n SpxCapitalizePipe,\n SpxInputComponent,\n SpxProgressBarComponent,\n TranslateModule,\n ],\n template: `<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ txtUpdate | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-content--upd\" [fullscreen]=\"true\">\n <div class=\"ion-padding\">\n <spx-progress-bar [spxPercentage]=\"delayedPercentage\" [spxTitle]=\"updateStatus | capitalize\">\n </spx-progress-bar>\n <form [formGroup]=\"form\" class=\"mt-3\">\n <div *ngIf=\"ctrlAppStoreVersion.value && ctrlAppStoreVersion.value.value\" class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3\">\n <spx-input [formControl]=\"ctrlAppStoreVersion\" [spxLabel]=\"txtAppStoreVersion | translate | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n <spx-input [formControl]=\"ctrlConfiguredChannel\" [spxLabel]=\"txtChannel | translate | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n <spx-input [formControl]=\"ctrlVersionNumber\" [spxLabel]=\"txtVersion | translate | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n <spx-input *ngIf=\"ctrlNextVersionNumber.value && ctrlNextVersionNumber.value.value\" [formControl]=\"ctrlNextVersionNumber\" [spxLabel]=\"txtNextVersion | translate | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n </div>\n </form>\n </div>\n</ion-content>`,\n})\nexport class SpxAppUpdateComponent {\n @Input() spxHomeUrl!: string;\n @Input() spxIsSignedIn!: boolean;\n @Input() textCheckingForUpdates!: string;\n @Input() textDownloadingUpdate!: string;\n @Input() textErrorWhileUpdatingApp!: string;\n @Input() textFinishedUpdating!: string;\n @Input() textNoUpdatesAvailable!: string;\n @Input() textUnexpectedError!: string;\n @Input() txtAppStoreVersion!: string;\n @Input() txtChannel!: string;\n @Input() txtNextVersion!: string;\n @Input() txtUpdate!: string;\n @Input() txtVersion!: string;\n\n form: FormGroup;\n\n delayedPercentage: number = 0;\n percentage: number = 0;\n syncTruckInterval: any | null = null;\n updateStatus: string = this.textCheckingForUpdates;\n\n constructor(\n private readonly deploy: Deploy,\n private readonly router: Router,\n private readonly changeDetector: ChangeDetectorRef,\n private readonly applicationRef: ApplicationRef,\n private readonly translateService: TranslateService,\n private readonly formBuilder: FormBuilder,\n ) {\n this.form = this.formBuilder.group({\n [ctrlNextVersionNumber]: [null, []],\n [ctrlVersionNumber]: [null, []],\n [ctrlConfiguredChannel]: [null, []],\n [ctrlAppStoreVersion]: [null, []],\n });\n }\n\n get ctrlVersionNumber(): FormControl { return this.form.get(ctrlVersionNumber) as FormControl; }\n get ctrlNextVersionNumber(): FormControl { return this.form.get(ctrlNextVersionNumber) as FormControl; }\n get ctrlConfiguredChannel(): FormControl { return this.form.get(ctrlConfiguredChannel) as FormControl; }\n get ctrlAppStoreVersion(): FormControl { return this.form.get(ctrlAppStoreVersion) as FormControl; }\n\n ionViewWillEnter() {\n this.delayedPercentage = 0;\n this.percentage = 0;\n this.performAutomaticUpdate().then(() => { });\n this.startLoaderSync();\n this.changeStatus({\n percentage: 0,\n text: this.translateService.instant(this.textCheckingForUpdates),\n });\n }\n\n ionViewWillLeave() {\n this.stopLoaderSync();\n }\n\n async performAutomaticUpdate() {\n const deviceInfo = await Device.getInfo();\n\n if (deviceInfo?.platform === 'web') {\n // Local? Skip the update page.\n this.closeUpdateScreen();\n }\n try {\n this.updateInfo();\n\n // Start upgrade\n const currentVersion = await this.deploy.getCurrentVersion();\n if (currentVersion?.binaryVersionName) {\n const binaryGroup = currentVersion.binaryVersionName.substring(0, 3); // e.g. \"1.4\"\n const channelGroup = currentVersion.channel.split('-')[1].substring(0, 3); // e.g. \"1.4\"\n const channelType = currentVersion.channel.split('-')[0];\n\n if (binaryGroup != channelGroup) {\n await this.deploy.configure({\n appId: '18d6e5fb',\n channel: `${channelType}-${binaryGroup}.x`\n }).then(() => {\n this.sync().then(() => { });\n });\n } else {\n this.sync().then(() => { });\n }\n } else {\n this.sync().then(() => { });\n }\n // End upgrade\n } catch (error: any) {\n this.changeStatus({\n closeScreen: true,\n error,\n percentage: 100,\n text: this.translateService.instant(this.textUnexpectedError)\n });\n }\n }\n\n private async sync() {\n try {\n this.updateInfo();\n\n const updateAvailableInfo = await this.deploy.checkForUpdate();\n if (!updateAvailableInfo.available) {\n // No update available\n this.changeStatus({\n closeScreen: true,\n percentage: 0,\n text: this.translateService.instant(this.textNoUpdatesAvailable),\n });\n } else {\n // Download update\n await this.deploy.sync({ updateMethod: 'auto' }, (percentage) => {\n this.changeStatus({\n percentage: percentage ?? 0,\n text: this.translateService.instant(this.textDownloadingUpdate, { percentage, version: updateAvailableInfo.build }),\n });\n }).catch((error) => {\n this.changeStatus({\n closeScreen: true,\n error,\n percentage: 100,\n text: this.translateService.instant(this.textErrorWhileUpdatingApp),\n });\n });\n\n this.changeStatus({\n closeScreen: true,\n percentage: 100,\n text: this.translateService.instant(this.textFinishedUpdating, { version: updateAvailableInfo.build })\n });\n }\n } catch (error: any) {\n // Catch unexpected plug-in errors\n this.changeStatus({\n closeScreen: true,\n error,\n percentage: 100,\n text: this.translateService.instant(this.textUnexpectedError)\n });\n }\n }\n\n private async updateInfo(): Promise<void> {\n const currentVersion = await this.deploy.getCurrentVersion();\n const configuration = await this.deploy.getConfiguration();\n const updateAvailableInfo = await this.deploy.checkForUpdate();\n\n if (currentVersion) {\n this.ctrlVersionNumber.setValue({\n value: configuration?.currentBuildId,\n });\n this.ctrlNextVersionNumber.setValue({\n value: updateAvailableInfo?.build\n });\n this.ctrlConfiguredChannel.setValue({\n value: configuration ? configuration.channel : null\n });\n this.ctrlAppStoreVersion.setValue({\n value: configuration ? configuration.binaryVersionName : null\n });\n\n {\n const scope = getCurrentScope();\n scope.setTag('version_binary_code', currentVersion?.binaryVersionCode);\n scope.setTag('version_binary_name', currentVersion?.binaryVersionName);\n scope.setTag('version_build_id', currentVersion?.buildId);\n scope.setTag('channel_type', currentVersion?.channel);\n scope.setTag('version_snapshot_id', currentVersion?.versionId);\n };\n\n this.changeDetector.markForCheck();\n this.applicationRef.tick();\n }\n }\n\n private changeStatus(status: {\n error?: string;\n text: string;\n closeScreen?: boolean;\n percentage: number;\n }) {\n this.updateStatus = status.text;\n this.percentage = status.percentage;\n if (status.closeScreen) {\n this.closeUpdateScreen();\n }\n if (status.error) {\n // this.appStore.dispatch(\n // sharedToasterActions.CREATE_ERROR({\n // messageText: status.error,\n // })\n // );\n }\n this.changeDetector.markForCheck();\n this.applicationRef.tick();\n }\n\n private closeUpdateScreen() {\n // Allowing some time to make a screenshot of version info\n SpxStorage.clearSetting<any>(SpxStorageKeyEnum.updateInProgress);\n setTimeout(() => {\n if (\n SpxStorage.getSetting<any>(SpxStorageKeyEnum.afterSignIn) &&\n this.spxIsSignedIn\n ) {\n this.router.navigate([SpxStorage.getSetting<any>(SpxStorageKeyEnum.afterSignIn)]);\n SpxStorage.clearSetting<any>(SpxStorageKeyEnum.afterSignIn)\n } else {\n this.router.navigate([this.spxHomeUrl]);\n }\n }, 0);\n }\n\n private startLoaderSync() {\n SpxStorage.setSetting<any>(SpxStorageKeyEnum.updateInProgress, '1');\n if (this.syncTruckInterval === null) {\n this.syncTruckInterval = setInterval(() => {\n this.delayedPercentage = this.percentage;\n }, 200);\n }\n }\n\n private stopLoaderSync() {\n if (this.syncTruckInterval !== null) {\n clearInterval(this.syncTruckInterval);\n this.syncTruckInterval = null;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"softpak-components-spx-app-update.mjs","sources":["../../../../projects/softpak/components/spx-app-update/spx-app-update.component.ts","../../../../projects/softpak/components/spx-app-update/softpak-components-spx-app-update.ts"],"sourcesContent":["import { NgClass, NgIf } from '@angular/common';\nimport { ApplicationRef, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { IonContent, IonHeader, IonToolbar, IonTitle } from '@ionic/angular/standalone';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { SpxCapitalizePipe } from '@softpak/components/spx-capitalize';\nimport { SpxInputComponent } from '@softpak/components/spx-inputs';\nimport { SpxProgressBarComponent } from '@softpak/components/spx-progress-bar';\nimport { SpxStorage, SpxStorageKeyEnum } from '@softpak/components/spx-storage';\nimport { Device } from '@capacitor/device';\nimport { Deploy } from 'cordova-plugin-ionic/dist/ngx';\nimport { getCurrentScope } from '@sentry/angular';\n\nconst ctrlNextVersionNumber = 'ctrlNextVersionNumber';\nconst ctrlVersionNumber = 'ctrlVersionNumber';\nconst ctrlConfiguredChannel = 'ctrlConfiguredChannel';\nconst ctrlAppStoreVersion = 'ctrlAppStoreVersion';\n\n@Component({\n selector: 'spx-app-update',\n standalone: true,\n imports: [\n FormsModule,\n IonContent,\n IonHeader,\n IonTitle,\n IonToolbar,\n NgClass,\n NgIf,\n ReactiveFormsModule,\n SpxCapitalizePipe,\n SpxInputComponent,\n SpxProgressBarComponent,\n TranslateModule,\n ],\n template: `<ion-header>\n <ion-toolbar>\n <ion-title>\n {{ txtUpdate | translate | capitalize }}\n </ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-content--upd\" [fullscreen]=\"true\">\n <div class=\"ion-padding\">\n <spx-progress-bar [spxPercentage]=\"delayedPercentage\" [spxTitle]=\"updateStatus | capitalize\">\n </spx-progress-bar>\n <form [formGroup]=\"form\" class=\"mt-3\">\n <div *ngIf=\"ctrlAppStoreVersion.value && ctrlAppStoreVersion.value.value\" class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3\">\n <spx-input [formControl]=\"ctrlAppStoreVersion\" [spxLabel]=\"txtAppStoreVersion | translate | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n <spx-input [formControl]=\"ctrlConfiguredChannel\" [spxLabel]=\"txtChannel | translate | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n <spx-input [formControl]=\"ctrlVersionNumber\" [spxLabel]=\"txtVersion | translate | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n <spx-input *ngIf=\"ctrlNextVersionNumber.value && ctrlNextVersionNumber.value.value\" [formControl]=\"ctrlNextVersionNumber\" [spxLabel]=\"txtNextVersion | translate | capitalize\"\n [spxReadonly]=\"true\"></spx-input>\n </div>\n </form>\n </div>\n</ion-content>`,\n})\nexport class SpxAppUpdateComponent {\n @Input() spxHomeUrl!: string;\n @Input() spxIsSignedIn!: boolean;\n @Input() textCheckingForUpdates!: string;\n @Input() textDownloadingUpdate!: string;\n @Input() textErrorWhileUpdatingApp!: string;\n @Input() textFinishedUpdating!: string;\n @Input() textNoUpdatesAvailable!: string;\n @Input() textUnexpectedError!: string;\n @Input() txtAppStoreVersion!: string;\n @Input() txtChannel!: string;\n @Input() txtNextVersion!: string;\n @Input() txtUpdate!: string;\n @Input() txtVersion!: string;\n @Input() spxAppId!: string;\n\n form: FormGroup;\n\n delayedPercentage: number = 0;\n percentage: number = 0;\n syncTruckInterval: any | null = null;\n updateStatus: string = this.textCheckingForUpdates;\n\n constructor(\n private readonly deploy: Deploy,\n private readonly router: Router,\n private readonly changeDetector: ChangeDetectorRef,\n private readonly applicationRef: ApplicationRef,\n private readonly translateService: TranslateService,\n private readonly formBuilder: FormBuilder,\n ) {\n this.form = this.formBuilder.group({\n [ctrlNextVersionNumber]: [null, []],\n [ctrlVersionNumber]: [null, []],\n [ctrlConfiguredChannel]: [null, []],\n [ctrlAppStoreVersion]: [null, []],\n });\n }\n\n get ctrlVersionNumber(): FormControl { return this.form.get(ctrlVersionNumber) as FormControl; }\n get ctrlNextVersionNumber(): FormControl { return this.form.get(ctrlNextVersionNumber) as FormControl; }\n get ctrlConfiguredChannel(): FormControl { return this.form.get(ctrlConfiguredChannel) as FormControl; }\n get ctrlAppStoreVersion(): FormControl { return this.form.get(ctrlAppStoreVersion) as FormControl; }\n\n ionViewWillEnter() {\n this.delayedPercentage = 0;\n this.percentage = 0;\n this.performAutomaticUpdate().then(() => { });\n this.startLoaderSync();\n this.changeStatus({\n percentage: 0,\n text: this.translateService.instant(this.textCheckingForUpdates),\n });\n }\n\n ionViewWillLeave() {\n this.stopLoaderSync();\n }\n\n async performAutomaticUpdate() {\n const deviceInfo = await Device.getInfo();\n\n if (deviceInfo?.platform === 'web') {\n // Local? Skip the update page.\n this.closeUpdateScreen();\n }\n try {\n this.updateInfo();\n\n // Start upgrade\n const currentVersion = await this.deploy.getCurrentVersion();\n if (currentVersion?.binaryVersionName) {\n const binaryGroup = currentVersion.binaryVersionName.substring(0, 3); // e.g. \"1.4\"\n const channelGroup = currentVersion.channel.split('-')[1].substring(0, 3); // e.g. \"1.4\"\n const channelType = currentVersion.channel.split('-')[0];\n\n if (binaryGroup != channelGroup) {\n await this.deploy.configure({\n appId: this.spxAppId,\n channel: `${channelType}-${binaryGroup}.x`\n }).then(() => {\n this.sync().then(() => { });\n });\n } else {\n this.sync().then(() => { });\n }\n } else {\n this.sync().then(() => { });\n }\n // End upgrade\n } catch (error: any) {\n this.changeStatus({\n closeScreen: true,\n error,\n percentage: 100,\n text: this.translateService.instant(this.textUnexpectedError)\n });\n }\n }\n\n private async sync() {\n try {\n this.updateInfo();\n\n const updateAvailableInfo = await this.deploy.checkForUpdate();\n if (!updateAvailableInfo.available) {\n // No update available\n this.changeStatus({\n closeScreen: true,\n percentage: 0,\n text: this.translateService.instant(this.textNoUpdatesAvailable),\n });\n } else {\n // Download update\n await this.deploy.sync({ updateMethod: 'auto' }, (percentage) => {\n this.changeStatus({\n percentage: percentage ?? 0,\n text: this.translateService.instant(this.textDownloadingUpdate, { percentage, version: updateAvailableInfo.build }),\n });\n }).catch((error) => {\n this.changeStatus({\n closeScreen: true,\n error,\n percentage: 100,\n text: this.translateService.instant(this.textErrorWhileUpdatingApp),\n });\n });\n\n this.changeStatus({\n closeScreen: true,\n percentage: 100,\n text: this.translateService.instant(this.textFinishedUpdating, { version: updateAvailableInfo.build })\n });\n }\n } catch (error: any) {\n // Catch unexpected plug-in errors\n this.changeStatus({\n closeScreen: true,\n error,\n percentage: 100,\n text: this.translateService.instant(this.textUnexpectedError)\n });\n }\n }\n\n private async updateInfo(): Promise<void> {\n const currentVersion = await this.deploy.getCurrentVersion();\n const configuration = await this.deploy.getConfiguration();\n const updateAvailableInfo = await this.deploy.checkForUpdate();\n\n if (currentVersion) {\n this.ctrlVersionNumber.setValue({\n value: configuration?.currentBuildId,\n });\n this.ctrlNextVersionNumber.setValue({\n value: updateAvailableInfo?.build\n });\n this.ctrlConfiguredChannel.setValue({\n value: configuration ? configuration.channel : null\n });\n this.ctrlAppStoreVersion.setValue({\n value: configuration ? configuration.binaryVersionName : null\n });\n\n {\n const scope = getCurrentScope();\n scope.setTag('version_binary_code', currentVersion?.binaryVersionCode);\n scope.setTag('version_binary_name', currentVersion?.binaryVersionName);\n scope.setTag('version_build_id', currentVersion?.buildId);\n scope.setTag('channel_type', currentVersion?.channel);\n scope.setTag('version_snapshot_id', currentVersion?.versionId);\n };\n\n this.changeDetector.markForCheck();\n this.applicationRef.tick();\n }\n }\n\n private changeStatus(status: {\n error?: string;\n text: string;\n closeScreen?: boolean;\n percentage: number;\n }) {\n this.updateStatus = status.text;\n this.percentage = status.percentage;\n if (status.closeScreen) {\n this.closeUpdateScreen();\n }\n if (status.error) {\n // this.appStore.dispatch(\n // sharedToasterActions.CREATE_ERROR({\n // messageText: status.error,\n // })\n // );\n }\n this.changeDetector.markForCheck();\n this.applicationRef.tick();\n }\n\n private closeUpdateScreen() {\n // Allowing some time to make a screenshot of version info\n SpxStorage.clearSetting<any>(SpxStorageKeyEnum.updateInProgress);\n setTimeout(() => {\n if (\n SpxStorage.getSetting<any>(SpxStorageKeyEnum.afterSignIn) &&\n this.spxIsSignedIn\n ) {\n this.router.navigate([SpxStorage.getSetting<any>(SpxStorageKeyEnum.afterSignIn)]);\n SpxStorage.clearSetting<any>(SpxStorageKeyEnum.afterSignIn)\n } else {\n this.router.navigate([this.spxHomeUrl]);\n }\n }, 0);\n }\n\n private startLoaderSync() {\n SpxStorage.setSetting<any>(SpxStorageKeyEnum.updateInProgress, '1');\n if (this.syncTruckInterval === null) {\n this.syncTruckInterval = setInterval(() => {\n this.delayedPercentage = this.percentage;\n }, 200);\n }\n }\n\n private stopLoaderSync() {\n if (this.syncTruckInterval !== null) {\n clearInterval(this.syncTruckInterval);\n this.syncTruckInterval = null;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@softpak/components",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.6",
|
|
4
4
|
"private": false,
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "18.x.x",
|
|
@@ -58,18 +58,18 @@
|
|
|
58
58
|
"esm": "./esm2022/spx-button/softpak-components-spx-button.mjs",
|
|
59
59
|
"default": "./fesm2022/softpak-components-spx-button.mjs"
|
|
60
60
|
},
|
|
61
|
-
"./spx-change-details": {
|
|
62
|
-
"types": "./spx-change-details/index.d.ts",
|
|
63
|
-
"esm2022": "./esm2022/spx-change-details/softpak-components-spx-change-details.mjs",
|
|
64
|
-
"esm": "./esm2022/spx-change-details/softpak-components-spx-change-details.mjs",
|
|
65
|
-
"default": "./fesm2022/softpak-components-spx-change-details.mjs"
|
|
66
|
-
},
|
|
67
61
|
"./spx-capitalize": {
|
|
68
62
|
"types": "./spx-capitalize/index.d.ts",
|
|
69
63
|
"esm2022": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
|
|
70
64
|
"esm": "./esm2022/spx-capitalize/softpak-components-spx-capitalize.mjs",
|
|
71
65
|
"default": "./fesm2022/softpak-components-spx-capitalize.mjs"
|
|
72
66
|
},
|
|
67
|
+
"./spx-change-details": {
|
|
68
|
+
"types": "./spx-change-details/index.d.ts",
|
|
69
|
+
"esm2022": "./esm2022/spx-change-details/softpak-components-spx-change-details.mjs",
|
|
70
|
+
"esm": "./esm2022/spx-change-details/softpak-components-spx-change-details.mjs",
|
|
71
|
+
"default": "./fesm2022/softpak-components-spx-change-details.mjs"
|
|
72
|
+
},
|
|
73
73
|
"./spx-channel-selection": {
|
|
74
74
|
"types": "./spx-channel-selection/index.d.ts",
|
|
75
75
|
"esm2022": "./esm2022/spx-channel-selection/softpak-components-spx-channel-selection.mjs",
|
|
@@ -24,6 +24,7 @@ export declare class SpxAppUpdateComponent {
|
|
|
24
24
|
txtNextVersion: string;
|
|
25
25
|
txtUpdate: string;
|
|
26
26
|
txtVersion: string;
|
|
27
|
+
spxAppId: string;
|
|
27
28
|
form: FormGroup;
|
|
28
29
|
delayedPercentage: number;
|
|
29
30
|
percentage: number;
|
|
@@ -44,5 +45,5 @@ export declare class SpxAppUpdateComponent {
|
|
|
44
45
|
private startLoaderSync;
|
|
45
46
|
private stopLoaderSync;
|
|
46
47
|
static ɵfac: i0.ɵɵFactoryDeclaration<SpxAppUpdateComponent, never>;
|
|
47
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SpxAppUpdateComponent, "spx-app-update", never, { "spxHomeUrl": { "alias": "spxHomeUrl"; "required": false; }; "spxIsSignedIn": { "alias": "spxIsSignedIn"; "required": false; }; "textCheckingForUpdates": { "alias": "textCheckingForUpdates"; "required": false; }; "textDownloadingUpdate": { "alias": "textDownloadingUpdate"; "required": false; }; "textErrorWhileUpdatingApp": { "alias": "textErrorWhileUpdatingApp"; "required": false; }; "textFinishedUpdating": { "alias": "textFinishedUpdating"; "required": false; }; "textNoUpdatesAvailable": { "alias": "textNoUpdatesAvailable"; "required": false; }; "textUnexpectedError": { "alias": "textUnexpectedError"; "required": false; }; "txtAppStoreVersion": { "alias": "txtAppStoreVersion"; "required": false; }; "txtChannel": { "alias": "txtChannel"; "required": false; }; "txtNextVersion": { "alias": "txtNextVersion"; "required": false; }; "txtUpdate": { "alias": "txtUpdate"; "required": false; }; "txtVersion": { "alias": "txtVersion"; "required": false; }; }, {}, never, never, true, never>;
|
|
48
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SpxAppUpdateComponent, "spx-app-update", never, { "spxHomeUrl": { "alias": "spxHomeUrl"; "required": false; }; "spxIsSignedIn": { "alias": "spxIsSignedIn"; "required": false; }; "textCheckingForUpdates": { "alias": "textCheckingForUpdates"; "required": false; }; "textDownloadingUpdate": { "alias": "textDownloadingUpdate"; "required": false; }; "textErrorWhileUpdatingApp": { "alias": "textErrorWhileUpdatingApp"; "required": false; }; "textFinishedUpdating": { "alias": "textFinishedUpdating"; "required": false; }; "textNoUpdatesAvailable": { "alias": "textNoUpdatesAvailable"; "required": false; }; "textUnexpectedError": { "alias": "textUnexpectedError"; "required": false; }; "txtAppStoreVersion": { "alias": "txtAppStoreVersion"; "required": false; }; "txtChannel": { "alias": "txtChannel"; "required": false; }; "txtNextVersion": { "alias": "txtNextVersion"; "required": false; }; "txtUpdate": { "alias": "txtUpdate"; "required": false; }; "txtVersion": { "alias": "txtVersion"; "required": false; }; "spxAppId": { "alias": "spxAppId"; "required": false; }; }, {}, never, never, true, never>;
|
|
48
49
|
}
|