@c8y/ngx-components 1011.0.22 → 1011.0.23
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/bundles/c8y-ngx-components-repository.umd.js +2 -1
- package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-search.umd.js +7 -4
- package/bundles/c8y-ngx-components-search.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-search.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-search.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js +2 -2
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js.map +1 -1
- package/esm2015/repository/configuration/configuration-detail.component.js +7 -2
- package/esm2015/search/search-grid.component.js +2 -2
- package/esm2015/search/search.service.js +6 -4
- package/esm2015/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/fesm2015/c8y-ngx-components-repository.js +6 -1
- package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
- package/fesm2015/c8y-ngx-components-search.js +6 -4
- package/fesm2015/c8y-ngx-components-search.js.map +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/locales/locales.pot +13 -6
- package/package.json +2 -2
- package/repository/c8y-ngx-components-repository.metadata.json +1 -1
- package/repository/configuration/configuration-detail.component.d.ts +1 -0
- package/search/c8y-ngx-components-search.metadata.json +1 -1
- package/search/search.service.d.ts +3 -1
- package/sensor-phone/c8y-ngx-components-sensor-phone.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","../../sensor-phone/sensor-phone.service.ts","../../sensor-phone/sensor-phone-modal.component.ts","../../sensor-phone/connect-smartphone.factory.ts","../../sensor-phone/sensor-phone.module.ts","../../sensor-phone/real-time-mock.service.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","SensorPhoneService","bsModalService","ui","inventoryService","deviceRegistrationService","_this","HTTP_STATUS_CODE","OK","CREATED","PHONE_GROUP_FRAGMENT","PHONE_GROUP_NAME","gettext","currentTenant","subscribe","data","domainName","tenantId","name","prototype","createModal","show","SensorPhoneModalComponent","backdrop","class","getHost","substring","indexOf","getTenantName","split","getTenantId","checkPhoneGroupExists","list","fragmentType","_a","_b","res","status","head","addPhoneGroup","group","createPhoneGroup","c8y_Global","c8y_IsDeviceGroup","type","newPhoneGroup","create","_c","generateRegistrationData","deviceId","createPhoneRegistrationRequest","device","id","groupId","acceptPhoneReqistrationRequest","accept","Injectable","BsModalService","AppStateService","InventoryService","DeviceRegistrationService","bsModalRef","sensorPhoneService","renderer","router","pendingDeviceBootstrap","errorMessage","registrationData","dashboardLink","ngAfterViewInit","stepper","selectionChange","pipe","throttleTime","onStepperSelectionChange","instance","selectedIndex","registerPhone","generateDeviceId","waitForPhoneToConnect","waitForDeviceAndDashboardMos","deviceMo","dashboardMo","onDeviceAndDashboardMosCreated","onFailure","defer","detail","map","tap","phoneRegistration","DeviceRegistrationStatus","WAITING_FOR_CONNECTION","Error","retryWithDelay","toPromise","owner","mos","find","mo","c8y_IsDevice","c8y_Dashboard","container","setStyle","nativeElement","success","Math","floor","random","openDashboard","navigate","cancel","hide","deleteDeviceRequest","retry","undefined","delete","Component","args","selector","template","BsModalRef","Renderer2","Router","ViewChild","C8yStepper","static","read","ElementRef","ConnectSmartphoneFactory","optionsService","get","of","icon","url","click","OptionsService","NgModule","imports","CoreModule","QRCodeModule","declarations","entryComponents","providers","provide","HOOK_DOCS","useClass","multi","RealTimeMock","channel","callback","bootstrapCallback","managedObjCallback","unsubscribe","triggerBootstrap","triggerManagedObject"],"mappings":";;;;;;;;;;;;;;6FAmEgBA,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,oBAItDO,EAAYjB,EAASkB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOC,OAAUX,EACvJ,SAASM,EAAKM,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIjB,EAAG,MAAM,IAAIkB,UAAU,mCAC3B,KAAOd,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARe,EAAG,GAAShB,EAAU,OAAIgB,EAAG,GAAKhB,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEiB,KAAKlB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEiB,KAAKlB,EAAGgB,EAAG,KAAKtB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGe,EAAK,CAAS,EAARA,EAAG,GAAQf,EAAEb,QACzB4B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGf,EAAIe,EAAI,MACxB,KAAK,EAAc,OAAXb,EAAEC,QAAgB,CAAEhB,MAAO4B,EAAG,GAAItB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIgB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKb,EAAEI,IAAIY,MAAOhB,EAAEG,KAAKa,MAAO,SACxC,QACI,KAAMlB,EAAIE,EAAEG,MAAML,EAAIA,EAAEmB,OAAS,GAAKnB,EAAEA,EAAEmB,OAAS,KAAkB,IAAVJ,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEb,EAAI,EAAG,SACjG,GAAc,IAAVa,EAAG,MAAcf,GAAMe,EAAG,GAAKf,EAAE,IAAMe,EAAG,GAAKf,EAAE,IAAM,CAAEE,EAAEC,MAAQY,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYb,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIe,EAAI,MAC7D,GAAIf,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIc,KAAKL,GAAK,MACvDf,EAAE,IAAIE,EAAEI,IAAIY,MAChBhB,EAAEG,KAAKa,MAAO,SAEtBH,EAAKlB,EAAKoB,KAAKtC,EAASuB,GAC1B,MAAOZ,GAAKyB,EAAK,CAAC,EAAGzB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARe,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE5B,MAAO4B,EAAG,GAAKA,EAAG,QAAK,EAAQtB,MAAM,GArB9BL,CAAK,CAACyB,EAAGC,uBC7D3D,SAAAO,EACUC,EACAC,EACAC,EACAC,GAJV,IAAAC,EAAAd,KACUA,KAAAU,eAAAA,EACAV,KAAAW,GAAAA,EACAX,KAAAY,iBAAAA,EACAZ,KAAAa,0BAAAA,EAbDb,KAAAe,iBAAmB,CAC1BC,GAAI,IACJC,QAAS,KAIHjB,KAAAkB,qBAAuB,yBACdlB,KAAAmB,iBAAmBC,EAAAA,QAAQ,UAQ1CpB,KAAKW,GAAGU,cAAcC,WAAU,SAAAC,GAC1BA,IACFT,EAAKU,WAAaD,EAAKC,WACvBV,EAAKW,SAAWF,EAAKG,gBAK3BjB,EAAAkB,UAAAC,YAAA,WACE5B,KAAKU,eAAemB,KAAKC,EAA2B,CAClDC,SAAU,SACVC,MAAO,QAIXvB,EAAAkB,UAAAM,QAAA,WACE,OAAOjC,KAAKwB,WAAWU,UAAUlC,KAAKwB,WAAWW,QAAQ,KAAO,IAGlE1B,EAAAkB,UAAAS,cAAA,WACE,OAAOpC,KAAKwB,WAAWa,MAAM,KAAK,IAGpC5B,EAAAkB,UAAAW,YAAA,WACE,OAAOtC,KAAKyB,UAGRhB,EAAAkB,UAAAY,sBAAA,+GACkB,MAAA,CAAA,EAAMvC,KAAKY,iBAAiB4B,KAAK,CACrDC,aAAczC,KAAKkB,+BAErB,OAHMwB,EAAgBC,EAAAnD,OAAd+B,EAAImB,EAAAnB,KAAEqB,EAAGF,EAAAE,IAGbrB,GAAQqB,GAAOA,EAAIC,SAAW7C,KAAKe,iBAAiBC,GACtD,CAAA,EAAO8B,EAAAA,KAAKvB,IAEd,CAAA,EAAO,cAGHd,EAAAkB,UAAAoB,cAAA,2GACU,MAAA,CAAA,EAAM/C,KAAKuC,gCACzB,OADMS,EAAQN,EAAAlD,QAEZ,CAAA,EAAOwD,GAEF,CAAA,EAAMhD,KAAKiD,2BAAlB,MAAA,CAAA,EAAOP,EAAAlD,gBAGHiB,EAAAkB,UAAAsB,iBAAA,mHASkB,OARHN,EAAA,CACjBO,WAAY,GACZC,kBAAmB,GACnBC,KAAM,kBACN1B,KAAM1B,KAAKmB,mBACVnB,KAAKkB,sBAAuB,GALzBmC,IAQgB,CAAA,EAAMrD,KAAKY,iBAAiB0C,OAAOD,WACzD,OADMX,EAAgBa,EAAA/D,OAAd+B,EAAImB,EAAAnB,KAAEqB,EAAGF,EAAAE,IACbrB,GAAQqB,GAAOA,EAAIC,SAAW7C,KAAKe,iBAAiBE,QACtD,CAAA,EAAOM,GAET,CAAA,EAAO,cAGTd,EAAAkB,UAAA6B,yBAAA,SAAyBC,GAEvB,MADY,SAAWzD,KAAKoC,gBAAkB,IAAMpC,KAAKiC,UAAY,cAAgBwB,GAIjFhD,EAAAkB,UAAA+B,+BAAA,SAA+BD,uGACrB,MAAA,CAAA,EAAMzD,KAAK+C,wBAGT,OAHVC,EAAQN,EAAAlD,OACRmE,EAAS,CAAEC,GAAIH,EAAUI,QAASb,EAAMY,IAE9B,CAAA,EAAM5D,KAAKa,0BAA0ByC,OAAOK,WAC5D,IADQf,EAAQF,EAAAlD,OAAmDoD,KAC3DC,SAAW7C,KAAKe,iBAAiBE,QACvC,MAAM2B,oBAIJnC,EAAAkB,UAAAmC,+BAAA,SAA+BL,mGACnB,MAAA,CAAA,EAAMzD,KAAKa,0BAA0BkD,OAAON,WAC5D,IADQb,EAAQF,EAAAlD,OAAqDoD,KAC7DC,SAAW7C,KAAKe,iBAAiBC,GACvC,MAAM4B,6CAhGXoB,EAAAA,sDAPQC,EAAAA,sBAEAC,EAAAA,uBACuDC,EAAAA,wBAAvDC,EAAAA,8CCsBP,SAAAtC,EACUuC,EACAC,EACAC,EACA1D,EACA2D,EACA5D,GALAZ,KAAAqE,WAAAA,EACArE,KAAAsE,mBAAAA,EACAtE,KAAAuE,SAAAA,EACAvE,KAAAa,0BAAAA,EACAb,KAAAwE,OAAAA,EACAxE,KAAAY,iBAAAA,EAdVZ,KAAAyE,wBAAkC,EAElCzE,KAAA0E,aAAetD,EAAAA,QAAQ,oCACvBpB,KAAA2E,iBAAmB,KAInB3E,KAAA4E,cAAwB,UAWxB9C,EAAAH,UAAAkD,gBAAA,WAAA,IAAA/D,EAAAd,KACEA,KAAK8E,QAAQC,gBACVC,KAAKC,EAAAA,aAAa,MAClB3D,WAAU,SAACwD,GAAiC,OAAAhE,EAAKoE,yBAAyBJ,MAC7E9E,KAAKyB,SAAWzB,KAAKsE,mBAAmBlC,gBACxCpC,KAAKmF,SAAWnF,KAAKsE,mBAAmBrC,WAG1CH,EAAAH,UAAAuD,yBAAA,SAAyBJ,GACe,IAClCA,EAAQM,eACVpF,KAAKqF,iBAIHvD,EAAAH,UAAA0D,cAAA,+GAIF,6BAFArF,KAAKyD,SAAWzD,KAAKsF,mBACrBtF,KAAK2E,iBAAmB3E,KAAKsE,mBAAmBd,yBAAyBxD,KAAKyD,UAC9E,CAAA,EAAMzD,KAAKsE,mBAAmBZ,+BAA+B1D,KAAKyD,kBAClE,OADAd,EAAAnD,OACA,CAAA,EAAMQ,KAAKuF,gCACX,OADA5C,EAAAnD,OACA,CAAA,EAAMQ,KAAKsE,mBAAmBR,+BAA+B9D,KAAKyD,kBAChC,OADlCd,EAAAnD,OACkC,CAAA,EAAMQ,KAAKwF,8CAAvC9C,EAA4BC,EAAAnD,OAA1BiG,EAAQ/C,EAAA+C,SAAEC,EAAWhD,EAAAgD,YAC7B1F,KAAK2F,+BAA+BF,EAAUC,gCAE9C1F,KAAK4F,2CAIT9D,EAAAH,UAAA4D,sBAAA,WAAA,IAAAzE,EAAAd,KACE,OAAO6F,EAAAA,OAAM,WAAM,OAAA/E,EAAKD,0BAA0BiF,OAAOhF,EAAK2C,aAC3DuB,KACCe,EAAAA,KAAI,SAAAnD,GAAO,OAAAA,EAAIrB,QACfyE,EAAAA,KAAI,SAAAC,GACF,GAAIA,EAAkBpD,SAAWqD,EAAAA,yBAAyBC,uBACxD,MAAM,IAAIC,MAAM,+BAEhBtF,EAAK2D,wBAAyB,KAGlC4B,EAAAA,eAAe,IAAM,IACrBC,aAGNxE,EAAAH,UAAA6D,6BAAA,WAAA,IAAA1E,EAAAd,KACE,OAAO6F,EAAAA,OAAM,WAAM,OAAA/E,EAAKF,iBAAiB4B,KAAK,CAAE+D,MAAO,UAAUzF,EAAK2C,cACnEuB,KACCe,EAAAA,KAAI,SAAAnD,GAAO,OAAAA,EAAIrB,QACfwE,EAAAA,KAAI,SAAAS,GACF,IAAMf,EAAWe,EAAIC,MAAK,SAAAC,GAAM,QAAEA,EAAGC,gBAC/BjB,EAAcc,EAAIC,MAAK,SAAAC,GAAM,QAAEA,EAAGE,iBACxC,GAAMnB,GAAYC,EAGhB,MAAO,CAAED,SAAQA,EAAEC,YAAWA,GAF9B,MAAM,IAAIU,MAAM,oDAKpBC,EAAAA,eAAe,IAAM,IACrBC,aAGNxE,EAAAH,UAAAgE,+BAAA,SAA+BF,EAAUC,GACvC1F,KAAK4E,cAAgB,WAAWa,EAAS7B,GAAE,cAAc8B,EAAY9B,GACrE5D,KAAK8E,QAAQrG,OACTuB,KAAK6G,YACP7G,KAAKuE,SAASuC,SAAS9G,KAAK6G,UAAUE,cAAe,UAAW,QAChE/G,KAAKgH,SAAU,IAInBlF,EAAAH,UAAA2D,iBAAA,WACE,MAAO,QAAU2B,KAAKC,MAAsB,IAAhBD,KAAKE,WAGnCrF,EAAAH,UAAAyF,cAAA,WACMpH,KAAK4E,gBACP5E,KAAKwE,OAAO6C,SAAS,CAACrH,KAAK4E,gBAC3B5E,KAAKsH,WAITxF,EAAAH,UAAA2F,OAAA,WACEtH,KAAKqE,WAAWkD,OAChBvH,KAAKwH,uBAGP1F,EAAAH,UAAA8F,MAAA,WACEzH,KAAKgH,aAAUU,EACX1H,KAAK6G,WACP7G,KAAKuE,SAASuC,SAAS9G,KAAK6G,UAAUE,cAAe,UAAW,SAElE/G,KAAKwH,sBACLxH,KAAK8E,QAAQM,cAAgB,GAG/BtD,EAAAH,UAAAiE,UAAA,WACE5F,KAAKgH,SAAU,EACfhH,KAAK8E,QAAQrG,OACTuB,KAAK6G,WACP7G,KAAKuE,SAASuC,SAAS9G,KAAK6G,UAAUE,cAAe,UAAW,SAI9DjF,EAAAH,UAAA6F,oBAAA,yGACAxH,KAAKyD,SAAL,MAAA,CAAA,EAAA,oBAEA,6BAAA,CAAA,EAAMzD,KAAKa,0BAA0B8G,OAAO3H,KAAKyD,yBAAjDf,EAAAlD,4FArIPoI,EAAAA,UAASC,KAAA,CAAC,CACTC,SAAU,mBACVC,SAAA,w1yEAVOC,EAAAA,kBAEAvH,SAHiDwH,EAAAA,iBAKjD7D,EAAAA,iCACA8D,EAAAA,cADqD/D,EAAAA,qDAS3DgE,EAAAA,UAASN,KAAA,CAACO,EAAAA,WAAY,CAAEC,QAAQ,uBAEhCF,EAAAA,UAASN,KAAA,CAACO,EAAAA,WAAY,CAAEE,KAAMC,EAAAA,WAAYF,QAAQ,wBCTnD,SAAAG,EACUC,EACAnE,GADAtE,KAAAyI,eAAAA,EACAzI,KAAAsE,mBAAAA,SAEVkE,EAAA7G,UAAA+G,IAAA,WAAA,IAAA5H,EAAAd,KACE,GAAIA,KAAKyI,eAAeC,IAAI,eAAe,GACzC,OAAOC,EAAAA,GAAG,CACR,CACEC,KAAM,+BACNxF,KAAM,YACN7D,MAAO6B,EAAAA,QAAQ,sBACfyH,SAAKnB,EACLoB,MAAO,WAAM,OAAAhI,EAAKwD,mBAAmB1C,4CAd9CoC,EAAAA,sDAJwB+E,EAAAA,sBAEhBtI,WCiBT,iCAbCuI,EAAAA,SAAQnB,KAAA,CAAC,CACRoB,QAAS,CAACC,EAAAA,WAAYC,EAAAA,cACtBC,aAAc,CAACtH,GACfuH,gBAAiB,CAACvH,GAClBwH,UAAW,CACT,CACEC,QAASC,EAAAA,UACTC,SAAUjB,EACVkB,OAAO,GAETjJ,wBCjBJ,SAAAkJ,YAIEA,EAAAhI,UAAAL,UAAA,SAAUsI,EAASC,GACD,eAAZD,EACF5J,KAAK8J,kBAAoBD,EAEzB7J,KAAK+J,mBAAqBF,GAG9BF,EAAAhI,UAAAqI,YAAA,aAIAL,EAAAhI,UAAAsI,iBAAA,SAAiBrH,GACf5C,KAAK8J,kBAAkB,CAAEvI,KAAMqB,KAEjC+G,EAAAhI,UAAAuI,qBAAA,SAAqBtH,GACnB5C,KAAK+J,mBAAmB,CAAExI,KAAMqB","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { SensorPhoneModalComponent } from './sensor-phone-modal.component';\nimport { AppStateService } from '@c8y/ngx-components';\nimport { DeviceRegistrationService, FetchClient, IFetchOptions, InventoryService } from '@c8y/client';\nimport { head } from 'lodash-es';\nimport { gettext } from '@c8y/ngx-components';\n\n@Injectable()\nexport class SensorPhoneService {\n readonly HTTP_STATUS_CODE = {\n OK: 200,\n CREATED: 201\n };\n private domainName: string;\n private tenantId: string;\n private PHONE_GROUP_FRAGMENT = 'c8y_IsSensorPhoneGroup';\n private readonly PHONE_GROUP_NAME = gettext('Phones');\n\n constructor(\n private bsModalService: BsModalService,\n private ui: AppStateService,\n private inventoryService: InventoryService,\n private deviceRegistrationService: DeviceRegistrationService\n ) {\n this.ui.currentTenant.subscribe(data => {\n if (data) {\n this.domainName = data.domainName;\n this.tenantId = data.name;\n }\n });\n }\n\n createModal() {\n this.bsModalService.show(SensorPhoneModalComponent, {\n backdrop: 'static',\n class: 'lg'\n });\n }\n\n getHost() {\n return this.domainName.substring(this.domainName.indexOf('.') + 1);\n }\n\n getTenantName() {\n return this.domainName.split('.')[0];\n }\n\n getTenantId() {\n return this.tenantId;\n }\n\n async checkPhoneGroupExists() {\n const { data, res } = await this.inventoryService.list({\n fragmentType: this.PHONE_GROUP_FRAGMENT\n });\n if (data && res && res.status === this.HTTP_STATUS_CODE.OK) {\n return head(data);\n }\n return null;\n }\n\n async addPhoneGroup() {\n const group = await this.checkPhoneGroupExists();\n if (group) {\n return group;\n }\n return await this.createPhoneGroup();\n }\n\n async createPhoneGroup() {\n const newPhoneGroup = {\n c8y_Global: {},\n c8y_IsDeviceGroup: {},\n type: 'c8y_DeviceGroup',\n name: this.PHONE_GROUP_NAME,\n [this.PHONE_GROUP_FRAGMENT]: {}\n };\n\n const { data, res } = await this.inventoryService.create(newPhoneGroup);\n if (data && res && res.status === this.HTTP_STATUS_CODE.CREATED) {\n return data;\n }\n return null;\n }\n\n generateRegistrationData(deviceId) {\n const res = 'c8y://' + this.getTenantName() + '.' + this.getHost() + '/?deviceId=' + deviceId;\n return res;\n }\n\n async createPhoneRegistrationRequest(deviceId) {\n const group = await this.addPhoneGroup();\n const device = { id: deviceId, groupId: group.id };\n\n const { res } = await this.deviceRegistrationService.create(device);\n if (res.status !== this.HTTP_STATUS_CODE.CREATED) {\n throw res;\n }\n }\n\n async acceptPhoneReqistrationRequest(deviceId) {\n const { res } = await this.deviceRegistrationService.accept(deviceId);\n if (res.status !== this.HTTP_STATUS_CODE.OK) {\n throw res;\n }\n }\n}\n","import { Component, ViewChild, AfterViewInit, ElementRef, Renderer2 } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { C8yStepper, gettext, retryWithDelay } from '@c8y/ngx-components';\nimport { SensorPhoneService } from './sensor-phone.service';\nimport { map, tap, throttleTime } from 'rxjs/operators';\nimport { DeviceRegistrationService, DeviceRegistrationStatus, InventoryService } from '@c8y/client';\nimport { Router } from '@angular/router';\nimport { defer } from 'rxjs';\n\n@Component({\n selector: 'c8y-sensor-phone',\n templateUrl: 'sensor-phone-modal.component.html'\n})\nexport class SensorPhoneModalComponent implements AfterViewInit {\n @ViewChild(C8yStepper, { static: false })\n stepper: C8yStepper;\n @ViewChild(C8yStepper, { read: ElementRef, static: false })\n container: ElementRef;\n pendingDeviceBootstrap: boolean = true;\n success;\n errorMessage = gettext('Failed to register a smartphone.');\n registrationData = null;\n tenantId;\n instance;\n deviceId: string;\n dashboardLink: string = '';\n constructor(\n private bsModalRef: BsModalRef,\n private sensorPhoneService: SensorPhoneService,\n private renderer: Renderer2,\n private deviceRegistrationService: DeviceRegistrationService,\n private router: Router,\n private inventoryService: InventoryService\n ) {\n }\n\n ngAfterViewInit() {\n this.stepper.selectionChange\n .pipe(throttleTime(100))\n .subscribe((stepper: Partial<C8yStepper>) => this.onStepperSelectionChange(stepper));\n this.tenantId = this.sensorPhoneService.getTenantName();\n this.instance = this.sensorPhoneService.getHost();\n }\n\n onStepperSelectionChange(stepper: Partial<C8yStepper>) {\n const PHONE_REGISTRATION_STEP_INDEX = 2;\n if (stepper.selectedIndex === PHONE_REGISTRATION_STEP_INDEX) {\n this.registerPhone();\n }\n }\n\n async registerPhone() {\n try {\n this.deviceId = this.generateDeviceId();\n this.registrationData = this.sensorPhoneService.generateRegistrationData(this.deviceId);\n await this.sensorPhoneService.createPhoneRegistrationRequest(this.deviceId);\n await this.waitForPhoneToConnect();\n await this.sensorPhoneService.acceptPhoneReqistrationRequest(this.deviceId);\n const { deviceMo, dashboardMo } = await this.waitForDeviceAndDashboardMos();\n this.onDeviceAndDashboardMosCreated(deviceMo, dashboardMo);\n } catch (error) {\n this.onFailure();\n }\n }\n\n waitForPhoneToConnect() {\n return defer(() => this.deviceRegistrationService.detail(this.deviceId))\n .pipe(\n map(res => res.data),\n tap(phoneRegistration => {\n if (phoneRegistration.status === DeviceRegistrationStatus.WAITING_FOR_CONNECTION) {\n throw new Error('Phone is not connected yet.');\n } else {\n this.pendingDeviceBootstrap = false;\n }\n }),\n retryWithDelay(6000, 4)\n ).toPromise();\n }\n\n waitForDeviceAndDashboardMos() {\n return defer(() => this.inventoryService.list({ owner: `device_${this.deviceId}` }))\n .pipe(\n map(res => res.data),\n map(mos => {\n const deviceMo = mos.find(mo => !!mo.c8y_IsDevice);\n const dashboardMo = mos.find(mo => !!mo.c8y_Dashboard);\n if (!(deviceMo && dashboardMo)) {\n throw new Error('Both device and dashboard MO must be present.');\n } else {\n return { deviceMo, dashboardMo };\n }\n }),\n retryWithDelay(6000, 4)\n ).toPromise();\n }\n\n onDeviceAndDashboardMosCreated(deviceMo, dashboardMo) {\n this.dashboardLink = `/device/${deviceMo.id}/dashboard/${dashboardMo.id}`;\n this.stepper.next();\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'none');\n this.success = true;\n }\n }\n\n generateDeviceId() {\n return 'phone' + Math.floor(Math.random() * 100000);\n }\n\n openDashboard() {\n if (this.dashboardLink) {\n this.router.navigate([this.dashboardLink]);\n this.cancel();\n }\n }\n\n cancel() {\n this.bsModalRef.hide();\n this.deleteDeviceRequest();\n }\n\n retry() {\n this.success = undefined;\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'block');\n }\n this.deleteDeviceRequest();\n this.stepper.selectedIndex = 2;\n }\n\n onFailure() {\n this.success = false;\n this.stepper.next();\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'none');\n }\n }\n\n async deleteDeviceRequest() {\n if (this.deviceId) {\n try {\n await this.deviceRegistrationService.delete(this.deviceId);\n } catch (error) {\n //\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DocLinkFactory, OptionsService, gettext, DocLink } from '@c8y/ngx-components';\nimport { of } from 'rxjs';\nimport { SensorPhoneService } from './sensor-phone.service';\n\n@Injectable()\nexport class ConnectSmartphoneFactory implements DocLinkFactory {\n constructor(\n private optionsService: OptionsService,\n private sensorPhoneService: SensorPhoneService\n ) {}\n get() {\n if (this.optionsService.get('sensorPhone', false)) {\n return of([\n {\n icon: 'c8y-icon c8y-icon-mobile-add',\n type: 'quicklink',\n label: gettext('Connect smartphone'),\n url: undefined,\n click: () => this.sensorPhoneService.createModal()\n } as DocLink\n ]);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_DOCS } from '@c8y/ngx-components';\nimport { ConnectSmartphoneFactory } from './connect-smartphone.factory';\nimport { SensorPhoneModalComponent } from './sensor-phone-modal.component';\nimport { QRCodeModule } from 'angularx-qrcode';\nimport { SensorPhoneService } from './sensor-phone.service';\n\n@NgModule({\n imports: [CoreModule, QRCodeModule],\n declarations: [SensorPhoneModalComponent],\n entryComponents: [SensorPhoneModalComponent],\n providers: [\n {\n provide: HOOK_DOCS,\n useClass: ConnectSmartphoneFactory,\n multi: true\n },\n SensorPhoneService\n ]\n})\nexport class SensorPhoneModule {}\n","export class RealTimeMock {\n deviceId;\n bootstrapCallback;\n managedObjCallback;\n subscribe(channel, callback) {\n if (channel === '/bootstrap') {\n this.bootstrapCallback = callback;\n } else {\n this.managedObjCallback = callback;\n }\n }\n unsubscribe() {\n /* empty */\n }\n\n triggerBootstrap(res) {\n this.bootstrapCallback({ data: res });\n }\n triggerManagedObject(res) {\n this.managedObjCallback({ data: res });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","../../sensor-phone/sensor-phone.service.ts","../../sensor-phone/sensor-phone-modal.component.ts","../../sensor-phone/connect-smartphone.factory.ts","../../sensor-phone/sensor-phone.module.ts","../../sensor-phone/real-time-mock.service.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","SensorPhoneService","bsModalService","ui","inventoryService","deviceRegistrationService","_this","HTTP_STATUS_CODE","OK","CREATED","PHONE_GROUP_FRAGMENT","PHONE_GROUP_NAME","gettext","currentTenant","subscribe","data","domainName","tenantId","name","prototype","createModal","show","SensorPhoneModalComponent","backdrop","class","getHost","substring","indexOf","getTenantName","split","getTenantId","checkPhoneGroupExists","list","fragmentType","_a","_b","res","status","head","addPhoneGroup","group","createPhoneGroup","c8y_Global","c8y_IsDeviceGroup","type","newPhoneGroup","create","_c","generateRegistrationData","deviceId","createPhoneRegistrationRequest","device","id","groupId","acceptPhoneReqistrationRequest","accept","Injectable","BsModalService","AppStateService","InventoryService","DeviceRegistrationService","bsModalRef","sensorPhoneService","renderer","router","pendingDeviceBootstrap","errorMessage","registrationData","dashboardLink","ngAfterViewInit","stepper","selectionChange","pipe","throttleTime","onStepperSelectionChange","instance","selectedIndex","registerPhone","generateDeviceId","waitForPhoneToConnect","waitForDeviceAndDashboardMos","deviceMo","dashboardMo","onDeviceAndDashboardMosCreated","onFailure","defer","detail","map","tap","phoneRegistration","DeviceRegistrationStatus","WAITING_FOR_CONNECTION","Error","retryWithDelay","toPromise","owner","mos","find","mo","c8y_IsDevice","c8y_Dashboard","container","setStyle","nativeElement","success","Math","floor","random","openDashboard","navigate","cancel","hide","deleteDeviceRequest","retry","undefined","delete","Component","args","selector","template","BsModalRef","Renderer2","Router","ViewChild","C8yStepper","static","read","ElementRef","ConnectSmartphoneFactory","optionsService","get","of","icon","url","click","OptionsService","NgModule","imports","CoreModule","QRCodeModule","declarations","entryComponents","providers","provide","HOOK_DOCS","useClass","multi","RealTimeMock","channel","callback","bootstrapCallback","managedObjCallback","unsubscribe","triggerBootstrap","triggerManagedObject"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { SensorPhoneModalComponent } from './sensor-phone-modal.component';\nimport { AppStateService } from '@c8y/ngx-components';\nimport { DeviceRegistrationService, FetchClient, IFetchOptions, InventoryService } from '@c8y/client';\nimport { head } from 'lodash-es';\nimport { gettext } from '@c8y/ngx-components';\n\n@Injectable()\nexport class SensorPhoneService {\n readonly HTTP_STATUS_CODE = {\n OK: 200,\n CREATED: 201\n };\n private domainName: string;\n private tenantId: string;\n private PHONE_GROUP_FRAGMENT = 'c8y_IsSensorPhoneGroup';\n private readonly PHONE_GROUP_NAME = gettext('Phones');\n\n constructor(\n private bsModalService: BsModalService,\n private ui: AppStateService,\n private inventoryService: InventoryService,\n private deviceRegistrationService: DeviceRegistrationService\n ) {\n this.ui.currentTenant.subscribe(data => {\n if (data) {\n this.domainName = data.domainName;\n this.tenantId = data.name;\n }\n });\n }\n\n createModal() {\n this.bsModalService.show(SensorPhoneModalComponent, {\n backdrop: 'static',\n class: 'lg'\n });\n }\n\n getHost() {\n return this.domainName.substring(this.domainName.indexOf('.') + 1);\n }\n\n getTenantName() {\n return this.domainName.split('.')[0];\n }\n\n getTenantId() {\n return this.tenantId;\n }\n\n async checkPhoneGroupExists() {\n const { data, res } = await this.inventoryService.list({\n fragmentType: this.PHONE_GROUP_FRAGMENT\n });\n if (data && res && res.status === this.HTTP_STATUS_CODE.OK) {\n return head(data);\n }\n return null;\n }\n\n async addPhoneGroup() {\n const group = await this.checkPhoneGroupExists();\n if (group) {\n return group;\n }\n return await this.createPhoneGroup();\n }\n\n async createPhoneGroup() {\n const newPhoneGroup = {\n c8y_Global: {},\n c8y_IsDeviceGroup: {},\n type: 'c8y_DeviceGroup',\n name: this.PHONE_GROUP_NAME,\n [this.PHONE_GROUP_FRAGMENT]: {}\n };\n\n const { data, res } = await this.inventoryService.create(newPhoneGroup);\n if (data && res && res.status === this.HTTP_STATUS_CODE.CREATED) {\n return data;\n }\n return null;\n }\n\n generateRegistrationData(deviceId) {\n const res = 'c8y://' + this.getTenantName() + '.' + this.getHost() + '/?deviceId=' + deviceId;\n return res;\n }\n\n async createPhoneRegistrationRequest(deviceId) {\n const group = await this.addPhoneGroup();\n const device = { id: deviceId, groupId: group.id };\n\n const { res } = await this.deviceRegistrationService.create(device);\n if (res.status !== this.HTTP_STATUS_CODE.CREATED) {\n throw res;\n }\n }\n\n async acceptPhoneReqistrationRequest(deviceId) {\n const { res } = await this.deviceRegistrationService.accept(deviceId);\n if (res.status !== this.HTTP_STATUS_CODE.OK) {\n throw res;\n }\n }\n}\n","import { Component, ViewChild, AfterViewInit, ElementRef, Renderer2 } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { C8yStepper, gettext, retryWithDelay } from '@c8y/ngx-components';\nimport { SensorPhoneService } from './sensor-phone.service';\nimport { map, tap, throttleTime } from 'rxjs/operators';\nimport { DeviceRegistrationService, DeviceRegistrationStatus, InventoryService } from '@c8y/client';\nimport { Router } from '@angular/router';\nimport { defer } from 'rxjs';\n\n@Component({\n selector: 'c8y-sensor-phone',\n templateUrl: 'sensor-phone-modal.component.html'\n})\nexport class SensorPhoneModalComponent implements AfterViewInit {\n @ViewChild(C8yStepper, { static: false })\n stepper: C8yStepper;\n @ViewChild(C8yStepper, { read: ElementRef, static: false })\n container: ElementRef;\n pendingDeviceBootstrap: boolean = true;\n success;\n errorMessage = gettext('Failed to register a smartphone.');\n registrationData = null;\n tenantId;\n instance;\n deviceId: string;\n dashboardLink: string = '';\n constructor(\n private bsModalRef: BsModalRef,\n private sensorPhoneService: SensorPhoneService,\n private renderer: Renderer2,\n private deviceRegistrationService: DeviceRegistrationService,\n private router: Router,\n private inventoryService: InventoryService\n ) {\n }\n\n ngAfterViewInit() {\n this.stepper.selectionChange\n .pipe(throttleTime(100))\n .subscribe((stepper: Partial<C8yStepper>) => this.onStepperSelectionChange(stepper));\n this.tenantId = this.sensorPhoneService.getTenantName();\n this.instance = this.sensorPhoneService.getHost();\n }\n\n onStepperSelectionChange(stepper: Partial<C8yStepper>) {\n const PHONE_REGISTRATION_STEP_INDEX = 2;\n if (stepper.selectedIndex === PHONE_REGISTRATION_STEP_INDEX) {\n this.registerPhone();\n }\n }\n\n async registerPhone() {\n try {\n this.deviceId = this.generateDeviceId();\n this.registrationData = this.sensorPhoneService.generateRegistrationData(this.deviceId);\n await this.sensorPhoneService.createPhoneRegistrationRequest(this.deviceId);\n await this.waitForPhoneToConnect();\n await this.sensorPhoneService.acceptPhoneReqistrationRequest(this.deviceId);\n const { deviceMo, dashboardMo } = await this.waitForDeviceAndDashboardMos();\n this.onDeviceAndDashboardMosCreated(deviceMo, dashboardMo);\n } catch (error) {\n this.onFailure();\n }\n }\n\n waitForPhoneToConnect() {\n return defer(() => this.deviceRegistrationService.detail(this.deviceId))\n .pipe(\n map(res => res.data),\n tap(phoneRegistration => {\n if (phoneRegistration.status === DeviceRegistrationStatus.WAITING_FOR_CONNECTION) {\n throw new Error('Phone is not connected yet.');\n } else {\n this.pendingDeviceBootstrap = false;\n }\n }),\n retryWithDelay(6000, 4)\n ).toPromise();\n }\n\n waitForDeviceAndDashboardMos() {\n return defer(() => this.inventoryService.list({ owner: `device_${this.deviceId}` }))\n .pipe(\n map(res => res.data),\n map(mos => {\n const deviceMo = mos.find(mo => !!mo.c8y_IsDevice);\n const dashboardMo = mos.find(mo => !!mo.c8y_Dashboard);\n if (!(deviceMo && dashboardMo)) {\n throw new Error('Both device and dashboard MO must be present.');\n } else {\n return { deviceMo, dashboardMo };\n }\n }),\n retryWithDelay(6000, 4)\n ).toPromise();\n }\n\n onDeviceAndDashboardMosCreated(deviceMo, dashboardMo) {\n this.dashboardLink = `/device/${deviceMo.id}/dashboard/${dashboardMo.id}`;\n this.stepper.next();\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'none');\n this.success = true;\n }\n }\n\n generateDeviceId() {\n return 'phone' + Math.floor(Math.random() * 100000);\n }\n\n openDashboard() {\n if (this.dashboardLink) {\n this.router.navigate([this.dashboardLink]);\n this.cancel();\n }\n }\n\n cancel() {\n this.bsModalRef.hide();\n this.deleteDeviceRequest();\n }\n\n retry() {\n this.success = undefined;\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'block');\n }\n this.deleteDeviceRequest();\n this.stepper.selectedIndex = 2;\n }\n\n onFailure() {\n this.success = false;\n this.stepper.next();\n if (this.container) {\n this.renderer.setStyle(this.container.nativeElement, 'display', 'none');\n }\n }\n\n async deleteDeviceRequest() {\n if (this.deviceId) {\n try {\n await this.deviceRegistrationService.delete(this.deviceId);\n } catch (error) {\n //\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DocLinkFactory, OptionsService, gettext, DocLink } from '@c8y/ngx-components';\nimport { of } from 'rxjs';\nimport { SensorPhoneService } from './sensor-phone.service';\n\n@Injectable()\nexport class ConnectSmartphoneFactory implements DocLinkFactory {\n constructor(\n private optionsService: OptionsService,\n private sensorPhoneService: SensorPhoneService\n ) {}\n get() {\n if (this.optionsService.get('sensorPhone', false)) {\n return of([\n {\n icon: 'c8y-icon c8y-icon-mobile-add',\n type: 'quicklink',\n label: gettext('Connect smartphone'),\n url: undefined,\n click: () => this.sensorPhoneService.createModal()\n } as DocLink\n ]);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_DOCS } from '@c8y/ngx-components';\nimport { ConnectSmartphoneFactory } from './connect-smartphone.factory';\nimport { SensorPhoneModalComponent } from './sensor-phone-modal.component';\nimport { QRCodeModule } from 'angularx-qrcode';\nimport { SensorPhoneService } from './sensor-phone.service';\n\n@NgModule({\n imports: [CoreModule, QRCodeModule],\n declarations: [SensorPhoneModalComponent],\n entryComponents: [SensorPhoneModalComponent],\n providers: [\n {\n provide: HOOK_DOCS,\n useClass: ConnectSmartphoneFactory,\n multi: true\n },\n SensorPhoneService\n ]\n})\nexport class SensorPhoneModule {}\n","export class RealTimeMock {\n deviceId;\n bootstrapCallback;\n managedObjCallback;\n subscribe(channel, callback) {\n if (channel === '/bootstrap') {\n this.bootstrapCallback = callback;\n } else {\n this.managedObjCallback = callback;\n }\n }\n unsubscribe() {\n /* empty */\n }\n\n triggerBootstrap(res) {\n this.bootstrapCallback({ data: res });\n }\n triggerManagedObject(res) {\n this.managedObjCallback({ data: res });\n }\n}\n"]}
|
|
@@ -20,6 +20,11 @@ export class ConfigurationDetailComponent {
|
|
|
20
20
|
this.mo = {};
|
|
21
21
|
this.saving = false;
|
|
22
22
|
this.uploadChoice = 'uploadBinary';
|
|
23
|
+
this.textForConfigurationUrlPopover = gettext(`Path for binaries can vary depending on device agent implementation, e.g.:
|
|
24
|
+
/configuration/binaries/configuration1.bin
|
|
25
|
+
https://configuration/binary/123
|
|
26
|
+
ftp://configuration/binary/123.tar.gz
|
|
27
|
+
`);
|
|
23
28
|
this.result = new Promise((resolve, reject) => {
|
|
24
29
|
this._save = resolve;
|
|
25
30
|
this._cancel = reject;
|
|
@@ -96,7 +101,7 @@ export class ConfigurationDetailComponent {
|
|
|
96
101
|
ConfigurationDetailComponent.decorators = [
|
|
97
102
|
{ type: Component, args: [{
|
|
98
103
|
selector: 'c8y-configuration-detail',
|
|
99
|
-
template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'cogs'\"></i>\n <h4 translate *ngIf=\"mo.id\">Update configuration</h4>\n <h4 translate *ngIf=\"!mo.id\">Add configuration</h4>\n </div>\n\n <form class=\"d-contents\" #configurationForm=\"ngForm\" (ngSubmit)=\"configurationForm.form.valid && save()\">\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label translate>Name</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} hosts\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n [(ngModel)]=\"version\"\n name=\"version\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Device type</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"deviceType\"\n name=\"deviceType\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. Host configuration' | translate }} c8y_Linux\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"description\"\n name=\"description\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Configuration type</label>\n <c8y-typeahead\n [(ngModel)]=\"selected\"\n name=\"confType\"\n placeholder=\"{{ 'e.g.' | translate }} ssh\"\n (onSearch)=\"setPipe($event)\"\n displayProperty=\"configurationType\"\n >\n <c8y-li\n *c8yFor=\"let config of configs; pipe: filterPipe; notFound: notFoundTemplate\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selected = config; setPipe('')\"\n [active]=\"selected === config\"\n >\n <c8y-highlight\n [text]=\"config.configurationType || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"pattern.length > 0\">\n <span translate>No match found, add new`configuration`?</span>\n <button title=\"Create new`configuration`\" type=\"button\" class=\"btn btn-primary btn-xs m-l-16\" translate>\n Create new`configuration`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block m-t-40\" translate>Configuration file</div>\n <c8y-file-picker\n [maxAllowedFiles]=\"1\"\n (onFilesPicked)=\"onFile($event)\"\n [uploadChoice]=\"uploadChoice\"\n [fileUrl]=\"binary.url\"\n [fileBinary]=\"binary.file\"\n >\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n (click)=\"cancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n [disabled]=\"saving\"\n >\n <span translate>Cancel</span>\n </button>\n <button\n class=\"btn btn-primary\"\n type=\"submit\"\n title=\"{{ submitButtonTitle | translate }}\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !configurationForm.valid ||\n configurationForm.pristine ||\n (!binary?.url && !binary?.file) ||\n saving\n \"\n >\n {{ submitButtonTitle | translate }}\n </button>\n </div>\n </form>\n</div>\n"
|
|
104
|
+
template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'cogs'\"></i>\n <h4 translate *ngIf=\"mo.id\">Update configuration</h4>\n <h4 translate *ngIf=\"!mo.id\">Add configuration</h4>\n </div>\n\n <form class=\"d-contents\" #configurationForm=\"ngForm\" (ngSubmit)=\"configurationForm.form.valid && save()\">\n <div class=\"modal-inner-scroll\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label translate>Name</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} hosts\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n [(ngModel)]=\"version\"\n name=\"version\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Device type</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} c8y_Linux\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"deviceType\"\n name=\"deviceType\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Description</label>\n <input\n type=\"text\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. Host configuration' | translate }} c8y_Linux\"\n maxlength=\"254\"\n autocomplete=\"off\"\n [(ngModel)]=\"description\"\n name=\"description\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Configuration type</label>\n <c8y-typeahead\n [(ngModel)]=\"selected\"\n name=\"confType\"\n placeholder=\"{{ 'e.g.' | translate }} ssh\"\n (onSearch)=\"setPipe($event)\"\n displayProperty=\"configurationType\"\n >\n <c8y-li\n *c8yFor=\"let config of configs; pipe: filterPipe; notFound: notFoundTemplate\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"selected = config; setPipe('')\"\n [active]=\"selected === config\"\n >\n <c8y-highlight\n [text]=\"config.configurationType || '--'\"\n [pattern]=\"pattern\"\n ></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-gray-lighter p-8\" *ngIf=\"pattern.length > 0\">\n <span translate>No match found, add new`configuration`?</span>\n <button title=\"Create new`configuration`\" type=\"button\" class=\"btn btn-primary btn-xs m-l-16\" translate>\n Create new`configuration`\n </button>\n </c8y-li>\n </ng-template>\n </c8y-typeahead>\n </c8y-form-group>\n\n <c8y-form-group>\n <div class=\"legend form-block m-t-40\" translate>Configuration file</div>\n <c8y-file-picker\n [maxAllowedFiles]=\"1\"\n (onFilesPicked)=\"onFile($event)\"\n [uploadChoice]=\"uploadChoice\"\n [fileUrl]=\"binary.url\"\n [fileBinary]=\"binary.file\"\n [fileUrlPopover]=\"textForConfigurationUrlPopover\"\n >\n </c8y-file-picker>\n </c8y-form-group>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n (click)=\"cancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n [disabled]=\"saving\"\n >\n <span translate>Cancel</span>\n </button>\n <button\n class=\"btn btn-primary\"\n type=\"submit\"\n title=\"{{ submitButtonTitle | translate }}\"\n [ngClass]=\"{ 'btn-pending': saving }\"\n [disabled]=\"\n !configurationForm.valid ||\n configurationForm.pristine ||\n (!binary?.url && !binary?.file) ||\n saving\n \"\n >\n {{ submitButtonTitle | translate }}\n </button>\n </div>\n </form>\n</div>\n"
|
|
100
105
|
},] }
|
|
101
106
|
];
|
|
102
107
|
ConfigurationDetailComponent.ctorParameters = () => [
|
|
@@ -107,4 +112,4 @@ ConfigurationDetailComponent.ctorParameters = () => [
|
|
|
107
112
|
ConfigurationDetailComponent.propDecorators = {
|
|
108
113
|
configurationForm: [{ type: ViewChild, args: ['configurationForm', { static: true },] }]
|
|
109
114
|
};
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcmVwb3NpdG9yeS9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24tZGV0YWlsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBUTFELE1BQU0sT0FBTyw0QkFBNEI7SUFpQ3ZDLFlBQ1UsaUJBQW9DLEVBQ3BDLFVBQXNCLEVBQ3RCLEtBQW1CO1FBRm5CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBL0I3QixXQUFNLEdBQWtDO1lBQ3RDLElBQUksRUFBRSxTQUFTO1lBQ2YsR0FBRyxFQUFFLFNBQVM7U0FDZixDQUFDO1FBR0YsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUdyQixPQUFFLEdBQTRCLEVBQUUsQ0FBQztRQUNqQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsaUJBQVksR0FBaUMsY0FBYyxDQUFDO1FBRzVELG1DQUE4QixHQUFXLE9BQU8sQ0FB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QUFjLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7b0JBQzVDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO2lCQUN6QjtnQkFDRCxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQy9CLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUN0RCxjQUFjLENBQUMsYUFBYSxFQUM1QixJQUFJLENBQUMsRUFBRSxDQUNSLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQ25GLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2Q7WUFBQyxPQUFPLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDaEI7b0JBQVM7Z0JBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDckI7UUFDSCxDQUFDO0tBQUE7OztZQXJIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsMHFJQUFvRDthQUNyRDs7O1lBUFEsaUJBQWlCO1lBSmpCLFVBQVU7WUFGVixZQUFZOzs7Z0NBZWxCLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IHVuaXFCeSwgaXNVbmRlZmluZWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTW9kYWxNb2RlbCwgUmVwb3NpdG9yeVR5cGUgfSBmcm9tICcuLi9yZXBvc2l0b3J5Lm1vZGVsJztcbmltcG9ydCB7IFJlcG9zaXRvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3NpdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFBpY2tlZEZpbGVzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1jb25maWd1cmF0aW9uLWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maWd1cmF0aW9uLWRldGFpbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbkRldGFpbENvbXBvbmVudCBpbXBsZW1lbnRzIE1vZGFsTW9kZWwge1xuICBAVmlld0NoaWxkKCdjb25maWd1cmF0aW9uRm9ybScsIHsgc3RhdGljOiB0cnVlIH0pIGNvbmZpZ3VyYXRpb25Gb3JtOiBOZ0Zvcm07XG4gIHNlbGVjdGVkOiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9O1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGJpbmFyeTogeyBmaWxlPzogRmlsZTsgdXJsPzogc3RyaW5nIH0gPSB7XG4gICAgZmlsZTogdW5kZWZpbmVkLFxuICAgIHVybDogdW5kZWZpbmVkXG4gIH07XG4gIGRldmljZVR5cGU6IHN0cmluZztcblxuICBwYXR0ZXJuOiBzdHJpbmcgPSAnJztcbiAgZmlsdGVyUGlwZTtcbiAgY29uZmlncztcbiAgbW86IFBhcnRpYWw8SU1hbmFnZWRPYmplY3Q+ID0ge307XG4gIHNhdmluZyA9IGZhbHNlO1xuICB1cGxvYWRDaG9pY2U6ICd1cGxvYWRCaW5hcnknIHwgJ3VwbG9hZFVybCcgPSAndXBsb2FkQmluYXJ5JztcbiAgZXhpc3RpbmdCaW5hcnk6IEZpbGU7XG4gIHN1Ym1pdEJ1dHRvblRpdGxlOiBzdHJpbmc7XG4gIHRleHRGb3JDb25maWd1cmF0aW9uVXJsUG9wb3Zlcjogc3RyaW5nID0gZ2V0dGV4dChgUGF0aCBmb3IgYmluYXJpZXMgY2FuIHZhcnkgZGVwZW5kaW5nIG9uIGRldmljZSBhZ2VudCBpbXBsZW1lbnRhdGlvbiwgZS5nLjpcbiAgICAvY29uZmlndXJhdGlvbi9iaW5hcmllcy9jb25maWd1cmF0aW9uMS5iaW5cbiAgICBodHRwczovL2NvbmZpZ3VyYXRpb24vYmluYXJ5LzEyM1xuICAgIGZ0cDovL2NvbmZpZ3VyYXRpb24vYmluYXJ5LzEyMy50YXIuZ3pcbiAgYCk7XG5cbiAgcmVzdWx0OiBQcm9taXNlPHZvaWQ+ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHRoaXMuX3NhdmUgPSByZXNvbHZlO1xuICAgIHRoaXMuX2NhbmNlbCA9IHJlamVjdDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfc2F2ZTtcbiAgcHJpdmF0ZSBfY2FuY2VsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVwb3NpdG9yeVNlcnZpY2U6IFJlcG9zaXRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFJlZjogQnNNb2RhbFJlZixcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uZmlncyA9IGF3YWl0IHRoaXMucmVwb3NpdG9yeVNlcnZpY2UubGlzdFJlcG9zaXRvcnlFbnRyaWVzKFJlcG9zaXRvcnlUeXBlLkNPTkZJR1VSQVRJT04pO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLnVwbG9hZENob2ljZSA9IHRoaXMuYmluYXJ5LmZpbGUgPyAndXBsb2FkQmluYXJ5JyA6ICd1cGxvYWRVcmwnO1xuICAgICAgdGhpcy5leGlzdGluZ0JpbmFyeSA9IHRoaXMuYmluYXJ5LmZpbGU7XG4gICAgfVxuICAgIHRoaXMuc2V0UGlwZSgnJyk7XG4gICAgdGhpcy5zdWJtaXRCdXR0b25UaXRsZSA9IHRoaXMubW8uaWRcbiAgICAgID8gZ2V0dGV4dCgnVXBkYXRlIGNvbmZpZ3VyYXRpb24nKVxuICAgICAgOiBnZXR0ZXh0KCdBZGQgY29uZmlndXJhdGlvbicpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gICAgdGhpcy5fY2FuY2VsKCk7XG4gIH1cblxuICBzZXRQaXBlKGZpbHRlclN0cjogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXR0ZXJuID0gZmlsdGVyU3RyO1xuICAgIHRoaXMuZmlsdGVyUGlwZSA9IHBpcGUoXG4gICAgICBtYXAoKGRhdGE6IFtdKSA9PiB1bmlxQnkoZGF0YSwgJ2NvbmZpZ3VyYXRpb25UeXBlJykpLFxuICAgICAgbWFwKChkYXRhOiBbXSkgPT4ge1xuICAgICAgICByZXR1cm4gZGF0YS5maWx0ZXIoXG4gICAgICAgICAgKG1vOiBhbnkpID0+XG4gICAgICAgICAgICBtby5jb25maWd1cmF0aW9uVHlwZSAmJlxuICAgICAgICAgICAgbW8uY29uZmlndXJhdGlvblR5cGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlclN0ci50b0xvd2VyQ2FzZSgpKSA+IC0xXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvbkZpbGUoZHJvcHBlZDogUGlja2VkRmlsZXMpIHtcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb25Gb3JtLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKGRyb3BwZWQudXJsKSkge1xuICAgICAgdGhpcy5iaW5hcnkgPSB7XG4gICAgICAgIHVybDogZHJvcHBlZC51cmxcbiAgICAgIH07XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICghaXNVbmRlZmluZWQoZHJvcHBlZC5kcm9wcGVkRmlsZXMpKSB7XG4gICAgICB0aGlzLmJpbmFyeSA9IHtcbiAgICAgICAgZmlsZTogZHJvcHBlZC5kcm9wcGVkRmlsZXNbMF0uZmlsZVxuICAgICAgfTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5iaW5hcnkgPSB7XG4gICAgICAgIGZpbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgdXJsOiB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zYXZpbmcgPSB0cnVlO1xuICAgICAgY29uc3QgeyBzZWxlY3RlZCwgdmVyc2lvbiwgZGVzY3JpcHRpb24sIGJpbmFyeSwgZGV2aWNlVHlwZSB9ID0gdGhpcztcbiAgICAgIGlmICh0aGlzLmV4aXN0aW5nQmluYXJ5ID09PSB0aGlzLmJpbmFyeS5maWxlKSB7XG4gICAgICAgIGJpbmFyeS5maWxlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5yZXBvc2l0b3J5U2VydmljZS5zYXZlKFxuICAgICAgICB7IHNlbGVjdGVkLCB2ZXJzaW9uLCBkZXNjcmlwdGlvbiwgYmluYXJ5LCBkZXZpY2VUeXBlIH0sXG4gICAgICAgIFJlcG9zaXRvcnlUeXBlLkNPTkZJR1VSQVRJT04sXG4gICAgICAgIHRoaXMubW9cbiAgICAgICk7XG4gICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MoXG4gICAgICAgIHRoaXMubW8uaWQgPyBnZXR0ZXh0KCdDb25maWd1cmF0aW9uIHVwZGF0ZWQuJykgOiBnZXR0ZXh0KCdDb25maWd1cmF0aW9uIGNyZWF0ZWQuJylcbiAgICAgICk7XG4gICAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICAgICAgdGhpcy5fc2F2ZSgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgICAgdGhpcy5fY2FuY2VsKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -83,7 +83,7 @@ export class SearchGridComponent {
|
|
|
83
83
|
return __awaiter(this, void 0, void 0, function* () {
|
|
84
84
|
let response;
|
|
85
85
|
if (dataSourceModifier.searchText) {
|
|
86
|
-
response = yield this.searchService.search(dataSourceModifier.searchText);
|
|
86
|
+
response = yield this.searchService.search(dataSourceModifier.searchText, dataSourceModifier.pagination);
|
|
87
87
|
}
|
|
88
88
|
else {
|
|
89
89
|
response = yield this.searchService.getData(dataSourceModifier.columns, dataSourceModifier.pagination, undefined);
|
|
@@ -169,4 +169,4 @@ SearchGridComponent.propDecorators = {
|
|
|
169
169
|
filteringName: [{ type: Input }],
|
|
170
170
|
dataGrid: [{ type: ViewChild, args: [DataGridComponent, { static: true },] }]
|
|
171
171
|
};
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc2VhcmNoL3NlYXJjaC1ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUlMLGlCQUFpQixFQUVqQixtQkFBbUIsRUFFbkIsT0FBTyxFQUlSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFrQixrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFFMUIsZ0JBQWdCLEVBQ2pCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsZ0NBQWdDLEVBQ2hDLDRCQUE0QixFQUM1Qix3QkFBd0IsRUFDekIsTUFBTSxpQ0FBaUMsQ0FBQztBQU16QyxNQUFNLE9BQU8sbUJBQW1CO0lBdUQ5QixZQUNTLGFBQTRCLEVBQzNCLGNBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxvQkFBc0M7UUFIdkMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFrQjtRQXpEdkMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixzQkFBaUIsR0FBVyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQXNCeEQsZUFBVSxH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QW9CLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBM0tGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQix5aUNBQTJDO2FBQzVDOzs7WUF0QlEsYUFBYTtZQU9iLGNBQWM7WUFSRSxrQkFBa0I7WUFNekMsZ0JBQWdCOzs7MEJBbUJmLEtBQUssU0FBQyxjQUFjO29CQUNwQixLQUFLO2dDQUNMLEtBQUs7dUJBQ0wsS0FBSyxTQUFDLFNBQVM7MEJBT2YsS0FBSyxTQUFDLFlBQVk7OEJBT2xCLEtBQUssU0FBQyxnQkFBZ0I7eUJBT3RCLEtBQUs7a0NBQ0wsS0FBSyxTQUFDLG9CQUFvQjs4QkFPMUIsTUFBTTt5QkFJTixLQUFLOzRCQUdMLEtBQUs7dUJBVUwsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGlvbkNvbnRyb2wsXG4gIEJ1aWx0SW5BY3Rpb25UeXBlLFxuICBCdWxrQWN0aW9uQ29udHJvbCxcbiAgRGF0YUdyaWRDb21wb25lbnQsXG4gIERhdGFTb3VyY2VNb2RpZmllcixcbiAgRmlsdGVyaW5nQWN0aW9uVHlwZSxcbiAgRmlsdGVyaW5nTW9kaWZpZXIsXG4gIGdldHRleHQsXG4gIFBhZ2luYXRpb24sXG4gIFJvdyxcbiAgU2VydmVyU2lkZURhdGFSZXN1bHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZXZpY2VHcmlkQ29sdW1uIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kZXZpY2UtZ3JpZCc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgU21hcnRHcm91cHNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXNzZXRUeXBlR3JpZENvbHVtbixcbiAgRGVsZXRlQXNzZXRzTW9kYWxDb21wb25lbnQsXG4gIERlbGV0ZU1vZGFsQ2hlY2tib3hlcyxcbiAgU3ViQXNzZXRzU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3N1Yi1hc3NldHMnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7XG4gIEFsYXJtc0RldmljZUdyaWRDb2x1bW4sXG4gIERldmljZUdyaWRTZXJ2aWNlLFxuICBJbWVpRGV2aWNlR3JpZENvbHVtbixcbiAgTW9kZWxEZXZpY2VHcmlkQ29sdW1uLFxuICBOYW1lRGV2aWNlR3JpZENvbHVtbixcbiAgUmVnaXN0cmF0aW9uRGF0ZURldmljZUdyaWRDb2x1bW4sXG4gIFNlcmlhbE51bWJlckRldmljZUdyaWRDb2x1bW4sXG4gIFN5c3RlbUlkRGV2aWNlR3JpZENvbHVtblxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXNlYXJjaC1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1ncmlkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hHcmlkQ29tcG9uZW50IHtcbiAgQElucHV0KCdwYXJlbnQtZ3JvdXAnKSBwYXJlbnRHcm91cDogSU1hbmFnZWRPYmplY3Q7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbG9hZGluZ0l0ZW1zTGFiZWw6IHN0cmluZyA9IGdldHRleHQoJ0xvYWRpbmcgcmVzdWx0c+KApicpO1xuICBASW5wdXQoJ2NvbHVtbnMnKSBzZXQgX2NvbHVtbnModmFsdWU6IERldmljZUdyaWRDb2x1bW5bXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5jb2x1bW5zID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXREZWZhdWx0Q29sdW1ucygpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoJ3BhZ2luYXRpb24nKSBzZXQgX3BhZ2luYXRpb24odmFsdWU6IFBhZ2luYXRpb24pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2luYXRpb24gPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdhY3Rpb25Db250cm9scycpIHNldCBfYWN0aW9uQ29udHJvbHModmFsdWU6IEFjdGlvbkNvbnRyb2xbXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hY3Rpb25Db250cm9scyA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRBY3Rpb25Db250cm9scygpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBzZWxlY3RhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgnYnVsa0FjdGlvbkNvbnRyb2xzJykgc2V0IF9idWxrQWN0aW9uQ29udHJvbHModmFsdWU6IEJ1bGtBY3Rpb25Db250cm9sW10pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuYnVsa0FjdGlvbkNvbnRyb2xzID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnVsa0FjdGlvbkNvbnRyb2xzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgICB9XG4gIH1cbiAgQE91dHB1dCgpIG9uQ29sdW1uc0NoYW5nZTogRXZlbnRFbWl0dGVyPERldmljZUdyaWRDb2x1bW5bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIERldmljZUdyaWRDb2x1bW5bXVxuICA+KCk7XG5cbiAgQElucHV0KClcbiAgc2VhcmNoVGV4dCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlcmluZ05hbWU6IHN0cmluZztcblxuICBjb2x1bW5zOiBEZXZpY2VHcmlkQ29sdW1uW107XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXTtcbiAgYnVsa0FjdGlvbkNvbnRyb2xzOiBCdWxrQWN0aW9uQ29udHJvbFtdID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgc2VydmVyU2lkZURhdGFDYWxsYmFjazogYW55O1xuICByZWZyZXNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKERhdGFHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkYXRhR3JpZDogRGF0YUdyaWRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBzaXplQ291bnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgc21hcnRHcm91cHNTZXJ2aWNlOiBTbWFydEdyb3Vwc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdWJBc3NldHNHcmlkU2VydmljZTogU3ViQXNzZXRzU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpbHRlcmluZ05hbWUpIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXREZWZhdWx0Q29sdW1ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSBbXG4gICAgICAgIG5ldyBBc3NldFR5cGVHcmlkQ29sdW1uKHsgc29ydE9yZGVyOiAnZGVzYycgfSksXG4gICAgICAgIG5ldyBOYW1lRGV2aWNlR3JpZENvbHVtbih7XG4gICAgICAgICAgc29ydE9yZGVyOiAnYXNjJyxcbiAgICAgICAgICBmaWx0ZXI6IHsgZXh0ZXJuYWxGaWx0ZXJRdWVyeTogeyBuYW1lczogW3RoaXMuZmlsdGVyaW5nTmFtZV0gfSB9XG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgTW9kZWxEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICAgIG5ldyBTZXJpYWxOdW1iZXJEZXZpY2VHcmlkQ29sdW1uKHsgdmlzaWJsZTogZmFsc2UgfSksXG4gICAgICAgIG5ldyBSZWdpc3RyYXRpb25EYXRlRGV2aWNlR3JpZENvbHVtbih7IHZpc2libGU6IGZhbHNlIH0pLFxuICAgICAgICBuZXcgU3lzdGVtSWREZXZpY2VHcmlkQ29sdW1uKHsgdmlzaWJsZTogZmFsc2UgfSksXG4gICAgICAgIG5ldyBJbWVpRGV2aWNlR3JpZENvbHVtbih7IHZpc2libGU6IGZhbHNlIH0pLFxuICAgICAgICBuZXcgQWxhcm1zRGV2aWNlR3JpZENvbHVtbigpXG4gICAgICBdO1xuICAgIH1cbiAgICB0aGlzLnNlcnZlclNpZGVEYXRhQ2FsbGJhY2sgPSB0aGlzLm9uRGF0YVNvdXJjZU1vZGlmaWVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRBY3Rpb25Db250cm9scygpO1xuICB9XG5cbiAgdHJhY2tCeU5hbWUoX2luZGV4LCBjb2x1bW46IERldmljZUdyaWRDb2x1bW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxuXG4gIGFzeW5jIG9uRGF0YVNvdXJjZU1vZGlmaWVyKFxuICAgIGRhdGFTb3VyY2VNb2RpZmllcjogRGF0YVNvdXJjZU1vZGlmaWVyXG4gICk6IFByb21pc2U8U2VydmVyU2lkZURhdGFSZXN1bHQ+IHtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgaWYgKGRhdGFTb3VyY2VNb2RpZmllci5zZWFyY2hUZXh0KSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2goZGF0YVNvdXJjZU1vZGlmaWVyLnNlYXJjaFRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VhcmNoU2VydmljZS5nZXREYXRhKFxuICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyxcbiAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb24sXG4gICAgICAgIHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgeyByZXMsIGRhdGEsIHBhZ2luZyB9ID0gcmVzcG9uc2U7XG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlck9ubHlBc3NldHMoZGF0YSk7XG5cbiAgICBpZiAocGFnaW5nLmN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICB0aGlzLnNpemVDb3VudCA9IDA7XG4gICAgfVxuICAgIHRoaXMuc2l6ZUNvdW50ICs9IGZpbHRlcmVkRGF0YS5sZW5ndGg7XG4gICAgdGhpcy5vbkNvbHVtbnNDaGFuZ2UuZW1pdChkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVzLFxuICAgICAgZGF0YTogZmlsdGVyZWREYXRhLFxuICAgICAgcGFnaW5nLFxuICAgICAgZmlsdGVyZWRTaXplOiB0aGlzLnNpemVDb3VudCxcbiAgICAgIHNpemU6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cblxuICBzZXRBY3Rpb25Db250cm9scygpIHtcbiAgICBjb25zdCBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW107XG4gICAgY29uc3QgZGVsZXRlQWN0aW9uOiBBY3Rpb25Db250cm9sID0ge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgY2FsbGJhY2s6IChhc3NldDogUm93KSA9PiB0aGlzLm9uRGVsZXRlQXNzZXQoYXNzZXQgYXMgSU1hbmFnZWRPYmplY3QsIHRoaXMucGFyZW50R3JvdXApXG4gICAgfTtcbiAgICBhY3Rpb25Db250cm9scy5wdXNoKGRlbGV0ZUFjdGlvbik7XG4gICAgaWYgKCF0aGlzLmFjdGlvbkNvbnRyb2xzKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gYWN0aW9uQ29udHJvbHM7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlRmlsdGVyaW5nKFxuICAgIGNvbHVtbk5hbWVzOiBzdHJpbmdbXSxcbiAgICBhY3Rpb246IHtcbiAgICAgIHR5cGU6IEZpbHRlcmluZ0FjdGlvblR5cGU7XG4gICAgICBwYXlsb2FkPzogeyBmaWx0ZXJpbmdNb2RpZmllcjogRmlsdGVyaW5nTW9kaWZpZXIgfTtcbiAgICB9XG4gICkge1xuICAgIGNvbnN0IHsgdHlwZSB9ID0gYWN0aW9uO1xuICAgIGlmICh0eXBlID09PSBGaWx0ZXJpbmdBY3Rpb25UeXBlLlJlc2V0RmlsdGVyKSB7XG4gICAgICB0aGlzLmRhdGFHcmlkLmNsZWFyRmlsdGVycygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFHcmlkLnVwZGF0ZUZpbHRlcmluZyhjb2x1bW5OYW1lcywgYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBjb25maWdDaGFuZ2UoY29uZmlnKSB7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNhdmVDb25maWcoY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgb25EZWxldGVBc3NldChhc3NldCwgcGFyZW50UmVmKSB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgc2hvd1dpdGhEZXZpY2VVc2VyQ2hlY2tib3g6IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2Uuc2hvdWxkU2hvd1dpdGhEZXZpY2VVc2VyQ2hlY2tib3goYXNzZXQpLFxuICAgICAgYXNzZXQsXG4gICAgICBzaG93V2l0aENhc2NhZGVDaGVja2JveDpcbiAgICAgICAgIXRoaXMuc21hcnRHcm91cHNTZXJ2aWNlLmlzU21hcnRHcm91cChhc3NldCkgJiZcbiAgICAgICAgIXRoaXMuc21hcnRHcm91cHNTZXJ2aWNlLmlzU21hcnRHcm91cFYyKGFzc2V0KVxuICAgIH07XG5cbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhEZWxldGVBc3NldHNNb2RhbENvbXBvbmVudCwgeyBpbml0aWFsU3RhdGUgfSk7XG5cbiAgICBtb2RhbFJlZi5jb250ZW50LmNsb3NlU3ViamVjdC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdDogRGVsZXRlTW9kYWxDaGVja2JveGVzKSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZGVsZXRlQXNzZXQoYXNzZXQsIHBhcmVudFJlZiwgcmVzdWx0KTtcbiAgICAgICAgdGhpcy5yZWZyZXNoLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc2VhcmNoL3NlYXJjaC1ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUlMLGlCQUFpQixFQUVqQixtQkFBbUIsRUFFbkIsT0FBTyxFQUlSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFrQixrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQiwwQkFBMEIsRUFFMUIsZ0JBQWdCLEVBQ2pCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIsZ0NBQWdDLEVBQ2hDLDRCQUE0QixFQUM1Qix3QkFBd0IsRUFDekIsTUFBTSxpQ0FBaUMsQ0FBQztBQU16QyxNQUFNLE9BQU8sbUJBQW1CO0lBdUQ5QixZQUNTLGFBQTRCLEVBQzNCLGNBQThCLEVBQzlCLGtCQUFzQyxFQUN0QyxvQkFBc0M7UUFIdkMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFrQjtRQXpEdkMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixzQkFBaUIsR0FBVyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQXNCeEQsZUFBVSxH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Z0JBQ1YsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBOUtGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQix5aUNBQTJDO2FBQzVDOzs7WUF0QlEsYUFBYTtZQU9iLGNBQWM7WUFSRSxrQkFBa0I7WUFNekMsZ0JBQWdCOzs7MEJBbUJmLEtBQUssU0FBQyxjQUFjO29CQUNwQixLQUFLO2dDQUNMLEtBQUs7dUJBQ0wsS0FBSyxTQUFDLFNBQVM7MEJBT2YsS0FBSyxTQUFDLFlBQVk7OEJBT2xCLEtBQUssU0FBQyxnQkFBZ0I7eUJBT3RCLEtBQUs7a0NBQ0wsS0FBSyxTQUFDLG9CQUFvQjs4QkFPMUIsTUFBTTt5QkFJTixLQUFLOzRCQUdMLEtBQUs7dUJBVUwsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFjdGlvbkNvbnRyb2wsXG4gIEJ1aWx0SW5BY3Rpb25UeXBlLFxuICBCdWxrQWN0aW9uQ29udHJvbCxcbiAgRGF0YUdyaWRDb21wb25lbnQsXG4gIERhdGFTb3VyY2VNb2RpZmllcixcbiAgRmlsdGVyaW5nQWN0aW9uVHlwZSxcbiAgRmlsdGVyaW5nTW9kaWZpZXIsXG4gIGdldHRleHQsXG4gIFBhZ2luYXRpb24sXG4gIFJvdyxcbiAgU2VydmVyU2lkZURhdGFSZXN1bHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZXZpY2VHcmlkQ29sdW1uIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kZXZpY2UtZ3JpZCc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgU21hcnRHcm91cHNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXNzZXRUeXBlR3JpZENvbHVtbixcbiAgRGVsZXRlQXNzZXRzTW9kYWxDb21wb25lbnQsXG4gIERlbGV0ZU1vZGFsQ2hlY2tib3hlcyxcbiAgU3ViQXNzZXRzU2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL3N1Yi1hc3NldHMnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7XG4gIEFsYXJtc0RldmljZUdyaWRDb2x1bW4sXG4gIERldmljZUdyaWRTZXJ2aWNlLFxuICBJbWVpRGV2aWNlR3JpZENvbHVtbixcbiAgTW9kZWxEZXZpY2VHcmlkQ29sdW1uLFxuICBOYW1lRGV2aWNlR3JpZENvbHVtbixcbiAgUmVnaXN0cmF0aW9uRGF0ZURldmljZUdyaWRDb2x1bW4sXG4gIFNlcmlhbE51bWJlckRldmljZUdyaWRDb2x1bW4sXG4gIFN5c3RlbUlkRGV2aWNlR3JpZENvbHVtblxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXNlYXJjaC1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1ncmlkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hHcmlkQ29tcG9uZW50IHtcbiAgQElucHV0KCdwYXJlbnQtZ3JvdXAnKSBwYXJlbnRHcm91cDogSU1hbmFnZWRPYmplY3Q7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbG9hZGluZ0l0ZW1zTGFiZWw6IHN0cmluZyA9IGdldHRleHQoJ0xvYWRpbmcgcmVzdWx0c+KApicpO1xuICBASW5wdXQoJ2NvbHVtbnMnKSBzZXQgX2NvbHVtbnModmFsdWU6IERldmljZUdyaWRDb2x1bW5bXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5jb2x1bW5zID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXREZWZhdWx0Q29sdW1ucygpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoJ3BhZ2luYXRpb24nKSBzZXQgX3BhZ2luYXRpb24odmFsdWU6IFBhZ2luYXRpb24pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2luYXRpb24gPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdhY3Rpb25Db250cm9scycpIHNldCBfYWN0aW9uQ29udHJvbHModmFsdWU6IEFjdGlvbkNvbnRyb2xbXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hY3Rpb25Db250cm9scyA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRBY3Rpb25Db250cm9scygpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBzZWxlY3RhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgnYnVsa0FjdGlvbkNvbnRyb2xzJykgc2V0IF9idWxrQWN0aW9uQ29udHJvbHModmFsdWU6IEJ1bGtBY3Rpb25Db250cm9sW10pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuYnVsa0FjdGlvbkNvbnRyb2xzID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYnVsa0FjdGlvbkNvbnRyb2xzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgICB9XG4gIH1cbiAgQE91dHB1dCgpIG9uQ29sdW1uc0NoYW5nZTogRXZlbnRFbWl0dGVyPERldmljZUdyaWRDb2x1bW5bXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIERldmljZUdyaWRDb2x1bW5bXVxuICA+KCk7XG5cbiAgQElucHV0KClcbiAgc2VhcmNoVGV4dCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlcmluZ05hbWU6IHN0cmluZztcblxuICBjb2x1bW5zOiBEZXZpY2VHcmlkQ29sdW1uW107XG4gIHBhZ2luYXRpb246IFBhZ2luYXRpb24gPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXTtcbiAgYnVsa0FjdGlvbkNvbnRyb2xzOiBCdWxrQWN0aW9uQ29udHJvbFtdID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgc2VydmVyU2lkZURhdGFDYWxsYmFjazogYW55O1xuICByZWZyZXNoOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKERhdGFHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkYXRhR3JpZDogRGF0YUdyaWRDb21wb25lbnQ7XG5cbiAgcHJpdmF0ZSBzaXplQ291bnQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgc21hcnRHcm91cHNTZXJ2aWNlOiBTbWFydEdyb3Vwc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdWJBc3NldHNHcmlkU2VydmljZTogU3ViQXNzZXRzU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpbHRlcmluZ05hbWUpIHtcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXREZWZhdWx0Q29sdW1ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSBbXG4gICAgICAgIG5ldyBBc3NldFR5cGVHcmlkQ29sdW1uKHsgc29ydE9yZGVyOiAnZGVzYycgfSksXG4gICAgICAgIG5ldyBOYW1lRGV2aWNlR3JpZENvbHVtbih7XG4gICAgICAgICAgc29ydE9yZGVyOiAnYXNjJyxcbiAgICAgICAgICBmaWx0ZXI6IHsgZXh0ZXJuYWxGaWx0ZXJRdWVyeTogeyBuYW1lczogW3RoaXMuZmlsdGVyaW5nTmFtZV0gfSB9XG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgTW9kZWxEZXZpY2VHcmlkQ29sdW1uKCksXG4gICAgICAgIG5ldyBTZXJpYWxOdW1iZXJEZXZpY2VHcmlkQ29sdW1uKHsgdmlzaWJsZTogZmFsc2UgfSksXG4gICAgICAgIG5ldyBSZWdpc3RyYXRpb25EYXRlRGV2aWNlR3JpZENvbHVtbih7IHZpc2libGU6IGZhbHNlIH0pLFxuICAgICAgICBuZXcgU3lzdGVtSWREZXZpY2VHcmlkQ29sdW1uKHsgdmlzaWJsZTogZmFsc2UgfSksXG4gICAgICAgIG5ldyBJbWVpRGV2aWNlR3JpZENvbHVtbih7IHZpc2libGU6IGZhbHNlIH0pLFxuICAgICAgICBuZXcgQWxhcm1zRGV2aWNlR3JpZENvbHVtbigpXG4gICAgICBdO1xuICAgIH1cbiAgICB0aGlzLnNlcnZlclNpZGVEYXRhQ2FsbGJhY2sgPSB0aGlzLm9uRGF0YVNvdXJjZU1vZGlmaWVyLmJpbmQodGhpcyk7XG4gICAgdGhpcy5zZXRBY3Rpb25Db250cm9scygpO1xuICB9XG5cbiAgdHJhY2tCeU5hbWUoX2luZGV4LCBjb2x1bW46IERldmljZUdyaWRDb2x1bW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxuXG4gIGFzeW5jIG9uRGF0YVNvdXJjZU1vZGlmaWVyKFxuICAgIGRhdGFTb3VyY2VNb2RpZmllcjogRGF0YVNvdXJjZU1vZGlmaWVyXG4gICk6IFByb21pc2U8U2VydmVyU2lkZURhdGFSZXN1bHQ+IHtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgaWYgKGRhdGFTb3VyY2VNb2RpZmllci5zZWFyY2hUZXh0KSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2goXG4gICAgICAgIGRhdGFTb3VyY2VNb2RpZmllci5zZWFyY2hUZXh0LFxuICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvblxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0RGF0YShcbiAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMsXG4gICAgICAgIGRhdGFTb3VyY2VNb2RpZmllci5wYWdpbmF0aW9uLFxuICAgICAgICB1bmRlZmluZWRcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHsgcmVzLCBkYXRhLCBwYWdpbmcgfSA9IHJlc3BvbnNlO1xuICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXJPbmx5QXNzZXRzKGRhdGEpO1xuXG4gICAgaWYgKHBhZ2luZy5jdXJyZW50UGFnZSA9PT0gMSkge1xuICAgICAgdGhpcy5zaXplQ291bnQgPSAwO1xuICAgIH1cbiAgICB0aGlzLnNpemVDb3VudCArPSBmaWx0ZXJlZERhdGEubGVuZ3RoO1xuICAgIHRoaXMub25Db2x1bW5zQ2hhbmdlLmVtaXQoZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcyxcbiAgICAgIGRhdGE6IGZpbHRlcmVkRGF0YSxcbiAgICAgIHBhZ2luZyxcbiAgICAgIGZpbHRlcmVkU2l6ZTogdGhpcy5zaXplQ291bnQsXG4gICAgICBzaXplOiB1bmRlZmluZWRcbiAgICB9O1xuICB9XG5cbiAgc2V0QWN0aW9uQ29udHJvbHMoKSB7XG4gICAgY29uc3QgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSA9IFtdO1xuICAgIGNvbnN0IGRlbGV0ZUFjdGlvbjogQWN0aW9uQ29udHJvbCA9IHtcbiAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkRlbGV0ZSxcbiAgICAgIGNhbGxiYWNrOiAoYXNzZXQ6IFJvdykgPT4gdGhpcy5vbkRlbGV0ZUFzc2V0KGFzc2V0IGFzIElNYW5hZ2VkT2JqZWN0LCB0aGlzLnBhcmVudEdyb3VwKVxuICAgIH07XG4gICAgYWN0aW9uQ29udHJvbHMucHVzaChkZWxldGVBY3Rpb24pO1xuICAgIGlmICghdGhpcy5hY3Rpb25Db250cm9scykge1xuICAgICAgdGhpcy5hY3Rpb25Db250cm9scyA9IGFjdGlvbkNvbnRyb2xzO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcmluZyhcbiAgICBjb2x1bW5OYW1lczogc3RyaW5nW10sXG4gICAgYWN0aW9uOiB7XG4gICAgICB0eXBlOiBGaWx0ZXJpbmdBY3Rpb25UeXBlO1xuICAgICAgcGF5bG9hZD86IHsgZmlsdGVyaW5nTW9kaWZpZXI6IEZpbHRlcmluZ01vZGlmaWVyIH07XG4gICAgfVxuICApIHtcbiAgICBjb25zdCB7IHR5cGUgfSA9IGFjdGlvbjtcbiAgICBpZiAodHlwZSA9PT0gRmlsdGVyaW5nQWN0aW9uVHlwZS5SZXNldEZpbHRlcikge1xuICAgICAgdGhpcy5kYXRhR3JpZC5jbGVhckZpbHRlcnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRhR3JpZC51cGRhdGVGaWx0ZXJpbmcoY29sdW1uTmFtZXMsIGFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgY29uZmlnQ2hhbmdlKGNvbmZpZykge1xuICAgIHRoaXMuc2VhcmNoU2VydmljZS5zYXZlQ29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIG9uRGVsZXRlQXNzZXQoYXNzZXQsIHBhcmVudFJlZikge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIHNob3dXaXRoRGV2aWNlVXNlckNoZWNrYm94OiB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLnNob3VsZFNob3dXaXRoRGV2aWNlVXNlckNoZWNrYm94KGFzc2V0KSxcbiAgICAgIGFzc2V0LFxuICAgICAgc2hvd1dpdGhDYXNjYWRlQ2hlY2tib3g6XG4gICAgICAgICF0aGlzLnNtYXJ0R3JvdXBzU2VydmljZS5pc1NtYXJ0R3JvdXAoYXNzZXQpICYmXG4gICAgICAgICF0aGlzLnNtYXJ0R3JvdXBzU2VydmljZS5pc1NtYXJ0R3JvdXBWMihhc3NldClcbiAgICB9O1xuXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNob3coRGVsZXRlQXNzZXRzTW9kYWxDb21wb25lbnQsIHsgaW5pdGlhbFN0YXRlIH0pO1xuXG4gICAgbW9kYWxSZWYuY29udGVudC5jbG9zZVN1YmplY3Quc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQ6IERlbGV0ZU1vZGFsQ2hlY2tib3hlcykgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBhd2FpdCB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLmRlbGV0ZUFzc2V0KGFzc2V0LCBwYXJlbnRSZWYsIHJlc3VsdCk7XG4gICAgICAgIHRoaXMucmVmcmVzaC5lbWl0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -68,13 +68,15 @@ export class SearchService extends SubAssetsService {
|
|
|
68
68
|
* Returns the full-text search results.
|
|
69
69
|
*
|
|
70
70
|
* @param term The search term.
|
|
71
|
+
* @param pagination The currently used pagination.
|
|
71
72
|
*/
|
|
72
|
-
search(term) {
|
|
73
|
+
search(term, pagination = { currentPage: 1, pageSize: this.DEFAULT_PAGE_SIZE }) {
|
|
73
74
|
return this.inventoryService.list({
|
|
74
75
|
text: term,
|
|
75
76
|
withTotalPages: true,
|
|
76
|
-
pageSize:
|
|
77
|
-
withChildren: false
|
|
77
|
+
pageSize: pagination.pageSize,
|
|
78
|
+
withChildren: false,
|
|
79
|
+
currentPage: pagination.nextPage || 1
|
|
78
80
|
});
|
|
79
81
|
}
|
|
80
82
|
isRootDevice(mo) {
|
|
@@ -98,4 +100,4 @@ export class SearchService extends SubAssetsService {
|
|
|
98
100
|
SearchService.decorators = [
|
|
99
101
|
{ type: Injectable }
|
|
100
102
|
];
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSXpELE1BQU0sT0FBTyxhQUFjLFNBQVEsZ0JBQWdCO0lBRG5EOztRQUVZLDRCQUF1QixHQUFHLG9CQUFvQixDQUFDO1FBQy9DLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUNoQiw0QkFBdUIsR0FBRztZQUN6QyxlQUFlO1lBQ2YsWUFBWTtZQUNaLFNBQVM7WUFDVCx5QkFBeUI7WUFDekIsY0FBYztZQUNkLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGtEQUFrRDtZQUNsRCxxREFBcUQ7WUFDckQsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixpQ0FBaUM7U0FDbEMsQ0FBQztRQUNlLHdCQUFtQixHQUFHO1lBQ3JDLHVCQUF1QjtZQUN2QixjQUFjO1lBQ2QsZUFBZTtZQUNmLGNBQWM7WUFDZCx1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBQ3hCLGdCQUFnQjtZQUNoQix5QkFBeUI7WUFDekIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIseUJBQXlCO1lBQ3pCLDRCQUE0QjtZQUM1QixjQUFjO1NBQ2YsQ0FBQztRQUNlLHlCQUFvQixHQUFHLGNBQWMsQ0FBQztJQStEekQsQ0FBQztJQTdEQzs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsSUFBc0I7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsNEJBQTRCLENBQUMsT0FBTyxFQUFFLFVBQVU7UUFDOUMsTUFBTSxTQUFTLEdBQUc7WUFDaEIsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRTthQUM1QztTQUNGLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6RixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUNKLElBQVksRUFDWixhQUF5QixFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtRQUU3RSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDaEMsSUFBSSxFQUFFLElBQUk7WUFDVixjQUFjLEVBQUUsSUFBSTtZQUNwQixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDN0IsWUFBWSxFQUFFLEtBQUs7WUFDbkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQztTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUFDLEVBQUU7UUFDckIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxXQUFXLENBQUMsRUFBRTtRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxFQUFFO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sb0JBQW9CLENBQUMsRUFBRTtRQUM3QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVPLHdCQUF3QixDQUFDLEVBQUU7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDOzs7WUF2R0YsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgU3ViQXNzZXRzU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc3ViLWFzc2V0cyc7XG5pbXBvcnQgeyBmaW5kLCBnZXQsIGlzVW5kZWZpbmVkLCBzb21lIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2UgZXh0ZW5kcyBTdWJBc3NldHNTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIEdSSURfQ09ORklHX1NUT1JBR0VfS0VZID0gJ3NlYXJjaC1ncmlkLWNvbmZpZyc7XG4gIHByb3RlY3RlZCBERUZBVUxUX1BBR0VfU0laRSA9IDUwO1xuICBwcml2YXRlIHJlYWRvbmx5IEZSQUdNRU5UU19GT1JfTk9fREVWSUNFID0gW1xuICAgICdjOHlfRGFzaGJvYXJkJyxcbiAgICAnYzh5X1JlcG9ydCcsXG4gICAgJ2M4eV9LcGknLFxuICAgICdjOHlfRXhwb3J0Q29uZmlndXJhdGlvbicsXG4gICAgJ2M4eV9Jc0JpbmFyeScsXG4gICAgJ2M4eV9Ob0RldmljZScsXG4gICAgJ2M4eV9Jc0RldmljZUdyb3VwJyxcbiAgICAnYzh5X0dyb3VwJyxcbiAgICAnY29tX2N1bXVsb2NpdHlfbW9kZWxfc21hcnRyZXN0X1NtYXJ0UmVzdFRlbXBsYXRlJyxcbiAgICAnY29tX2N1bXVsb2NpdHlfbW9kZWxfZGV2aWNlc2ltdWxhdG9yX1NlbnNvclRlbXBsYXRlJyxcbiAgICAnX2F0dGFjaG1lbnRzJyxcbiAgICAnYzh5X0lzRGV2aWNlVHlwZScsXG4gICAgJ2M4eV9vYmplY3RtYXBwaW5nX09iamVjdE1hcHBpbmcnXG4gIF07XG4gIHByaXZhdGUgcmVhZG9ubHkgVFlQRVNfRk9SX05PX0RFVklDRSA9IFtcbiAgICAnYzh5X0NvbmZpZ3VyYXRpb25EdW1wJyxcbiAgICAnYzh5X0Zpcm13YXJlJyxcbiAgICAnYzh5X1NtYXJ0UnVsZScsXG4gICAgJ2M4eV9Tb2Z0d2FyZScsXG4gICAgJ2ltcGFjdF9vYmplY3RfbWFwcGluZycsXG4gICAgJ2M4eV9Vc2VyUHJlZmVyZW5jZScsXG4gICAgJ2M4eV9UZW5hbnRQb2xpY3knLFxuICAgICdjOHlfUHJpdmF0ZVNtYXJ0UnVsZScsXG4gICAgJ2M4eV9TbWFydFJlc3QyVGVtcGxhdGUnLFxuICAgICdjOHlfSnNvblNjaGVtYScsXG4gICAgJ2M4eV9EZXZpY2VTaGVsbFRlbXBsYXRlJyxcbiAgICAnYzh5X0RlbW9TdGF0dXMnLFxuICAgICdjOHlfRGF0YUJyb2tlcicsXG4gICAgJ2M4eV9BcHBsaWNhdGlvbl8nLFxuICAgICdicmFuZGluZ1ZhcmlhYmxlcycsXG4gICAgJ2M4eV9EZXZpY2VTaW11bGF0b3InLFxuICAgICdjOHlfQ2VydGlmaWNhdGVNZXRhZGF0YScsXG4gICAgJ2x3bTJtX3Bvc3RfcmVnaXN0cmF0aW9uJyxcbiAgICAnYzh5X21pY3Jvc2VydmljZV9tYW5pZmVzdF8nLFxuICAgICdjOHlfQ2VwQWdlbnQnXG4gIF07XG4gIHByaXZhdGUgcmVhZG9ubHkgREVWSUNFX0ZSQUdNRU5UX1RZUEUgPSAnYzh5X0lzRGV2aWNlJztcblxuICAvKipcbiAgICogV2lsbCByZXR1cm4gb25seSB2YWxpZCBhc3NldHMgKGdyb3VwcyBhbmQgZGV2aWNlcykgYW5kIGZpbHRlciBvdXRcbiAgICogbm9uZSB1c2VmdWwgaW52ZW50b3JpZXMgKGUuZy4gYzh5X0pzb25TY2hlbWEpLlxuICAgKiBAcGFyYW0gZGF0YSBBbGwgbWFuYWdlZCBvYmplY3RzIHRoYXQgc2hvdWxkIGJlIGZpbHRlcmVkLlxuICAgKi9cbiAgZmlsdGVyT25seUFzc2V0cyhkYXRhOiBJTWFuYWdlZE9iamVjdFtdKSB7XG4gICAgcmV0dXJuIGRhdGEuZmlsdGVyKG1vID0+IG1vLmM4eV9Jc0RldmljZUdyb3VwIHx8IHRoaXMuaXNBbnlEZXZpY2UobW8pKTtcbiAgfVxuXG4gIGJ1aWxkQ29tYmluZWRSb290UXVlcnlGaWx0ZXIoY29sdW1ucywgcGFnaW5hdGlvbikge1xuICAgIGNvbnN0IHJvb3RRdWVyeSA9IHtcbiAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgIF9fYW5kOiB7IF9fbm90OiB7IF9faGFzOiBgYzh5X0lzQmluYXJ5YCB9IH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHVzZXJRdWVyeSA9IHRoaXMuZ2V0UXVlcnlPYmooY29sdW1ucywgcGFnaW5hdGlvbik7XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gdGhpcy5xdWVyaWVzVXRpbC5hZGRPcmRlcmJ5cyhyb290UXVlcnksIHVzZXJRdWVyeS5fX29yZGVyYnksICdhcHBlbmQnKTtcbiAgICBjb25zdCBmdWxsUXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmFkZEFuZEZpbHRlcihxdWVyeVBhcnQsIHVzZXJRdWVyeS5fX2ZpbHRlcik7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeShmdWxsUXVlcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZ1bGwtdGV4dCBzZWFyY2ggcmVzdWx0cy5cbiAgICpcbiAgICogQHBhcmFtIHRlcm0gVGhlIHNlYXJjaCB0ZXJtLlxuICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBUaGUgY3VycmVudGx5IHVzZWQgcGFnaW5hdGlvbi5cbiAgICovXG4gIHNlYXJjaChcbiAgICB0ZXJtOiBzdHJpbmcsXG4gICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHsgY3VycmVudFBhZ2U6IDEsIHBhZ2VTaXplOiB0aGlzLkRFRkFVTFRfUEFHRV9TSVpFIH1cbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5U2VydmljZS5saXN0KHtcbiAgICAgIHRleHQ6IHRlcm0sXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICAgIHBhZ2VTaXplOiBwYWdpbmF0aW9uLnBhZ2VTaXplLFxuICAgICAgd2l0aENoaWxkcmVuOiBmYWxzZSxcbiAgICAgIGN1cnJlbnRQYWdlOiBwYWdpbmF0aW9uLm5leHRQYWdlIHx8IDFcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSb290RGV2aWNlKG1vKSB7XG4gICAgcmV0dXJuICEhbW9bdGhpcy5ERVZJQ0VfRlJBR01FTlRfVFlQRV07XG4gIH1cblxuICBwcml2YXRlIGlzQW55RGV2aWNlKG1vKSB7XG4gICAgY29uc3QgaXNEZXZpY2UgPSB0aGlzLmlzUm9vdERldmljZShtbykgfHwgIXRoaXMuaGFzRnJhZ21lbnRPclR5cGVGcm9tQmxhY2tsaXN0KG1vKTtcbiAgICByZXR1cm4gaXNEZXZpY2U7XG4gIH1cblxuICBwcml2YXRlIGhhc0ZyYWdtZW50T3JUeXBlRnJvbUJsYWNrbGlzdChtbykge1xuICAgIHJldHVybiB0aGlzLmhhc1R5cGVGcm9tQmxhY2tsaXN0KG1vKSB8fCB0aGlzLmhhc0ZyYWdtZW50RnJvbUJsYWNrbGlzdChtbyk7XG4gIH1cblxuICBwcml2YXRlIGhhc1R5cGVGcm9tQmxhY2tsaXN0KG1vKSB7XG4gICAgY29uc3QgbW9UeXBlID0gZ2V0KG1vLCAndHlwZScsICcnKTtcbiAgICByZXR1cm4gc29tZSh0aGlzLlRZUEVTX0ZPUl9OT19ERVZJQ0UsIHR5cGUgPT4gbW9UeXBlLmluY2x1ZGVzKHR5cGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRnJhZ21lbnRGcm9tQmxhY2tsaXN0KG1vKSB7XG4gICAgcmV0dXJuIGZpbmQodGhpcy5GUkFHTUVOVFNfRk9SX05PX0RFVklDRSwgZiA9PiAhaXNVbmRlZmluZWQobW9bZl0pKTtcbiAgfVxufVxuIl19
|