@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
1 lines • 19.5 kB
Source Map (JSON)
{"version":3,"file":"c8y-ngx-components-ecosystem-license-confirm.mjs","sources":["../../ecosystem/license-confirm/license-view.component.ts","../../ecosystem/license-confirm/license-view.component.html","../../ecosystem/license-confirm/license-confirm-modal.component.ts","../../ecosystem/license-confirm/license-confirm-modal.component.html","../../ecosystem/license-confirm/license-confirm.module.ts","../../ecosystem/license-confirm/c8y-ngx-components-ecosystem-license-confirm.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { FetchClient } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { IconDirective, C8yTranslateDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'c8y-license-view',\n templateUrl: './license-view.component.html',\n imports: [NgIf, IconDirective, C8yTranslateDirective, C8yTranslatePipe]\n})\nexport class LicenseViewComponent implements OnInit {\n @Input()\n url: string;\n @Input()\n name: string;\n content: string = gettext('Loading license content…');\n\n FALL_BACK_URL = 'https://spdx.org/licenses/';\n\n constructor(private fetchClient: FetchClient) {}\n\n async ngOnInit() {\n const response = await this.fetchClient.fetch(this.url);\n if (response.status === 200) {\n this.content = await response.text();\n return;\n }\n this.content = '';\n }\n}\n","<ng-container *ngIf=\"content\">\n <a [href]=\"url\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"small pull-right\">\n <i c8yIcon=\"external-link\" class=\"m-r-4\"></i>\n <span translate>Open in new window</span>\n </a>\n <textarea\n [attr.aria-label]=\"'License' | translate\"\n class=\"form-control bg-level-1 text-monospace small m-b-16\"\n readonly\n style=\"height: 170px\"\n [textContent]=\"content\"\n ></textarea>\n</ng-container>\n\n<div class=\"alert alert-warning\" role=\"alert\" *ngIf=\"!content && name\">\n <strong translate>No license attached</strong>\n <p translate>\n The author of the package hasn't included a license file in a format that can be displayed.\n Verify the license online, for example, with a website like:\n </p>\n <a [href]=\"FALL_BACK_URL + name\" target=\"_blank\" rel=\"noopener noreferrer\">\n {{ FALL_BACK_URL }}{{ name }}\n </a>\n</div>\n\n<div class=\"alert alert-danger\" role=\"alert\" *ngIf=\"!content && !name\">\n <strong translate>No license found</strong>\n <p translate>\n There is no license attached to this package. You can continue installing it at your own risk.\n </p>\n</div>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n Validators,\n FormsModule,\n ReactiveFormsModule\n} from '@angular/forms';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n C8yStepper,\n OptionsService,\n WizardComponent,\n WizardHeaderComponent,\n IconDirective,\n C8yTranslateDirective,\n WizardBodyComponent,\n FormGroupComponent,\n RequiredInputPlaceholderDirective,\n MessagesComponent,\n MessageDirective,\n WizardFooterComponent,\n C8yStepperButtons,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { uniqBy } from 'lodash-es';\nimport { LicensedApplicationPlugin } from '@c8y/ngx-components/ecosystem/shared';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { CdkStep } from '@angular/cdk/stepper';\nimport { NgIf, NgFor } from '@angular/common';\nimport { LicenseViewComponent } from './license-view.component';\n\ninterface ConfirmInstallModal {\n pluginsToInstall: LicensedApplicationPlugin[];\n}\n\ninterface License {\n licenseName: string;\n url: string;\n appName: string;\n}\n\n@Component({\n selector: 'c8y-license-confirm-modal',\n templateUrl: './license-confirm-modal.component.html',\n imports: [\n WizardHeaderComponent,\n IconDirective,\n C8yTranslateDirective,\n WizardBodyComponent,\n C8yStepper,\n CdkStep,\n FormGroupComponent,\n FormsModule,\n ReactiveFormsModule,\n RequiredInputPlaceholderDirective,\n MessagesComponent,\n MessageDirective,\n NgIf,\n WizardFooterComponent,\n C8yStepperButtons,\n NgFor,\n LicenseViewComponent,\n C8yTranslatePipe\n ]\n})\nexport class LicenseConfirmModalComponent implements OnInit {\n formGroupAccept: FormGroup;\n formGroupLicenses: FormGroup;\n @ViewChild(C8yStepper, { static: true })\n stepper: C8yStepper;\n licenses: License[] = [];\n disclaimerHtml: string;\n\n constructor(\n private wizardComponent: WizardComponent<ConfirmInstallModal>,\n private fb: FormBuilder,\n private optionsService: OptionsService,\n private translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n const { pluginsToInstall } = this.wizardComponent.componentInitialState;\n\n this.formGroupAccept = this.fb.group({\n confirmed: [false, Validators.required]\n });\n\n this.formGroupLicenses = this.fb.group({\n acceptAll: [false, Validators.required]\n });\n\n const allLicenses: License[] = pluginsToInstall.map(app => ({\n appName: app.name,\n url: `/apps/${app.contextPath}@${app.version}/LICENSE.txt`,\n licenseName: app.license\n }));\n\n const uniqByUrl = (uniqBy(allLicenses, 'url') as License[]).map(license => ({\n ...license,\n pluginName: allLicenses\n .filter(({ url }) => url === license.url)\n .map(({ appName: pluginName }) => pluginName)\n .join(', ')\n }));\n\n const companyName = this.optionsService.get('companyName', 'Cumulocity');\n const disclaimerHtmlWithCompany = gettext(\n 'These plugins and/or blueprints are provided <strong>as-is and without warranty or support</strong>, and they do not constitute part of the {{ companyName }} product suite. Users are free to use subject to the license agreement.'\n );\n const disclaimerHtmlWithoutCompany = gettext(\n 'These plugins and/or blueprints are provided <strong>as-is and without warranty or support</strong>, and they do not constitute part of the product suite. Users are free to use subject to the license agreement.'\n );\n\n this.disclaimerHtml = this.translateService.instant(\n companyName ? disclaimerHtmlWithCompany : disclaimerHtmlWithoutCompany,\n {\n companyName\n }\n );\n\n this.licenses = uniqByUrl;\n }\n\n cancel() {\n this.wizardComponent.close(false);\n }\n\n done() {\n this.wizardComponent.close(true);\n }\n}\n","<c8y-wizard-header>\n <i c8yIcon=\"privacy-policy\"></i>\n <div\n class=\"modal-title h4\"\n id=\"modal-title\"\n translate\n >\n Accept license(s)`dialog title`\n </div>\n</c8y-wizard-header>\n<c8y-wizard-body>\n <div class=\"m-t-16 m-l-32 m-r-32\">\n <c8y-stepper>\n <cdk-step\n [stepControl]=\"formGroupAccept\"\n [label]=\"'Disclaimer' | translate\"\n >\n <div class=\"m-t-8\">\n <div class=\"text-center m-b-16 h4\">\n <i\n class=\"text-info d-block icon-40 m-b-8\"\n c8yIcon=\"info-circle\"\n ></i>\n {{ 'About community packages' | translate }}\n </div>\n <p\n class=\"m-b-16\"\n [innerHTML]=\"disclaimerHtml\"\n ></p>\n <hr style=\"margin: 16px -24px 16px\" />\n <div class=\"text-center\">\n <c8y-form-group class=\"d-inline-block\">\n <div\n class=\"d-flex d-col a-i-center\"\n [formGroup]=\"formGroupAccept\"\n >\n <label class=\"c8y-checkbox\">\n <input\n class=\"form-control\"\n type=\"checkbox\"\n required\n formControlName=\"confirmed\"\n />\n <span></span>\n <span translate>Understood and agreed.</span>\n </label>\n <c8y-messages class=\"d-inline-block\">\n <c8y-message\n [name]=\"'required'\"\n [text]=\"'Accept the maintenance disclaimer.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </div>\n </c8y-form-group>\n </div>\n </div>\n\n <c8y-wizard-footer *ngIf=\"stepper.selectedIndex === 0\">\n <c8y-stepper-buttons\n [title]=\"'Confirm agreement' | translate\"\n [showButtons]=\"{ next: true, cancel: true, back: false, custom: false }\"\n (onCancel)=\"cancel()\"\n ></c8y-stepper-buttons>\n </c8y-wizard-footer>\n </cdk-step>\n <cdk-step\n state=\"final\"\n [stepControl]=\"formGroupLicenses\"\n [label]=\"'Licenses' | translate\"\n >\n <div\n class=\"p-t-24\"\n *ngFor=\"let license of licenses\"\n >\n <label\n class=\"text-normal\"\n *ngIf=\"license.licenseName\"\n translate\n [translateParams]=\"{ appName: license.appName, licenseName: license.licenseName }\"\n ngNonBindable\n >\n <b>{{ appName }}</b>\n uses\n <b>{{ licenseName }}</b>\n license\n </label>\n <label\n class=\"text-normal\"\n *ngIf=\"!license.licenseName\"\n translate\n [translateParams]=\"{ appName: license.appName, licenseName: license.licenseName }\"\n ngNonBindable\n >\n <b>{{ appName }}</b>\n uses\n <b>no license</b>\n </label>\n <c8y-license-view\n [url]=\"license.url\"\n [name]=\"license.licenseName\"\n ></c8y-license-view>\n </div>\n <c8y-wizard-footer *ngIf=\"stepper.selectedIndex === 1\">\n <c8y-form-group class=\"text-center d-inline-block\">\n <div\n class=\"d-flex d-col a-i-center\"\n [formGroup]=\"formGroupLicenses\"\n >\n <label class=\"c8y-checkbox\">\n <input\n class=\"form-control\"\n type=\"checkbox\"\n required\n formControlName=\"acceptAll\"\n />\n <span></span>\n <span\n *ngIf=\"licenses.length === 1\"\n translate\n >\n Accept license.`formal agreement`\n </span>\n <span\n *ngIf=\"licenses.length > 1\"\n translate\n >\n Accept all licenses.`formal agreement`\n </span>\n </label>\n <c8y-messages class=\"d-inline-block\">\n <c8y-message\n [name]=\"'required'\"\n [text]=\"'You need to accept the license agreement(s)' | translate\"\n ></c8y-message>\n </c8y-messages>\n </div>\n </c8y-form-group>\n <hr style=\"margin: 0 -24px 16px\" />\n <c8y-stepper-buttons\n [showButtons]=\"{ next: true, cancel: true, back: false, custom: false }\"\n (onCancel)=\"cancel()\"\n (onNext)=\"done()\"\n ></c8y-stepper-buttons>\n </c8y-wizard-footer>\n </cdk-step>\n </c8y-stepper>\n </div>\n</c8y-wizard-body>\n","import { NgModule } from '@angular/core';\nimport { LicenseConfirmModalComponent } from './license-confirm-modal.component';\nimport { LicenseViewComponent } from './license-view.component';\nimport { CoreModule, FormsModule, hookWizard } from '@c8y/ngx-components';\nimport { EcosystemWizards, SharedEcosystemModule } from '@c8y/ngx-components/ecosystem/shared';\n\n@NgModule({\n imports: [\n CoreModule,\n FormsModule,\n SharedEcosystemModule,\n LicenseConfirmModalComponent,\n LicenseViewComponent\n ],\n exports: [LicenseConfirmModalComponent, LicenseViewComponent],\n providers: [\n hookWizard({\n wizardId: EcosystemWizards.LICENSE_CONFIRM,\n component: LicenseConfirmModalComponent,\n name: undefined\n })\n ]\n})\nexport class LicenseConfirmModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","FormsModule"],"mappings":";;;;;;;;;;;;;;MAWa,oBAAoB,CAAA;AAS/B,IAAA,WAAA,CAAoB,WAAwB,EAAA;QAAxB,IAAA,CAAA,WAAW,GAAX,WAAW;AAJ/B,QAAA,IAAA,CAAA,OAAO,GAAW,OAAO,CAAC,0BAA0B,CAAC;QAErD,IAAA,CAAA,aAAa,GAAG,4BAA4B;IAEG;AAE/C,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AACvD,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;YACpC;QACF;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;IACnB;+GAlBW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXjC,yqCA+BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDtBY,IAAI,6FAAE,aAAa,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,qBAAqB,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE3D,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,kBAAkB,EAAA,OAAA,EAEnB,CAAC,IAAI,EAAE,aAAa,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,yqCAAA,EAAA;;sBAGtE;;sBAEA;;;MEqDU,4BAA4B,CAAA;AAQvC,IAAA,WAAA,CACU,eAAqD,EACrD,EAAe,EACf,cAA8B,EAC9B,gBAAkC,EAAA;QAHlC,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAP1B,IAAA,CAAA,QAAQ,GAAc,EAAE;IAQrB;IAEH,QAAQ,GAAA;QACN,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB;QAEvE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AACnC,YAAA,SAAS,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ;AACvC,SAAA,CAAC;QAEF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;AACrC,YAAA,SAAS,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ;AACvC,SAAA,CAAC;QAEF,MAAM,WAAW,GAAc,gBAAgB,CAAC,GAAG,CAAC,GAAG,KAAK;YAC1D,OAAO,EAAE,GAAG,CAAC,IAAI;YACjB,GAAG,EAAE,SAAS,GAAG,CAAC,WAAW,CAAA,CAAA,EAAI,GAAG,CAAC,OAAO,CAAA,YAAA,CAAc;YAC1D,WAAW,EAAE,GAAG,CAAC;AAClB,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,SAAS,GAAI,MAAM,CAAC,WAAW,EAAE,KAAK,CAAe,CAAC,GAAG,CAAC,OAAO,KAAK;AAC1E,YAAA,GAAG,OAAO;AACV,YAAA,UAAU,EAAE;AACT,iBAAA,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,KAAK,OAAO,CAAC,GAAG;iBACvC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU;iBAC3C,IAAI,CAAC,IAAI;AACb,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;AACxE,QAAA,MAAM,yBAAyB,GAAG,OAAO,CACvC,sOAAsO,CACvO;AACD,QAAA,MAAM,4BAA4B,GAAG,OAAO,CAC1C,oNAAoN,CACrN;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CACjD,WAAW,GAAG,yBAAyB,GAAG,4BAA4B,EACtE;YACE;AACD,SAAA,CACF;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;IAC3B;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC;IACnC;IAEA,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC;IAClC;+GAhEW,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,8HAG5B,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtEvB,k5JAoJA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDrGI,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,aAAa,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACb,qBAAqB,wEACrB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,OAAO,kPACP,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qIAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,iCAAiC,oFACjC,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,gBAAgB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACJ,qBAAqB,8DACrB,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,KAAK,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACL,oBAAoB,iFACpB,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAxBxC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAAA,OAAA,EAE5B;wBACP,qBAAqB;wBACrB,aAAa;wBACb,qBAAqB;wBACrB,mBAAmB;wBACnB,UAAU;wBACV,OAAO;wBACP,kBAAkB;wBAClB,WAAW;wBACX,mBAAmB;wBACnB,iCAAiC;wBACjC,iBAAiB;wBACjB,gBAAgB;wBAChB,IAAI;wBACJ,qBAAqB;wBACrB,iBAAiB;wBACjB,KAAK;wBACL,oBAAoB;wBACpB;AACD,qBAAA,EAAA,QAAA,EAAA,k5JAAA,EAAA;;sBAKA,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ME/C5B,oBAAoB,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAf7B,UAAU;YACVC,aAAW;YACX,qBAAqB;YACrB,4BAA4B;YAC5B,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAEZ,4BAA4B,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA;AASjD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,SAAA,EARpB;AACT,YAAA,UAAU,CAAC;gBACT,QAAQ,EAAE,gBAAgB,CAAC,eAAe;AAC1C,gBAAA,SAAS,EAAE,4BAA4B;AACvC,gBAAA,IAAI,EAAE;aACP;AACF,SAAA,EAAA,OAAA,EAAA,CAbC,UAAU;YACVA,aAAW;YACX,qBAAqB;YACrB,4BAA4B,CAAA,EAAA,CAAA,CAAA;;4FAYnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,UAAU;wBACVA,aAAW;wBACX,qBAAqB;wBACrB,4BAA4B;wBAC5B;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE,CAAC,4BAA4B,EAAE,oBAAoB,CAAC;AAC7D,oBAAA,SAAS,EAAE;AACT,wBAAA,UAAU,CAAC;4BACT,QAAQ,EAAE,gBAAgB,CAAC,eAAe;AAC1C,4BAAA,SAAS,EAAE,4BAA4B;AACvC,4BAAA,IAAI,EAAE;yBACP;AACF;AACF,iBAAA;;;ACtBD;;AAEG;;;;"}