@c8y/ngx-components 1011.0.25 → 1011.0.26

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.
@@ -119,7 +119,7 @@ export class TypeaheadComponent {
119
119
  TypeaheadComponent.decorators = [
120
120
  { type: Component, args: [{
121
121
  selector: 'c8y-typeahead',
122
- template: "<div\n class=\"c8y-child-assets-selector dropdown\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n",
122
+ template: "<div\n class=\"c8y-child-assets-selector dropdown fit-w\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n",
123
123
  providers: [
124
124
  {
125
125
  provide: NG_VALUE_ACCESSOR,
@@ -151,4 +151,4 @@ TypeaheadComponent.propDecorators = {
151
151
  onSearch: [{ type: Output }],
152
152
  onIconClick: [{ type: Output }]
153
153
  };
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2VsZWN0L3R5cGVhaGVhZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUdULFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQnpFLE1BQU0sT0FBTyxrQkFBa0I7SUFoQi9CO1FBc0JFLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFNakMsb0JBQWUsR0FBVyxNQUFNLENBQUM7UUFHakMsU0FBSSxHQUFXLFlBQVksQ0FBQztRQUc1QixTQUFJLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUdwQyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBRzVCLGFBQVEsR0FBZ0I7WUFDdEIsRUFBRSxFQUFFLElBQUk7U0FDVCxDQUFDO1FBR0YsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHdEMs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O3VCQUM1QyxTQUFTLFNBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTttQkFDdkMsZUFBZSxTQUFDLGlCQUFpQjt1QkFFakMsS0FBSzt1QkFHTCxLQUFLOytCQUdMLEtBQUs7MEJBR0wsS0FBSzs4QkFHTCxLQUFLO21CQUdMLEtBQUs7bUJBR0wsS0FBSzt3QkFHTCxLQUFLO3dCQUdMLEtBQUs7dUJBR0wsS0FBSzt1QkFLTCxNQUFNOzBCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSUlkZW50aWZpZWQgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2xpc3QtZ3JvdXAvbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBmaW5kSW5kZXgsIGdldCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXR5cGVhaGVhZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90eXBlYWhlYWQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHlwZWFoZWFkQ29tcG9uZW50KVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR5cGVhaGVhZENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUeXBlYWhlYWRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWFyY2hDb250cm9sOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0SXRlbUNvbXBvbmVudCkgbGlzdDogUXVlcnlMaXN0PExpc3RJdGVtQ29tcG9uZW50PjtcblxuICBASW5wdXQoKVxuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWxsb3dGcmVlRW50cmllczogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBkaXNwbGF5UHJvcGVydHk6IHN0cmluZyA9ICduYW1lJztcblxuICBASW5wdXQoKVxuICBpY29uOiBzdHJpbmcgPSAnY2FyZXQtZG93bic7XG5cbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nID0gdGhpcy5kaXNwbGF5UHJvcGVydHk7XG5cbiAgQElucHV0KClcbiAgYXV0b0Nsb3NlOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBjb250YWluZXI6ICcnIHwgJ2JvZHknID0gJyc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0ZWQ6IElJZGVudGlmaWVkID0ge1xuICAgIGlkOiBudWxsXG4gIH07XG5cbiAgQE91dHB1dCgpXG4gIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uSWNvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBvbkNoYW5nZTogKG5hbWUpID0+IHZvaWQ7XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgS0VZQ09ERV9VUCA9IDM4O1xuICBwcml2YXRlIHJlYWRvbmx5IEtFWUNPREVfRE9XTiA9IDQwO1xuICBwcml2YXRlIHJlYWRvbmx5IEtFWUNPREVfVEFCID0gOTtcbiAgcHJpdmF0ZSByZWFkb25seSBLRVlDT0RFX0VOVEVSID0gMTM7XG4gIHByaXZhdGUgcmVhZG9ubHkgS0VZQ09ERV9FU0MgPSAyNztcblxuICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBkb0JsdXIoKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldERpc3BsYXlQcm9wZXJ0eSgpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMuc2VsZWN0ZWQsIHRoaXMuZGlzcGxheVByb3BlcnR5LCAnJyk7XG4gIH1cblxuICBvblNob3duKCkge1xuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChlOiBhbnkpID0+IHRoaXMuaGFuZGxlS2V5Ym9hcmQoZSkpLFxuICAgICAgICBmaWx0ZXIoKGU6IGFueSkgPT4gZSksXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgICBtYXAoKGU6IGFueSkgPT4gZS50YXJnZXQudmFsdWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHtcbiAgICAgICAgICBpZDogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBzZXQodGhpcy5zZWxlY3RlZCwgdGhpcy5kaXNwbGF5UHJvcGVydHksIHZhbHVlIHx8ICcnKTtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBoYW5kbGVLZXlib2FyZChldmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIGlmIChcbiAgICAgIFt0aGlzLktFWUNPREVfRU5URVIsIHRoaXMuS0VZQ09ERV9ET1dOLCB0aGlzLktFWUNPREVfVEFCLCB0aGlzLktFWUNPREVfVVBdLmluY2x1ZGVzKGtleUNvZGUpXG4gICAgKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubGlzdC50b0FycmF5KCk7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleChpdGVtcywgaXRlbSA9PiBpdGVtLmFjdGl2ZSk7XG4gICAgICBpZiAoa2V5Q29kZSA9PT0gdGhpcy5LRVlDT0RFX0VOVEVSIHx8IGtleUNvZGUgPT09IHRoaXMuS0VZQ09ERV9UQUIpIHtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGl0ZW1zW2luZGV4XS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hDb250cm9sLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5zaG93KCk7XG4gICAgICAgIGNvbnN0IHVwT3JEb3duID0ga2V5Q29kZSA9PT0gdGhpcy5LRVlDT0RFX0RPV04gPyAxIDogLTE7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgaXRlbXNbaW5kZXhdLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0TmV4dEl0ZW1PbktleWJvYXJkTW92ZShpdGVtcywgaW5kZXgsIHVwT3JEb3duKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT09IHRoaXMuS0VZQ09ERV9FU0MgJiYgdGhpcy5hdXRvQ2xvc2UpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5kcm9wZG93bi5oaWRlKCk7XG4gICAgICB0aGlzLnNlYXJjaENvbnRyb2wubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJvcGRvd24uc2hvdygpO1xuICAgIH1cbiAgICByZXR1cm4gZXZlbnQ7XG4gIH1cblxuICB2YWxpZGF0ZShjdHJsOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5nZXREaXNwbGF5UHJvcGVydHkoKSkge1xuICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYWxsb3dGcmVlRW50cmllcyAmJiB0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWQuaWQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IG5vdEV4aXN0aW5nOiB0cnVlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdE5leHRJdGVtT25LZXlib2FyZE1vdmUoaXRlbXM6IExpc3RJdGVtQ29tcG9uZW50W10sIGluZGV4OiBhbnksIHVwT3JEb3duOiBudW1iZXIpIHtcbiAgICBpZiAoaXRlbXNbaW5kZXggKyB1cE9yRG93bl0pIHtcbiAgICAgIGlmICghaXRlbXNbaW5kZXggKyB1cE9yRG93bl0uc2VsZWN0YWJsZSkge1xuICAgICAgICB0aGlzLnNlbGVjdE5leHRJdGVtT25LZXlib2FyZE1vdmUoaXRlbXMsIGluZGV4ICsgdXBPckRvd24sIHVwT3JEb3duKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaXRlbXNbaW5kZXggKyB1cE9yRG93bl0uYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWFoZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc2VsZWN0L3R5cGVhaGVhZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUdULFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQnpFLE1BQU0sT0FBTyxrQkFBa0I7SUFoQi9CO1FBc0JFLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFNakMsb0JBQWUsR0FBVyxNQUFNLENBQUM7UUFHakMsU0FBSSxHQUFXLFlBQVksQ0FBQztRQUc1QixTQUFJLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUdwQyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBRzVCLGFBQVEsR0FBZ0I7WUFDdEIsRUFBRSxFQUFFLElBQUk7U0FDVCxDQUFDO1FBR0YsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHdEMs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O3VCQUM1QyxTQUFTLFNBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTttQkFDdkMsZUFBZSxTQUFDLGlCQUFpQjt1QkFFakMsS0FBSzt1QkFHTCxLQUFLOytCQUdMLEtBQUs7MEJBR0wsS0FBSzs4QkFHTCxLQUFLO21CQUdMLEtBQUs7bUJBR0wsS0FBSzt3QkFHTCxLQUFLO3dCQUdMLEtBQUs7dUJBR0wsS0FBSzt1QkFLTCxNQUFNOzBCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIFF1ZXJ5TGlzdCxcbiAgZm9yd2FyZFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSUlkZW50aWZpZWQgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2xpc3QtZ3JvdXAvbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBmaW5kSW5kZXgsIGdldCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXR5cGVhaGVhZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90eXBlYWhlYWQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHlwZWFoZWFkQ29tcG9uZW50KVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFR5cGVhaGVhZENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUeXBlYWhlYWRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQFZpZXdDaGlsZCgnc2VhcmNoQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWFyY2hDb250cm9sOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZTtcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0SXRlbUNvbXBvbmVudCkgbGlzdDogUXVlcnlMaXN0PExpc3RJdGVtQ29tcG9uZW50PjtcblxuICBASW5wdXQoKVxuICByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgYWxsb3dGcmVlRW50cmllczogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBkaXNwbGF5UHJvcGVydHk6IHN0cmluZyA9ICduYW1lJztcblxuICBASW5wdXQoKVxuICBpY29uOiBzdHJpbmcgPSAnY2FyZXQtZG93bic7XG5cbiAgQElucHV0KClcbiAgbmFtZTogc3RyaW5nID0gdGhpcy5kaXNwbGF5UHJvcGVydHk7XG5cbiAgQElucHV0KClcbiAgYXV0b0Nsb3NlOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBjb250YWluZXI6ICcnIHwgJ2JvZHknID0gJyc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0ZWQ6IElJZGVudGlmaWVkID0ge1xuICAgIGlkOiBudWxsXG4gIH07XG5cbiAgQE91dHB1dCgpXG4gIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uSWNvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBvbkNoYW5nZTogKG5hbWUpID0+IHZvaWQ7XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgS0VZQ09ERV9VUCA9IDM4O1xuICBwcml2YXRlIHJlYWRvbmx5IEtFWUNPREVfRE9XTiA9IDQwO1xuICBwcml2YXRlIHJlYWRvbmx5IEtFWUNPREVfVEFCID0gOTtcbiAgcHJpdmF0ZSByZWFkb25seSBLRVlDT0RFX0VOVEVSID0gMTM7XG4gIHByaXZhdGUgcmVhZG9ubHkgS0VZQ09ERV9FU0MgPSAyNztcblxuICB3cml0ZVZhbHVlKHZhbHVlKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBkb0JsdXIoKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldERpc3BsYXlQcm9wZXJ0eSgpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMuc2VsZWN0ZWQsIHRoaXMuZGlzcGxheVByb3BlcnR5LCAnJyk7XG4gIH1cblxuICBvblNob3duKCkge1xuICAgIHRoaXMuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuc2VhcmNoQ29udHJvbC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChlOiBhbnkpID0+IHRoaXMuaGFuZGxlS2V5Ym9hcmQoZSkpLFxuICAgICAgICBmaWx0ZXIoKGU6IGFueSkgPT4gZSksXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgICBtYXAoKGU6IGFueSkgPT4gZS50YXJnZXQudmFsdWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHtcbiAgICAgICAgICBpZDogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBzZXQodGhpcy5zZWxlY3RlZCwgdGhpcy5kaXNwbGF5UHJvcGVydHksIHZhbHVlIHx8ICcnKTtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBoYW5kbGVLZXlib2FyZChldmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIGlmIChcbiAgICAgIFt0aGlzLktFWUNPREVfRU5URVIsIHRoaXMuS0VZQ09ERV9ET1dOLCB0aGlzLktFWUNPREVfVEFCLCB0aGlzLktFWUNPREVfVVBdLmluY2x1ZGVzKGtleUNvZGUpXG4gICAgKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubGlzdC50b0FycmF5KCk7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbmRJbmRleChpdGVtcywgaXRlbSA9PiBpdGVtLmFjdGl2ZSk7XG4gICAgICBpZiAoa2V5Q29kZSA9PT0gdGhpcy5LRVlDT0RFX0VOVEVSIHx8IGtleUNvZGUgPT09IHRoaXMuS0VZQ09ERV9UQUIpIHtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGl0ZW1zW2luZGV4XS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hDb250cm9sLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kcm9wZG93bi5zaG93KCk7XG4gICAgICAgIGNvbnN0IHVwT3JEb3duID0ga2V5Q29kZSA9PT0gdGhpcy5LRVlDT0RFX0RPV04gPyAxIDogLTE7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgaXRlbXNbaW5kZXhdLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0TmV4dEl0ZW1PbktleWJvYXJkTW92ZShpdGVtcywgaW5kZXgsIHVwT3JEb3duKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT09IHRoaXMuS0VZQ09ERV9FU0MgJiYgdGhpcy5hdXRvQ2xvc2UpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5kcm9wZG93bi5oaWRlKCk7XG4gICAgICB0aGlzLnNlYXJjaENvbnRyb2wubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJvcGRvd24uc2hvdygpO1xuICAgIH1cbiAgICByZXR1cm4gZXZlbnQ7XG4gIH1cblxuICB2YWxpZGF0ZShjdHJsOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy5nZXREaXNwbGF5UHJvcGVydHkoKSkge1xuICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYWxsb3dGcmVlRW50cmllcyAmJiB0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2VsZWN0ZWQuaWQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IG5vdEV4aXN0aW5nOiB0cnVlIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdE5leHRJdGVtT25LZXlib2FyZE1vdmUoaXRlbXM6IExpc3RJdGVtQ29tcG9uZW50W10sIGluZGV4OiBhbnksIHVwT3JEb3duOiBudW1iZXIpIHtcbiAgICBpZiAoaXRlbXNbaW5kZXggKyB1cE9yRG93bl0pIHtcbiAgICAgIGlmICghaXRlbXNbaW5kZXggKyB1cE9yRG93bl0uc2VsZWN0YWJsZSkge1xuICAgICAgICB0aGlzLnNlbGVjdE5leHRJdGVtT25LZXlib2FyZE1vdmUoaXRlbXMsIGluZGV4ICsgdXBPckRvd24sIHVwT3JEb3duKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaXRlbXNbaW5kZXggKyB1cE9yRG93bl0uYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -12,13 +12,20 @@ export class LpwanAssignDeviceProtocolComponent {
12
12
  this.alertService = alertService;
13
13
  this.router = router;
14
14
  this.inventoryService = inventoryService;
15
- this.filterCurrentProtocol = pipe(map((protocols) => protocols.filter(protocol => !this.currentProtocol || this.currentProtocol.id !== protocol.id)));
15
+ this.filterProtocols = pipe();
16
+ this.pattern = '';
16
17
  }
17
18
  ngOnInit() {
18
19
  return __awaiter(this, void 0, void 0, function* () {
19
20
  yield this.reload();
21
+ this.setPipe('');
20
22
  });
21
23
  }
24
+ setPipe(filterStr) {
25
+ this.pattern = filterStr;
26
+ this.filterProtocols = pipe(map((protocols) => protocols.filter(protocol => (!this.currentProtocol || this.currentProtocol.id !== protocol.id) &&
27
+ (!filterStr || protocol.name.toLowerCase().indexOf(filterStr.toLowerCase()) > -1))));
28
+ }
22
29
  reload() {
23
30
  return __awaiter(this, void 0, void 0, function* () {
24
31
  this.loading = true;
@@ -73,7 +80,7 @@ export class LpwanAssignDeviceProtocolComponent {
73
80
  LpwanAssignDeviceProtocolComponent.decorators = [
74
81
  { type: Component, args: [{
75
82
  selector: 'set-device-protocol',
76
- template: "<form #lpwanSetDeviceProtocolForm=\"ngForm\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"card\">\n <div class=\"card-header separator\">\n <h4 class=\"card-title\">\n {{ 'LPWAN device protocol' | translate }}\n </h4>\n </div>\n <div *ngIf=\"loading\" class=\"card-block\">\n <div class=\"p-relative\" style=\"min-height: 40px; min-width: 55px;\">\n <div class=\"spinner\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n </div>\n </div>\n <span translate>Loading</span>\n </div>\n <div *ngIf=\"!loading\">\n <div class=\"card-block\">\n <div class=\"form-group\">\n <label translate>Current device protocol</label>\n <p class=\"form-control-static\" *ngIf=\"!currentProtocol\">\n {{ device.type }}\n </p>\n <p class=\"form-control-static\" *ngIf=\"currentProtocol\">\n {{ currentProtocol.name }}\n </p>\n </div>\n <div class=\"form-group\">\n <label translate>New device protocol</label>\n <div class=\"c8y-select-wrapper\">\n <select class=\"form-control\" [(ngModel)]=\"newProtocol\" name=\"newProtocol\" required>\n <option *ngIf=\"!newProtocol\" [ngValue]=\"null\">\n {{ 'Select device protocol' | translate }}\n </option>\n <option\n *c8yFor=\"let protocol of availableProtocols; pipe: filterCurrentProtocol\"\n [ngValue]=\"protocol\"\n >\n {{ protocol.name }}\n </option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n title=\"{{ 'Apply' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"apply(newProtocol)\"\n [disabled]=\"!lpwanSetDeviceProtocolForm.dirty\"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</form>\n\u200C\n"
83
+ template: "<form #lpwanSetDeviceProtocolForm=\"ngForm\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"card card--fullpage\">\n <div class=\"card-header separator\">\n <h4 class=\"card-title\">\n {{ 'LPWAN device protocol' | translate }}\n </h4>\n </div>\n <div class=\"p-16\">\n <div *ngIf=\"loading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!loading\">\n <div class=\"form-group\">\n <label translate>Current device protocol</label>\n <p class=\"form-control-static\" *ngIf=\"!currentProtocol\">\n {{ device.type }}\n </p>\n <p class=\"form-control-static\" *ngIf=\"currentProtocol\">\n {{ currentProtocol.name }}\n </p>\n </div>\n <c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"newProtocol\"\n placeholder=\"{{ 'Select new device protocol' | translate }}\"\n (onSearch)=\"setPipe($event)\"\n name=\"newProtocol\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n *c8yFor=\"\n let protocol of availableProtocols;\n loadMore: 'hidden';\n pipe: filterProtocols\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"newProtocol = protocol; setPipe('')\"\n >\n <c8y-highlight [text]=\"protocol.name\" [pattern]=\"pattern\"></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages\n ><c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the protocols.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"apply(newProtocol)\"\n [disabled]=\"!newProtocol\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</form>\n"
77
84
  },] }
78
85
  ];
79
86
  LpwanAssignDeviceProtocolComponent.ctorParameters = () => [
@@ -85,4 +92,4 @@ LpwanAssignDeviceProtocolComponent.ctorParameters = () => [
85
92
  LpwanAssignDeviceProtocolComponent.propDecorators = {
86
93
  lpwanSetDeviceProtocolForm: [{ type: ViewChild, args: ['lpwanSetDeviceProtocolForm', { static: false },] }]
87
94
  };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm90b2NvbC1scHdhbi9scHdhbi1zZXQtZGV2aWNlLXByb3RvY29sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQWtCLGdCQUFnQixFQUFlLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9yQyxNQUFNLE9BQU8sa0NBQWtDO0lBYzdDLFlBQ1UsWUFBMkMsRUFDM0MsWUFBMEIsRUFDMUIsTUFBYyxFQUNkLGdCQUFrQztRQUhsQyxpQkFBWSxHQUFaLFlBQVksQ0FBK0I7UUFDM0MsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFYNUMsMEJBQXFCLEdBQUcsSUFBSSxDQUMxQixHQUFHLENBQUMsQ0FBQyxTQUEyQixFQUFFLEVBQUUsQ0FDbEMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQy9GLENBQ0YsQ0FBQztJQVFFLENBQUM7SUFDQyxRQUFROztZQUNaLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLENBQUM7S0FBQTtJQUVLLE1BQU07O1lBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3JGLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNoRjtZQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDeEM7b0JBQVM7Z0JBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDdEI7UUFDSCxDQUFDO0tBQUE7SUFFSyxVQUFVOztZQUNkLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQztLQUFBO0lBRUssS0FBSyxDQUFDLGdCQUFnQjs7WUFDMUIsSUFBSTtnQkFDRixNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUM7Z0JBQzVHLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLFNBQVMsRUFBRTtvQkFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ3JCO2FBQ0Y7WUFBQyxPQUFPLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO2FBQ3JFO1FBQ0gsQ0FBQztLQUFBO0lBRUssWUFBWTs7WUFDaEIsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNuRDtZQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNYLDhDQUE4QzthQUMvQztRQUNILENBQUM7S0FBQTs7O1lBckVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQiwrdUVBQXlEO2FBQzFEOzs7WUFWUSw2QkFBNkI7WUFDN0IsWUFBWTtZQUVaLE1BQU07WUFEVSxnQkFBZ0I7Ozt5Q0FzQnRDLFNBQVMsU0FBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMcHdhblNldERldmljZVByb3RvY29sU2VydmljZSB9IGZyb20gJy4vbHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2V0LWRldmljZS1wcm90b2NvbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9scHdhbi1zZXQtZGV2aWNlLXByb3RvY29sLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIExwd2FuQXNzaWduRGV2aWNlUHJvdG9jb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0O1xuICBjdXJyZW50UHJvdG9jb2w6IElNYW5hZ2VkT2JqZWN0O1xuICBhdmFpbGFibGVQcm90b2NvbHM6IElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0PjtcbiAgbmV3UHJvdG9jb2w6IElNYW5hZ2VkT2JqZWN0O1xuXG4gIGZpbHRlckN1cnJlbnRQcm90b2NvbCA9IHBpcGUoXG4gICAgbWFwKChwcm90b2NvbHM6IElNYW5hZ2VkT2JqZWN0W10pID0+XG4gICAgICBwcm90b2NvbHMuZmlsdGVyKHByb3RvY29sID0+ICF0aGlzLmN1cnJlbnRQcm90b2NvbCB8fCB0aGlzLmN1cnJlbnRQcm90b2NvbC5pZCAhPT0gcHJvdG9jb2wuaWQpXG4gICAgKVxuICApO1xuICBAVmlld0NoaWxkKCdscHdhblNldERldmljZVByb3RvY29sRm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KSBscHdhblNldERldmljZVByb3RvY29sRm9ybTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbHB3YW5TZXJ2aWNlOiBMcHdhblNldERldmljZVByb3RvY29sU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnlTZXJ2aWNlOiBJbnZlbnRvcnlTZXJ2aWNlXG4gICkgeyB9XG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGF3YWl0IHRoaXMucmVsb2FkKCk7XG4gIH1cblxuICBhc3luYyByZWxvYWQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm5ld1Byb3RvY29sID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkRGV2aWNlKCk7XG4gICAgICB0aGlzLmF2YWlsYWJsZVByb3RvY29scyA9IGF3YWl0IHRoaXMubHB3YW5TZXJ2aWNlLmdldEF2YWlsYWJsZVByb3RvY29scyh0aGlzLmRldmljZSk7XG4gICAgICB0aGlzLmN1cnJlbnRQcm90b2NvbCA9IGF3YWl0IHRoaXMubHB3YW5TZXJ2aWNlLmdldEN1cnJlbnRQcm90b2NvbCh0aGlzLmRldmljZSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkRGV2aWNlKCkge1xuICAgIGNvbnN0IGRldmljZUlkID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsLm1hdGNoKC9cXGQrLylbMF07XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKGRldmljZUlkKTtcbiAgICB0aGlzLmRldmljZSA9IGRhdGE7XG4gIH1cblxuICBhc3luYyBhcHBseShzZWxlY3RlZFByb3RvY29sKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vVXBkYXRlZCA9IChhd2FpdCB0aGlzLmxwd2FuU2VydmljZS5hcHBseVByb3RvY29sKHRoaXMuZGV2aWNlLCBzZWxlY3RlZFByb3RvY29sKSkucmVzLnN0YXR1cyA9PT0gMjAwO1xuICAgICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnRGV2aWNlIHByb3RvY29sIHNldC4nKSk7XG4gICAgICB0aGlzLmxwd2FuU2V0RGV2aWNlUHJvdG9jb2xGb3JtLnJlc2V0KCdkaXJ0eScpO1xuICAgICAgaWYgKG1vVXBkYXRlZCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoZ2V0dGV4dCgnQ291bGQgbm90IHNldCBkZXZpY2UgcHJvdG9jb2wuJykpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hDYWNoZSgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5scHdhblNlcnZpY2UucmVmcmVzaENhY2hlKHRoaXMuZGV2aWNlKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gZG8gbm90aGluZyAocmVmcmVzaGluZyBpcyBhbiBvcHRpb25hbCBzdGVwKVxuICAgIH1cbiAgfVxufVxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm90b2NvbC1scHdhbi9scHdhbi1zZXQtZGV2aWNlLXByb3RvY29sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQWtCLGdCQUFnQixFQUFlLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9yQyxNQUFNLE9BQU8sa0NBQWtDO0lBWTdDLFlBQ1UsWUFBMkMsRUFDM0MsWUFBMEIsRUFDMUIsTUFBYyxFQUNkLGdCQUFrQztRQUhsQyxpQkFBWSxHQUFaLFlBQVksQ0FBK0I7UUFDM0MsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFUNUMsb0JBQWUsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQUcsRUFBRSxDQUFDO0lBU1QsQ0FBQztJQUNDLFFBQVE7O1lBQ1osTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQixDQUFDO0tBQUE7SUFFRCxPQUFPLENBQUMsU0FBaUI7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FB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WTtZQUVaLE1BQU07WUFEVSxnQkFBZ0I7Ozt5Q0FvQnRDLFNBQVMsU0FBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMcHdhblNldERldmljZVByb3RvY29sU2VydmljZSB9IGZyb20gJy4vbHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5zZXJ2aWNlJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgSU1hbmFnZWRPYmplY3QsIEludmVudG9yeVNlcnZpY2UsIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2V0LWRldmljZS1wcm90b2NvbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9scHdhbi1zZXQtZGV2aWNlLXByb3RvY29sLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIExwd2FuQXNzaWduRGV2aWNlUHJvdG9jb2xDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBkZXZpY2U6IElNYW5hZ2VkT2JqZWN0O1xuICBjdXJyZW50UHJvdG9jb2w6IElNYW5hZ2VkT2JqZWN0O1xuICBhdmFpbGFibGVQcm90b2NvbHM6IElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0PjtcbiAgbmV3UHJvdG9jb2w6IElNYW5hZ2VkT2JqZWN0O1xuXG4gIGZpbHRlclByb3RvY29scyA9IHBpcGUoKTtcbiAgcGF0dGVybiA9ICcnO1xuXG4gIEBWaWV3Q2hpbGQoJ2xwd2FuU2V0RGV2aWNlUHJvdG9jb2xGb3JtJywgeyBzdGF0aWM6IGZhbHNlIH0pIGxwd2FuU2V0RGV2aWNlUHJvdG9jb2xGb3JtOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBscHdhblNlcnZpY2U6IExwd2FuU2V0RGV2aWNlUHJvdG9jb2xTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2VcbiAgKSB7IH1cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgICB0aGlzLnNldFBpcGUoJycpO1xuICB9XG5cbiAgc2V0UGlwZShmaWx0ZXJTdHI6IHN0cmluZykge1xuICAgIHRoaXMucGF0dGVybiA9IGZpbHRlclN0cjtcbiAgICB0aGlzLmZpbHRlclByb3RvY29scyA9IHBpcGUoXG4gICAgICBtYXAoKHByb3RvY29sczogSU1hbmFnZWRPYmplY3RbXSkgPT5cbiAgICAgICAgcHJvdG9jb2xzLmZpbHRlcihcbiAgICAgICAgICBwcm90b2NvbCA9PlxuICAgICAgICAgICAgKCF0aGlzLmN1cnJlbnRQcm90b2NvbCB8fCB0aGlzLmN1cnJlbnRQcm90b2NvbC5pZCAhPT0gcHJvdG9jb2wuaWQpICYmXG4gICAgICAgICAgICAoIWZpbHRlclN0ciB8fCBwcm90b2NvbC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihmaWx0ZXJTdHIudG9Mb3dlckNhc2UoKSkgPiAtMSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBhc3luYyByZWxvYWQoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLm5ld1Byb3RvY29sID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5sb2FkRGV2aWNlKCk7XG4gICAgICB0aGlzLmF2YWlsYWJsZVByb3RvY29scyA9IGF3YWl0IHRoaXMubHB3YW5TZXJ2aWNlLmdldEF2YWlsYWJsZVByb3RvY29scyh0aGlzLmRldmljZSk7XG4gICAgICB0aGlzLmN1cnJlbnRQcm90b2NvbCA9IGF3YWl0IHRoaXMubHB3YW5TZXJ2aWNlLmdldEN1cnJlbnRQcm90b2NvbCh0aGlzLmRldmljZSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBsb2FkRGV2aWNlKCkge1xuICAgIGNvbnN0IGRldmljZUlkID0gdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsLm1hdGNoKC9cXGQrLylbMF07XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKGRldmljZUlkKTtcbiAgICB0aGlzLmRldmljZSA9IGRhdGE7XG4gIH1cblxuICBhc3luYyBhcHBseShzZWxlY3RlZFByb3RvY29sKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1vVXBkYXRlZCA9IChhd2FpdCB0aGlzLmxwd2FuU2VydmljZS5hcHBseVByb3RvY29sKHRoaXMuZGV2aWNlLCBzZWxlY3RlZFByb3RvY29sKSkucmVzLnN0YXR1cyA9PT0gMjAwO1xuICAgICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnRGV2aWNlIHByb3RvY29sIHNldC4nKSk7XG4gICAgICB0aGlzLmxwd2FuU2V0RGV2aWNlUHJvdG9jb2xGb3JtLnJlc2V0KCdkaXJ0eScpO1xuICAgICAgaWYgKG1vVXBkYXRlZCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5kYW5nZXIoZ2V0dGV4dCgnQ291bGQgbm90IHNldCBkZXZpY2UgcHJvdG9jb2wuJykpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHJlZnJlc2hDYWNoZSgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5scHdhblNlcnZpY2UucmVmcmVzaENhY2hlKHRoaXMuZGV2aWNlKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gZG8gbm90aGluZyAocmVmcmVzaGluZyBpcyBhbiBvcHRpb25hbCBzdGVwKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -61,11 +61,12 @@ export class LpwanSetDeviceProtocolService {
61
61
  getAvailableProtocols(device) {
62
62
  return __awaiter(this, void 0, void 0, function* () {
63
63
  const query = {
64
- type: {
65
- __in: this.getProtocolTypesMatchingDevice(device)
66
- }
64
+ __filter: {
65
+ type: { __in: this.getProtocolTypesMatchingDevice(device) }
66
+ },
67
+ __orderby: [{ name: 1 }]
67
68
  };
68
- return this.inventoryService.listQuery(query);
69
+ return this.inventoryService.listQuery(query, { withTotalPages: true, pageSize: 5 });
69
70
  });
70
71
  }
71
72
  getProtocolTypesMatchingDevice(device) {
@@ -88,4 +89,4 @@ LpwanSetDeviceProtocolService.ctorParameters = () => [
88
89
  { type: FetchClient },
89
90
  { type: IdentityService }
90
91
  ];
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvdG9jb2wtbHB3YW4vbHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQWUsV0FBVyxFQUFpQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUdoQyxNQUFNLE9BQU8sNkJBQTZCO0lBaUJ4QyxZQUNVLGdCQUFrQyxFQUNsQyxNQUFtQixFQUNuQixlQUFnQztRQUZoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBbkIxQyx5QkFBb0IsR0FBRztZQUNyQjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEtBQUssTUFBTTtnQkFDMUUsYUFBYSxFQUFFLENBQUMsd0JBQXdCLEVBQUUsb0JBQW9CLENBQUM7YUFDaEU7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEtBQUssUUFBUTtnQkFDNUUsYUFBYSxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDeEM7U0FDRixDQUFDO1FBRWUsV0FBTSxHQUFRLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7UUFDckQsb0JBQWUsR0FBVyxpQkFBaUIsQ0FBQztJQU16RCxDQUFDO0lBRUMsWUFBWSxD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LElBQUksQ0FBQztRQUNyRSxDQUFDO0tBQUE7OztZQTVFRixVQUFVOzs7WUFIYyxnQkFBZ0I7WUFBZSxXQUFXO1lBQWlCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSW52ZW50b3J5U2VydmljZSwgSVJlc3VsdExpc3QsIEZldGNoQ2xpZW50LCBJRmV0Y2hPcHRpb25zLCBJZGVudGl0eVNlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTHB3YW5TZXREZXZpY2VQcm90b2NvbFNlcnZpY2Uge1xuICBzdXBwb3J0ZWREZXZpY2VzQ2ZncyA9IFtcbiAgICB7XG4gICAgICBuYW1lOiAnbG9yYScsXG4gICAgICBtYXRjaDogZGV2aWNlID0+IGdldChkZXZpY2UsICdjOHlfTHB3YW5EZXZpY2UubHB3YW5EZXZpY2VUeXBlJykgPT09ICdMb3JhJyxcbiAgICAgIHByb3RvY29sVHlwZXM6IFsnYzh5X0FjdGlsaXR5RGV2aWNlVHlwZScsICdjOHlfTG9yYURldmljZVR5cGUnXVxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ3NpZ2ZveCcsXG4gICAgICBtYXRjaDogZGV2aWNlID0+IGdldChkZXZpY2UsICdjOHlfTHB3YW5EZXZpY2Uuc2VydmljZVByb3ZpZGVyJykgPT09ICdTaWdmb3gnLFxuICAgICAgcHJvdG9jb2xUeXBlczogWydjOHlfU2lnZm94RGV2aWNlVHlwZSddXG4gICAgfSxcbiAgXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGhlYWRlcjogYW55ID0geyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH07XG4gIHByaXZhdGUgcmVhZG9ubHkgbWljcm9zZXJ2aWNlVXJsOiBzdHJpbmcgPSAnL3NlcnZpY2UvbG9yaW90JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjbGllbnQ6IEZldGNoQ2xpZW50LFxuICAgIHByaXZhdGUgaWRlbnRpdHlTZXJ2aWNlOiBJZGVudGl0eVNlcnZpY2VcbiAgKSB7IH1cblxuICBhc3luYyByZWZyZXNoQ2FjaGUoZGV2aWNlKSB7XG4gICAgY29uc3QgZXh0ZXJuYWxJZCA9IGF3YWl0IHRoaXMuZ2V0RXh0ZXJuYWxJZChkZXZpY2UpO1xuICAgIGlmIChleHRlcm5hbElkKSB7XG4gICAgICBjb25zdCB1cmwgPSBgJHt0aGlzLm1pY3Jvc2VydmljZVVybH0vcmVmcmVzaENhY2hlLyR7ZXh0ZXJuYWxJZH1gO1xuICAgICAgY29uc3Qgb3B0aW9uczogSUZldGNoT3B0aW9ucyA9IHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVyLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7fSlcbiAgICAgIH07XG4gICAgICByZXR1cm4gdGhpcy5jbGllbnQuZmV0Y2godXJsLCBvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBpc1N1cHBvcnRlZERldmljZShkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3VwcG9ydGVkRGV2aWNlc0NmZ3Muc29tZSgoeyBtYXRjaCB9KSA9PiBtYXRjaChkZXZpY2UpKTtcbiAgfVxuXG4gIGFzeW5jIGdldEN1cnJlbnRQcm90b2NvbChkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgY29uc3QgcHJvdG9jb2xJZCA9IGRldmljZS5jOHlfTHB3YW5EZXZpY2UudHlwZVxuICAgICAgPyBkZXZpY2UuYzh5X0xwd2FuRGV2aWNlLnR5cGUuc3BsaXQoJy8nKVsyXVxuICAgICAgOiBudWxsO1xuICAgIGlmICghcHJvdG9jb2xJZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmRldGFpbChwcm90b2NvbElkKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGFzeW5jIGFwcGx5UHJvdG9jb2woZGV2aWNlOiBJTWFuYWdlZE9iamVjdCwgc2VsZWN0ZWRQcm90b2NvbDogSU1hbmFnZWRPYmplY3QpIHtcbiAgICBkZXZpY2UuYzh5X0xwd2FuRGV2aWNlLnR5cGUgPSAnaW52ZW50b3J5L21hbmFnZWRPYmplY3RzLycgKyBzZWxlY3RlZFByb3RvY29sLmlkO1xuICAgIGRldmljZS50eXBlID0gc2VsZWN0ZWRQcm90b2NvbC5uYW1lO1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UudXBkYXRlKGRldmljZSk7XG4gIH1cblxuICBhc3luYyBnZXRBdmFpbGFibGVQcm90b2NvbHMoZGV2aWNlOiBJTWFuYWdlZE9iamVjdCk6IFByb21pc2U8SVJlc3VsdExpc3Q8SU1hbmFnZWRPYmplY3Q+PiB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICB0eXBlOiB7XG4gICAgICAgIF9faW46IHRoaXMuZ2V0UHJvdG9jb2xUeXBlc01hdGNoaW5nRGV2aWNlKGRldmljZSlcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdFF1ZXJ5KHF1ZXJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJvdG9jb2xUeXBlc01hdGNoaW5nRGV2aWNlKGRldmljZTogSU1hbmFnZWRPYmplY3QpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgbWF0Y2hpbmdDZmcgPSB0aGlzLnN1cHBvcnRlZERldmljZXNDZmdzLmZpbmQoKHsgbWF0Y2ggfSkgPT4gbWF0Y2goZGV2aWNlKSk7XG4gICAgcmV0dXJuIG1hdGNoaW5nQ2ZnID8gbWF0Y2hpbmdDZmcucHJvdG9jb2xUeXBlcyA6IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRFeHRlcm5hbElkKGRldmljZTogSU1hbmFnZWRPYmplY3QpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGV4dGVybmFsSWRzID0gKGF3YWl0IHRoaXMuaWRlbnRpdHlTZXJ2aWNlLmxpc3QoZGV2aWNlLmlkKSkuZGF0YTtcbiAgICBjb25zdCBsb3Jpb3RFdWlFeHRlcm5hbElkID0gZXh0ZXJuYWxJZHMuZmluZChleHRlcm5hbElkID0+IGV4dGVybmFsSWQudHlwZSA9PT0gJ2M4eV9Mb3Jpb3RFVUknKTtcbiAgICByZXR1cm4gbG9yaW90RXVpRXh0ZXJuYWxJZCA/IGxvcmlvdEV1aUV4dGVybmFsSWQuZXh0ZXJuYWxJZCA6IG51bGw7XG4gIH1cbn1cbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvdG9jb2wtbHB3YW4vbHB3YW4tc2V0LWRldmljZS1wcm90b2NvbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQWUsV0FBVyxFQUFpQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekgsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUdoQyxNQUFNLE9BQU8sNkJBQTZCO0lBaUJ4QyxZQUNVLGdCQUFrQyxFQUNsQyxNQUFtQixFQUNuQixlQUFnQztRQUZoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBbkIxQyx5QkFBb0IsR0FBRztZQUNyQjtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEtBQUssTUFBTTtnQkFDMUUsYUFBYSxFQUFFLENBQUMsd0JBQXdCLEVBQUUsb0JBQW9CLENBQUM7YUFDaEU7WUFDRDtnQkFDRSxJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLEtBQUssUUFBUTtnQkFDNUUsYUFBYSxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDeEM7U0FDRixDQUFDO1FBRWUsV0FBTSxHQUFRLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLENBQUM7UUFDckQsb0JBQWUsR0FBVyxpQkFBaUIsQ0FBQztJQU16RCxDQUFDO0lBRUMsWUFBWSxD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QUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxDQUFDO1lBQ2hHLE9BQU8sbUJBQW1CLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3JFLENBQUM7S0FBQTs7O1lBN0VGLFVBQVU7OztZQUhjLGdCQUFnQjtZQUFlLFdBQVc7WUFBaUIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBJUmVzdWx0TGlzdCwgRmV0Y2hDbGllbnQsIElGZXRjaE9wdGlvbnMsIElkZW50aXR5U2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMcHdhblNldERldmljZVByb3RvY29sU2VydmljZSB7XG4gIHN1cHBvcnRlZERldmljZXNDZmdzID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdsb3JhJyxcbiAgICAgIG1hdGNoOiBkZXZpY2UgPT4gZ2V0KGRldmljZSwgJ2M4eV9McHdhbkRldmljZS5scHdhbkRldmljZVR5cGUnKSA9PT0gJ0xvcmEnLFxuICAgICAgcHJvdG9jb2xUeXBlczogWydjOHlfQWN0aWxpdHlEZXZpY2VUeXBlJywgJ2M4eV9Mb3JhRGV2aWNlVHlwZSddXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnc2lnZm94JyxcbiAgICAgIG1hdGNoOiBkZXZpY2UgPT4gZ2V0KGRldmljZSwgJ2M4eV9McHdhbkRldmljZS5zZXJ2aWNlUHJvdmlkZXInKSA9PT0gJ1NpZ2ZveCcsXG4gICAgICBwcm90b2NvbFR5cGVzOiBbJ2M4eV9TaWdmb3hEZXZpY2VUeXBlJ11cbiAgICB9LFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGVhZGVyOiBhbnkgPSB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfTtcbiAgcHJpdmF0ZSByZWFkb25seSBtaWNyb3NlcnZpY2VVcmw6IHN0cmluZyA9ICcvc2VydmljZS9sb3Jpb3QnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW52ZW50b3J5U2VydmljZTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGNsaWVudDogRmV0Y2hDbGllbnQsXG4gICAgcHJpdmF0ZSBpZGVudGl0eVNlcnZpY2U6IElkZW50aXR5U2VydmljZVxuICApIHsgfVxuXG4gIGFzeW5jIHJlZnJlc2hDYWNoZShkZXZpY2UpIHtcbiAgICBjb25zdCBleHRlcm5hbElkID0gYXdhaXQgdGhpcy5nZXRFeHRlcm5hbElkKGRldmljZSk7XG4gICAgaWYgKGV4dGVybmFsSWQpIHtcbiAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMubWljcm9zZXJ2aWNlVXJsfS9yZWZyZXNoQ2FjaGUvJHtleHRlcm5hbElkfWA7XG4gICAgICBjb25zdCBvcHRpb25zOiBJRmV0Y2hPcHRpb25zID0ge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXIsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHt9KVxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLmNsaWVudC5mZXRjaCh1cmwsIG9wdGlvbnMpO1xuICAgIH1cbiAgfVxuXG4gIGlzU3VwcG9ydGVkRGV2aWNlKGRldmljZTogSU1hbmFnZWRPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdXBwb3J0ZWREZXZpY2VzQ2Zncy5zb21lKCh7IG1hdGNoIH0pID0+IG1hdGNoKGRldmljZSkpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Q3VycmVudFByb3RvY29sKGRldmljZTogSU1hbmFnZWRPYmplY3QpIHtcbiAgICBjb25zdCBwcm90b2NvbElkID0gZGV2aWNlLmM4eV9McHdhbkRldmljZS50eXBlXG4gICAgICA/IGRldmljZS5jOHlfTHB3YW5EZXZpY2UudHlwZS5zcGxpdCgnLycpWzJdXG4gICAgICA6IG51bGw7XG4gICAgaWYgKCFwcm90b2NvbElkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKHByb3RvY29sSWQpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgYXN5bmMgYXBwbHlQcm90b2NvbChkZXZpY2U6IElNYW5hZ2VkT2JqZWN0LCBzZWxlY3RlZFByb3RvY29sOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGRldmljZS5jOHlfTHB3YW5EZXZpY2UudHlwZSA9ICdpbnZlbnRvcnkvbWFuYWdlZE9iamVjdHMvJyArIHNlbGVjdGVkUHJvdG9jb2wuaWQ7XG4gICAgZGV2aWNlLnR5cGUgPSBzZWxlY3RlZFByb3RvY29sLm5hbWU7XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5U2VydmljZS51cGRhdGUoZGV2aWNlKTtcbiAgfVxuXG4gIGFzeW5jIGdldEF2YWlsYWJsZVByb3RvY29scyhkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogUHJvbWlzZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+IHtcbiAgICBjb25zdCBxdWVyeSA9IHtcbiAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgIHR5cGU6IHsgX19pbjogdGhpcy5nZXRQcm90b2NvbFR5cGVzTWF0Y2hpbmdEZXZpY2UoZGV2aWNlKSB9XG4gICAgICB9LFxuICAgICAgX19vcmRlcmJ5OiBbeyBuYW1lOiAxIH1dXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmxpc3RRdWVyeShxdWVyeSwgeyB3aXRoVG90YWxQYWdlczogdHJ1ZSwgcGFnZVNpemU6IDUgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldFByb3RvY29sVHlwZXNNYXRjaGluZ0RldmljZShkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogc3RyaW5nW10ge1xuICAgIGNvbnN0IG1hdGNoaW5nQ2ZnID0gdGhpcy5zdXBwb3J0ZWREZXZpY2VzQ2Zncy5maW5kKCh7IG1hdGNoIH0pID0+IG1hdGNoKGRldmljZSkpO1xuICAgIHJldHVybiBtYXRjaGluZ0NmZyA/IG1hdGNoaW5nQ2ZnLnByb3RvY29sVHlwZXMgOiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0RXh0ZXJuYWxJZChkZXZpY2U6IElNYW5hZ2VkT2JqZWN0KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBleHRlcm5hbElkcyA9IChhd2FpdCB0aGlzLmlkZW50aXR5U2VydmljZS5saXN0KGRldmljZS5pZCkpLmRhdGE7XG4gICAgY29uc3QgbG9yaW90RXVpRXh0ZXJuYWxJZCA9IGV4dGVybmFsSWRzLmZpbmQoZXh0ZXJuYWxJZCA9PiBleHRlcm5hbElkLnR5cGUgPT09ICdjOHlfTG9yaW90RVVJJyk7XG4gICAgcmV0dXJuIGxvcmlvdEV1aUV4dGVybmFsSWQgPyBsb3Jpb3RFdWlFeHRlcm5hbElkLmV4dGVybmFsSWQgOiBudWxsO1xuICB9XG59XG4iXX0=
@@ -66,11 +66,12 @@ class LpwanSetDeviceProtocolService {
66
66
  getAvailableProtocols(device) {
67
67
  return __awaiter(this, void 0, void 0, function* () {
68
68
  const query = {
69
- type: {
70
- __in: this.getProtocolTypesMatchingDevice(device)
71
- }
69
+ __filter: {
70
+ type: { __in: this.getProtocolTypesMatchingDevice(device) }
71
+ },
72
+ __orderby: [{ name: 1 }]
72
73
  };
73
- return this.inventoryService.listQuery(query);
74
+ return this.inventoryService.listQuery(query, { withTotalPages: true, pageSize: 5 });
74
75
  });
75
76
  }
76
77
  getProtocolTypesMatchingDevice(device) {
@@ -100,13 +101,20 @@ class LpwanAssignDeviceProtocolComponent {
100
101
  this.alertService = alertService;
101
102
  this.router = router;
102
103
  this.inventoryService = inventoryService;
103
- this.filterCurrentProtocol = pipe(map((protocols) => protocols.filter(protocol => !this.currentProtocol || this.currentProtocol.id !== protocol.id)));
104
+ this.filterProtocols = pipe();
105
+ this.pattern = '';
104
106
  }
105
107
  ngOnInit() {
106
108
  return __awaiter(this, void 0, void 0, function* () {
107
109
  yield this.reload();
110
+ this.setPipe('');
108
111
  });
109
112
  }
113
+ setPipe(filterStr) {
114
+ this.pattern = filterStr;
115
+ this.filterProtocols = pipe(map((protocols) => protocols.filter(protocol => (!this.currentProtocol || this.currentProtocol.id !== protocol.id) &&
116
+ (!filterStr || protocol.name.toLowerCase().indexOf(filterStr.toLowerCase()) > -1))));
117
+ }
110
118
  reload() {
111
119
  return __awaiter(this, void 0, void 0, function* () {
112
120
  this.loading = true;
@@ -161,7 +169,7 @@ class LpwanAssignDeviceProtocolComponent {
161
169
  LpwanAssignDeviceProtocolComponent.decorators = [
162
170
  { type: Component, args: [{
163
171
  selector: 'set-device-protocol',
164
- template: "<form #lpwanSetDeviceProtocolForm=\"ngForm\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"card\">\n <div class=\"card-header separator\">\n <h4 class=\"card-title\">\n {{ 'LPWAN device protocol' | translate }}\n </h4>\n </div>\n <div *ngIf=\"loading\" class=\"card-block\">\n <div class=\"p-relative\" style=\"min-height: 40px; min-width: 55px;\">\n <div class=\"spinner\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n </div>\n </div>\n <span translate>Loading</span>\n </div>\n <div *ngIf=\"!loading\">\n <div class=\"card-block\">\n <div class=\"form-group\">\n <label translate>Current device protocol</label>\n <p class=\"form-control-static\" *ngIf=\"!currentProtocol\">\n {{ device.type }}\n </p>\n <p class=\"form-control-static\" *ngIf=\"currentProtocol\">\n {{ currentProtocol.name }}\n </p>\n </div>\n <div class=\"form-group\">\n <label translate>New device protocol</label>\n <div class=\"c8y-select-wrapper\">\n <select class=\"form-control\" [(ngModel)]=\"newProtocol\" name=\"newProtocol\" required>\n <option *ngIf=\"!newProtocol\" [ngValue]=\"null\">\n {{ 'Select device protocol' | translate }}\n </option>\n <option\n *c8yFor=\"let protocol of availableProtocols; pipe: filterCurrentProtocol\"\n [ngValue]=\"protocol\"\n >\n {{ protocol.name }}\n </option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n title=\"{{ 'Apply' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"apply(newProtocol)\"\n [disabled]=\"!lpwanSetDeviceProtocolForm.dirty\"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</form>\n\u200C\n"
172
+ template: "<form #lpwanSetDeviceProtocolForm=\"ngForm\">\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"card card--fullpage\">\n <div class=\"card-header separator\">\n <h4 class=\"card-title\">\n {{ 'LPWAN device protocol' | translate }}\n </h4>\n </div>\n <div class=\"p-16\">\n <div *ngIf=\"loading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!loading\">\n <div class=\"form-group\">\n <label translate>Current device protocol</label>\n <p class=\"form-control-static\" *ngIf=\"!currentProtocol\">\n {{ device.type }}\n </p>\n <p class=\"form-control-static\" *ngIf=\"currentProtocol\">\n {{ currentProtocol.name }}\n </p>\n </div>\n <c8y-form-group>\n <c8y-typeahead\n [(ngModel)]=\"newProtocol\"\n placeholder=\"{{ 'Select new device protocol' | translate }}\"\n (onSearch)=\"setPipe($event)\"\n name=\"newProtocol\"\n [allowFreeEntries]=\"false\"\n >\n <c8y-li\n *c8yFor=\"\n let protocol of availableProtocols;\n loadMore: 'hidden';\n pipe: filterProtocols\n \"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"newProtocol = protocol; setPipe('')\"\n >\n <c8y-highlight [text]=\"protocol.name\" [pattern]=\"pattern\"></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages\n ><c8y-message\n name=\"notExisting\"\n [text]=\"'Select one of the protocols.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n (click)=\"apply(newProtocol)\"\n [disabled]=\"!newProtocol\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</form>\n"
165
173
  },] }
166
174
  ];
167
175
  LpwanAssignDeviceProtocolComponent.ctorParameters = () => [
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-protocol-lpwan.js","sources":["../../protocol-lpwan/lpwan-set-device-protocol.service.ts","../../protocol-lpwan/lpwan-set-device-protocol.component.ts","../../protocol-lpwan/lpwan-agent.guard.ts","../../protocol-lpwan/lpwan-protocol.module.ts","../../protocol-lpwan/c8y-ngx-components-protocol-lpwan.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService, IResultList, FetchClient, IFetchOptions, IdentityService } from '@c8y/client';\nimport { get } from 'lodash-es';\n\n@Injectable()\nexport class LpwanSetDeviceProtocolService {\n supportedDevicesCfgs = [\n {\n name: 'lora',\n match: device => get(device, 'c8y_LpwanDevice.lpwanDeviceType') === 'Lora',\n protocolTypes: ['c8y_ActilityDeviceType', 'c8y_LoraDeviceType']\n },\n {\n name: 'sigfox',\n match: device => get(device, 'c8y_LpwanDevice.serviceProvider') === 'Sigfox',\n protocolTypes: ['c8y_SigfoxDeviceType']\n },\n ];\n\n private readonly header: any = { 'Content-Type': 'application/json' };\n private readonly microserviceUrl: string = '/service/loriot';\n\n constructor(\n private inventoryService: InventoryService,\n private client: FetchClient,\n private identityService: IdentityService\n ) { }\n\n async refreshCache(device) {\n const externalId = await this.getExternalId(device);\n if (externalId) {\n const url = `${this.microserviceUrl}/refreshCache/${externalId}`;\n const options: IFetchOptions = {\n method: 'POST',\n headers: this.header,\n body: JSON.stringify({})\n };\n return this.client.fetch(url, options);\n }\n }\n\n isSupportedDevice(device: IManagedObject): boolean {\n return this.supportedDevicesCfgs.some(({ match }) => match(device));\n }\n\n async getCurrentProtocol(device: IManagedObject) {\n const protocolId = device.c8y_LpwanDevice.type\n ? device.c8y_LpwanDevice.type.split('/')[2]\n : null;\n if (!protocolId) {\n return null;\n }\n const { data } = await this.inventoryService.detail(protocolId);\n return data;\n }\n\n async applyProtocol(device: IManagedObject, selectedProtocol: IManagedObject) {\n device.c8y_LpwanDevice.type = 'inventory/managedObjects/' + selectedProtocol.id;\n device.type = selectedProtocol.name;\n return this.inventoryService.update(device);\n }\n\n async getAvailableProtocols(device: IManagedObject): Promise<IResultList<IManagedObject>> {\n const query = {\n type: {\n __in: this.getProtocolTypesMatchingDevice(device)\n }\n };\n return this.inventoryService.listQuery(query);\n }\n\n private getProtocolTypesMatchingDevice(device: IManagedObject): string[] {\n const matchingCfg = this.supportedDevicesCfgs.find(({ match }) => match(device));\n return matchingCfg ? matchingCfg.protocolTypes : [];\n }\n\n private async getExternalId(device: IManagedObject): Promise<string> {\n const externalIds = (await this.identityService.list(device.id)).data;\n const loriotEuiExternalId = externalIds.find(externalId => externalId.type === 'c8y_LoriotEUI');\n return loriotEuiExternalId ? loriotEuiExternalId.externalId : null;\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { IManagedObject, InventoryService, IResultList } from '@c8y/client';\nimport { Router } from '@angular/router';\nimport { pipe } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'set-device-protocol',\n templateUrl: './lpwan-set-device-protocol.component.html'\n})\n\nexport class LpwanAssignDeviceProtocolComponent implements OnInit {\n loading: boolean;\n device: IManagedObject;\n currentProtocol: IManagedObject;\n availableProtocols: IResultList<IManagedObject>;\n newProtocol: IManagedObject;\n\n filterCurrentProtocol = pipe(\n map((protocols: IManagedObject[]) =>\n protocols.filter(protocol => !this.currentProtocol || this.currentProtocol.id !== protocol.id)\n )\n );\n @ViewChild('lpwanSetDeviceProtocolForm', { static: false }) lpwanSetDeviceProtocolForm: any;\n\n constructor(\n private lpwanService: LpwanSetDeviceProtocolService,\n private alertService: AlertService,\n private router: Router,\n private inventoryService: InventoryService\n ) { }\n async ngOnInit() {\n await this.reload();\n }\n\n async reload() {\n this.loading = true;\n this.newProtocol = null;\n try {\n await this.loadDevice();\n this.availableProtocols = await this.lpwanService.getAvailableProtocols(this.device);\n this.currentProtocol = await this.lpwanService.getCurrentProtocol(this.device);\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n } finally {\n this.loading = false;\n }\n }\n\n async loadDevice() {\n const deviceId = this.router.routerState.snapshot.url.match(/\\d+/)[0];\n const { data } = await this.inventoryService.detail(deviceId);\n this.device = data;\n }\n\n async apply(selectedProtocol) {\n try {\n const moUpdated = (await this.lpwanService.applyProtocol(this.device, selectedProtocol)).res.status === 200;\n await this.reload();\n this.alertService.success(gettext('Device protocol set.'));\n this.lpwanSetDeviceProtocolForm.reset('dirty');\n if (moUpdated) {\n this.refreshCache();\n }\n } catch (ex) {\n this.alertService.danger(gettext('Could not set device protocol.'));\n }\n }\n\n async refreshCache() {\n try {\n await this.lpwanService.refreshCache(this.device);\n } catch (ex) {\n // do nothing (refreshing is an optional step)\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\n@Injectable()\nexport class LpwanAgentGuard implements CanActivate {\n constructor(private lpwanService: LpwanSetDeviceProtocolService) {}\n\n canActivate(route: ActivatedRouteSnapshot): boolean {\n const device = route.data.contextData || route.parent.data.contextData;\n return this.lpwanService.isSupportedDevice(device);\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n FormsModule,\n gettext,\n HOOK_ONCE_ROUTE,\n Route,\n ViewContext\n} from '@c8y/ngx-components';\nimport { LpwanAssignDeviceProtocolComponent } from './lpwan-set-device-protocol.component';\nimport { LpwanAgentGuard } from './lpwan-agent.guard';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\n\nconst routes: Route[] = [\n {\n context: ViewContext.Device,\n path: 'assign-protocol',\n component: LpwanAssignDeviceProtocolComponent,\n label: gettext('LPWAN'),\n icon: 'c8y-device-protocols',\n canActivate: [LpwanAgentGuard]\n }\n];\n\n@NgModule({\n declarations: [\n LpwanAssignDeviceProtocolComponent\n ],\n imports: [\n CoreModule,\n FormsModule\n ],\n entryComponents: [LpwanAssignDeviceProtocolComponent],\n providers: [\n LpwanAgentGuard,\n LpwanSetDeviceProtocolService,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: routes,\n multi: true\n }\n ]\n})\nexport class LpwanProtocolModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {LpwanAgentGuard as ɵb} from './lpwan-agent.guard';\nexport {LpwanSetDeviceProtocolService as ɵa} from './lpwan-set-device-protocol.service';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-protocol-lpwan.js","sources":["../../protocol-lpwan/lpwan-set-device-protocol.service.ts","../../protocol-lpwan/lpwan-set-device-protocol.component.ts","../../protocol-lpwan/lpwan-agent.guard.ts","../../protocol-lpwan/lpwan-protocol.module.ts","../../protocol-lpwan/c8y-ngx-components-protocol-lpwan.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService, IResultList, FetchClient, IFetchOptions, IdentityService } from '@c8y/client';\nimport { get } from 'lodash-es';\n\n@Injectable()\nexport class LpwanSetDeviceProtocolService {\n supportedDevicesCfgs = [\n {\n name: 'lora',\n match: device => get(device, 'c8y_LpwanDevice.lpwanDeviceType') === 'Lora',\n protocolTypes: ['c8y_ActilityDeviceType', 'c8y_LoraDeviceType']\n },\n {\n name: 'sigfox',\n match: device => get(device, 'c8y_LpwanDevice.serviceProvider') === 'Sigfox',\n protocolTypes: ['c8y_SigfoxDeviceType']\n },\n ];\n\n private readonly header: any = { 'Content-Type': 'application/json' };\n private readonly microserviceUrl: string = '/service/loriot';\n\n constructor(\n private inventoryService: InventoryService,\n private client: FetchClient,\n private identityService: IdentityService\n ) { }\n\n async refreshCache(device) {\n const externalId = await this.getExternalId(device);\n if (externalId) {\n const url = `${this.microserviceUrl}/refreshCache/${externalId}`;\n const options: IFetchOptions = {\n method: 'POST',\n headers: this.header,\n body: JSON.stringify({})\n };\n return this.client.fetch(url, options);\n }\n }\n\n isSupportedDevice(device: IManagedObject): boolean {\n return this.supportedDevicesCfgs.some(({ match }) => match(device));\n }\n\n async getCurrentProtocol(device: IManagedObject) {\n const protocolId = device.c8y_LpwanDevice.type\n ? device.c8y_LpwanDevice.type.split('/')[2]\n : null;\n if (!protocolId) {\n return null;\n }\n const { data } = await this.inventoryService.detail(protocolId);\n return data;\n }\n\n async applyProtocol(device: IManagedObject, selectedProtocol: IManagedObject) {\n device.c8y_LpwanDevice.type = 'inventory/managedObjects/' + selectedProtocol.id;\n device.type = selectedProtocol.name;\n return this.inventoryService.update(device);\n }\n\n async getAvailableProtocols(device: IManagedObject): Promise<IResultList<IManagedObject>> {\n const query = {\n __filter: {\n type: { __in: this.getProtocolTypesMatchingDevice(device) }\n },\n __orderby: [{ name: 1 }]\n };\n return this.inventoryService.listQuery(query, { withTotalPages: true, pageSize: 5 });\n }\n\n private getProtocolTypesMatchingDevice(device: IManagedObject): string[] {\n const matchingCfg = this.supportedDevicesCfgs.find(({ match }) => match(device));\n return matchingCfg ? matchingCfg.protocolTypes : [];\n }\n\n private async getExternalId(device: IManagedObject): Promise<string> {\n const externalIds = (await this.identityService.list(device.id)).data;\n const loriotEuiExternalId = externalIds.find(externalId => externalId.type === 'c8y_LoriotEUI');\n return loriotEuiExternalId ? loriotEuiExternalId.externalId : null;\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\nimport { AlertService, gettext } from '@c8y/ngx-components';\nimport { IManagedObject, InventoryService, IResultList } from '@c8y/client';\nimport { Router } from '@angular/router';\nimport { pipe } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'set-device-protocol',\n templateUrl: './lpwan-set-device-protocol.component.html'\n})\n\nexport class LpwanAssignDeviceProtocolComponent implements OnInit {\n loading: boolean;\n device: IManagedObject;\n currentProtocol: IManagedObject;\n availableProtocols: IResultList<IManagedObject>;\n newProtocol: IManagedObject;\n\n filterProtocols = pipe();\n pattern = '';\n\n @ViewChild('lpwanSetDeviceProtocolForm', { static: false }) lpwanSetDeviceProtocolForm: any;\n\n constructor(\n private lpwanService: LpwanSetDeviceProtocolService,\n private alertService: AlertService,\n private router: Router,\n private inventoryService: InventoryService\n ) { }\n async ngOnInit() {\n await this.reload();\n this.setPipe('');\n }\n\n setPipe(filterStr: string) {\n this.pattern = filterStr;\n this.filterProtocols = pipe(\n map((protocols: IManagedObject[]) =>\n protocols.filter(\n protocol =>\n (!this.currentProtocol || this.currentProtocol.id !== protocol.id) &&\n (!filterStr || protocol.name.toLowerCase().indexOf(filterStr.toLowerCase()) > -1)\n )\n )\n );\n }\n\n async reload() {\n this.loading = true;\n this.newProtocol = null;\n try {\n await this.loadDevice();\n this.availableProtocols = await this.lpwanService.getAvailableProtocols(this.device);\n this.currentProtocol = await this.lpwanService.getCurrentProtocol(this.device);\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n } finally {\n this.loading = false;\n }\n }\n\n async loadDevice() {\n const deviceId = this.router.routerState.snapshot.url.match(/\\d+/)[0];\n const { data } = await this.inventoryService.detail(deviceId);\n this.device = data;\n }\n\n async apply(selectedProtocol) {\n try {\n const moUpdated = (await this.lpwanService.applyProtocol(this.device, selectedProtocol)).res.status === 200;\n await this.reload();\n this.alertService.success(gettext('Device protocol set.'));\n this.lpwanSetDeviceProtocolForm.reset('dirty');\n if (moUpdated) {\n this.refreshCache();\n }\n } catch (ex) {\n this.alertService.danger(gettext('Could not set device protocol.'));\n }\n }\n\n async refreshCache() {\n try {\n await this.lpwanService.refreshCache(this.device);\n } catch (ex) {\n // do nothing (refreshing is an optional step)\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\n@Injectable()\nexport class LpwanAgentGuard implements CanActivate {\n constructor(private lpwanService: LpwanSetDeviceProtocolService) {}\n\n canActivate(route: ActivatedRouteSnapshot): boolean {\n const device = route.data.contextData || route.parent.data.contextData;\n return this.lpwanService.isSupportedDevice(device);\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n CoreModule,\n FormsModule,\n gettext,\n HOOK_ONCE_ROUTE,\n Route,\n ViewContext\n} from '@c8y/ngx-components';\nimport { LpwanAssignDeviceProtocolComponent } from './lpwan-set-device-protocol.component';\nimport { LpwanAgentGuard } from './lpwan-agent.guard';\nimport { LpwanSetDeviceProtocolService } from './lpwan-set-device-protocol.service';\n\nconst routes: Route[] = [\n {\n context: ViewContext.Device,\n path: 'assign-protocol',\n component: LpwanAssignDeviceProtocolComponent,\n label: gettext('LPWAN'),\n icon: 'c8y-device-protocols',\n canActivate: [LpwanAgentGuard]\n }\n];\n\n@NgModule({\n declarations: [\n LpwanAssignDeviceProtocolComponent\n ],\n imports: [\n CoreModule,\n FormsModule\n ],\n entryComponents: [LpwanAssignDeviceProtocolComponent],\n providers: [\n LpwanAgentGuard,\n LpwanSetDeviceProtocolService,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: routes,\n multi: true\n }\n ]\n})\nexport class LpwanProtocolModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {LpwanAgentGuard as ɵb} from './lpwan-agent.guard';\nexport {LpwanSetDeviceProtocolService as ɵa} from './lpwan-set-device-protocol.service';"],"names":[],"mappings":"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"}
@@ -16247,7 +16247,7 @@ class TypeaheadComponent {
16247
16247
  TypeaheadComponent.decorators = [
16248
16248
  { type: Component, args: [{
16249
16249
  selector: 'c8y-typeahead',
16250
- template: "<div\n class=\"c8y-child-assets-selector dropdown\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n",
16250
+ template: "<div\n class=\"c8y-child-assets-selector dropdown fit-w\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n",
16251
16251
  providers: [
16252
16252
  {
16253
16253
  provide: NG_VALUE_ACCESSOR,